From a2b006105e200ccd0762cbd6a655a20c55227669 Mon Sep 17 00:00:00 2001 From: WayofTime Date: Fri, 31 Oct 2014 17:35:30 -0400 Subject: [PATCH] Testing the creation of hell --- .../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 - 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 | 1004 ------------ .../BloodMagicConfiguration.java | 95 -- .../alchemicalWizardry/ModBlocks.java | 162 -- .../alchemicalWizardry/ModItems.java | 366 ----- .../AlchemicalPotionCreationHandler.java | 79 - .../AlchemyPotionHandlerComponent.java | 52 - .../api/alchemy/AlchemyPotionHelper.java | 76 - .../api/alchemy/AlchemyRecipe.java | 143 -- .../api/alchemy/AlchemyRecipeRegistry.java | 85 -- .../api/altarRecipeRegistry/AltarRecipe.java | 70 - .../AltarRecipeRegistry.java | 60 - .../api/bindingRegistry/BindingRecipe.java | 30 - .../api/bindingRegistry/BindingRegistry.java | 67 - .../api/harvest/HarvestRegistry.java | 34 - .../api/harvest/IHarvestHandler.java | 21 - .../api/items/ShapedBloodOrbRecipe.java | 227 --- .../api/items/ShapelessBloodOrbRecipe.java | 140 -- .../api/items/interfaces/ArmourUpgrade.java | 15 - .../api/items/interfaces/IBindable.java | 5 - .../api/items/interfaces/IBloodOrb.java | 8 - .../api/items/interfaces/IHolding.java | 6 - .../api/rituals/IMasterRitualStone.java | 30 - .../api/rituals/IRitualStone.java | 6 - .../api/rituals/RitualComponent.java | 43 - .../api/rituals/RitualEffect.java | 17 - .../api/rituals/Rituals.java | 333 ---- .../api/soulNetwork/LifeEssenceNetwork.java | 26 - .../api/soulNetwork/SoulNetworkHandler.java | 228 --- .../summoningRegistry/SummoningHelper.java | 21 - .../summoningRegistry/SummoningRegistry.java | 70 - .../SummoningRegistryComponent.java | 231 --- .../api/tile/IBloodAltar.java | 26 - .../client/ClientProxy.java | 150 -- .../common/AlchemicalWizardryEventHooks.java | 347 ----- .../common/AlchemicalWizardryFuelHandler.java | 71 - .../common/AlchemicalWizardryTickHandler.java | 47 - .../common/ArmourComponent.java | 23 - .../common/CommonProxy.java | 91 -- .../common/EntityAIFly.java | 5 - .../common/EntityAITargetAggro.java | 24 - .../common/EntityAirElemental.java | 33 - .../common/IBindingAgent.java | 6 - .../alchemicalWizardry/common/ICatalyst.java | 8 - .../alchemicalWizardry/common/IDemon.java | 10 - .../common/IFillingAgent.java | 6 - .../alchemicalWizardry/common/Int3.java | 16 - .../common/LifeBucketHandler.java | 42 - .../common/LifeEssence.java | 28 - .../common/ModLivingDropsEvent.java | 36 - .../common/NewPacketHandler.java | 809 ---------- .../common/PacketHandler.java | 966 ------------ .../common/PlinthComponent.java | 37 - .../common/block/ArmourForge.java | 336 ---- .../common/block/BlockAltar.java | 311 ---- .../common/block/BlockBloodLightSource.java | 75 - .../common/block/BlockConduit.java | 101 -- .../common/block/BlockDemonPortal.java | 43 - .../common/block/BlockHomHeart.java | 101 -- .../common/block/BlockMasterStone.java | 72 - .../common/block/BlockOrientable.java | 254 ---- .../common/block/BlockPedestal.java | 193 --- .../common/block/BlockPlinth.java | 193 --- .../common/block/BlockSchematicSaver.java | 43 - .../common/block/BlockSocket.java | 163 -- .../common/block/BlockSpectralContainer.java | 75 - .../common/block/BlockSpellEffect.java | 62 - .../common/block/BlockSpellEnhancement.java | 64 - .../common/block/BlockSpellModifier.java | 63 - .../common/block/BlockSpellParadigm.java | 212 --- .../common/block/BlockTeleposer.java | 321 ---- .../common/block/BlockWritingTable.java | 181 --- .../common/block/BloodRune.java | 121 -- .../common/block/BloodStoneBrick.java | 27 - .../common/block/EfficiencyRune.java | 31 - .../common/block/EmptySocket.java | 34 - .../common/block/IOrientable.java | 14 - .../common/block/ImperfectRitualStone.java | 143 -- .../common/block/LargeBloodStoneBrick.java | 27 - .../common/block/LifeEssenceBlock.java | 62 - .../common/block/RitualStone.java | 121 -- .../common/block/RuneOfSacrifice.java | 31 - .../common/block/RuneOfSelfSacrifice.java | 31 - .../common/block/SpectralBlock.java | 104 -- .../common/block/SpeedRune.java | 31 - .../bloodAltarUpgrade/AltarComponent.java | 60 - .../AltarUpgradeComponent.java | 105 -- .../bloodAltarUpgrade/UpgradedAltars.java | 300 ---- .../common/demonVillage/BlockSet.java | 195 --- .../demonVillage/BuildingSchematic.java | 129 -- .../common/demonVillage/DemonBuilding.java | 120 -- .../common/demonVillage/DemonCrosspath.java | 22 - .../common/demonVillage/DemonVillagePath.java | 135 -- .../common/demonVillage/GridSpace.java | 77 - .../common/demonVillage/GridSpaceHolder.java | 309 ---- .../common/demonVillage/TileBlockSet.java | 8 - .../common/entity/mob/EntityBileDemon.java | 487 ------ .../common/entity/mob/EntityBoulderFist.java | 494 ------ .../common/entity/mob/EntityDemon.java | 94 -- .../entity/mob/EntityEarthElemental.java | 28 - .../common/entity/mob/EntityElemental.java | 744 --------- .../common/entity/mob/EntityFallenAngel.java | 501 ------ .../entity/mob/EntityFireElemental.java | 26 - .../entity/mob/EntityHolyElemental.java | 28 - .../common/entity/mob/EntityIceDemon.java | 522 ------- .../entity/mob/EntityLowerGuardian.java | 486 ------ .../common/entity/mob/EntityShade.java | 492 ------ .../entity/mob/EntityShadeElemental.java | 27 - .../entity/mob/EntitySmallEarthGolem.java | 499 ------ .../entity/mob/EntityWaterElemental.java | 25 - .../entity/mob/EntityWingedFireDemon.java | 502 ------ .../projectile/EnergyBlastProjectile.java | 526 ------- .../EntityBloodLightProjectile.java | 131 -- .../EntityEnergyBazookaMainProjectile.java | 100 -- ...ntityEnergyBazookaSecondaryProjectile.java | 508 ------- .../entity/projectile/EntityMeteor.java | 64 - .../projectile/ExplosionProjectile.java | 134 -- .../entity/projectile/FireProjectile.java | 115 -- .../entity/projectile/HolyProjectile.java | 117 -- .../entity/projectile/IceProjectile.java | 123 -- .../projectile/LightningBoltProjectile.java | 126 -- .../entity/projectile/MudProjectile.java | 131 -- .../entity/projectile/TeleportProjectile.java | 205 --- .../entity/projectile/WaterProjectile.java | 107 -- .../entity/projectile/WindGustProjectile.java | 110 -- .../harvest/BloodMagicHarvestHandler.java | 127 -- .../common/harvest/GourdHarvestHandler.java | 45 - .../common/items/AWBaseItems.java | 44 - .../common/items/ActivationCrystal.java | 135 -- .../common/items/AirScribeTool.java | 20 - .../common/items/ApprenticeBloodOrb.java | 21 - .../common/items/ArchmageBloodOrb.java | 21 - .../common/items/ArmourInhibitor.java | 215 --- .../common/items/BlankSpell.java | 114 -- .../common/items/BloodShard.java | 73 - .../common/items/BloodboundSword.java | 103 -- .../common/items/BoundArmour.java | 594 -------- .../common/items/BoundAxe.java | 384 ----- .../common/items/BoundPickaxe.java | 395 ----- .../common/items/BoundShovel.java | 391 ----- .../common/items/CheatyItem.java | 254 ---- .../common/items/DaggerOfSacrifice.java | 268 ---- .../common/items/DemonPlacer.java | 277 ---- .../items/DemonicTelepositionFocus.java | 47 - .../common/items/DuskScribeTool.java | 20 - .../common/items/EarthScribeTool.java | 20 - .../common/items/EnergyBattery.java | 252 --- .../common/items/EnergyBazooka.java | 219 --- .../common/items/EnergyBlast.java | 214 --- .../common/items/EnergyItems.java | 357 ----- .../common/items/EnergySword.java | 238 --- .../items/EnhancedTelepositionFocus.java | 46 - .../common/items/FireScribeTool.java | 20 - .../common/items/ItemAlchemyBase.java | 107 -- .../common/items/ItemBloodRuneBlock.java | 63 - .../common/items/ItemComplexSpellCrystal.java | 108 -- .../common/items/ItemComponents.java | 80 - .../common/items/ItemDiabloKey.java | 128 -- .../common/items/ItemRitualDiviner.java | 308 ---- .../common/items/ItemSpellEffectBlock.java | 59 - .../items/ItemSpellEnhancementBlock.java | 99 -- .../common/items/ItemSpellModifierBlock.java | 59 - .../common/items/ItemSpellParadigmBlock.java | 58 - .../common/items/LavaCrystal.java | 114 -- .../common/items/LifeBucket.java | 23 - .../common/items/MagicianBloodOrb.java | 21 - .../common/items/MasterBloodOrb.java | 21 - .../common/items/OrbOfTesting.java | 47 - .../items/ReinforcedTelepositionFocus.java | 47 - .../common/items/SacrificialDagger.java | 159 -- .../common/items/ScribeTool.java | 53 - .../common/items/TelepositionFocus.java | 124 -- .../common/items/WaterScribeTool.java | 22 - .../common/items/forestry/ItemBloodFrame.java | 151 -- .../common/items/potion/AlchemyFlask.java | 435 ------ .../common/items/potion/AlchemyReagent.java | 120 -- .../potion/AverageLengtheningCatalyst.java | 20 - .../items/potion/AveragePowerCatalyst.java | 20 - .../items/potion/EnhancedFillingAgent.java | 57 - .../potion/GreaterLengtheningCatalyst.java | 20 - .../items/potion/GreaterPowerCatalyst.java | 20 - .../items/potion/LengtheningCatalyst.java | 64 - .../potion/MundaneLengtheningCatalyst.java | 20 - .../items/potion/MundanePowerCatalyst.java | 20 - .../common/items/potion/PowerCatalyst.java | 64 - .../items/potion/StandardBindingAgent.java | 66 - .../items/potion/StandardFillingAgent.java | 39 - .../common/items/potion/WeakBindingAgent.java | 27 - .../common/items/potion/WeakFillingAgent.java | 85 -- .../common/items/sigil/AirSigil.java | 106 -- .../common/items/sigil/DivinationSigil.java | 96 -- .../items/sigil/ItemBloodLightSigil.java | 144 -- .../common/items/sigil/ItemFluidSigil.java | 597 -------- .../common/items/sigil/ItemSeerSigil.java | 67 - .../sigil/ItemSigilOfEnderSeverance.java | 171 --- .../items/sigil/ItemSigilOfSupression.java | 270 ---- .../common/items/sigil/LavaSigil.java | 310 ---- .../items/sigil/SigilOfElementalAffinity.java | 171 --- .../common/items/sigil/SigilOfGrowth.java | 302 ---- .../common/items/sigil/SigilOfHaste.java | 198 --- .../common/items/sigil/SigilOfHolding.java | 371 ----- .../common/items/sigil/SigilOfMagnetism.java | 222 --- .../common/items/sigil/SigilOfTheBridge.java | 312 ---- .../items/sigil/SigilOfTheFastMiner.java | 194 --- .../common/items/sigil/SigilOfWind.java | 196 --- .../common/items/sigil/VoidSigil.java | 195 --- .../common/items/sigil/WaterSigil.java | 285 ---- .../items/spell/ItemSpellMultiTool.java | 861 ----------- .../common/items/thaumcraft/FocusBase.java | 169 --- .../items/thaumcraft/FocusBloodBlast.java | 191 --- .../items/thaumcraft/FocusGravityWell.java | 263 ---- .../items/thaumcraft/ItemSanguineArmour.java | 103 -- .../alchemicalWizardry/common/mcmod.info | 22 - .../common/potion/PotionBoost.java | 18 - .../common/potion/PotionDrowning.java | 18 - .../common/potion/PotionFireFuse.java | 18 - .../common/potion/PotionFlameCloak.java | 18 - .../common/potion/PotionFlight.java | 18 - .../common/potion/PotionHeavyHeart.java | 18 - .../common/potion/PotionIceCloak.java | 18 - .../common/potion/PotionInhibit.java | 18 - .../common/potion/PotionPlanarBinding.java | 18 - .../potion/PotionProjectileProtect.java | 18 - .../common/potion/PotionReciprocation.java | 18 - .../common/renderer/block/RenderConduit.java | 43 - .../common/renderer/block/RenderPedestal.java | 252 --- .../common/renderer/block/RenderPlinth.java | 256 ---- .../block/RenderSpellEffectBlock.java | 49 - .../block/RenderSpellEnhancementBlock.java | 49 - .../block/RenderSpellModifierBlock.java | 49 - .../block/RenderSpellParadigmBlock.java | 49 - .../renderer/block/RenderWritingTable.java | 333 ---- .../renderer/block/TEAltarRenderer.java | 241 --- .../block/itemRender/TEAltarItemRenderer.java | 81 - .../itemRender/TEConduitItemRenderer.java | 95 -- .../TESpellEffectBlockItemRenderer.java | 108 -- .../TESpellEnhancementBlockItemRenderer.java | 114 -- .../TESpellModifierBlockItemRenderer.java | 108 -- .../TESpellParadigmBlockItemRenderer.java | 108 -- .../TEWritingTableItemRenderer.java | 82 - .../common/renderer/mob/RenderBileDemon.java | 27 - .../renderer/mob/RenderBoulderFist.java | 27 - .../common/renderer/mob/RenderElemental.java | 63 - .../renderer/mob/RenderFallenAngel.java | 30 - .../common/renderer/mob/RenderIceDemon.java | 27 - .../renderer/mob/RenderLowerGuardian.java | 27 - .../common/renderer/mob/RenderShade.java | 27 - .../renderer/mob/RenderSmallEarthGolem.java | 27 - .../renderer/mob/RenderWingedFireDemon.java | 27 - .../common/renderer/model/ModelBileDemon.java | 181 --- .../renderer/model/ModelBloodAltar.java | 72 - .../renderer/model/ModelBoulderFist.java | 153 -- .../common/renderer/model/ModelConduit.java | 287 ---- .../common/renderer/model/ModelElemental.java | 81 - .../ModelEnergyBazookaMainProjectile.java | 122 -- .../renderer/model/ModelFallenAngel.java | 113 -- .../common/renderer/model/ModelIceDemon.java | 197 --- .../renderer/model/ModelLowerGuardian.java | 207 --- .../common/renderer/model/ModelMeteor.java | 90 -- .../common/renderer/model/ModelPedestal.java | 58 - .../common/renderer/model/ModelPlinth.java | 90 -- .../common/renderer/model/ModelShade.java | 86 -- .../renderer/model/ModelSmallEarthGolem.java | 127 -- .../renderer/model/ModelSpellEffectBlock.java | 332 ---- .../model/ModelSpellEnhancementBlock.java | 334 ---- .../model/ModelSpellModifierBlock.java | 303 ---- .../model/ModelSpellParadigmBlock.java | 234 --- .../renderer/model/ModelWingedFireDemon.java | 203 --- .../renderer/model/ModelWritingTable.java | 138 -- .../RenderEnergyBazookaMainProjectile.java | 39 - .../RenderEnergyBlastProjectile.java | 101 -- .../projectile/RenderFireProjectile.java | 41 - .../renderer/projectile/RenderMeteor.java | 39 - .../rituals/RitualEffectAnimalGrowth.java | 119 -- .../rituals/RitualEffectApiaryOverclock.java | 99 -- .../rituals/RitualEffectAutoAlchemy.java | 430 ------ .../rituals/RitualEffectBiomeChanger.java | 447 ------ .../rituals/RitualEffectContainment.java | 127 -- .../common/rituals/RitualEffectCrushing.java | 300 ---- .../common/rituals/RitualEffectExpulsion.java | 286 ---- .../rituals/RitualEffectFeatheredEarth.java | 140 -- .../rituals/RitualEffectFeatheredKnife.java | 191 --- .../common/rituals/RitualEffectFlight.java | 179 --- .../common/rituals/RitualEffectGrowth.java | 104 -- .../common/rituals/RitualEffectHarvest.java | 123 -- .../common/rituals/RitualEffectHealing.java | 180 --- .../rituals/RitualEffectInterdiction.java | 112 -- .../rituals/RitualEffectItemSuction.java | 215 --- .../common/rituals/RitualEffectJumping.java | 114 -- .../common/rituals/RitualEffectLava.java | 86 -- .../common/rituals/RitualEffectLeap.java | 158 -- .../rituals/RitualEffectLifeConduit.java | 180 --- .../common/rituals/RitualEffectMagnetic.java | 178 --- .../common/rituals/RitualEffectSoulBound.java | 199 --- .../rituals/RitualEffectSummonMeteor.java | 203 --- .../rituals/RitualEffectSummonPlayer.java | 111 -- .../rituals/RitualEffectSupression.java | 180 --- .../common/rituals/RitualEffectUnbinding.java | 206 --- .../common/rituals/RitualEffectWater.java | 83 - .../rituals/RitualEffectWellOfSuffering.java | 181 --- .../spell/complex/EntitySpellProjectile.java | 624 -------- .../common/spell/complex/SpellModifier.java | 21 - .../spell/complex/SpellModifierDefault.java | 9 - .../spell/complex/SpellModifierDefensive.java | 9 - .../complex/SpellModifierEnvironmental.java | 9 - .../spell/complex/SpellModifierOffensive.java | 9 - .../common/spell/complex/SpellParadigm.java | 163 -- .../spell/complex/SpellParadigmMelee.java | 70 - .../complex/SpellParadigmProjectile.java | 102 -- .../spell/complex/SpellParadigmSelf.java | 58 - .../spell/complex/SpellParadigmTool.java | 501 ------ .../spell/complex/effect/SpellEffect.java | 259 ---- .../complex/effect/SpellEffectEarth.java | 280 ---- .../spell/complex/effect/SpellEffectFire.java | 225 --- .../spell/complex/effect/SpellEffectIce.java | 241 --- .../spell/complex/effect/SpellEffectWind.java | 242 --- .../spell/complex/effect/SpellHelper.java | 381 ----- .../ExtrapolatedMeleeEntityEffect.java | 74 - .../IMeleeSpellEntityEffect.java | 9 - .../impactEffects/IMeleeSpellWorldEffect.java | 10 - .../IProjectileImpactEffect.java | 11 - .../IProjectileUpdateEffect.java | 8 - .../impactEffects/ISelfSpellEffect.java | 9 - .../MeleeSpellCenteredWorldEffect.java | 33 - .../impactEffects/MeleeSpellWorldEffect.java | 21 - .../impactEffects/ProjectileImpactEffect.java | 15 - .../impactEffects/ProjectileUpdateEffect.java | 15 - .../effect/impactEffects/SelfSpellEffect.java | 18 - .../earth/MeleeDefaultEarth.java | 45 - .../earth/MeleeDefensiveEarth.java | 37 - .../earth/MeleeEnvironmentalEarth.java | 48 - .../earth/MeleeOffensiveEarth.java | 34 - .../earth/ProjectileDefaultEarth.java | 57 - .../earth/ProjectileDefensiveEarth.java | 66 - .../earth/ProjectileEnvironmentalEarth.java | 82 - .../earth/ProjectileOffensiveEarth.java | 92 -- .../impactEffects/earth/SelfDefaultEarth.java | 52 - .../earth/SelfDefensiveEarth.java | 27 - .../earth/SelfEnvironmentalEarth.java | 37 - .../earth/SelfOffensiveEarth.java | 43 - .../earth/ToolEnvironmentalEarth.java | 86 -- .../earth/ToolOffensiveEarth.java | 58 - .../impactEffects/fire/MeleeDefaultFire.java | 30 - .../fire/MeleeDefensiveFire.java | 49 - .../fire/MeleeEnvironmentalFire.java | 32 - .../fire/MeleeOffensiveFire.java | 32 - .../fire/ProjectileDefaultFire.java | 70 - .../fire/ProjectileDefensiveFire.java | 47 - .../fire/ProjectileEnvironmentalFire.java | 46 - .../fire/ProjectileOffensiveFire.java | 81 - .../impactEffects/fire/SelfDefaultFire.java | 22 - .../impactEffects/fire/SelfDefensiveFire.java | 43 - .../fire/SelfEnvironmentalFire.java | 56 - .../impactEffects/fire/SelfOffensiveFire.java | 21 - .../impactEffects/fire/ToolDefaultFire.java | 38 - .../fire/ToolEnvironmentalFire.java | 47 - .../impactEffects/fire/ToolOffensiveFire.java | 21 - .../impactEffects/ice/MeleeDefaultIce.java | 28 - .../impactEffects/ice/MeleeDefensiveIce.java | 48 - .../ice/MeleeEnvironmentalIce.java | 40 - .../impactEffects/ice/MeleeOffensiveIce.java | 46 - .../ice/ProjectileDefaultIce.java | 40 - .../ice/ProjectileDefensiveIce.java | 49 - .../ice/ProjectileEnvironmentalIce.java | 39 - .../ice/ProjectileOffensiveIce.java | 32 - .../impactEffects/ice/SelfDefaultIce.java | 41 - .../impactEffects/ice/SelfDefensiveIce.java | 21 - .../ice/SelfEnvironmentalIce.java | 46 - .../impactEffects/ice/SelfOffensiveIce.java | 52 - .../impactEffects/ice/ToolDefaultIce.java | 30 - .../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 | 40 - .../wind/MeleeDefensiveWind.java | 33 - .../wind/MeleeEnvironmentalWind.java | 36 - .../wind/MeleeOffensiveWind.java | 40 - .../wind/ProjectileDefaultWind.java | 33 - .../wind/ProjectileEnvironmentalWind.java | 53 - .../wind/ProjectileOffensiveWind.java | 33 - .../impactEffects/wind/SelfDefaultWind.java | 27 - .../impactEffects/wind/SelfDefensiveWind.java | 39 - .../wind/SelfEnvironmentalWind.java | 45 - .../impactEffects/wind/SelfOffensiveWind.java | 32 - .../impactEffects/wind/ToolDefensiveWind.java | 32 - .../wind/ToolEnvironmentalWind.java | 41 - .../impactEffects/wind/ToolOffensiveWind.java | 24 - .../complex/enhancement/SpellEnhancement.java | 20 - .../enhancement/SpellEnhancementCost.java | 10 - .../enhancement/SpellEnhancementPotency.java | 10 - .../enhancement/SpellEnhancementPower.java | 10 - .../common/spell/simple/HomSpell.java | 143 -- .../spell/simple/HomSpellComponent.java | 26 - .../common/spell/simple/HomSpellRegistry.java | 55 - .../common/spell/simple/ISimpleSpell.java | 16 - .../common/spell/simple/SpellEarthBender.java | 199 --- .../common/spell/simple/SpellExplosions.java | 116 -- .../common/spell/simple/SpellFireBurst.java | 175 --- .../common/spell/simple/SpellFrozenWater.java | 208 --- .../common/spell/simple/SpellHolyBlast.java | 200 --- .../spell/simple/SpellLightningBolt.java | 141 -- .../common/spell/simple/SpellTeleport.java | 289 ---- .../common/spell/simple/SpellWateryGrave.java | 180 --- .../common/spell/simple/SpellWindGust.java | 219 --- .../summoning/SummoningFallenAngel.java | 20 - .../common/summoning/SummoningHelperAW.java | 109 -- .../summoning/meteor/MeteorParadigm.java | 86 -- .../meteor/MeteorParadigmComponent.java | 54 - .../summoning/meteor/MeteorRegistry.java | 61 - .../common/tileEntity/TEAltar.java | 1084 ------------- .../common/tileEntity/TEConduit.java | 34 - .../common/tileEntity/TEDemonPortal.java | 1201 --------------- .../common/tileEntity/TEHomHeart.java | 167 -- .../tileEntity/TEImperfectRitualStone.java | 11 - .../common/tileEntity/TEMasterStone.java | 235 --- .../common/tileEntity/TEOrientable.java | 109 -- .../common/tileEntity/TEPedestal.java | 268 ---- .../common/tileEntity/TEPlinth.java | 694 --------- .../common/tileEntity/TESchematicSaver.java | 158 -- .../common/tileEntity/TESocket.java | 255 ---- .../tileEntity/TESpectralContainer.java | 149 -- .../common/tileEntity/TESpellBlock.java | 48 - .../common/tileEntity/TESpellEffectBlock.java | 43 - .../tileEntity/TESpellEnhancementBlock.java | 155 -- .../tileEntity/TESpellModifierBlock.java | 43 - .../tileEntity/TESpellParadigmBlock.java | 98 -- .../common/tileEntity/TETeleposer.java | 374 ----- .../common/tileEntity/TEWritingTable.java | 815 ---------- .../tileEntity/container/ContainerAltar.java | 96 -- .../container/ContainerTeleposer.java | 106 -- .../container/ContainerWritingTable.java | 104 -- .../common/tileEntity/gui/GuiHandler.java | 73 - .../common/tileEntity/gui/GuiTeleposer.java | 47 - .../tileEntity/gui/GuiWritingTable.java | 45 - .../ShapedBloodOrbRecipe.java | 227 --- .../ShapelessBloodOrbRecipe.java | 140 -- .../nei/NEIAlchemyRecipeHandler.java | 153 -- .../nei/NEIAltarRecipeHandler.java | 182 --- .../nei/NEIBloodOrbShapedHandler.java | 141 -- .../nei/NEIBloodOrbShapelessHandler.java | 130 -- .../alchemicalWizardy/nei/NEIConfig.java | 33 - .../assets/alchemicalwizardry/altar.png | Bin 59034 -> 0 bytes .../alchemicalwizardry/books/architect.xml | 106 -- .../alchemicalwizardry/gui/Teleposer.png | Bin 986 -> 0 bytes .../alchemicalwizardry/gui/WritingTable.png | Bin 1186 -> 0 bytes .../alchemicalwizardry/gui/bookleft.png | Bin 11940 -> 0 bytes .../alchemicalwizardry/gui/nei/alchemy.png | Bin 1400 -> 0 bytes .../alchemicalwizardry/gui/nei/altar.png | Bin 4204 -> 0 bytes .../assets/alchemicalwizardry/lang/de_DE.lang | 181 --- .../assets/alchemicalwizardry/lang/en_US.lang | 184 --- .../assets/alchemicalwizardry/lang/it_IT.lang | 181 --- .../assets/alchemicalwizardry/lang/ru_RU.lang | 184 --- .../assets/alchemicalwizardry/lang/zh_CN.lang | 173 --- .../models/armor/armor - Shortcut.lnk | Bin 1926 -> 0 bytes .../armor/boundArmour_invisible_layer_1.png | Bin 3785 -> 0 bytes .../armor/boundArmour_invisible_layer_2.png | Bin 3149 -> 0 bytes .../models/armor/boundArmour_layer_1.png | Bin 3830 -> 0 bytes .../models/armor/boundArmour_layer_2.png | Bin 3178 -> 0 bytes .../models/armor/sanguineArmour_layer_1.png | Bin 7932 -> 0 bytes .../schematics/building/buildings.zip | Bin 766 -> 0 bytes .../textures/blocks/AirRitualStone.png | Bin 706 -> 0 bytes .../textures/blocks/AlchemicChemistrySet.png | Bin 450 -> 0 bytes .../textures/blocks/AltarCapacityRune.png | Bin 761 -> 0 bytes .../textures/blocks/ArcanePedestal.png | Bin 428 -> 0 bytes .../textures/blocks/ArcanePlinth.png | Bin 497 -> 0 bytes .../textures/blocks/BetterCapacityRune.png | Bin 771 -> 0 bytes .../textures/blocks/BlankRune.png | Bin 693 -> 0 bytes .../textures/blocks/BlockBloodLight.png | Bin 220 -> 0 bytes .../textures/blocks/BloodAltar_Bottom.png | Bin 1731 -> 0 bytes .../textures/blocks/BloodAltar_SideType1.png | Bin 1384 -> 0 bytes .../textures/blocks/BloodAltar_SideType2.png | Bin 1435 -> 0 bytes .../textures/blocks/BloodAltar_Top.png | Bin 2261 -> 0 bytes .../textures/blocks/BloodSocket.png | Bin 481 -> 0 bytes .../textures/blocks/BloodStoneBrick.png | Bin 459 -> 0 bytes .../textures/blocks/DislocationRune.png | Bin 741 -> 0 bytes .../textures/blocks/DuskRitualStone.png | Bin 762 -> 0 bytes .../textures/blocks/EarthRitualStone.png | Bin 736 -> 0 bytes .../textures/blocks/EfficiencyRune.png | Bin 738 -> 0 bytes .../textures/blocks/EmptySocket.png | Bin 271 -> 0 bytes .../textures/blocks/FireRitualStone.png | Bin 779 -> 0 bytes .../textures/blocks/HomHeart_bottom.png | Bin 680 -> 0 bytes .../textures/blocks/HomHeart_side.png | Bin 734 -> 0 bytes .../textures/blocks/HomHeart_top.png | Bin 622 -> 0 bytes .../textures/blocks/HomHeart_top1.png | Bin 197 -> 0 bytes .../textures/blocks/ImperfectRitualStone.png | Bin 617 -> 0 bytes .../textures/blocks/LargeBloodStoneBrick.png | Bin 493 -> 0 bytes .../textures/blocks/MasterStone.png | Bin 624 -> 0 bytes .../textures/blocks/OrbCapacityRune.png | Bin 733 -> 0 bytes .../textures/blocks/RitualStone.png | Bin 630 -> 0 bytes .../textures/blocks/RuneOfSacrifice.png | Bin 741 -> 0 bytes .../textures/blocks/RuneOfSelfSacrifice.png | Bin 830 -> 0 bytes .../textures/blocks/SoulForge.png | Bin 632 -> 0 bytes .../textures/blocks/SpectralBlock.png | Bin 629 -> 0 bytes .../textures/blocks/SpeedRune.png | Bin 797 -> 0 bytes .../textures/blocks/Teleposer_Side.png | Bin 719 -> 0 bytes .../textures/blocks/Teleposer_Top.png | Bin 696 -> 0 bytes .../textures/blocks/Testing.png | Bin 815 -> 0 bytes .../textures/blocks/WaterRitualStone.png | Bin 745 -> 0 bytes .../textures/blocks/fireEffectBlock_blank.png | Bin 311 -> 0 bytes .../textures/blocks/fireEffectBlock_input.png | Bin 342 -> 0 bytes .../blocks/fireEffectBlock_output.png | Bin 314 -> 0 bytes .../blocks/fireEffectBlock_upArrow.png | Bin 329 -> 0 bytes .../textures/blocks/lifeEssenceFlowing.png | Bin 576 -> 0 bytes .../textures/blocks/lifeEssenceStill.png | Bin 507 -> 0 bytes .../entities/energyBlastProjectile.png | Bin 302 -> 0 bytes .../textures/entities/explosionProjectile.png | Bin 383 -> 0 bytes .../textures/entities/fireProjectile.png | Bin 268 -> 0 bytes .../textures/entities/holyProjectile.png | Bin 271 -> 0 bytes .../textures/entities/iceProjectile.png | Bin 327 -> 0 bytes .../textures/entities/lightningProjectile.png | Bin 241 -> 0 bytes .../textures/entities/mudProjectile.png | Bin 345 -> 0 bytes .../textures/entities/waterProjectile.png | Bin 384 -> 0 bytes .../textures/entities/windGustProjectile.png | Bin 3540 -> 0 bytes .../textures/gui/GuiTrap.png | Bin 3677 -> 0 bytes .../textures/gui/bookcrafting.png | Bin 3756 -> 0 bytes .../textures/gui/bookfurnace.png | Bin 1664 -> 0 bytes .../textures/gui/bookleft.png | Bin 11940 -> 0 bytes .../textures/gui/bookright.png | Bin 8536 -> 0 bytes .../textures/items/8wWtY8d.png | Bin 319 -> 0 bytes .../textures/items/Aether.png | Bin 3540 -> 0 bytes .../textures/items/AirScribeTool.png | Bin 1167 -> 0 bytes .../textures/items/AirSigil.png | Bin 500 -> 0 bytes .../textures/items/ApprenticeBloodOrb.png | Bin 831 -> 0 bytes .../textures/items/Aquasalus.png | Bin 471 -> 0 bytes .../textures/items/ArchmageBloodOrb.png | Bin 590 -> 0 bytes .../items/ArmourInhibitor_activated.png | Bin 544 -> 0 bytes .../items/ArmourInhibitor_deactivated.png | Bin 556 -> 0 bytes .../items/AverageLengtheningCatalyst.png | Bin 405 -> 0 bytes .../textures/items/AveragePowerCatalyst.png | Bin 387 -> 0 bytes .../textures/items/BlankSlate.png | Bin 554 -> 0 bytes .../textures/items/BlankSpell.png | Bin 339 -> 0 bytes .../textures/items/BloodFrame.png | Bin 363 -> 0 bytes .../textures/items/BloodLightSigil.png | Bin 536 -> 0 bytes .../textures/items/BoundAxe_activated.png | Bin 397 -> 0 bytes .../textures/items/BoundBoots.png | Bin 255 -> 0 bytes .../textures/items/BoundHelmet.png | Bin 253 -> 0 bytes .../textures/items/BoundLeggings.png | Bin 231 -> 0 bytes .../textures/items/BoundPickaxe_activated.png | Bin 394 -> 0 bytes .../items/BoundPickaxe_deactivated.png | Bin 457 -> 0 bytes .../textures/items/BoundPlate.png | Bin 282 -> 0 bytes .../textures/items/BoundShovel_activated.png | Bin 390 -> 0 bytes .../textures/items/BoundSword_activated.png | Bin 386 -> 0 bytes .../textures/items/BoundTool.png | Bin 376 -> 0 bytes .../textures/items/BridgeSigil_activated.png | Bin 632 -> 0 bytes .../items/BridgeSigil_deactivated.png | Bin 534 -> 0 bytes .../textures/items/CeremonialDagger.png | Bin 321 -> 0 bytes .../textures/items/ComplexCrystal.png | Bin 414 -> 0 bytes .../textures/items/Crepitous.png | Bin 408 -> 0 bytes .../textures/items/Crystallos.png | Bin 391 -> 0 bytes .../textures/items/DaggerOfSacrifice.png | Bin 476 -> 0 bytes .../textures/items/DemonBloodShard.png | Bin 457 -> 0 bytes .../textures/items/DemonPlacer.png | Bin 399 -> 0 bytes .../textures/items/DemonSlate.png | Bin 571 -> 0 bytes .../textures/items/DemonicTeleposerFocus.png | Bin 603 -> 0 bytes .../textures/items/DiabloKey.png | Bin 328 -> 0 bytes .../textures/items/DivinationSigil.png | Bin 625 -> 0 bytes .../textures/items/DuskScribeTool.png | Bin 659 -> 0 bytes .../textures/items/EarthScribeTool.png | Bin 1078 -> 0 bytes .../items/ElementalSigil_activated.png | Bin 659 -> 0 bytes .../items/ElementalSigil_deactivated.png | Bin 598 -> 0 bytes .../textures/items/EnergyBattery.png | Bin 845 -> 0 bytes .../items/EnergyBazooka_activated.png | Bin 696 -> 0 bytes .../items/EnergyBlaster_activated.png | Bin 525 -> 0 bytes .../textures/items/EnhancedFillingAgent.png | Bin 606 -> 0 bytes .../textures/items/EnhancedTeleposerFocus.png | Bin 498 -> 0 bytes .../textures/items/FireScribeTool.png | Bin 1050 -> 0 bytes .../items/GreaterLengtheningCatalyst.png | Bin 491 -> 0 bytes .../textures/items/GreaterPowerCatalyst.png | Bin 432 -> 0 bytes .../textures/items/GrowthSigil_activated.png | Bin 546 -> 0 bytes .../items/GrowthSigil_deactivated.png | Bin 531 -> 0 bytes .../textures/items/HasteSigil_activated.png | Bin 546 -> 0 bytes .../textures/items/HasteSigil_deactivated.png | Bin 562 -> 0 bytes .../textures/items/IceSigil_activated.png | Bin 557 -> 0 bytes .../textures/items/IceSigil_deactivated.png | Bin 562 -> 0 bytes .../textures/items/Incendium.png | Bin 352 -> 0 bytes .../textures/items/InfusedSlate.png | Bin 605 -> 0 bytes .../textures/items/LavaCrystal.png | Bin 585 -> 0 bytes .../textures/items/LavaSigil.png | Bin 573 -> 0 bytes .../textures/items/LifeBucket.png | Bin 659 -> 0 bytes .../textures/items/Magicales.png | Bin 408 -> 0 bytes .../textures/items/MagicianBloodOrb.png | Bin 727 -> 0 bytes .../textures/items/MasterBloodOrb.png | Bin 699 -> 0 bytes .../textures/items/MiningSigil_activated.png | Bin 670 -> 0 bytes .../items/MiningSigil_deactivated.png | Bin 649 -> 0 bytes .../items/MundaneLengtheningCatalyst.png | Bin 211 -> 0 bytes .../textures/items/MundanePowerCatalyst.png | Bin 206 -> 0 bytes .../textures/items/PotionFlask.png | Bin 325 -> 0 bytes .../textures/items/ReinforcedSlate.png | Bin 709 -> 0 bytes .../items/ReinforcedTeleposerFocus.png | Bin 552 -> 0 bytes .../textures/items/RitualDiviner.png | Bin 382 -> 0 bytes .../textures/items/SacrificialDagger.png | Bin 50724 -> 0 bytes .../textures/items/Sanctus.png | Bin 491 -> 0 bytes .../textures/items/SanguineHelmet.png | Bin 292 -> 0 bytes .../textures/items/SeerSigil.png | Bin 593 -> 0 bytes .../textures/items/SheathedItem.png | Bin 474 -> 0 bytes .../textures/items/SigilOfHolding.png | Bin 697 -> 0 bytes .../items/SigilOfMagnetism_activated.png | Bin 578 -> 0 bytes .../items/SigilOfMagnetism_deactivated.png | Bin 594 -> 0 bytes .../items/SigilOfSeverance_activated.png | Bin 597 -> 0 bytes .../items/SigilOfSeverance_deactivated.png | Bin 614 -> 0 bytes .../items/SigilOfSupression_activated.png | Bin 637 -> 0 bytes .../items/SigilOfSupression_deactivated.png | Bin 645 -> 0 bytes .../textures/items/SimpleCatalyst.png | Bin 420 -> 0 bytes .../textures/items/StandardBindingAgent.png | Bin 654 -> 0 bytes .../textures/items/StandardFillingAgent.png | Bin 610 -> 0 bytes .../textures/items/TeleposerFocus.png | Bin 530 -> 0 bytes .../textures/items/Tennebrae.png | Bin 397 -> 0 bytes .../textures/items/Terrae.png | Bin 460 -> 0 bytes .../textures/items/UntamedCrystal.png | Bin 239 -> 0 bytes .../textures/items/VoidSigil.png | Bin 679 -> 0 bytes .../textures/items/WarriorSigil_activated.png | Bin 682 -> 0 bytes .../items/WarriorSigil_deactivated.png | Bin 616 -> 0 bytes .../textures/items/WaterScribeTool.png | Bin 1086 -> 0 bytes .../textures/items/WaterSigil.png | Bin 590 -> 0 bytes .../textures/items/WeakBindingAgent.png | Bin 402 -> 0 bytes .../textures/items/WeakBloodShard.png | Bin 473 -> 0 bytes .../textures/items/WeakFillingAgent.png | Bin 582 -> 0 bytes .../textures/items/WindSigil_activated.png | Bin 624 -> 0 bytes .../textures/items/WindSigil_deactivated.png | Bin 503 -> 0 bytes .../items/activationCrystalAwakened.png | Bin 689 -> 0 bytes .../textures/items/activationCrystalWeak.png | Bin 765 -> 0 bytes .../baseAlchemyItemConcentratedCatalyst.png | Bin 478 -> 0 bytes .../items/baseAlchemyItemFracturedBone.png | Bin 377 -> 0 bytes .../textures/items/baseAlchemyItemOffensa.png | Bin 367 -> 0 bytes .../items/baseAlchemyItemOrbisTerrae.png | Bin 425 -> 0 bytes .../items/baseAlchemyItemPotentia.png | Bin 433 -> 0 bytes .../items/baseAlchemyItemPraesidium.png | Bin 456 -> 0 bytes .../items/baseAlchemyItemReductus.png | Bin 429 -> 0 bytes .../baseAlchemyItemStrengthenedCatalyst.png | Bin 430 -> 0 bytes .../textures/items/baseAlchemyItemVirtus.png | Bin 417 -> 0 bytes .../textures/items/baseItemCostCore.png | Bin 471 -> 0 bytes .../items/baseItemCrackedRunicPlate.png | Bin 523 -> 0 bytes .../textures/items/baseItemDefaultCore.png | Bin 327 -> 0 bytes .../textures/items/baseItemDefensiveCore.png | Bin 502 -> 0 bytes .../textures/items/baseItemEarthenCore.png | Bin 454 -> 0 bytes .../textures/items/baseItemEmptyCore.png | Bin 237 -> 0 bytes .../items/baseItemEnvironmentalCore.png | Bin 370 -> 0 bytes .../textures/items/baseItemFlameCore.png | Bin 488 -> 0 bytes .../textures/items/baseItemGustCore.png | Bin 488 -> 0 bytes .../textures/items/baseItemIcyCore.png | Bin 551 -> 0 bytes .../textures/items/baseItemInputCable.png | Bin 291 -> 0 bytes .../textures/items/baseItemMagicalesCable.png | Bin 284 -> 0 bytes .../textures/items/baseItemMeleeCore.png | Bin 461 -> 0 bytes .../textures/items/baseItemObsidianBrace.png | Bin 325 -> 0 bytes .../textures/items/baseItemOffensiveCore.png | Bin 353 -> 0 bytes .../textures/items/baseItemOutputCable.png | Bin 290 -> 0 bytes .../items/baseItemParadigmBackPlate.png | Bin 306 -> 0 bytes .../textures/items/baseItemPotencyCore.png | Bin 378 -> 0 bytes .../textures/items/baseItemPowerCore.png | Bin 381 -> 0 bytes .../textures/items/baseItemProjectileCore.png | Bin 478 -> 0 bytes .../textures/items/baseItemQuartzRod.png | Bin 251 -> 0 bytes .../textures/items/baseItemRunicPlate.png | Bin 442 -> 0 bytes .../items/baseItemScribedRunicPlate.png | Bin 513 -> 0 bytes .../textures/items/baseItemSelfCore.png | Bin 433 -> 0 bytes .../textures/items/baseItemStoneBrace.png | Bin 308 -> 0 bytes .../textures/items/baseItemToolCore.png | Bin 453 -> 0 bytes .../textures/items/baseItemWoodBrace.png | Bin 316 -> 0 bytes .../textures/items/bloodBlastOrn.png | Bin 178 -> 0 bytes .../textures/items/focusBloodBlastOrn.png | Bin 178 -> 0 bytes .../textures/items/tYf5ft9.png | Bin 291 -> 0 bytes .../textures/models/AirFloatingBeacon.png | Bin 480 -> 0 bytes .../textures/models/BileDemon.png | Bin 7737 -> 0 bytes .../textures/models/Bird.png | Bin 3007 -> 0 bytes .../textures/models/BlockSpellEffect.png | Bin 985 -> 0 bytes .../textures/models/BoulderFist.png | Bin 4025 -> 0 bytes .../textures/models/Conduit.png | Bin 1867 -> 0 bytes .../textures/models/DarkFloatingBeacon.png | Bin 488 -> 0 bytes .../textures/models/EarthFloatingBeacon.png | Bin 554 -> 0 bytes .../models/EnergyBazookaMainProjectile.png | Bin 1948 -> 0 bytes .../textures/models/FireFloatingBeacon.png | Bin 805 -> 0 bytes .../textures/models/FloatingBeacon.png | Bin 805 -> 0 bytes .../textures/models/HolyFloatingBeacon.png | Bin 553 -> 0 bytes .../textures/models/IceDemon.png | Bin 3537 -> 0 bytes .../textures/models/LowerGuardian.png | Bin 4228 -> 0 bytes .../textures/models/Meteor.png | Bin 950 -> 0 bytes .../textures/models/ParadigmBlock.png | Bin 923 -> 0 bytes .../textures/models/Pedestal.png | Bin 1219 -> 0 bytes .../textures/models/Plinth.png | Bin 2404 -> 0 bytes .../textures/models/ShadeMob.png | Bin 2495 -> 0 bytes .../textures/models/SmallEarthGolem.png | Bin 765 -> 0 bytes .../textures/models/SpellEffectEarth.png | Bin 1833 -> 0 bytes .../textures/models/SpellEffectFire.png | Bin 1721 -> 0 bytes .../textures/models/SpellEffectIce.png | Bin 1481 -> 0 bytes .../textures/models/SpellEffectWind.png | Bin 1679 -> 0 bytes .../textures/models/SpellEnhancementCost1.png | Bin 4871 -> 0 bytes .../textures/models/SpellEnhancementCost2.png | Bin 3603 -> 0 bytes .../textures/models/SpellEnhancementCost3.png | Bin 4021 -> 0 bytes .../models/SpellEnhancementPotency1.png | Bin 4329 -> 0 bytes .../models/SpellEnhancementPotency2.png | Bin 3539 -> 0 bytes .../models/SpellEnhancementPotency3.png | Bin 3947 -> 0 bytes .../models/SpellEnhancementPower1.png | Bin 4449 -> 0 bytes .../models/SpellEnhancementPower2.png | Bin 3738 -> 0 bytes .../models/SpellEnhancementPower3.png | Bin 4062 -> 0 bytes .../textures/models/SpellModifierDefault.png | Bin 1193 -> 0 bytes .../models/SpellModifierDefensive.png | Bin 1608 -> 0 bytes .../models/SpellModifierEnvironmental.png | Bin 1398 -> 0 bytes .../models/SpellModifierOffensive.png | Bin 1350 -> 0 bytes .../textures/models/SpellParadigmMelee.png | Bin 1230 -> 0 bytes .../models/SpellParadigmProjectile.png | Bin 1229 -> 0 bytes .../textures/models/SpellParadigmSelf.png | Bin 1193 -> 0 bytes .../textures/models/SpellParadigmTool.png | Bin 1180 -> 0 bytes .../textures/models/WaterFloatingBeacon.png | Bin 543 -> 0 bytes .../textures/models/WingedAngel.png | Bin 3549 -> 0 bytes .../textures/models/WingedFireDemon.png | Bin 5121 -> 0 bytes .../textures/models/WritingTable.png | Bin 1851 -> 0 bytes .../textures/models/altar.png | Bin 59034 -> 0 bytes .../textures/models/baseItemToolCore.png | Bin 453 -> 0 bytes .../textures/models/blood.png | Bin 576 -> 0 bytes .../resources/assets/forge/lang/en_US.lang | 5 - .../resources/assets/forge/lang/es_ES.lang | 5 - .../resources/assets/forge/lang/fr_FR.lang | 5 - 1.7.2/main/resources/mcmod.info | 16 - .../AlchemicalWizardry.java | 1345 ----------------- .../BloodMagicConfiguration.java | 242 --- .../alchemicalWizardry/ModBlocks.java | 85 -- .../alchemicalWizardry/ModItems.java | 258 ---- .../AlchemicalPotionCreationHandler.java | 82 - .../AlchemyPotionHandlerComponent.java | 52 - .../api/alchemy/AlchemyPotionHelper.java | 76 - .../api/alchemy/AlchemyRecipe.java | 143 -- .../api/alchemy/AlchemyRecipeRegistry.java | 85 -- .../api/altarRecipeRegistry/AltarRecipe.java | 70 - .../AltarRecipeRegistry.java | 64 - .../api/bindingRegistry/BindingRecipe.java | 30 - .../api/bindingRegistry/BindingRegistry.java | 67 - .../api/items/interfaces/ArmourUpgrade.java | 15 - .../api/items/interfaces/IBindable.java | 5 - .../api/items/interfaces/IBloodOrb.java | 8 - .../api/rituals/IMasterRitualStone.java | 30 - .../api/rituals/IRitualStone.java | 6 - .../api/rituals/RitualComponent.java | 43 - .../api/rituals/RitualEffect.java | 17 - .../api/rituals/Rituals.java | 252 --- .../api/soulNetwork/LifeEssenceNetwork.java | 26 - .../api/soulNetwork/SoulNetworkHandler.java | 223 --- .../summoningRegistry/SummoningHelper.java | 22 - .../summoningRegistry/SummoningRegistry.java | 70 - .../SummoningRegistryComponent.java | 231 --- .../client/BMClientRegistry.java | 189 --- .../client/ClientProxy.java | 503 ------ .../alchemicalWizardry/client/GuiManual.java | 250 --- .../client/RenderItemCopy.java | 742 --------- .../client/SmallFontRenderer.java | 1189 --------------- .../client/TurnPageButton.java | 65 - .../client/book/pages/BlankPage.java | 18 - .../client/book/pages/BookPage.java | 30 - .../client/book/pages/ContentsTablePage.java | 57 - .../client/book/pages/CraftingPage.java | 105 -- .../client/book/pages/FurnacePage.java | 62 - .../client/book/pages/PicturePage.java | 41 - .../client/book/pages/SectionPage.java | 29 - .../client/book/pages/SidebarPage.java | 57 - .../client/book/pages/TextPage.java | 23 - .../client/book/pages/TitlePage.java | 23 - .../common/AlchemicalWizardryEventHooks.java | 357 ----- .../common/AlchemicalWizardryFuelHandler.java | 65 - .../common/AlchemicalWizardryTickHandler.java | 48 - .../common/ArmourComponent.java | 23 - .../common/CommonProxy.java | 92 -- .../common/EntityAIFly.java | 5 - .../common/EntityAITargetAggro.java | 24 - .../common/EntityAirElemental.java | 33 - .../common/EnumToolMaterialBoundBlood.java | 5 - .../common/IBindingAgent.java | 6 - .../alchemicalWizardry/common/ICatalyst.java | 8 - .../alchemicalWizardry/common/IDemon.java | 10 - .../common/IFillingAgent.java | 6 - .../common/LifeBucketHandler.java | 41 - .../common/LifeEssence.java | 28 - .../common/ModLivingDropsEvent.java | 36 - .../common/PacketHandler.java | 961 ------------ .../common/PlinthComponent.java | 37 - .../common/PotionBoost.java | 18 - .../common/PotionDrowning.java | 18 - .../common/PotionFireFuse.java | 18 - .../common/PotionFlameCloak.java | 18 - .../common/PotionFlight.java | 18 - .../common/PotionHeavyHeart.java | 18 - .../common/PotionIceCloak.java | 18 - .../common/PotionInhibit.java | 18 - .../common/PotionPlanarBinding.java | 18 - .../common/PotionProjectileProtect.java | 18 - .../common/PotionReciprocation.java | 18 - .../CombinedPotionCreationHandler.java | 11 - .../CombinedPotionHandlerComponent.java | 52 - .../common/block/ArmourForge.java | 334 ---- .../common/block/BlockAltar.java | 277 ---- .../common/block/BlockBloodLightSource.java | 81 - .../common/block/BlockConduit.java | 105 -- .../common/block/BlockHomHeart.java | 102 -- .../common/block/BlockMasterStone.java | 72 - .../common/block/BlockOrientable.java | 250 --- .../common/block/BlockPedestal.java | 192 --- .../common/block/BlockPlinth.java | 192 --- .../common/block/BlockSocket.java | 162 -- .../common/block/BlockSpectralContainer.java | 74 - .../common/block/BlockSpellEffect.java | 61 - .../common/block/BlockSpellEnhancement.java | 63 - .../common/block/BlockSpellModifier.java | 62 - .../common/block/BlockSpellParadigm.java | 237 --- .../common/block/BlockTeleposer.java | 318 ---- .../common/block/BlockWritingTable.java | 180 --- .../common/block/BloodRune.java | 109 -- .../common/block/BloodStoneBrick.java | 27 - .../common/block/EfficiencyRune.java | 31 - .../common/block/EmptySocket.java | 34 - .../common/block/IOrientable.java | 14 - .../common/block/ImperfectRitualStone.java | 140 -- .../common/block/LargeBloodStoneBrick.java | 27 - .../common/block/LifeEssenceBlock.java | 58 - .../common/block/LifeEssenceFlowing.java | 32 - .../common/block/LifeEssenceStill.java | 32 - .../common/block/RitualStone.java | 127 -- .../common/block/RuneOfSacrifice.java | 31 - .../common/block/RuneOfSelfSacrifice.java | 31 - .../common/block/SpectralBlock.java | 78 - .../common/block/SpeedRune.java | 31 - .../bloodAltarUpgrade/AltarComponent.java | 58 - .../AltarUpgradeComponent.java | 93 -- .../bloodAltarUpgrade/UpgradedAltars.java | 295 ---- .../common/entity/mob/EntityBileDemon.java | 483 ------ .../common/entity/mob/EntityBoulderFist.java | 496 ------ .../common/entity/mob/EntityDemon.java | 101 -- .../entity/mob/EntityEarthElemental.java | 28 - .../common/entity/mob/EntityElemental.java | 750 --------- .../common/entity/mob/EntityFallenAngel.java | 495 ------ .../entity/mob/EntityFireElemental.java | 26 - .../entity/mob/EntityHolyElemental.java | 28 - .../common/entity/mob/EntityIceDemon.java | 513 ------- .../entity/mob/EntityLowerGuardian.java | 489 ------ .../common/entity/mob/EntityShade.java | 496 ------ .../entity/mob/EntityShadeElemental.java | 27 - .../entity/mob/EntitySmallEarthGolem.java | 493 ------ .../common/entity/mob/EntityTestDemon.java | 502 ------ .../entity/mob/EntityWaterElemental.java | 25 - .../entity/mob/EntityWingedFireDemon.java | 494 ------ .../entity/mob/ai/PathNavigateFlying.java | 18 - .../projectile/EnergyBlastProjectile.java | 504 ------ .../EntityBloodLightProjectile.java | 129 -- .../EntityEnergyBazookaMainProjectile.java | 101 -- ...ntityEnergyBazookaSecondaryProjectile.java | 508 ------- .../entity/projectile/EntityMeteor.java | 65 - .../projectile/ExplosionProjectile.java | 135 -- .../entity/projectile/FireProjectile.java | 115 -- .../entity/projectile/HolyProjectile.java | 118 -- .../entity/projectile/IceProjectile.java | 124 -- .../projectile/LightningBoltProjectile.java | 128 -- .../entity/projectile/MudProjectile.java | 132 -- .../entity/projectile/TeleportProjectile.java | 205 --- .../entity/projectile/WaterProjectile.java | 108 -- .../entity/projectile/WindGustProjectile.java | 112 -- .../common/items/AWBaseItems.java | 44 - .../common/items/ActivationCrystal.java | 138 -- .../common/items/AirInk.java | 24 - .../common/items/AirScribeTool.java | 20 - .../common/items/ApprenticeBloodOrb.java | 21 - .../common/items/ArchmageBloodOrb.java | 21 - .../common/items/ArmourInhibitor.java | 213 --- .../common/items/BlankSpell.java | 120 -- .../common/items/BloodShard.java | 73 - .../common/items/BloodboundSword.java | 102 -- .../common/items/BoundArmour.java | 609 -------- .../common/items/BoundAxe.java | 366 ----- .../common/items/BoundPickaxe.java | 385 ----- .../common/items/BoundShovel.java | 381 ----- .../common/items/CheatyItem.java | 254 ---- .../common/items/DaggerOfSacrifice.java | 272 ---- .../common/items/DemonPlacer.java | 270 ---- .../items/DemonicTelepositionFocus.java | 47 - .../common/items/DuskScribeTool.java | 20 - .../common/items/EarthInk.java | 24 - .../common/items/EarthScribeTool.java | 20 - .../common/items/EnergyBattery.java | 244 --- .../common/items/EnergyBazooka.java | 225 --- .../common/items/EnergyBlast.java | 220 --- .../common/items/EnergyItems.java | 138 -- .../common/items/EnergySword.java | 237 --- .../common/items/FireInk.java | 24 - .../common/items/FireScribeTool.java | 20 - .../common/items/ItemAlchemyBase.java | 111 -- .../common/items/ItemBloodRuneBlock.java | 55 - .../common/items/ItemComplexSpellCrystal.java | 137 -- .../common/items/ItemComponents.java | 110 -- .../common/items/ItemDiabloKey.java | 129 -- .../common/items/ItemRitualDiviner.java | 306 ---- .../common/items/ItemSpellEffectBlock.java | 55 - .../items/ItemSpellEnhancementBlock.java | 95 -- .../common/items/ItemSpellModifierBlock.java | 51 - .../common/items/ItemSpellParadigmBlock.java | 50 - .../common/items/LavaCrystal.java | 114 -- .../common/items/LifeBucket.java | 22 - .../common/items/MagicianBloodOrb.java | 21 - .../common/items/MasterBloodOrb.java | 21 - .../common/items/OrbOfTesting.java | 47 - .../items/ReinforcedTelepositionFocus.java | 47 - .../common/items/SacrificialDagger.java | 145 -- .../common/items/ScribeTool.java | 53 - .../common/items/TelepositionFocus.java | 124 -- .../common/items/WaterInk.java | 24 - .../common/items/WaterScribeTool.java | 22 - .../common/items/books/ItemBloodArchives.java | 71 - .../common/items/forestry/ItemBloodFrame.java | 155 -- .../common/items/potion/AlchemyFlask.java | 434 ------ .../common/items/potion/AlchemyReagent.java | 119 -- .../potion/AverageLengtheningCatalyst.java | 20 - .../items/potion/AveragePowerCatalyst.java | 20 - .../items/potion/EnhancedFillingAgent.java | 57 - .../potion/EnhancedTelepositionFocus.java | 47 - .../potion/GreaterLengtheningCatalyst.java | 20 - .../items/potion/GreaterPowerCatalyst.java | 20 - .../items/potion/LengtheningCatalyst.java | 64 - .../potion/MundaneLengtheningCatalyst.java | 20 - .../items/potion/MundanePowerCatalyst.java | 20 - .../common/items/potion/PowerCatalyst.java | 64 - .../items/potion/StandardBindingAgent.java | 65 - .../items/potion/StandardFillingAgent.java | 39 - .../common/items/potion/WeakBindingAgent.java | 27 - .../common/items/potion/WeakFillingAgent.java | 84 - .../common/items/sigil/AirSigil.java | 112 -- .../common/items/sigil/DivinationSigil.java | 99 -- .../items/sigil/ItemBloodLightSigil.java | 151 -- .../items/sigil/ItemSigilOfSupression.java | 270 ---- .../common/items/sigil/LavaSigil.java | 316 ---- .../items/sigil/SigilOfElementalAffinity.java | 172 --- .../common/items/sigil/SigilOfGrowth.java | 414 ----- .../common/items/sigil/SigilOfHaste.java | 207 --- .../common/items/sigil/SigilOfHolding.java | 365 ----- .../common/items/sigil/SigilOfMagnetism.java | 233 --- .../common/items/sigil/SigilOfTheBridge.java | 310 ---- .../items/sigil/SigilOfTheFastMiner.java | 194 --- .../common/items/sigil/SigilOfWind.java | 196 --- .../common/items/sigil/VoidSigil.java | 268 ---- .../common/items/sigil/WaterSigil.java | 298 ---- .../common/items/thaumcraft/FocusBase.java | 169 --- .../items/thaumcraft/FocusBloodBlast.java | 191 --- .../items/thaumcraft/FocusGravityWell.java | 274 ---- .../items/thaumcraft/ItemSanguineArmour.java | 96 -- .../alchemicalWizardry/common/mcmod.info | 22 - .../common/renderer/block/RenderConduit.java | 43 - .../common/renderer/block/RenderPedestal.java | 250 --- .../common/renderer/block/RenderPlinth.java | 254 ---- .../block/RenderSpellEffectBlock.java | 49 - .../block/RenderSpellEnhancementBlock.java | 49 - .../block/RenderSpellModifierBlock.java | 49 - .../block/RenderSpellParadigmBlock.java | 49 - .../renderer/block/RenderWritingTable.java | 331 ---- .../renderer/block/TEAltarRenderer.java | 239 --- .../block/itemRender/TEAltarItemRenderer.java | 81 - .../itemRender/TEConduitItemRenderer.java | 98 -- .../TESpellEffectBlockItemRenderer.java | 109 -- .../TESpellEnhancementBlockItemRenderer.java | 114 -- .../TESpellModifierBlockItemRenderer.java | 108 -- .../TESpellParadigmBlockItemRenderer.java | 107 -- .../TEWritingTableItemRenderer.java | 82 - .../common/renderer/mob/RenderBileDemon.java | 27 - .../renderer/mob/RenderBoulderFist.java | 27 - .../common/renderer/mob/RenderElemental.java | 63 - .../renderer/mob/RenderFallenAngel.java | 30 - .../common/renderer/mob/RenderIceDemon.java | 27 - .../renderer/mob/RenderLowerGuardian.java | 27 - .../common/renderer/mob/RenderShade.java | 27 - .../renderer/mob/RenderSmallEarthGolem.java | 27 - .../renderer/mob/RenderWingedFireDemon.java | 27 - .../common/renderer/model/ModelBileDemon.java | 181 --- .../renderer/model/ModelBloodAltar.java | 70 - .../renderer/model/ModelBoulderFist.java | 153 -- .../common/renderer/model/ModelConduit.java | 287 ---- .../common/renderer/model/ModelElemental.java | 81 - .../ModelEnergyBazookaMainProjectile.java | 122 -- .../renderer/model/ModelFallenAngel.java | 113 -- .../common/renderer/model/ModelIceDemon.java | 197 --- .../renderer/model/ModelLowerGuardian.java | 207 --- .../common/renderer/model/ModelMeteor.java | 90 -- .../common/renderer/model/ModelPedestal.java | 58 - .../common/renderer/model/ModelPlinth.java | 90 -- .../common/renderer/model/ModelShade.java | 86 -- .../renderer/model/ModelSmallEarthGolem.java | 127 -- .../renderer/model/ModelSpellEffectBlock.java | 332 ---- .../model/ModelSpellEnhancementBlock.java | 334 ---- .../model/ModelSpellModifierBlock.java | 303 ---- .../model/ModelSpellParadigmBlock.java | 234 --- .../renderer/model/ModelWingedFireDemon.java | 203 --- .../renderer/model/ModelWritingTable.java | 138 -- .../RenderEnergyBazookaMainProjectile.java | 39 - .../RenderEnergyBlastProjectile.java | 91 -- .../projectile/RenderFireProjectile.java | 41 - .../renderer/projectile/RenderMeteor.java | 39 - .../rituals/RitualEffectAnimalGrowth.java | 125 -- .../rituals/RitualEffectApiaryOverclock.java | 103 -- .../rituals/RitualEffectAutoAlchemy.java | 430 ------ .../rituals/RitualEffectBiomeChanger.java | 447 ------ .../rituals/RitualEffectContainment.java | 127 -- .../common/rituals/RitualEffectCrushing.java | 302 ---- .../rituals/RitualEffectEnhancedAlchemy.java | 96 -- .../common/rituals/RitualEffectExpulsion.java | 287 ---- .../rituals/RitualEffectFeatheredEarth.java | 140 -- .../rituals/RitualEffectFeatheredKnife.java | 191 --- .../common/rituals/RitualEffectFlight.java | 179 --- .../common/rituals/RitualEffectGrowth.java | 106 -- .../common/rituals/RitualEffectHealing.java | 180 --- .../rituals/RitualEffectInterdiction.java | 111 -- .../rituals/RitualEffectItemSuction.java | 164 -- .../common/rituals/RitualEffectJumping.java | 115 -- .../common/rituals/RitualEffectLava.java | 82 - .../common/rituals/RitualEffectLeap.java | 160 -- .../common/rituals/RitualEffectMagnetic.java | 149 -- .../common/rituals/RitualEffectSoulBound.java | 200 --- .../rituals/RitualEffectSummonMeteor.java | 203 --- .../rituals/RitualEffectSupression.java | 179 --- .../common/rituals/RitualEffectUnbinding.java | 208 --- .../common/rituals/RitualEffectWater.java | 80 - .../rituals/RitualEffectWellOfSuffering.java | 181 --- .../spell/complex/EntitySpellProjectile.java | 597 -------- .../common/spell/complex/SpellModifier.java | 21 - .../spell/complex/SpellModifierDefault.java | 9 - .../spell/complex/SpellModifierDefensive.java | 9 - .../complex/SpellModifierEnvironmental.java | 9 - .../spell/complex/SpellModifierOffensive.java | 9 - .../common/spell/complex/SpellParadigm.java | 157 -- .../spell/complex/SpellParadigmMelee.java | 70 - .../complex/SpellParadigmProjectile.java | 102 -- .../spell/complex/SpellParadigmSelf.java | 58 - .../spell/complex/effect/SpellEffect.java | 221 --- .../complex/effect/SpellEffectEarth.java | 165 -- .../spell/complex/effect/SpellEffectFire.java | 165 -- .../spell/complex/effect/SpellEffectIce.java | 167 -- .../spell/complex/effect/SpellEffectWind.java | 163 -- .../spell/complex/effect/SpellHelper.java | 242 --- .../ExtrapolatedMeleeEntityEffect.java | 74 - .../IMeleeSpellEntityEffect.java | 9 - .../impactEffects/IMeleeSpellWorldEffect.java | 10 - .../IProjectileImpactEffect.java | 11 - .../IProjectileUpdateEffect.java | 8 - .../impactEffects/ISelfSpellEffect.java | 9 - .../MeleeSpellCenteredWorldEffect.java | 33 - .../impactEffects/MeleeSpellWorldEffect.java | 21 - .../impactEffects/ProjectileImpactEffect.java | 15 - .../impactEffects/ProjectileUpdateEffect.java | 15 - .../effect/impactEffects/SelfSpellEffect.java | 18 - .../earth/MeleeDefaultEarth.java | 44 - .../earth/MeleeDefensiveEarth.java | 37 - .../earth/MeleeEnvironmentalEarth.java | 48 - .../earth/MeleeOffensiveEarth.java | 34 - .../earth/ProjectileDefaultEarth.java | 57 - .../earth/ProjectileDefensiveEarth.java | 66 - .../earth/ProjectileEnvironmentalEarth.java | 82 - .../earth/ProjectileOffensiveEarth.java | 91 -- .../impactEffects/earth/SelfDefaultEarth.java | 52 - .../earth/SelfDefensiveEarth.java | 27 - .../earth/SelfEnvironmentalEarth.java | 37 - .../earth/SelfOffensiveEarth.java | 43 - .../impactEffects/fire/MeleeDefaultFire.java | 30 - .../fire/MeleeDefensiveFire.java | 49 - .../fire/MeleeEnvironmentalFire.java | 34 - .../fire/MeleeOffensiveFire.java | 32 - .../fire/ProjectileDefaultFire.java | 70 - .../fire/ProjectileDefensiveFire.java | 47 - .../fire/ProjectileEnvironmentalFire.java | 46 - .../fire/ProjectileOffensiveFire.java | 81 - .../impactEffects/fire/SelfDefaultFire.java | 22 - .../impactEffects/fire/SelfDefensiveFire.java | 43 - .../fire/SelfEnvironmentalFire.java | 56 - .../impactEffects/fire/SelfOffensiveFire.java | 21 - .../impactEffects/ice/MeleeDefaultIce.java | 28 - .../impactEffects/ice/MeleeDefensiveIce.java | 48 - .../ice/MeleeEnvironmentalIce.java | 40 - .../impactEffects/ice/MeleeOffensiveIce.java | 46 - .../ice/ProjectileDefaultIce.java | 40 - .../ice/ProjectileDefensiveIce.java | 49 - .../ice/ProjectileEnvironmentalIce.java | 39 - .../ice/ProjectileOffensiveIce.java | 32 - .../impactEffects/ice/SelfDefaultIce.java | 41 - .../impactEffects/ice/SelfDefensiveIce.java | 21 - .../ice/SelfEnvironmentalIce.java | 46 - .../impactEffects/ice/SelfOffensiveIce.java | 52 - .../impactEffects/wind/MeleeDefaultWind.java | 40 - .../wind/MeleeDefensiveWind.java | 33 - .../wind/MeleeEnvironmentalWind.java | 36 - .../wind/MeleeOffensiveWind.java | 40 - .../wind/ProjectileDefaultWind.java | 33 - .../wind/ProjectileEnvironmentalWind.java | 53 - .../wind/ProjectileOffensiveWind.java | 33 - .../impactEffects/wind/SelfDefaultWind.java | 27 - .../impactEffects/wind/SelfDefensiveWind.java | 39 - .../wind/SelfEnvironmentalWind.java | 45 - .../impactEffects/wind/SelfOffensiveWind.java | 32 - .../complex/enhancement/SpellEnhancement.java | 20 - .../enhancement/SpellEnhancementCost.java | 10 - .../enhancement/SpellEnhancementPotency.java | 10 - .../enhancement/SpellEnhancementPower.java | 10 - .../common/spell/simple/HomSpell.java | 143 -- .../spell/simple/HomSpellComponent.java | 26 - .../common/spell/simple/HomSpellRegistry.java | 55 - .../common/spell/simple/ISimpleSpell.java | 16 - .../common/spell/simple/SpellEarthBender.java | 196 --- .../common/spell/simple/SpellExplosions.java | 116 -- .../common/spell/simple/SpellFireBurst.java | 174 --- .../common/spell/simple/SpellFrozenWater.java | 207 --- .../common/spell/simple/SpellHolyBlast.java | 199 --- .../spell/simple/SpellLightningBolt.java | 140 -- .../common/spell/simple/SpellTeleport.java | 287 ---- .../common/spell/simple/SpellWateryGrave.java | 179 --- .../common/spell/simple/SpellWindGust.java | 216 --- .../common/summoning/SummoningHelperAW.java | 115 -- .../summoning/meteor/MeteorParadigm.java | 84 - .../meteor/MeteorParadigmComponent.java | 54 - .../summoning/meteor/MeteorRegistry.java | 61 - .../common/tileEntity/TEAltar.java | 998 ------------ .../common/tileEntity/TEConduit.java | 40 - .../common/tileEntity/TEHomHeart.java | 166 -- .../common/tileEntity/TEHomHeartRenderer.java | 13 - .../tileEntity/TEImperfectRitualStone.java | 11 - .../common/tileEntity/TEMasterStone.java | 218 --- .../common/tileEntity/TEOrientable.java | 108 -- .../common/tileEntity/TEPedestal.java | 263 ---- .../common/tileEntity/TEPlinth.java | 684 --------- .../common/tileEntity/TESocket.java | 250 --- .../tileEntity/TESpectralContainer.java | 143 -- .../common/tileEntity/TESpellBlock.java | 50 - .../common/tileEntity/TESpellEffectBlock.java | 43 - .../tileEntity/TESpellEnhancementBlock.java | 155 -- .../tileEntity/TESpellModifierBlock.java | 43 - .../tileEntity/TESpellParadigmBlock.java | 95 -- .../common/tileEntity/TETeleposer.java | 368 ----- .../common/tileEntity/TEWritingTable.java | 915 ----------- .../tileEntity/container/ContainerAltar.java | 96 -- .../container/ContainerTeleposer.java | 106 -- .../container/ContainerWritingTable.java | 104 -- .../common/tileEntity/gui/GuiHandler.java | 89 -- .../common/tileEntity/gui/GuiTeleposer.java | 45 - .../tileEntity/gui/GuiWritingTable.java | 45 - BM_src/WayofTime/mcmod.info | 22 - .../forestry/api/apiculture/BeeManager.java | 40 - .../api/apiculture/EnumBeeChromosome.java | 98 -- .../forestry/api/apiculture/EnumBeeType.java | 19 - .../api/apiculture/FlowerManager.java | 14 - .../api/apiculture/IAlleleBeeEffect.java | 31 - .../api/apiculture/IAlleleBeeSpecies.java | 46 - .../api/apiculture/IAlvearyComponent.java | 27 - .../api/apiculture/IApiaristTracker.java | 52 - .../api/apiculture/IArmorApiarist.java | 24 - BM_src/forestry/api/apiculture/IBee.java | 85 -- .../forestry/api/apiculture/IBeeGenome.java | 43 - .../forestry/api/apiculture/IBeeHousing.java | 21 - .../forestry/api/apiculture/IBeeListener.java | 40 - .../forestry/api/apiculture/IBeeModifier.java | 66 - .../forestry/api/apiculture/IBeeMutation.java | 20 - BM_src/forestry/api/apiculture/IBeeRoot.java | 111 -- .../api/apiculture/IBeekeepingLogic.java | 22 - .../api/apiculture/IBeekeepingMode.java | 65 - BM_src/forestry/api/apiculture/IHiveDrop.java | 33 - .../forestry/api/apiculture/IHiveFrame.java | 22 - .../forestry/api/apiculture/package-info.java | 3 - .../api/arboriculture/EnumGermlingType.java | 18 - .../arboriculture/EnumGrowthConditions.java | 5 - .../api/arboriculture/EnumTreeChromosome.java | 86 -- .../api/arboriculture/IAlleleFruit.java | 12 - .../api/arboriculture/IAlleleGrowth.java | 12 - .../api/arboriculture/IAlleleLeafEffect.java | 14 - .../api/arboriculture/IAlleleTreeSpecies.java | 67 - .../api/arboriculture/IArboristTracker.java | 7 - .../api/arboriculture/IFruitProvider.java | 67 - .../api/arboriculture/IGrowthProvider.java | 33 - .../api/arboriculture/ILeafTickHandler.java | 7 - .../api/arboriculture/IToolGrafter.java | 19 - BM_src/forestry/api/arboriculture/ITree.java | 92 -- .../api/arboriculture/ITreeGenome.java | 40 - .../api/arboriculture/ITreeModifier.java | 40 - .../api/arboriculture/ITreeMutation.java | 28 - .../forestry/api/arboriculture/ITreeRoot.java | 77 - .../api/arboriculture/ITreekeepingMode.java | 17 - .../api/arboriculture/TreeManager.java | 11 - .../api/arboriculture/package-info.java | 3 - .../forestry/api/circuits/ChipsetManager.java | 8 - BM_src/forestry/api/circuits/ICircuit.java | 27 - .../forestry/api/circuits/ICircuitBoard.java | 26 - .../forestry/api/circuits/ICircuitLayout.java | 11 - .../api/circuits/ICircuitLibrary.java | 5 - .../api/circuits/ICircuitRegistry.java | 37 - .../forestry/api/circuits/ISolderManager.java | 9 - .../forestry/api/circuits/package-info.java | 3 - BM_src/forestry/api/core/BlockInterface.java | 34 - BM_src/forestry/api/core/EnumHumidity.java | 72 - BM_src/forestry/api/core/EnumTemperature.java | 142 -- BM_src/forestry/api/core/ForestryAPI.java | 47 - BM_src/forestry/api/core/ForestryEvent.java | 51 - BM_src/forestry/api/core/GlobalManager.java | 35 - .../forestry/api/core/IArmorNaturalist.java | 20 - .../forestry/api/core/IForestryConstants.java | 19 - BM_src/forestry/api/core/IGameMode.java | 36 - BM_src/forestry/api/core/IIconProvider.java | 19 - BM_src/forestry/api/core/INBTTagable.java | 9 - BM_src/forestry/api/core/IPlugin.java | 32 - BM_src/forestry/api/core/IStructureLogic.java | 15 - BM_src/forestry/api/core/ITextureManager.java | 15 - BM_src/forestry/api/core/ITileStructure.java | 58 - BM_src/forestry/api/core/IToolScoop.java | 8 - BM_src/forestry/api/core/ItemInterface.java | 42 - BM_src/forestry/api/core/PluginInfo.java | 49 - BM_src/forestry/api/core/Tabs.java | 14 - BM_src/forestry/api/core/package-info.java | 3 - BM_src/forestry/api/farming/Farmables.java | 15 - BM_src/forestry/api/farming/ICrop.java | 16 - .../forestry/api/farming/IFarmComponent.java | 12 - BM_src/forestry/api/farming/IFarmHousing.java | 68 - .../forestry/api/farming/IFarmInterface.java | 15 - .../forestry/api/farming/IFarmListener.java | 71 - BM_src/forestry/api/farming/IFarmLogic.java | 34 - BM_src/forestry/api/farming/IFarmable.java | 54 - BM_src/forestry/api/farming/package-info.java | 3 - BM_src/forestry/api/food/BeverageManager.java | 8 - BM_src/forestry/api/food/IBeverageEffect.java | 12 - BM_src/forestry/api/food/IInfuserManager.java | 17 - .../forestry/api/food/IIngredientManager.java | 11 - BM_src/forestry/api/food/package-info.java | 3 - .../forestry/api/fuels/EngineBronzeFuel.java | 30 - .../forestry/api/fuels/EngineCopperFuel.java | 26 - BM_src/forestry/api/fuels/FermenterFuel.java | 24 - BM_src/forestry/api/fuels/FuelManager.java | 29 - BM_src/forestry/api/fuels/GeneratorFuel.java | 31 - BM_src/forestry/api/fuels/MoistenerFuel.java | 29 - BM_src/forestry/api/fuels/RainSubstrate.java | 35 - BM_src/forestry/api/fuels/package-info.java | 3 - .../forestry/api/genetics/AlleleManager.java | 24 - .../forestry/api/genetics/EnumTolerance.java | 11 - BM_src/forestry/api/genetics/IAllele.java | 29 - BM_src/forestry/api/genetics/IAlleleArea.java | 10 - .../forestry/api/genetics/IAlleleBoolean.java | 11 - .../forestry/api/genetics/IAlleleEffect.java | 21 - .../forestry/api/genetics/IAlleleFloat.java | 10 - .../forestry/api/genetics/IAlleleFlowers.java | 11 - .../forestry/api/genetics/IAlleleHandler.java | 36 - .../forestry/api/genetics/IAlleleInteger.java | 10 - .../api/genetics/IAllelePlantType.java | 11 - .../api/genetics/IAlleleRegistry.java | 221 --- .../forestry/api/genetics/IAlleleSpecies.java | 106 -- .../api/genetics/IAlleleTolerance.java | 10 - .../api/genetics/IBreedingTracker.java | 93 -- BM_src/forestry/api/genetics/IChromosome.java | 20 - .../api/genetics/IChromosomeType.java | 19 - .../api/genetics/IClassification.java | 102 -- BM_src/forestry/api/genetics/IEffectData.java | 22 - .../api/genetics/IFlowerProvider.java | 51 - .../forestry/api/genetics/IFruitBearer.java | 45 - .../forestry/api/genetics/IFruitFamily.java | 27 - BM_src/forestry/api/genetics/IGenome.java | 25 - BM_src/forestry/api/genetics/IHousing.java | 46 - BM_src/forestry/api/genetics/IIndividual.java | 52 - .../api/genetics/IIndividualLiving.java | 40 - .../forestry/api/genetics/ILegacyHandler.java | 10 - BM_src/forestry/api/genetics/IMutation.java | 63 - .../forestry/api/genetics/IPollinatable.java | 43 - .../forestry/api/genetics/ISpeciesRoot.java | 160 -- .../forestry/api/genetics/package-info.java | 3 - .../EnumButterflyChromosome.java | 93 -- .../api/lepidopterology/EnumFlutterType.java | 10 - .../IAlleleButterflyEffect.java | 16 - .../IAlleleButterflySpecies.java | 53 - .../api/lepidopterology/IButterfly.java | 71 - .../api/lepidopterology/IButterflyGenome.java | 37 - .../lepidopterology/IButterflyMutation.java | 9 - .../lepidopterology/IButterflyNursery.java | 16 - .../api/lepidopterology/IButterflyRoot.java | 54 - .../api/lepidopterology/IEntityButterfly.java | 23 - .../ILepidopteristTracker.java | 9 - .../api/lepidopterology/package-info.java | 3 - BM_src/forestry/api/mail/EnumPostage.java | 15 - BM_src/forestry/api/mail/ILetter.java | 53 - BM_src/forestry/api/mail/ILetterHandler.java | 8 - BM_src/forestry/api/mail/IPostOffice.java | 25 - BM_src/forestry/api/mail/IPostRegistry.java | 47 - BM_src/forestry/api/mail/IPostalCarrier.java | 42 - BM_src/forestry/api/mail/IPostalState.java | 9 - BM_src/forestry/api/mail/IStamps.java | 9 - BM_src/forestry/api/mail/ITradeStation.java | 19 - BM_src/forestry/api/mail/MailAddress.java | 54 - BM_src/forestry/api/mail/PostManager.java | 6 - .../forestry/api/mail/TradeStationInfo.java | 19 - BM_src/forestry/api/mail/package-info.java | 3 - BM_src/forestry/api/package-info.java | 3 - .../forestry/api/recipes/IBottlerManager.java | 34 - .../api/recipes/ICarpenterManager.java | 65 - .../api/recipes/ICentrifugeManager.java | 74 - .../api/recipes/ICraftingProvider.java | 12 - .../api/recipes/IFabricatorManager.java | 12 - .../api/recipes/IFermenterManager.java | 48 - .../forestry/api/recipes/IGenericCrate.java | 11 - .../api/recipes/IMoistenerManager.java | 28 - .../api/recipes/ISqueezerManager.java | 45 - .../forestry/api/recipes/IStillManager.java | 29 - .../api/recipes/IVariableFermentable.java | 16 - .../forestry/api/recipes/RecipeManagers.java | 44 - BM_src/forestry/api/recipes/package-info.java | 3 - .../forestry/api/storage/BackpackEvent.java | 18 - .../forestry/api/storage/BackpackManager.java | 22 - .../api/storage/BackpackResupplyEvent.java | 18 - .../api/storage/BackpackStowEvent.java | 21 - .../api/storage/EnumBackpackType.java | 5 - .../api/storage/IBackpackDefinition.java | 54 - .../api/storage/IBackpackInterface.java | 19 - BM_src/forestry/api/storage/package-info.java | 3 - BM_src/forestry/api/world/ITreeGenData.java | 18 - .../api/world/IWorldGenInterface.java | 17 - .../forestry/api/world/WorldGenManager.java | 5 - BM_src/forestry/api/world/package-info.java | 3 - .../nei/NEIAlchemyRecipeHandler.java | 132 -- .../nei/NEIAltarRecipeHandler.java | 161 -- .../alchemicalWizardy/nei/NEIConfig.java | 35 - BM_src/thaumcraft/api/LICENSE | 20 - BM_src/thaumcraft/api/README.md | 10 - BM_src/thaumcraft/api/nodes/NodeModifier.java | 6 - BM_src/thaumcraft/api/nodes/NodeType.java | 6 - .../CREDITS-fml.txt => CREDITS-fml.txt | 0 .../LICENSE-fml.txt => LICENSE-fml.txt | 0 ...-Credits.txt => MinecraftForge-Credits.txt | 0 ...-License.txt => MinecraftForge-License.txt | 0 1.7.10 Build Files/README.txt => README.txt | 0 .../build.gradle => build.gradle | 0 .../build.properties => build.properties | 0 ...=> forge-1.7.10-10.13.0.1152-changelog.txt | 0 1.7.10 Build Files/gradlew => gradlew | 0 1.7.10 Build Files/gradlew.bat => gradlew.bat | 0 libs/MineTweaker3-Dev-1.7.10-3.0.9.jar | Bin 0 -> 768838 bytes resources/assets/alchemicalwizardry/altar.png | Bin 59034 -> 0 bytes .../assets/alchemicalwizardry/bloodaltar.obj | 262 ---- .../assets/alchemicalwizardry/bloodlevel.obj | 64 - .../alchemicalwizardry/books/architect.xml | 106 -- .../alchemicalwizardry/gui/Teleposer.png | Bin 986 -> 0 bytes .../alchemicalwizardry/gui/WritingTable.png | Bin 1186 -> 0 bytes .../alchemicalwizardry/gui/bookleft.png | Bin 11940 -> 0 bytes .../alchemicalwizardry/gui/nei/alchemy.png | Bin 1400 -> 0 bytes .../alchemicalwizardry/gui/nei/altar.png | Bin 4204 -> 0 bytes .../assets/alchemicalwizardry/lang/cs_CZ.lang | 190 --- .../assets/alchemicalwizardry/lang/de_DE.lang | 174 --- .../assets/alchemicalwizardry/lang/en_US.lang | 190 --- .../assets/alchemicalwizardry/lang/fr_FR.lang | 174 --- .../assets/alchemicalwizardry/lang/ru_RU.lang | 190 --- .../assets/alchemicalwizardry/lang/zh_CN.lang | 211 --- .../assets/alchemicalwizardry/lang/zh_TW.lang | 211 --- .../models/armor/armor - Shortcut.lnk | Bin 1926 -> 0 bytes .../armor/boundArmour_invisible_layer_1.png | Bin 3785 -> 0 bytes .../armor/boundArmour_invisible_layer_2.png | Bin 3149 -> 0 bytes .../models/armor/boundArmour_layer_1.png | Bin 3830 -> 0 bytes .../models/armor/boundArmour_layer_2.png | Bin 3178 -> 0 bytes .../models/armor/sanguineArmour_layer_1.png | Bin 7932 -> 0 bytes .../models/bloodaltar-fixeUV.obj | 262 ---- .../alchemicalwizardry/models/bloodaltar.obj | 262 ---- .../alchemicalwizardry/models/bloodlevel.obj | 64 - .../textures/blocks/AirRitualStone.png | Bin 706 -> 0 bytes .../textures/blocks/AlchemicChemistrySet.png | Bin 450 -> 0 bytes .../textures/blocks/AltarCapacityRune.png | Bin 761 -> 0 bytes .../textures/blocks/ArcanePedestal.png | Bin 428 -> 0 bytes .../textures/blocks/ArcanePlinth.png | Bin 497 -> 0 bytes .../textures/blocks/BlankRune.png | Bin 693 -> 0 bytes .../textures/blocks/BlockBloodLight.png | Bin 220 -> 0 bytes .../textures/blocks/BloodAltar_Bottom.png | Bin 1731 -> 0 bytes .../textures/blocks/BloodAltar_SideType1.png | Bin 1384 -> 0 bytes .../textures/blocks/BloodAltar_SideType2.png | Bin 1435 -> 0 bytes .../textures/blocks/BloodAltar_Top.png | Bin 2261 -> 0 bytes .../textures/blocks/BloodSocket.png | Bin 481 -> 0 bytes .../textures/blocks/BloodStoneBrick.png | Bin 459 -> 0 bytes .../textures/blocks/DislocationRune.png | Bin 741 -> 0 bytes .../textures/blocks/DuskRitualStone.png | Bin 762 -> 0 bytes .../textures/blocks/EarthRitualStone.png | Bin 736 -> 0 bytes .../textures/blocks/EfficiencyRune.png | Bin 738 -> 0 bytes .../textures/blocks/EmptySocket.png | Bin 271 -> 0 bytes .../textures/blocks/FireRitualStone.png | Bin 779 -> 0 bytes .../textures/blocks/HomHeart_bottom.png | Bin 680 -> 0 bytes .../textures/blocks/HomHeart_side.png | Bin 734 -> 0 bytes .../textures/blocks/HomHeart_top.png | Bin 622 -> 0 bytes .../textures/blocks/HomHeart_top1.png | Bin 197 -> 0 bytes .../textures/blocks/ImperfectRitualStone.png | Bin 617 -> 0 bytes .../textures/blocks/LargeBloodStoneBrick.png | Bin 493 -> 0 bytes .../textures/blocks/MasterStone.png | Bin 624 -> 0 bytes .../textures/blocks/OrbCapacityRune.png | Bin 733 -> 0 bytes .../textures/blocks/RitualStone.png | Bin 630 -> 0 bytes .../textures/blocks/RuneOfSacrifice.png | Bin 741 -> 0 bytes .../textures/blocks/RuneOfSelfSacrifice.png | Bin 830 -> 0 bytes .../textures/blocks/SoulForge.png | Bin 632 -> 0 bytes .../textures/blocks/SpectralBlock.png | Bin 629 -> 0 bytes .../textures/blocks/SpeedRune.png | Bin 797 -> 0 bytes .../textures/blocks/Teleposer_Side.png | Bin 719 -> 0 bytes .../textures/blocks/Teleposer_Top.png | Bin 696 -> 0 bytes .../textures/blocks/Testing.png | Bin 815 -> 0 bytes .../textures/blocks/WaterRitualStone.png | Bin 745 -> 0 bytes .../textures/blocks/fireEffectBlock_blank.png | Bin 311 -> 0 bytes .../textures/blocks/fireEffectBlock_input.png | Bin 342 -> 0 bytes .../blocks/fireEffectBlock_output.png | Bin 314 -> 0 bytes .../blocks/fireEffectBlock_upArrow.png | Bin 329 -> 0 bytes .../textures/blocks/lifeEssenceFlowing.png | Bin 576 -> 0 bytes .../textures/blocks/lifeEssenceStill.png | Bin 507 -> 0 bytes .../entities/energyBlastProjectile.png | Bin 302 -> 0 bytes .../textures/entities/explosionProjectile.png | Bin 383 -> 0 bytes .../textures/entities/fireProjectile.png | Bin 268 -> 0 bytes .../textures/entities/holyProjectile.png | Bin 271 -> 0 bytes .../textures/entities/iceProjectile.png | Bin 327 -> 0 bytes .../textures/entities/lightningProjectile.png | Bin 241 -> 0 bytes .../textures/entities/mudProjectile.png | Bin 345 -> 0 bytes .../textures/entities/waterProjectile.png | Bin 384 -> 0 bytes .../textures/entities/windGustProjectile.png | Bin 3540 -> 0 bytes .../textures/gui/GuiTrap.png | Bin 3677 -> 0 bytes .../textures/gui/bookcrafting.png | Bin 3756 -> 0 bytes .../textures/gui/bookfurnace.png | Bin 1664 -> 0 bytes .../textures/gui/bookleft.png | Bin 11940 -> 0 bytes .../textures/gui/bookright.png | Bin 8536 -> 0 bytes .../textures/items/8wWtY8d.png | Bin 319 -> 0 bytes .../textures/items/Aether.png | Bin 3540 -> 0 bytes .../textures/items/AirScribeTool.png | Bin 1167 -> 0 bytes .../textures/items/AirSigil.png | Bin 500 -> 0 bytes .../textures/items/AlchemyFlask.png | Bin 361 -> 0 bytes .../textures/items/ApprenticeBloodOrb.png | Bin 831 -> 0 bytes .../textures/items/Aquasalus.png | Bin 471 -> 0 bytes .../textures/items/ArchmageBloodOrb.png | Bin 590 -> 0 bytes .../items/ArmourInhibitor_activated.png | Bin 544 -> 0 bytes .../items/ArmourInhibitor_deactivated.png | Bin 556 -> 0 bytes .../items/AverageLengtheningCatalyst.png | Bin 405 -> 0 bytes .../textures/items/AveragePowerCatalyst.png | Bin 387 -> 0 bytes .../textures/items/BlankSlate.png | Bin 554 -> 0 bytes .../textures/items/BlankSpell.png | Bin 339 -> 0 bytes .../textures/items/BloodFrame.png | Bin 363 -> 0 bytes .../textures/items/BloodLightSigil.png | Bin 536 -> 0 bytes .../textures/items/BoundAxe_activated.png | Bin 397 -> 0 bytes .../textures/items/BoundBoots.png | Bin 255 -> 0 bytes .../textures/items/BoundHelmet.png | Bin 253 -> 0 bytes .../textures/items/BoundLeggings.png | Bin 231 -> 0 bytes .../textures/items/BoundPickaxe_activated.png | Bin 394 -> 0 bytes .../items/BoundPickaxe_deactivated.png | Bin 457 -> 0 bytes .../textures/items/BoundPlate.png | Bin 282 -> 0 bytes .../textures/items/BoundShovel_activated.png | Bin 390 -> 0 bytes .../textures/items/BoundSword_activated.png | Bin 386 -> 0 bytes .../textures/items/BridgeSigil_activated.png | Bin 632 -> 0 bytes .../items/BridgeSigil_deactivated.png | Bin 534 -> 0 bytes .../textures/items/CeremonialDagger.png | Bin 321 -> 0 bytes .../textures/items/ComplexCrystal.png | Bin 414 -> 0 bytes .../textures/items/Crepitous.png | Bin 408 -> 0 bytes .../textures/items/Crystallos.png | Bin 391 -> 0 bytes .../textures/items/DaggerOfSacrifice.png | Bin 476 -> 0 bytes .../textures/items/DemonBloodShard.png | Bin 457 -> 0 bytes .../textures/items/DemonPlacer.png | Bin 399 -> 0 bytes .../textures/items/DemonSlate.png | Bin 571 -> 0 bytes .../textures/items/DemonicTeleposerFocus.png | Bin 603 -> 0 bytes .../textures/items/DiabloKey.png | Bin 328 -> 0 bytes .../textures/items/DivinationSigil.png | Bin 625 -> 0 bytes .../textures/items/DuskScribeTool.png | Bin 659 -> 0 bytes .../textures/items/EarthScribeTool.png | Bin 1078 -> 0 bytes .../textures/items/ElementalInkAir.png | Bin 439 -> 0 bytes .../textures/items/ElementalInkEarth.png | Bin 442 -> 0 bytes .../textures/items/ElementalInkFire.png | Bin 430 -> 0 bytes .../textures/items/ElementalInkWater.png | Bin 429 -> 0 bytes .../items/ElementalSigil_activated.png | Bin 659 -> 0 bytes .../items/ElementalSigil_deactivated.png | Bin 598 -> 0 bytes .../textures/items/EnergyBattery.png | Bin 845 -> 0 bytes .../items/EnergyBazooka_activated.png | Bin 696 -> 0 bytes .../items/EnergyBlaster_activated.png | Bin 525 -> 0 bytes .../textures/items/EnhancedFillingAgent.png | Bin 606 -> 0 bytes .../textures/items/EnhancedTeleposerFocus.png | Bin 498 -> 0 bytes .../textures/items/FireScribeTool.png | Bin 1050 -> 0 bytes .../items/GreaterLengtheningCatalyst.png | Bin 491 -> 0 bytes .../textures/items/GreaterPowerCatalyst.png | Bin 432 -> 0 bytes .../textures/items/GrowthSigil_activated.png | Bin 546 -> 0 bytes .../items/GrowthSigil_deactivated.png | Bin 531 -> 0 bytes .../textures/items/HasteSigil_activated.png | Bin 546 -> 0 bytes .../textures/items/HasteSigil_deactivated.png | Bin 562 -> 0 bytes .../textures/items/IceSigil_activated.png | Bin 557 -> 0 bytes .../textures/items/IceSigil_deactivated.png | Bin 562 -> 0 bytes .../textures/items/Incendium.png | Bin 352 -> 0 bytes .../textures/items/InfusedSlate.png | Bin 605 -> 0 bytes .../textures/items/LavaCrystal.png | Bin 585 -> 0 bytes .../textures/items/LavaSigil.png | Bin 573 -> 0 bytes .../textures/items/LifeBucket.png | Bin 659 -> 0 bytes .../textures/items/Magicales.png | Bin 408 -> 0 bytes .../textures/items/MagicianBloodOrb.png | Bin 727 -> 0 bytes .../textures/items/MasterBloodOrb.png | Bin 699 -> 0 bytes .../textures/items/MiningSigil_activated.png | Bin 670 -> 0 bytes .../items/MiningSigil_deactivated.png | Bin 649 -> 0 bytes .../items/MundaneLengtheningCatalyst.png | Bin 211 -> 0 bytes .../textures/items/MundanePowerCatalyst.png | Bin 206 -> 0 bytes .../textures/items/PotionFlask.png | Bin 325 -> 0 bytes .../textures/items/ReinforcedSlate.png | Bin 709 -> 0 bytes .../items/ReinforcedTeleposerFocus.png | Bin 552 -> 0 bytes .../textures/items/RitualDiviner.png | Bin 382 -> 0 bytes .../textures/items/SacrificialDagger.png | Bin 50724 -> 0 bytes .../textures/items/Sanctus.png | Bin 491 -> 0 bytes .../textures/items/SanguineHelmet.png | Bin 292 -> 0 bytes .../textures/items/SheathedItem.png | Bin 474 -> 0 bytes .../textures/items/SigilOfHolding.png | Bin 697 -> 0 bytes .../items/SigilOfMagnetism_activated.png | Bin 578 -> 0 bytes .../items/SigilOfMagnetism_deactivated.png | Bin 594 -> 0 bytes .../items/SigilOfSupression_activated.png | Bin 637 -> 0 bytes .../items/SigilOfSupression_deactivated.png | Bin 645 -> 0 bytes .../textures/items/SimpleCatalyst.png | Bin 420 -> 0 bytes .../textures/items/StandardBindingAgent.png | Bin 654 -> 0 bytes .../textures/items/StandardFillingAgent.png | Bin 610 -> 0 bytes .../textures/items/TeleposerFocus.png | Bin 530 -> 0 bytes .../textures/items/Tennebrae.png | Bin 397 -> 0 bytes .../textures/items/Terrae.png | Bin 460 -> 0 bytes .../textures/items/UntamedCrystal.png | Bin 239 -> 0 bytes .../textures/items/VoidSigil.png | Bin 679 -> 0 bytes .../textures/items/WarriorSigil_activated.png | Bin 682 -> 0 bytes .../items/WarriorSigil_deactivated.png | Bin 616 -> 0 bytes .../textures/items/WaterScribeTool.png | Bin 1086 -> 0 bytes .../textures/items/WaterSigil.png | Bin 590 -> 0 bytes .../textures/items/WeakBindingAgent.png | Bin 402 -> 0 bytes .../textures/items/WeakBloodShard.png | Bin 473 -> 0 bytes .../textures/items/WeakFillingAgent.png | Bin 582 -> 0 bytes .../textures/items/WindSigil_activated.png | Bin 624 -> 0 bytes .../textures/items/WindSigil_deactivated.png | Bin 503 -> 0 bytes .../items/activationCrystalAwakened.png | Bin 689 -> 0 bytes .../textures/items/activationCrystalWeak.png | Bin 765 -> 0 bytes .../baseAlchemyItemConcentratedCatalyst.png | Bin 478 -> 0 bytes .../items/baseAlchemyItemFracturedBone.png | Bin 377 -> 0 bytes .../textures/items/baseAlchemyItemOffensa.png | Bin 367 -> 0 bytes .../items/baseAlchemyItemOrbisTerrae.png | Bin 425 -> 0 bytes .../items/baseAlchemyItemPotentia.png | Bin 433 -> 0 bytes .../items/baseAlchemyItemPraesidium.png | Bin 456 -> 0 bytes .../items/baseAlchemyItemReductus.png | Bin 429 -> 0 bytes .../baseAlchemyItemStrengthenedCatalyst.png | Bin 430 -> 0 bytes .../textures/items/baseAlchemyItemVirtus.png | Bin 417 -> 0 bytes .../textures/items/baseItemCostCore.png | Bin 471 -> 0 bytes .../items/baseItemCrackedRunicPlate.png | Bin 523 -> 0 bytes .../textures/items/baseItemDefaultCore.png | Bin 327 -> 0 bytes .../textures/items/baseItemDefensiveCore.png | Bin 502 -> 0 bytes .../textures/items/baseItemEarthenCore.png | Bin 454 -> 0 bytes .../textures/items/baseItemEmptyCore.png | Bin 237 -> 0 bytes .../items/baseItemEnvironmentalCore.png | Bin 370 -> 0 bytes .../textures/items/baseItemFlameCore.png | Bin 488 -> 0 bytes .../textures/items/baseItemGustCore.png | Bin 488 -> 0 bytes .../textures/items/baseItemIcyCore.png | Bin 551 -> 0 bytes .../textures/items/baseItemInputCable.png | Bin 291 -> 0 bytes .../textures/items/baseItemMagicalesCable.png | Bin 284 -> 0 bytes .../textures/items/baseItemMeleeCore.png | Bin 461 -> 0 bytes .../textures/items/baseItemObsidianBrace.png | Bin 325 -> 0 bytes .../textures/items/baseItemOffensiveCore.png | Bin 353 -> 0 bytes .../textures/items/baseItemOutputCable.png | Bin 290 -> 0 bytes .../items/baseItemParadigmBackPlate.png | Bin 306 -> 0 bytes .../textures/items/baseItemPotencyCore.png | Bin 378 -> 0 bytes .../textures/items/baseItemPowerCore.png | Bin 381 -> 0 bytes .../textures/items/baseItemProjectileCore.png | Bin 478 -> 0 bytes .../textures/items/baseItemQuartzRod.png | Bin 251 -> 0 bytes .../textures/items/baseItemRunicPlate.png | Bin 442 -> 0 bytes .../items/baseItemScribedRunicPlate.png | Bin 513 -> 0 bytes .../textures/items/baseItemSelfCore.png | Bin 433 -> 0 bytes .../textures/items/baseItemStoneBrace.png | Bin 308 -> 0 bytes .../textures/items/baseItemWoodBrace.png | Bin 316 -> 0 bytes .../textures/items/bloodBlastOrn.png | Bin 178 -> 0 bytes .../textures/items/focusBloodBlastOrn.png | Bin 178 -> 0 bytes .../textures/items/tYf5ft9.png | Bin 291 -> 0 bytes .../textures/models/AirFloatingBeacon.png | Bin 480 -> 0 bytes .../textures/models/BileDemon.png | Bin 7737 -> 0 bytes .../textures/models/Bird.png | Bin 3007 -> 0 bytes .../textures/models/BlockSpellEffect.png | Bin 985 -> 0 bytes .../textures/models/BoulderFist.png | Bin 4025 -> 0 bytes .../textures/models/Conduit.png | Bin 1867 -> 0 bytes .../textures/models/DarkFloatingBeacon.png | Bin 488 -> 0 bytes .../textures/models/EarthFloatingBeacon.png | Bin 554 -> 0 bytes .../models/EnergyBazookaMainProjectile.png | Bin 1948 -> 0 bytes .../textures/models/FireFloatingBeacon.png | Bin 805 -> 0 bytes .../textures/models/FloatingBeacon.png | Bin 805 -> 0 bytes .../textures/models/HolyFloatingBeacon.png | Bin 553 -> 0 bytes .../textures/models/IceDemon.png | Bin 3537 -> 0 bytes .../textures/models/LowerGuardian.png | Bin 4228 -> 0 bytes .../textures/models/Meteor.png | Bin 950 -> 0 bytes .../textures/models/ParadigmBlock.png | Bin 923 -> 0 bytes .../textures/models/Pedestal.png | Bin 1219 -> 0 bytes .../textures/models/Plinth.png | Bin 2404 -> 0 bytes .../textures/models/ShadeMob.png | Bin 2495 -> 0 bytes .../textures/models/SmallEarthGolem.png | Bin 765 -> 0 bytes .../textures/models/SpellEffectEarth.png | Bin 1833 -> 0 bytes .../textures/models/SpellEffectFire.png | Bin 1721 -> 0 bytes .../textures/models/SpellEffectIce.png | Bin 1481 -> 0 bytes .../textures/models/SpellEffectWind.png | Bin 1679 -> 0 bytes .../textures/models/SpellEnhancementCost1.png | Bin 4871 -> 0 bytes .../textures/models/SpellEnhancementCost2.png | Bin 3603 -> 0 bytes .../textures/models/SpellEnhancementCost3.png | Bin 4021 -> 0 bytes .../models/SpellEnhancementPotency1.png | Bin 4329 -> 0 bytes .../models/SpellEnhancementPotency2.png | Bin 3539 -> 0 bytes .../models/SpellEnhancementPotency3.png | Bin 3947 -> 0 bytes .../models/SpellEnhancementPower1.png | Bin 4449 -> 0 bytes .../models/SpellEnhancementPower2.png | Bin 3738 -> 0 bytes .../models/SpellEnhancementPower3.png | Bin 4062 -> 0 bytes .../textures/models/SpellModifierDefault.png | Bin 1193 -> 0 bytes .../models/SpellModifierDefensive.png | Bin 1608 -> 0 bytes .../models/SpellModifierEnvironmental.png | Bin 1398 -> 0 bytes .../models/SpellModifierOffensive.png | Bin 1350 -> 0 bytes .../textures/models/SpellParadigmMelee.png | Bin 1230 -> 0 bytes .../models/SpellParadigmProjectile.png | Bin 1229 -> 0 bytes .../textures/models/SpellParadigmSelf.png | Bin 1193 -> 0 bytes .../textures/models/WaterFloatingBeacon.png | Bin 543 -> 0 bytes .../textures/models/WingedAngel.png | Bin 3549 -> 0 bytes .../textures/models/WingedFireDemon.png | Bin 5121 -> 0 bytes .../textures/models/WritingTable.png | Bin 1851 -> 0 bytes .../textures/models/altar.png | Bin 59034 -> 0 bytes .../textures/models/blood.png | Bin 576 -> 0 bytes resources/assets/forge/lang/cs_CZ.lang | 5 - resources/assets/forge/lang/en_US.lang | 5 - resources/assets/forge/lang/es_ES.lang | 5 - resources/assets/forge/lang/fr_FR.lang | 5 - .../api/java/thaumcraft/api/IGoggles.java | 0 .../api/java/thaumcraft/api/IRepairable.java | 0 .../thaumcraft/api/IRepairableExtended.java | 0 .../api/java/thaumcraft/api/IRunicArmor.java | 0 .../api/java/thaumcraft/api/IScribeTools.java | 0 .../java/thaumcraft/api/IVisDiscountGear.java | 0 .../api/java/thaumcraft/api/ItemApi.java | 0 .../api/java/thaumcraft/api/ItemRunic.java | 0 .../java/thaumcraft/api/ThaumcraftApi.java | 0 .../thaumcraft/api/ThaumcraftApiHelper.java | 0 .../java/thaumcraft/api/TileThaumcraft.java | 0 .../java/thaumcraft/api/WorldCoordinates.java | 0 .../java/thaumcraft/api/aspects/Aspect.java | 0 .../thaumcraft/api/aspects/AspectList.java | 0 .../api/aspects/AspectSourceHelper.java | 0 .../api/aspects/IAspectContainer.java | 0 .../thaumcraft/api/aspects/IAspectSource.java | 0 .../api/aspects/IEssentiaContainerItem.java | 0 .../api/aspects/IEssentiaTransport.java | 0 .../api/crafting/CrucibleRecipe.java | 0 .../api/crafting/IArcaneRecipe.java | 0 .../api/crafting/IInfusionStabiliser.java | 0 .../crafting/InfusionEnchantmentRecipe.java | 0 .../api/crafting/InfusionRecipe.java | 0 .../api/crafting/ShapedArcaneRecipe.java | 0 .../api/crafting/ShapelessArcaneRecipe.java | 0 .../DamageSourceIndirectThaumcraftEntity.java | 0 .../damagesource/DamageSourceThaumcraft.java | 0 .../thaumcraft/api/entities/ITaintedMob.java | 0 .../api/java/thaumcraft/api/nodes/INode.java | 0 .../java/thaumcraft/api/nodes/IRevealer.java | 0 .../thaumcraft/api/nodes/NodeModifier.java | 0 .../java/thaumcraft/api/nodes/NodeType.java | 0 .../api/java/thaumcraft/api/package-info.java | 0 .../api/potions/PotionFluxTaint.java | 0 .../api/research/IScanEventHandler.java | 0 .../api/research/ResearchCategories.java | 0 .../api/research/ResearchCategoryList.java | 0 .../thaumcraft/api/research/ResearchItem.java | 0 .../thaumcraft/api/research/ResearchPage.java | 0 .../thaumcraft/api/research/ScanResult.java | 0 .../thaumcraft/api/visnet/TileVisNode.java | 0 .../thaumcraft/api/visnet/VisNetHandler.java | 0 .../java/thaumcraft/api/wands/IWandFocus.java | 0 .../api/wands/IWandRodOnUpdate.java | 0 .../api/wands/IWandTriggerManager.java | 0 .../java/thaumcraft/api/wands/IWandable.java | 0 .../thaumcraft/api/wands/ItemFocusBasic.java | 0 .../java/thaumcraft/api/wands/StaffRod.java | 0 .../java/thaumcraft/api/wands/WandCap.java | 0 .../java/thaumcraft/api/wands/WandRod.java | 0 .../api/wands/WandTriggerRegistry.java | 0 .../java/vazkii/botania/api/BotaniaAPI.java | 0 .../api/internal/DummyManaNetwork.java | 0 .../api/internal/DummyMethodHandler.java | 0 .../botania/api/internal/DummyPage.java | 0 .../botania/api/internal/DummySubTile.java | 0 .../api/internal/IGuiLexiconEntry.java | 0 .../api/internal/IInternalMethodHandler.java | 0 .../botania/api/internal/IManaBurst.java | 0 .../botania/api/internal/IManaNetwork.java | 0 .../botania/api/item/IExoflameHeatable.java | 0 .../api/item/IExtendedPlayerController.java | 0 .../botania/api/item/IPetalApothecary.java | 0 .../botania/api/item/IPixieSpawner.java | 0 .../botania/api/lexicon/IAddonEntry.java | 0 .../vazkii/botania/api/lexicon/ILexicon.java | 0 .../botania/api/lexicon/ILexiconable.java | 0 .../api/lexicon/IRecipeKeyProvider.java | 0 .../botania/api/lexicon/KnowledgeType.java | 0 .../botania/api/lexicon/LexiconCategory.java | 0 .../botania/api/lexicon/LexiconEntry.java | 0 .../botania/api/lexicon/LexiconPage.java | 0 .../api/lexicon/LexiconRecipeMappings.java | 0 .../botania/api/mana/BurstProperties.java | 0 .../botania/api/mana/IClientManaHandler.java | 0 .../api/mana/ICreativeManaProvider.java | 0 .../vazkii/botania/api/mana/IKeyLocked.java | 0 .../botania/api/mana/ILaputaImmobile.java | 0 .../java/vazkii/botania/api/mana/ILens.java | 0 .../vazkii/botania/api/mana/ILensEffect.java | 0 .../vazkii/botania/api/mana/IManaBlock.java | 0 .../botania/api/mana/IManaCollector.java | 0 .../botania/api/mana/IManaCollisionGhost.java | 0 .../vazkii/botania/api/mana/IManaItem.java | 0 .../vazkii/botania/api/mana/IManaPool.java | 0 .../botania/api/mana/IManaReceiver.java | 0 .../vazkii/botania/api/mana/IManaTrigger.java | 0 .../botania/api/mana/IManaUsingItem.java | 0 .../api/mana/IPoolOverlayProvider.java | 0 .../botania/api/mana/ITinyPlanetExcempt.java | 0 .../botania/api/mana/ManaItemHandler.java | 0 .../botania/api/mana/ManaNetworkEvent.java | 0 .../botania/api/mana/TileSignature.java | 0 .../api/mana/spark/ISparkAttachable.java | 0 .../botania/api/mana/spark/ISparkEntity.java | 0 .../botania/api/mana/spark/SparkHelper.java | 0 .../java/vazkii/botania/api/package-info.java | 0 .../vazkii/botania/api/recipe/IElvenItem.java | 0 .../botania/api/recipe/IFlowerComponent.java | 0 .../botania/api/recipe/RecipeElvenTrade.java | 0 .../api/recipe/RecipeManaInfusion.java | 0 .../botania/api/recipe/RecipePetals.java | 0 .../botania/api/recipe/RecipeRuneAltar.java | 0 .../botania/api/subtile/ISpecialFlower.java | 0 .../api/subtile/ISubTileContainer.java | 0 .../botania/api/subtile/SubTileEntity.java | 0 .../api/subtile/SubTileFunctional.java | 0 .../api/subtile/SubTileGenerating.java | 0 .../botania/api/wand/ICoordBoundItem.java | 0 .../vazkii/botania/api/wand/ITileBound.java | 0 .../botania/api/wand/IWandBindable.java | 0 .../vazkii/botania/api/wand/IWandHUD.java | 0 .../vazkii/botania/api/wand/IWandable.java | 0 .../api/wand/IWireframeAABBProvider.java | 0 .../botania/api/wiki/IWikiProvider.java | 0 .../botania/api/wiki/SimpleWikiProvider.java | 0 .../vazkii/botania/api/wiki/WikiHooks.java | 0 .../AlchemicalWizardry.java | 0 .../BloodMagicConfiguration.java | 0 .../alchemicalWizardry/ModBlocks.java | 0 .../alchemicalWizardry/ModItems.java | 0 .../api/ColourAndCoords.java | 0 .../AlchemicalPotionCreationHandler.java | 0 .../AlchemyPotionHandlerComponent.java | 0 .../api/alchemy/AlchemyPotionHelper.java | 0 .../api/alchemy/AlchemyRecipe.java | 0 .../api/alchemy/AlchemyRecipeRegistry.java | 0 .../api/alchemy/energy/IAlchemyGoggles.java | 0 .../api/alchemy/energy/IReagentContainer.java | 0 .../api/alchemy/energy/IReagentHandler.java | 0 .../energy/ISegmentedReagentHandler.java | 0 .../api/alchemy/energy/Reagent.java | 0 .../api/alchemy/energy/ReagentContainer.java | 0 .../alchemy/energy/ReagentContainerInfo.java | 0 .../api/alchemy/energy/ReagentRegistry.java | 0 .../api/alchemy/energy/ReagentStack.java | 0 .../alchemy/energy/TileReagentHandler.java | 0 .../energy/TileSegmentedReagentHandler.java | 0 .../api/altarRecipeRegistry/AltarRecipe.java | 0 .../AltarRecipeRegistry.java | 0 .../api/bindingRegistry/BindingRecipe.java | 0 .../api/bindingRegistry/BindingRegistry.java | 0 .../api/harvest/HarvestRegistry.java | 0 .../api/harvest/IHarvestHandler.java | 0 .../api/items/ShapedBloodOrbRecipe.java | 0 .../api/items/ShapelessBloodOrbRecipe.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 .../items/interfaces/IReagentManipulator.java | 0 .../api/rituals/IMasterRitualStone.java | 0 .../api/rituals/IRitualStone.java | 0 .../api/rituals/RitualComponent.java | 0 .../api/rituals/RitualEffect.java | 0 .../api/rituals/Rituals.java | 0 .../api/soulNetwork/LifeEssenceNetwork.java | 0 .../api/soulNetwork/SoulNetworkHandler.java | 0 .../summoningRegistry/SummoningHelper.java | 0 .../summoningRegistry/SummoningRegistry.java | 0 .../SummoningRegistryComponent.java | 0 .../api/tile/IBloodAltar.java | 0 .../client/ClientEventHandler.java | 0 .../client/ClientProxy.java | 0 .../client/nei/NEIAlchemyRecipeHandler.java | 0 .../client/nei/NEIAltarRecipeHandler.java | 0 .../client/nei/NEIBloodOrbShapedHandler.java | 0 .../nei/NEIBloodOrbShapelessHandler.java | 0 .../client/nei/NEIConfig.java | 0 .../client/renderer/ColourThreshold.java | 0 .../client/renderer/HUDElement.java | 0 .../client/renderer/HUDUtils.java | 0 .../client/renderer/RenderHelper.java | 0 .../common/AlchemicalWizardryEventHooks.java | 0 .../common/AlchemicalWizardryFuelHandler.java | 0 .../common/ArmourComponent.java | 0 .../common/CommonProxy.java | 0 .../common/CoordAndRange.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 .../alchemicalWizardry/common/Int3.java | 0 .../common/LifeBucketHandler.java | 0 .../common/LifeEssence.java | 0 .../common/ModLivingDropsEvent.java | 0 .../common/NewPacketHandler.java | 0 .../common/PlinthComponent.java | 0 .../alchemy/CombinedPotionComponent.java | 0 .../alchemy/CombinedPotionRegistry.java | 0 .../alchemy/ICombinationalCatalyst.java | 0 .../common/block/ArmourForge.java | 0 .../common/block/BlockAlchemicCalcinator.java | 0 .../common/block/BlockAltar.java | 0 .../common/block/BlockBelljar.java | 0 .../common/block/BlockBloodLightSource.java | 0 .../common/block/BlockConduit.java | 0 .../common/block/BlockDemonPortal.java | 0 .../common/block/BlockHomHeart.java | 0 .../common/block/BlockMasterStone.java | 0 .../common/block/BlockOrientable.java | 0 .../common/block/BlockPedestal.java | 0 .../common/block/BlockPlinth.java | 0 .../common/block/BlockReagentConduit.java | 0 .../common/block/BlockSchematicSaver.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 | 0 .../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 | 0 .../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/demonVillage/BlockSet.java | 0 .../demonVillage/BuildingSchematic.java | 0 .../common/demonVillage/DemonBuilding.java | 0 .../common/demonVillage/DemonCrosspath.java | 0 .../common/demonVillage/DemonVillagePath.java | 0 .../common/demonVillage/GridSpace.java | 0 .../common/demonVillage/GridSpaceHolder.java | 0 .../common/demonVillage/TileBlockSet.java | 0 .../ai/EntityDemonAIHurtByTarget.java | 0 .../demonHoard/DemonHoardPacket.java | 0 .../demonHoard/DemonPacketAngel.java | 0 .../demonHoard/DemonPacketRegistry.java | 0 .../demonVillage/demonHoard/DemonType.java | 0 .../demon/EntityMinorDemonGrunt.java | 0 .../demonHoard/demon/IHoardDemon.java | 0 .../tileEntity/TEDemonPortal.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 .../entity/projectile/EntityBeamParticle.java | 0 .../EntityBloodLightProjectile.java | 0 .../EntityEnergyBazookaMainProjectile.java | 0 ...ntityEnergyBazookaSecondaryProjectile.java | 0 .../entity/projectile/EntityMeteor.java | 0 .../entity/projectile/EntityParticleBeam.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 .../harvest/BloodMagicHarvestHandler.java | 0 .../harvest/CactusReedHarvestHandler.java | 0 ...GenericPamSeedlessFruitHarvestHandler.java | 0 .../harvest/GenericSeededHarvestHandler.java | 0 .../common/harvest/GourdHarvestHandler.java | 0 .../harvest/PamHarvestCompatRegistry.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 | 0 .../common/items/EnergySword.java | 0 .../items/EnhancedTelepositionFocus.java | 0 .../common/items/FireScribeTool.java | 0 .../common/items/ItemAlchemyBase.java | 0 .../common/items/ItemBlockCrystalBelljar.java | 0 .../common/items/ItemBloodRuneBlock.java | 0 .../common/items/ItemComplexSpellCrystal.java | 0 .../common/items/ItemComponents.java | 0 .../common/items/ItemDiabloKey.java | 0 .../common/items/ItemRitualDiviner.java | 0 .../common/items/ItemSpellEffectBlock.java | 0 .../items/ItemSpellEnhancementBlock.java | 0 .../common/items/ItemSpellModifierBlock.java | 0 .../common/items/ItemSpellParadigmBlock.java | 0 .../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 | 0 .../common/items/ScribeTool.java | 0 .../common/items/TelepositionFocus.java | 0 .../common/items/WaterScribeTool.java | 0 .../items/energy/ItemAttunedCrystal.java | 0 .../items/energy/ItemDestinationClearer.java | 0 .../items/energy/ItemTankSegmenter.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/CombinationalCatalyst.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 | 0 .../items/sigil/ItemBloodLightSigil.java | 0 .../common/items/sigil/ItemFluidSigil.java | 0 .../common/items/sigil/ItemSeerSigil.java | 0 .../sigil/ItemSigilOfEnderSeverance.java | 0 .../items/sigil/ItemSigilOfSupression.java | 0 .../common/items/sigil/LavaSigil.java | 0 .../items/sigil/SigilOfElementalAffinity.java | 0 .../common/items/sigil/SigilOfGrowth.java | 0 .../common/items/sigil/SigilOfHaste.java | 0 .../common/items/sigil/SigilOfHolding.java | 0 .../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 | 0 .../common/items/sigil/WaterSigil.java | 0 .../items/spell/ItemSpellMultiTool.java | 0 .../items/thaumcraft/ItemSanguineArmour.java | 0 .../common/potion/PotionBoost.java | 0 .../common/potion/PotionDeaf.java | 0 .../common/potion/PotionDrowning.java | 0 .../common/potion/PotionFeatherFall.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/potion/PotionSoulFray.java | 0 .../common/potion/PotionSoulHarden.java | 0 .../renderer/AlchemyCircleRenderer.java | 0 .../common/renderer/BeamRenderer.java | 0 .../common/renderer/MRSRenderer.java | 0 .../block/RenderAlchemicCalcinator.java | 0 .../common/renderer/block/RenderConduit.java | 0 .../renderer/block/RenderCrystalBelljar.java | 0 .../renderer/block/RenderMasterStone.java | 0 .../common/renderer/block/RenderPedestal.java | 0 .../common/renderer/block/RenderPlinth.java | 0 .../renderer/block/RenderReagentConduit.java | 0 .../block/RenderSpellEffectBlock.java | 0 .../block/RenderSpellEnhancementBlock.java | 0 .../block/RenderSpellModifierBlock.java | 0 .../block/RenderSpellParadigmBlock.java | 0 .../renderer/block/RenderWritingTable.java | 0 .../common/renderer/block/ShaderHelper.java | 0 .../renderer/block/TEAltarRenderer.java | 0 .../TEAlchemicalCalcinatorItemRenderer.java | 0 .../block/itemRender/TEAltarItemRenderer.java | 0 .../itemRender/TEBellJarItemRenderer.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 .../model/ModelAlchemicalCalcinator.java | 0 .../common/renderer/model/ModelBileDemon.java | 0 .../renderer/model/ModelBloodAltar.java | 0 .../renderer/model/ModelBoulderFist.java | 0 .../common/renderer/model/ModelConduit.java | 0 .../renderer/model/ModelCrystalBelljar.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 .../renderer/model/ModelOmegaArmour.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 | 0 .../common/rituals/RitualEffectEllipsoid.java | 0 .../rituals/RitualEffectEvaporation.java | 0 .../common/rituals/RitualEffectExpulsion.java | 0 .../rituals/RitualEffectFeatheredEarth.java | 0 .../rituals/RitualEffectFeatheredKnife.java | 0 .../common/rituals/RitualEffectFlight.java | 0 .../rituals/RitualEffectFullStomach.java | 0 .../common/rituals/RitualEffectGrowth.java | 0 .../common/rituals/RitualEffectHarvest.java | 0 .../common/rituals/RitualEffectHealing.java | 0 .../rituals/RitualEffectInterdiction.java | 0 .../rituals/RitualEffectItemSuction.java | 0 .../common/rituals/RitualEffectJumping.java | 0 .../common/rituals/RitualEffectLava.java | 0 .../common/rituals/RitualEffectLeap.java | 0 .../rituals/RitualEffectLifeConduit.java | 0 .../common/rituals/RitualEffectMagnetic.java | 0 .../common/rituals/RitualEffectSoulBound.java | 0 .../common/rituals/RitualEffectSpawnWard.java | 0 .../rituals/RitualEffectSummonMeteor.java | 0 .../rituals/RitualEffectSupression.java | 0 .../common/rituals/RitualEffectUnbinding.java | 0 .../rituals/RitualEffectVeilOfEvil.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 | 0 .../spell/complex/SpellParadigmMelee.java | 0 .../complex/SpellParadigmProjectile.java | 0 .../spell/complex/SpellParadigmSelf.java | 0 .../spell/complex/SpellParadigmTool.java | 0 .../spell/complex/effect/SpellEffect.java | 0 .../complex/effect/SpellEffectEarth.java | 0 .../spell/complex/effect/SpellEffectFire.java | 0 .../spell/complex/effect/SpellEffectIce.java | 0 .../spell/complex/effect/SpellEffectWind.java | 0 .../spell/complex/effect/SpellHelper.java | 0 .../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 | 0 .../earth/ToolOffensiveEarth.java | 0 .../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 | 0 .../fire/ToolEnvironmentalFire.java | 0 .../impactEffects/fire/ToolOffensiveFire.java | 0 .../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/ToolDefaultIce.java | 0 .../impactEffects/ice/ToolDefensiveIce.java | 0 .../impactEffects/tool/DigAreaEffect.java | 0 .../impactEffects/tool/DigAreaTunnel.java | 0 .../impactEffects/tool/IDigAreaEffect.java | 0 .../impactEffects/tool/IItemManipulator.java | 0 .../impactEffects/tool/ILeftClickEffect.java | 0 .../impactEffects/tool/IOnBanishTool.java | 0 .../impactEffects/tool/IOnBreakBlock.java | 0 .../impactEffects/tool/IOnSummonTool.java | 0 .../impactEffects/tool/IRightClickEffect.java | 0 .../tool/ISpecialDamageEffect.java | 0 .../impactEffects/tool/IToolUpdateEffect.java | 0 .../impactEffects/tool/ItemManipulator.java | 0 .../impactEffects/tool/LeftClickEffect.java | 0 .../tool/OnBreakBlockEffect.java | 0 .../impactEffects/tool/RightClickEffect.java | 0 .../impactEffects/tool/RightClickTunnel.java | 0 .../impactEffects/tool/SummonToolEffect.java | 0 .../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 | 0 .../wind/ToolEnvironmentalWind.java | 0 .../impactEffects/wind/ToolOffensiveWind.java | 0 .../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 .../tileEntity/TEAlchemicCalcinator.java | 0 .../common/tileEntity/TEAltar.java | 0 .../common/tileEntity/TEBellJar.java | 0 .../common/tileEntity/TEConduit.java | 0 .../common/tileEntity/TEHomHeart.java | 0 .../tileEntity/TEImperfectRitualStone.java | 0 .../common/tileEntity/TEMasterStone.java | 0 .../common/tileEntity/TEOrientable.java | 0 .../common/tileEntity/TEPedestal.java | 0 .../common/tileEntity/TEPlinth.java | 0 .../common/tileEntity/TEReagentConduit.java | 0 .../common/tileEntity/TESchematicSaver.java | 0 .../common/tileEntity/TESocket.java | 0 .../common/tileEntity/TESpectralBlock.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 | 0 .../common/tileEntity/TETeleposer.java | 0 .../common/tileEntity/TEWritingTable.java | 0 .../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 .../common/tweaker/Alchemy.java | 0 .../common/tweaker/Binding.java | 0 .../common/tweaker/BloodAltar.java | 0 .../common/tweaker/BloodOrb.java | 0 .../common/tweaker/MTHelper.java | 0 .../tweaker/MineTweakerIntegration.java | 0 .../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 | 0 .../assets/alchemicalwizardry/lang/fr_FR.lang | 0 .../assets/alchemicalwizardry/lang/it_IT.lang | 0 .../assets/alchemicalwizardry/lang/ko_KR.lang | 0 .../assets/alchemicalwizardry/lang/ru_RU.lang | 0 .../assets/alchemicalwizardry/lang/zh_CN.lang | 0 .../assets/alchemicalwizardry/lang/zh_TW.lang | 0 .../models/armor/BloodArmour_WIP.png | 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 .../models/armor/sanguineArmour_layer_2.png | Bin .../schematics/building/buildings.zip | Bin .../alchemicalwizardry/shaders/beam.frag | 0 .../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/BetterCapacityRune.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/SimpleTransCircle.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/ApprenticeBloodOrb.png | Bin .../textures/items/Aquasalus.png | Bin .../textures/items/ArchmageBloodOrb.png | Bin .../items/ArmourInhibitor_activated.png | Bin .../items/ArmourInhibitor_deactivated.png | Bin .../textures/items/AttunedCrystal1.png | Bin .../textures/items/AttunedCrystal2.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 .../textures/items/BridgeSigil_activated.png | Bin .../items/BridgeSigil_deactivated.png | Bin .../textures/items/CeremonialDagger.png | Bin .../textures/items/CombinationalCatalyst.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 .../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 .../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/TankClearer.png | Bin .../textures/items/TankSegmenter1.png | Bin .../textures/items/TankSegmenter2.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/baseItemToolCore.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/AlchemicalCalcinator.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/CrystalBelljar.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/Reagent.png | Bin .../textures/models/ShadeMob.png | Bin .../textures/models/SimpleTransCircle.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/SpellParadigmTool.png | Bin .../textures/models/TransCircle.png | Bin .../textures/models/TransCircleBinding.png | Bin .../textures/models/TransCircleSuffering.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/baseItemToolCore.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.10 => src}/main/resources/mcmod.info | 0 2587 files changed, 129617 deletions(-) delete mode 100644 1.7.10/main/resources/assets/alchemicalwizardry/bloodaltar.obj delete mode 100644 1.7.10/main/resources/assets/alchemicalwizardry/bloodlevel.obj delete mode 100644 1.7.10/main/resources/assets/alchemicalwizardry/models/bloodaltar-fixeUV.obj delete mode 100644 1.7.10/main/resources/assets/alchemicalwizardry/models/bloodaltar.obj delete mode 100644 1.7.10/main/resources/assets/alchemicalwizardry/models/bloodlevel.obj delete mode 100644 1.7.2/api/java/thaumcraft/api/IGoggles.java delete mode 100644 1.7.2/api/java/thaumcraft/api/IRepairable.java delete mode 100644 1.7.2/api/java/thaumcraft/api/IRepairableExtended.java delete mode 100644 1.7.2/api/java/thaumcraft/api/IRunicArmor.java delete mode 100644 1.7.2/api/java/thaumcraft/api/IScribeTools.java delete mode 100644 1.7.2/api/java/thaumcraft/api/IVisDiscountGear.java delete mode 100644 1.7.2/api/java/thaumcraft/api/ItemApi.java delete mode 100644 1.7.2/api/java/thaumcraft/api/ItemRunic.java delete mode 100644 1.7.2/api/java/thaumcraft/api/ThaumcraftApi.java delete mode 100644 1.7.2/api/java/thaumcraft/api/ThaumcraftApiHelper.java delete mode 100644 1.7.2/api/java/thaumcraft/api/aspects/Aspect.java delete mode 100644 1.7.2/api/java/thaumcraft/api/aspects/AspectList.java delete mode 100644 1.7.2/api/java/thaumcraft/api/aspects/AspectSourceHelper.java delete mode 100644 1.7.2/api/java/thaumcraft/api/aspects/IAspectContainer.java delete mode 100644 1.7.2/api/java/thaumcraft/api/aspects/IAspectSource.java delete mode 100644 1.7.2/api/java/thaumcraft/api/aspects/IEssentiaContainerItem.java delete mode 100644 1.7.2/api/java/thaumcraft/api/aspects/IEssentiaTransport.java delete mode 100644 1.7.2/api/java/thaumcraft/api/crafting/CrucibleRecipe.java delete mode 100644 1.7.2/api/java/thaumcraft/api/crafting/IArcaneRecipe.java delete mode 100644 1.7.2/api/java/thaumcraft/api/crafting/IInfusionStabiliser.java delete mode 100644 1.7.2/api/java/thaumcraft/api/crafting/InfusionEnchantmentRecipe.java delete mode 100644 1.7.2/api/java/thaumcraft/api/crafting/InfusionRecipe.java delete mode 100644 1.7.2/api/java/thaumcraft/api/crafting/ShapedArcaneRecipe.java delete mode 100644 1.7.2/api/java/thaumcraft/api/crafting/ShapelessArcaneRecipe.java delete mode 100644 1.7.2/api/java/thaumcraft/api/nodes/INode.java delete mode 100644 1.7.2/api/java/thaumcraft/api/nodes/IRevealer.java delete mode 100644 1.7.2/api/java/thaumcraft/api/nodes/NodeModifier.java delete mode 100644 1.7.2/api/java/thaumcraft/api/nodes/NodeType.java delete mode 100644 1.7.2/api/java/thaumcraft/api/research/IScanEventHandler.java delete mode 100644 1.7.2/api/java/thaumcraft/api/research/ResearchCategories.java delete mode 100644 1.7.2/api/java/thaumcraft/api/research/ResearchCategoryList.java delete mode 100644 1.7.2/api/java/thaumcraft/api/research/ResearchItem.java delete mode 100644 1.7.2/api/java/thaumcraft/api/research/ResearchPage.java delete mode 100644 1.7.2/api/java/thaumcraft/api/research/ScanResult.java delete mode 100644 1.7.2/api/java/thaumcraft/api/wands/IWandFocus.java delete mode 100644 1.7.2/api/java/thaumcraft/api/wands/IWandRodOnUpdate.java delete mode 100644 1.7.2/api/java/thaumcraft/api/wands/IWandTriggerManager.java delete mode 100644 1.7.2/api/java/thaumcraft/api/wands/IWandable.java delete mode 100644 1.7.2/api/java/thaumcraft/api/wands/ItemFocusBasic.java delete mode 100644 1.7.2/api/java/thaumcraft/api/wands/StaffRod.java delete mode 100644 1.7.2/api/java/thaumcraft/api/wands/WandCap.java delete mode 100644 1.7.2/api/java/thaumcraft/api/wands/WandRod.java delete mode 100644 1.7.2/api/java/thaumcraft/api/wands/WandTriggerRegistry.java delete mode 100644 1.7.2/main/java/WayofTime/alchemicalWizardry/AlchemicalWizardry.java delete mode 100644 1.7.2/main/java/WayofTime/alchemicalWizardry/BloodMagicConfiguration.java delete mode 100644 1.7.2/main/java/WayofTime/alchemicalWizardry/ModBlocks.java delete mode 100644 1.7.2/main/java/WayofTime/alchemicalWizardry/ModItems.java delete mode 100644 1.7.2/main/java/WayofTime/alchemicalWizardry/api/alchemy/AlchemicalPotionCreationHandler.java delete mode 100644 1.7.2/main/java/WayofTime/alchemicalWizardry/api/alchemy/AlchemyPotionHandlerComponent.java delete mode 100644 1.7.2/main/java/WayofTime/alchemicalWizardry/api/alchemy/AlchemyPotionHelper.java delete mode 100644 1.7.2/main/java/WayofTime/alchemicalWizardry/api/alchemy/AlchemyRecipe.java delete mode 100644 1.7.2/main/java/WayofTime/alchemicalWizardry/api/alchemy/AlchemyRecipeRegistry.java delete mode 100644 1.7.2/main/java/WayofTime/alchemicalWizardry/api/altarRecipeRegistry/AltarRecipe.java delete mode 100644 1.7.2/main/java/WayofTime/alchemicalWizardry/api/altarRecipeRegistry/AltarRecipeRegistry.java delete mode 100644 1.7.2/main/java/WayofTime/alchemicalWizardry/api/bindingRegistry/BindingRecipe.java delete mode 100644 1.7.2/main/java/WayofTime/alchemicalWizardry/api/bindingRegistry/BindingRegistry.java delete mode 100644 1.7.2/main/java/WayofTime/alchemicalWizardry/api/harvest/HarvestRegistry.java delete mode 100644 1.7.2/main/java/WayofTime/alchemicalWizardry/api/harvest/IHarvestHandler.java delete mode 100644 1.7.2/main/java/WayofTime/alchemicalWizardry/api/items/ShapedBloodOrbRecipe.java delete mode 100644 1.7.2/main/java/WayofTime/alchemicalWizardry/api/items/ShapelessBloodOrbRecipe.java delete mode 100644 1.7.2/main/java/WayofTime/alchemicalWizardry/api/items/interfaces/ArmourUpgrade.java delete mode 100644 1.7.2/main/java/WayofTime/alchemicalWizardry/api/items/interfaces/IBindable.java delete mode 100644 1.7.2/main/java/WayofTime/alchemicalWizardry/api/items/interfaces/IBloodOrb.java delete mode 100644 1.7.2/main/java/WayofTime/alchemicalWizardry/api/items/interfaces/IHolding.java delete mode 100644 1.7.2/main/java/WayofTime/alchemicalWizardry/api/rituals/IMasterRitualStone.java delete mode 100644 1.7.2/main/java/WayofTime/alchemicalWizardry/api/rituals/IRitualStone.java delete mode 100644 1.7.2/main/java/WayofTime/alchemicalWizardry/api/rituals/RitualComponent.java delete mode 100644 1.7.2/main/java/WayofTime/alchemicalWizardry/api/rituals/RitualEffect.java delete mode 100644 1.7.2/main/java/WayofTime/alchemicalWizardry/api/rituals/Rituals.java delete mode 100644 1.7.2/main/java/WayofTime/alchemicalWizardry/api/soulNetwork/LifeEssenceNetwork.java delete mode 100644 1.7.2/main/java/WayofTime/alchemicalWizardry/api/soulNetwork/SoulNetworkHandler.java delete mode 100644 1.7.2/main/java/WayofTime/alchemicalWizardry/api/summoningRegistry/SummoningHelper.java delete mode 100644 1.7.2/main/java/WayofTime/alchemicalWizardry/api/summoningRegistry/SummoningRegistry.java delete mode 100644 1.7.2/main/java/WayofTime/alchemicalWizardry/api/summoningRegistry/SummoningRegistryComponent.java delete mode 100644 1.7.2/main/java/WayofTime/alchemicalWizardry/api/tile/IBloodAltar.java delete mode 100644 1.7.2/main/java/WayofTime/alchemicalWizardry/client/ClientProxy.java delete mode 100644 1.7.2/main/java/WayofTime/alchemicalWizardry/common/AlchemicalWizardryEventHooks.java delete mode 100644 1.7.2/main/java/WayofTime/alchemicalWizardry/common/AlchemicalWizardryFuelHandler.java delete mode 100644 1.7.2/main/java/WayofTime/alchemicalWizardry/common/AlchemicalWizardryTickHandler.java delete mode 100644 1.7.2/main/java/WayofTime/alchemicalWizardry/common/ArmourComponent.java delete mode 100644 1.7.2/main/java/WayofTime/alchemicalWizardry/common/CommonProxy.java delete mode 100644 1.7.2/main/java/WayofTime/alchemicalWizardry/common/EntityAIFly.java delete mode 100644 1.7.2/main/java/WayofTime/alchemicalWizardry/common/EntityAITargetAggro.java delete mode 100644 1.7.2/main/java/WayofTime/alchemicalWizardry/common/EntityAirElemental.java delete mode 100644 1.7.2/main/java/WayofTime/alchemicalWizardry/common/IBindingAgent.java delete mode 100644 1.7.2/main/java/WayofTime/alchemicalWizardry/common/ICatalyst.java delete mode 100644 1.7.2/main/java/WayofTime/alchemicalWizardry/common/IDemon.java delete mode 100644 1.7.2/main/java/WayofTime/alchemicalWizardry/common/IFillingAgent.java delete mode 100644 1.7.2/main/java/WayofTime/alchemicalWizardry/common/Int3.java delete mode 100644 1.7.2/main/java/WayofTime/alchemicalWizardry/common/LifeBucketHandler.java delete mode 100644 1.7.2/main/java/WayofTime/alchemicalWizardry/common/LifeEssence.java delete mode 100644 1.7.2/main/java/WayofTime/alchemicalWizardry/common/ModLivingDropsEvent.java delete mode 100644 1.7.2/main/java/WayofTime/alchemicalWizardry/common/NewPacketHandler.java delete mode 100644 1.7.2/main/java/WayofTime/alchemicalWizardry/common/PacketHandler.java delete mode 100644 1.7.2/main/java/WayofTime/alchemicalWizardry/common/PlinthComponent.java delete mode 100644 1.7.2/main/java/WayofTime/alchemicalWizardry/common/block/ArmourForge.java delete mode 100644 1.7.2/main/java/WayofTime/alchemicalWizardry/common/block/BlockAltar.java delete mode 100644 1.7.2/main/java/WayofTime/alchemicalWizardry/common/block/BlockBloodLightSource.java delete mode 100644 1.7.2/main/java/WayofTime/alchemicalWizardry/common/block/BlockConduit.java delete mode 100644 1.7.2/main/java/WayofTime/alchemicalWizardry/common/block/BlockDemonPortal.java delete mode 100644 1.7.2/main/java/WayofTime/alchemicalWizardry/common/block/BlockHomHeart.java delete mode 100644 1.7.2/main/java/WayofTime/alchemicalWizardry/common/block/BlockMasterStone.java delete mode 100644 1.7.2/main/java/WayofTime/alchemicalWizardry/common/block/BlockOrientable.java delete mode 100644 1.7.2/main/java/WayofTime/alchemicalWizardry/common/block/BlockPedestal.java delete mode 100644 1.7.2/main/java/WayofTime/alchemicalWizardry/common/block/BlockPlinth.java delete mode 100644 1.7.2/main/java/WayofTime/alchemicalWizardry/common/block/BlockSchematicSaver.java delete mode 100644 1.7.2/main/java/WayofTime/alchemicalWizardry/common/block/BlockSocket.java delete mode 100644 1.7.2/main/java/WayofTime/alchemicalWizardry/common/block/BlockSpectralContainer.java delete mode 100644 1.7.2/main/java/WayofTime/alchemicalWizardry/common/block/BlockSpellEffect.java delete mode 100644 1.7.2/main/java/WayofTime/alchemicalWizardry/common/block/BlockSpellEnhancement.java delete mode 100644 1.7.2/main/java/WayofTime/alchemicalWizardry/common/block/BlockSpellModifier.java delete mode 100644 1.7.2/main/java/WayofTime/alchemicalWizardry/common/block/BlockSpellParadigm.java delete mode 100644 1.7.2/main/java/WayofTime/alchemicalWizardry/common/block/BlockTeleposer.java delete mode 100644 1.7.2/main/java/WayofTime/alchemicalWizardry/common/block/BlockWritingTable.java delete mode 100644 1.7.2/main/java/WayofTime/alchemicalWizardry/common/block/BloodRune.java delete mode 100644 1.7.2/main/java/WayofTime/alchemicalWizardry/common/block/BloodStoneBrick.java delete mode 100644 1.7.2/main/java/WayofTime/alchemicalWizardry/common/block/EfficiencyRune.java delete mode 100644 1.7.2/main/java/WayofTime/alchemicalWizardry/common/block/EmptySocket.java delete mode 100644 1.7.2/main/java/WayofTime/alchemicalWizardry/common/block/IOrientable.java delete mode 100644 1.7.2/main/java/WayofTime/alchemicalWizardry/common/block/ImperfectRitualStone.java delete mode 100644 1.7.2/main/java/WayofTime/alchemicalWizardry/common/block/LargeBloodStoneBrick.java delete mode 100644 1.7.2/main/java/WayofTime/alchemicalWizardry/common/block/LifeEssenceBlock.java delete mode 100644 1.7.2/main/java/WayofTime/alchemicalWizardry/common/block/RitualStone.java delete mode 100644 1.7.2/main/java/WayofTime/alchemicalWizardry/common/block/RuneOfSacrifice.java delete mode 100644 1.7.2/main/java/WayofTime/alchemicalWizardry/common/block/RuneOfSelfSacrifice.java delete mode 100644 1.7.2/main/java/WayofTime/alchemicalWizardry/common/block/SpectralBlock.java delete mode 100644 1.7.2/main/java/WayofTime/alchemicalWizardry/common/block/SpeedRune.java delete mode 100644 1.7.2/main/java/WayofTime/alchemicalWizardry/common/bloodAltarUpgrade/AltarComponent.java delete mode 100644 1.7.2/main/java/WayofTime/alchemicalWizardry/common/bloodAltarUpgrade/AltarUpgradeComponent.java delete mode 100644 1.7.2/main/java/WayofTime/alchemicalWizardry/common/bloodAltarUpgrade/UpgradedAltars.java delete mode 100644 1.7.2/main/java/WayofTime/alchemicalWizardry/common/demonVillage/BlockSet.java delete mode 100644 1.7.2/main/java/WayofTime/alchemicalWizardry/common/demonVillage/BuildingSchematic.java delete mode 100644 1.7.2/main/java/WayofTime/alchemicalWizardry/common/demonVillage/DemonBuilding.java delete mode 100644 1.7.2/main/java/WayofTime/alchemicalWizardry/common/demonVillage/DemonCrosspath.java delete mode 100644 1.7.2/main/java/WayofTime/alchemicalWizardry/common/demonVillage/DemonVillagePath.java delete mode 100644 1.7.2/main/java/WayofTime/alchemicalWizardry/common/demonVillage/GridSpace.java delete mode 100644 1.7.2/main/java/WayofTime/alchemicalWizardry/common/demonVillage/GridSpaceHolder.java delete mode 100644 1.7.2/main/java/WayofTime/alchemicalWizardry/common/demonVillage/TileBlockSet.java delete mode 100644 1.7.2/main/java/WayofTime/alchemicalWizardry/common/entity/mob/EntityBileDemon.java delete mode 100644 1.7.2/main/java/WayofTime/alchemicalWizardry/common/entity/mob/EntityBoulderFist.java delete mode 100644 1.7.2/main/java/WayofTime/alchemicalWizardry/common/entity/mob/EntityDemon.java delete mode 100644 1.7.2/main/java/WayofTime/alchemicalWizardry/common/entity/mob/EntityEarthElemental.java delete mode 100644 1.7.2/main/java/WayofTime/alchemicalWizardry/common/entity/mob/EntityElemental.java delete mode 100644 1.7.2/main/java/WayofTime/alchemicalWizardry/common/entity/mob/EntityFallenAngel.java delete mode 100644 1.7.2/main/java/WayofTime/alchemicalWizardry/common/entity/mob/EntityFireElemental.java delete mode 100644 1.7.2/main/java/WayofTime/alchemicalWizardry/common/entity/mob/EntityHolyElemental.java delete mode 100644 1.7.2/main/java/WayofTime/alchemicalWizardry/common/entity/mob/EntityIceDemon.java delete mode 100644 1.7.2/main/java/WayofTime/alchemicalWizardry/common/entity/mob/EntityLowerGuardian.java delete mode 100644 1.7.2/main/java/WayofTime/alchemicalWizardry/common/entity/mob/EntityShade.java delete mode 100644 1.7.2/main/java/WayofTime/alchemicalWizardry/common/entity/mob/EntityShadeElemental.java delete mode 100644 1.7.2/main/java/WayofTime/alchemicalWizardry/common/entity/mob/EntitySmallEarthGolem.java delete mode 100644 1.7.2/main/java/WayofTime/alchemicalWizardry/common/entity/mob/EntityWaterElemental.java delete mode 100644 1.7.2/main/java/WayofTime/alchemicalWizardry/common/entity/mob/EntityWingedFireDemon.java delete mode 100644 1.7.2/main/java/WayofTime/alchemicalWizardry/common/entity/projectile/EnergyBlastProjectile.java delete mode 100644 1.7.2/main/java/WayofTime/alchemicalWizardry/common/entity/projectile/EntityBloodLightProjectile.java delete mode 100644 1.7.2/main/java/WayofTime/alchemicalWizardry/common/entity/projectile/EntityEnergyBazookaMainProjectile.java delete mode 100644 1.7.2/main/java/WayofTime/alchemicalWizardry/common/entity/projectile/EntityEnergyBazookaSecondaryProjectile.java delete mode 100644 1.7.2/main/java/WayofTime/alchemicalWizardry/common/entity/projectile/EntityMeteor.java delete mode 100644 1.7.2/main/java/WayofTime/alchemicalWizardry/common/entity/projectile/ExplosionProjectile.java delete mode 100644 1.7.2/main/java/WayofTime/alchemicalWizardry/common/entity/projectile/FireProjectile.java delete mode 100644 1.7.2/main/java/WayofTime/alchemicalWizardry/common/entity/projectile/HolyProjectile.java delete mode 100644 1.7.2/main/java/WayofTime/alchemicalWizardry/common/entity/projectile/IceProjectile.java delete mode 100644 1.7.2/main/java/WayofTime/alchemicalWizardry/common/entity/projectile/LightningBoltProjectile.java delete mode 100644 1.7.2/main/java/WayofTime/alchemicalWizardry/common/entity/projectile/MudProjectile.java delete mode 100644 1.7.2/main/java/WayofTime/alchemicalWizardry/common/entity/projectile/TeleportProjectile.java delete mode 100644 1.7.2/main/java/WayofTime/alchemicalWizardry/common/entity/projectile/WaterProjectile.java delete mode 100644 1.7.2/main/java/WayofTime/alchemicalWizardry/common/entity/projectile/WindGustProjectile.java delete mode 100644 1.7.2/main/java/WayofTime/alchemicalWizardry/common/harvest/BloodMagicHarvestHandler.java delete mode 100644 1.7.2/main/java/WayofTime/alchemicalWizardry/common/harvest/GourdHarvestHandler.java delete mode 100644 1.7.2/main/java/WayofTime/alchemicalWizardry/common/items/AWBaseItems.java delete mode 100644 1.7.2/main/java/WayofTime/alchemicalWizardry/common/items/ActivationCrystal.java delete mode 100644 1.7.2/main/java/WayofTime/alchemicalWizardry/common/items/AirScribeTool.java delete mode 100644 1.7.2/main/java/WayofTime/alchemicalWizardry/common/items/ApprenticeBloodOrb.java delete mode 100644 1.7.2/main/java/WayofTime/alchemicalWizardry/common/items/ArchmageBloodOrb.java delete mode 100644 1.7.2/main/java/WayofTime/alchemicalWizardry/common/items/ArmourInhibitor.java delete mode 100644 1.7.2/main/java/WayofTime/alchemicalWizardry/common/items/BlankSpell.java delete mode 100644 1.7.2/main/java/WayofTime/alchemicalWizardry/common/items/BloodShard.java delete mode 100644 1.7.2/main/java/WayofTime/alchemicalWizardry/common/items/BloodboundSword.java delete mode 100644 1.7.2/main/java/WayofTime/alchemicalWizardry/common/items/BoundArmour.java delete mode 100644 1.7.2/main/java/WayofTime/alchemicalWizardry/common/items/BoundAxe.java delete mode 100644 1.7.2/main/java/WayofTime/alchemicalWizardry/common/items/BoundPickaxe.java delete mode 100644 1.7.2/main/java/WayofTime/alchemicalWizardry/common/items/BoundShovel.java delete mode 100644 1.7.2/main/java/WayofTime/alchemicalWizardry/common/items/CheatyItem.java delete mode 100644 1.7.2/main/java/WayofTime/alchemicalWizardry/common/items/DaggerOfSacrifice.java delete mode 100644 1.7.2/main/java/WayofTime/alchemicalWizardry/common/items/DemonPlacer.java delete mode 100644 1.7.2/main/java/WayofTime/alchemicalWizardry/common/items/DemonicTelepositionFocus.java delete mode 100644 1.7.2/main/java/WayofTime/alchemicalWizardry/common/items/DuskScribeTool.java delete mode 100644 1.7.2/main/java/WayofTime/alchemicalWizardry/common/items/EarthScribeTool.java delete mode 100644 1.7.2/main/java/WayofTime/alchemicalWizardry/common/items/EnergyBattery.java delete mode 100644 1.7.2/main/java/WayofTime/alchemicalWizardry/common/items/EnergyBazooka.java delete mode 100644 1.7.2/main/java/WayofTime/alchemicalWizardry/common/items/EnergyBlast.java delete mode 100644 1.7.2/main/java/WayofTime/alchemicalWizardry/common/items/EnergyItems.java delete mode 100644 1.7.2/main/java/WayofTime/alchemicalWizardry/common/items/EnergySword.java delete mode 100644 1.7.2/main/java/WayofTime/alchemicalWizardry/common/items/EnhancedTelepositionFocus.java delete mode 100644 1.7.2/main/java/WayofTime/alchemicalWizardry/common/items/FireScribeTool.java delete mode 100644 1.7.2/main/java/WayofTime/alchemicalWizardry/common/items/ItemAlchemyBase.java delete mode 100644 1.7.2/main/java/WayofTime/alchemicalWizardry/common/items/ItemBloodRuneBlock.java delete mode 100644 1.7.2/main/java/WayofTime/alchemicalWizardry/common/items/ItemComplexSpellCrystal.java delete mode 100644 1.7.2/main/java/WayofTime/alchemicalWizardry/common/items/ItemComponents.java delete mode 100644 1.7.2/main/java/WayofTime/alchemicalWizardry/common/items/ItemDiabloKey.java delete mode 100644 1.7.2/main/java/WayofTime/alchemicalWizardry/common/items/ItemRitualDiviner.java delete mode 100644 1.7.2/main/java/WayofTime/alchemicalWizardry/common/items/ItemSpellEffectBlock.java delete mode 100644 1.7.2/main/java/WayofTime/alchemicalWizardry/common/items/ItemSpellEnhancementBlock.java delete mode 100644 1.7.2/main/java/WayofTime/alchemicalWizardry/common/items/ItemSpellModifierBlock.java delete mode 100644 1.7.2/main/java/WayofTime/alchemicalWizardry/common/items/ItemSpellParadigmBlock.java delete mode 100644 1.7.2/main/java/WayofTime/alchemicalWizardry/common/items/LavaCrystal.java delete mode 100644 1.7.2/main/java/WayofTime/alchemicalWizardry/common/items/LifeBucket.java delete mode 100644 1.7.2/main/java/WayofTime/alchemicalWizardry/common/items/MagicianBloodOrb.java delete mode 100644 1.7.2/main/java/WayofTime/alchemicalWizardry/common/items/MasterBloodOrb.java delete mode 100644 1.7.2/main/java/WayofTime/alchemicalWizardry/common/items/OrbOfTesting.java delete mode 100644 1.7.2/main/java/WayofTime/alchemicalWizardry/common/items/ReinforcedTelepositionFocus.java delete mode 100644 1.7.2/main/java/WayofTime/alchemicalWizardry/common/items/SacrificialDagger.java delete mode 100644 1.7.2/main/java/WayofTime/alchemicalWizardry/common/items/ScribeTool.java delete mode 100644 1.7.2/main/java/WayofTime/alchemicalWizardry/common/items/TelepositionFocus.java delete mode 100644 1.7.2/main/java/WayofTime/alchemicalWizardry/common/items/WaterScribeTool.java delete mode 100644 1.7.2/main/java/WayofTime/alchemicalWizardry/common/items/forestry/ItemBloodFrame.java delete mode 100644 1.7.2/main/java/WayofTime/alchemicalWizardry/common/items/potion/AlchemyFlask.java delete mode 100644 1.7.2/main/java/WayofTime/alchemicalWizardry/common/items/potion/AlchemyReagent.java delete mode 100644 1.7.2/main/java/WayofTime/alchemicalWizardry/common/items/potion/AverageLengtheningCatalyst.java delete mode 100644 1.7.2/main/java/WayofTime/alchemicalWizardry/common/items/potion/AveragePowerCatalyst.java delete mode 100644 1.7.2/main/java/WayofTime/alchemicalWizardry/common/items/potion/EnhancedFillingAgent.java delete mode 100644 1.7.2/main/java/WayofTime/alchemicalWizardry/common/items/potion/GreaterLengtheningCatalyst.java delete mode 100644 1.7.2/main/java/WayofTime/alchemicalWizardry/common/items/potion/GreaterPowerCatalyst.java delete mode 100644 1.7.2/main/java/WayofTime/alchemicalWizardry/common/items/potion/LengtheningCatalyst.java delete mode 100644 1.7.2/main/java/WayofTime/alchemicalWizardry/common/items/potion/MundaneLengtheningCatalyst.java delete mode 100644 1.7.2/main/java/WayofTime/alchemicalWizardry/common/items/potion/MundanePowerCatalyst.java delete mode 100644 1.7.2/main/java/WayofTime/alchemicalWizardry/common/items/potion/PowerCatalyst.java delete mode 100644 1.7.2/main/java/WayofTime/alchemicalWizardry/common/items/potion/StandardBindingAgent.java delete mode 100644 1.7.2/main/java/WayofTime/alchemicalWizardry/common/items/potion/StandardFillingAgent.java delete mode 100644 1.7.2/main/java/WayofTime/alchemicalWizardry/common/items/potion/WeakBindingAgent.java delete mode 100644 1.7.2/main/java/WayofTime/alchemicalWizardry/common/items/potion/WeakFillingAgent.java delete mode 100644 1.7.2/main/java/WayofTime/alchemicalWizardry/common/items/sigil/AirSigil.java delete mode 100644 1.7.2/main/java/WayofTime/alchemicalWizardry/common/items/sigil/DivinationSigil.java delete mode 100644 1.7.2/main/java/WayofTime/alchemicalWizardry/common/items/sigil/ItemBloodLightSigil.java delete mode 100644 1.7.2/main/java/WayofTime/alchemicalWizardry/common/items/sigil/ItemFluidSigil.java delete mode 100644 1.7.2/main/java/WayofTime/alchemicalWizardry/common/items/sigil/ItemSeerSigil.java delete mode 100644 1.7.2/main/java/WayofTime/alchemicalWizardry/common/items/sigil/ItemSigilOfEnderSeverance.java delete mode 100644 1.7.2/main/java/WayofTime/alchemicalWizardry/common/items/sigil/ItemSigilOfSupression.java delete mode 100644 1.7.2/main/java/WayofTime/alchemicalWizardry/common/items/sigil/LavaSigil.java delete mode 100644 1.7.2/main/java/WayofTime/alchemicalWizardry/common/items/sigil/SigilOfElementalAffinity.java delete mode 100644 1.7.2/main/java/WayofTime/alchemicalWizardry/common/items/sigil/SigilOfGrowth.java delete mode 100644 1.7.2/main/java/WayofTime/alchemicalWizardry/common/items/sigil/SigilOfHaste.java delete mode 100644 1.7.2/main/java/WayofTime/alchemicalWizardry/common/items/sigil/SigilOfHolding.java delete mode 100644 1.7.2/main/java/WayofTime/alchemicalWizardry/common/items/sigil/SigilOfMagnetism.java delete mode 100644 1.7.2/main/java/WayofTime/alchemicalWizardry/common/items/sigil/SigilOfTheBridge.java delete mode 100644 1.7.2/main/java/WayofTime/alchemicalWizardry/common/items/sigil/SigilOfTheFastMiner.java delete mode 100644 1.7.2/main/java/WayofTime/alchemicalWizardry/common/items/sigil/SigilOfWind.java delete mode 100644 1.7.2/main/java/WayofTime/alchemicalWizardry/common/items/sigil/VoidSigil.java delete mode 100644 1.7.2/main/java/WayofTime/alchemicalWizardry/common/items/sigil/WaterSigil.java delete mode 100644 1.7.2/main/java/WayofTime/alchemicalWizardry/common/items/spell/ItemSpellMultiTool.java delete mode 100644 1.7.2/main/java/WayofTime/alchemicalWizardry/common/items/thaumcraft/FocusBase.java delete mode 100644 1.7.2/main/java/WayofTime/alchemicalWizardry/common/items/thaumcraft/FocusBloodBlast.java delete mode 100644 1.7.2/main/java/WayofTime/alchemicalWizardry/common/items/thaumcraft/FocusGravityWell.java delete mode 100644 1.7.2/main/java/WayofTime/alchemicalWizardry/common/items/thaumcraft/ItemSanguineArmour.java delete mode 100644 1.7.2/main/java/WayofTime/alchemicalWizardry/common/mcmod.info delete mode 100644 1.7.2/main/java/WayofTime/alchemicalWizardry/common/potion/PotionBoost.java delete mode 100644 1.7.2/main/java/WayofTime/alchemicalWizardry/common/potion/PotionDrowning.java delete mode 100644 1.7.2/main/java/WayofTime/alchemicalWizardry/common/potion/PotionFireFuse.java delete mode 100644 1.7.2/main/java/WayofTime/alchemicalWizardry/common/potion/PotionFlameCloak.java delete mode 100644 1.7.2/main/java/WayofTime/alchemicalWizardry/common/potion/PotionFlight.java delete mode 100644 1.7.2/main/java/WayofTime/alchemicalWizardry/common/potion/PotionHeavyHeart.java delete mode 100644 1.7.2/main/java/WayofTime/alchemicalWizardry/common/potion/PotionIceCloak.java delete mode 100644 1.7.2/main/java/WayofTime/alchemicalWizardry/common/potion/PotionInhibit.java delete mode 100644 1.7.2/main/java/WayofTime/alchemicalWizardry/common/potion/PotionPlanarBinding.java delete mode 100644 1.7.2/main/java/WayofTime/alchemicalWizardry/common/potion/PotionProjectileProtect.java delete mode 100644 1.7.2/main/java/WayofTime/alchemicalWizardry/common/potion/PotionReciprocation.java delete mode 100644 1.7.2/main/java/WayofTime/alchemicalWizardry/common/renderer/block/RenderConduit.java delete mode 100644 1.7.2/main/java/WayofTime/alchemicalWizardry/common/renderer/block/RenderPedestal.java delete mode 100644 1.7.2/main/java/WayofTime/alchemicalWizardry/common/renderer/block/RenderPlinth.java delete mode 100644 1.7.2/main/java/WayofTime/alchemicalWizardry/common/renderer/block/RenderSpellEffectBlock.java delete mode 100644 1.7.2/main/java/WayofTime/alchemicalWizardry/common/renderer/block/RenderSpellEnhancementBlock.java delete mode 100644 1.7.2/main/java/WayofTime/alchemicalWizardry/common/renderer/block/RenderSpellModifierBlock.java delete mode 100644 1.7.2/main/java/WayofTime/alchemicalWizardry/common/renderer/block/RenderSpellParadigmBlock.java delete mode 100644 1.7.2/main/java/WayofTime/alchemicalWizardry/common/renderer/block/RenderWritingTable.java delete mode 100644 1.7.2/main/java/WayofTime/alchemicalWizardry/common/renderer/block/TEAltarRenderer.java delete mode 100644 1.7.2/main/java/WayofTime/alchemicalWizardry/common/renderer/block/itemRender/TEAltarItemRenderer.java delete mode 100644 1.7.2/main/java/WayofTime/alchemicalWizardry/common/renderer/block/itemRender/TEConduitItemRenderer.java delete mode 100644 1.7.2/main/java/WayofTime/alchemicalWizardry/common/renderer/block/itemRender/TESpellEffectBlockItemRenderer.java delete mode 100644 1.7.2/main/java/WayofTime/alchemicalWizardry/common/renderer/block/itemRender/TESpellEnhancementBlockItemRenderer.java delete mode 100644 1.7.2/main/java/WayofTime/alchemicalWizardry/common/renderer/block/itemRender/TESpellModifierBlockItemRenderer.java delete mode 100644 1.7.2/main/java/WayofTime/alchemicalWizardry/common/renderer/block/itemRender/TESpellParadigmBlockItemRenderer.java delete mode 100644 1.7.2/main/java/WayofTime/alchemicalWizardry/common/renderer/block/itemRender/TEWritingTableItemRenderer.java delete mode 100644 1.7.2/main/java/WayofTime/alchemicalWizardry/common/renderer/mob/RenderBileDemon.java delete mode 100644 1.7.2/main/java/WayofTime/alchemicalWizardry/common/renderer/mob/RenderBoulderFist.java delete mode 100644 1.7.2/main/java/WayofTime/alchemicalWizardry/common/renderer/mob/RenderElemental.java delete mode 100644 1.7.2/main/java/WayofTime/alchemicalWizardry/common/renderer/mob/RenderFallenAngel.java delete mode 100644 1.7.2/main/java/WayofTime/alchemicalWizardry/common/renderer/mob/RenderIceDemon.java delete mode 100644 1.7.2/main/java/WayofTime/alchemicalWizardry/common/renderer/mob/RenderLowerGuardian.java delete mode 100644 1.7.2/main/java/WayofTime/alchemicalWizardry/common/renderer/mob/RenderShade.java delete mode 100644 1.7.2/main/java/WayofTime/alchemicalWizardry/common/renderer/mob/RenderSmallEarthGolem.java delete mode 100644 1.7.2/main/java/WayofTime/alchemicalWizardry/common/renderer/mob/RenderWingedFireDemon.java delete mode 100644 1.7.2/main/java/WayofTime/alchemicalWizardry/common/renderer/model/ModelBileDemon.java delete mode 100644 1.7.2/main/java/WayofTime/alchemicalWizardry/common/renderer/model/ModelBloodAltar.java delete mode 100644 1.7.2/main/java/WayofTime/alchemicalWizardry/common/renderer/model/ModelBoulderFist.java delete mode 100644 1.7.2/main/java/WayofTime/alchemicalWizardry/common/renderer/model/ModelConduit.java delete mode 100644 1.7.2/main/java/WayofTime/alchemicalWizardry/common/renderer/model/ModelElemental.java delete mode 100644 1.7.2/main/java/WayofTime/alchemicalWizardry/common/renderer/model/ModelEnergyBazookaMainProjectile.java delete mode 100644 1.7.2/main/java/WayofTime/alchemicalWizardry/common/renderer/model/ModelFallenAngel.java delete mode 100644 1.7.2/main/java/WayofTime/alchemicalWizardry/common/renderer/model/ModelIceDemon.java delete mode 100644 1.7.2/main/java/WayofTime/alchemicalWizardry/common/renderer/model/ModelLowerGuardian.java delete mode 100644 1.7.2/main/java/WayofTime/alchemicalWizardry/common/renderer/model/ModelMeteor.java delete mode 100644 1.7.2/main/java/WayofTime/alchemicalWizardry/common/renderer/model/ModelPedestal.java delete mode 100644 1.7.2/main/java/WayofTime/alchemicalWizardry/common/renderer/model/ModelPlinth.java delete mode 100644 1.7.2/main/java/WayofTime/alchemicalWizardry/common/renderer/model/ModelShade.java delete mode 100644 1.7.2/main/java/WayofTime/alchemicalWizardry/common/renderer/model/ModelSmallEarthGolem.java delete mode 100644 1.7.2/main/java/WayofTime/alchemicalWizardry/common/renderer/model/ModelSpellEffectBlock.java delete mode 100644 1.7.2/main/java/WayofTime/alchemicalWizardry/common/renderer/model/ModelSpellEnhancementBlock.java delete mode 100644 1.7.2/main/java/WayofTime/alchemicalWizardry/common/renderer/model/ModelSpellModifierBlock.java delete mode 100644 1.7.2/main/java/WayofTime/alchemicalWizardry/common/renderer/model/ModelSpellParadigmBlock.java delete mode 100644 1.7.2/main/java/WayofTime/alchemicalWizardry/common/renderer/model/ModelWingedFireDemon.java delete mode 100644 1.7.2/main/java/WayofTime/alchemicalWizardry/common/renderer/model/ModelWritingTable.java delete mode 100644 1.7.2/main/java/WayofTime/alchemicalWizardry/common/renderer/projectile/RenderEnergyBazookaMainProjectile.java delete mode 100644 1.7.2/main/java/WayofTime/alchemicalWizardry/common/renderer/projectile/RenderEnergyBlastProjectile.java delete mode 100644 1.7.2/main/java/WayofTime/alchemicalWizardry/common/renderer/projectile/RenderFireProjectile.java delete mode 100644 1.7.2/main/java/WayofTime/alchemicalWizardry/common/renderer/projectile/RenderMeteor.java delete mode 100644 1.7.2/main/java/WayofTime/alchemicalWizardry/common/rituals/RitualEffectAnimalGrowth.java delete mode 100644 1.7.2/main/java/WayofTime/alchemicalWizardry/common/rituals/RitualEffectApiaryOverclock.java delete mode 100644 1.7.2/main/java/WayofTime/alchemicalWizardry/common/rituals/RitualEffectAutoAlchemy.java delete mode 100644 1.7.2/main/java/WayofTime/alchemicalWizardry/common/rituals/RitualEffectBiomeChanger.java delete mode 100644 1.7.2/main/java/WayofTime/alchemicalWizardry/common/rituals/RitualEffectContainment.java delete mode 100644 1.7.2/main/java/WayofTime/alchemicalWizardry/common/rituals/RitualEffectCrushing.java delete mode 100644 1.7.2/main/java/WayofTime/alchemicalWizardry/common/rituals/RitualEffectExpulsion.java delete mode 100644 1.7.2/main/java/WayofTime/alchemicalWizardry/common/rituals/RitualEffectFeatheredEarth.java delete mode 100644 1.7.2/main/java/WayofTime/alchemicalWizardry/common/rituals/RitualEffectFeatheredKnife.java delete mode 100644 1.7.2/main/java/WayofTime/alchemicalWizardry/common/rituals/RitualEffectFlight.java delete mode 100644 1.7.2/main/java/WayofTime/alchemicalWizardry/common/rituals/RitualEffectGrowth.java delete mode 100644 1.7.2/main/java/WayofTime/alchemicalWizardry/common/rituals/RitualEffectHarvest.java delete mode 100644 1.7.2/main/java/WayofTime/alchemicalWizardry/common/rituals/RitualEffectHealing.java delete mode 100644 1.7.2/main/java/WayofTime/alchemicalWizardry/common/rituals/RitualEffectInterdiction.java delete mode 100644 1.7.2/main/java/WayofTime/alchemicalWizardry/common/rituals/RitualEffectItemSuction.java delete mode 100644 1.7.2/main/java/WayofTime/alchemicalWizardry/common/rituals/RitualEffectJumping.java delete mode 100644 1.7.2/main/java/WayofTime/alchemicalWizardry/common/rituals/RitualEffectLava.java delete mode 100644 1.7.2/main/java/WayofTime/alchemicalWizardry/common/rituals/RitualEffectLeap.java delete mode 100644 1.7.2/main/java/WayofTime/alchemicalWizardry/common/rituals/RitualEffectLifeConduit.java delete mode 100644 1.7.2/main/java/WayofTime/alchemicalWizardry/common/rituals/RitualEffectMagnetic.java delete mode 100644 1.7.2/main/java/WayofTime/alchemicalWizardry/common/rituals/RitualEffectSoulBound.java delete mode 100644 1.7.2/main/java/WayofTime/alchemicalWizardry/common/rituals/RitualEffectSummonMeteor.java delete mode 100644 1.7.2/main/java/WayofTime/alchemicalWizardry/common/rituals/RitualEffectSummonPlayer.java delete mode 100644 1.7.2/main/java/WayofTime/alchemicalWizardry/common/rituals/RitualEffectSupression.java delete mode 100644 1.7.2/main/java/WayofTime/alchemicalWizardry/common/rituals/RitualEffectUnbinding.java delete mode 100644 1.7.2/main/java/WayofTime/alchemicalWizardry/common/rituals/RitualEffectWater.java delete mode 100644 1.7.2/main/java/WayofTime/alchemicalWizardry/common/rituals/RitualEffectWellOfSuffering.java delete mode 100644 1.7.2/main/java/WayofTime/alchemicalWizardry/common/spell/complex/EntitySpellProjectile.java delete mode 100644 1.7.2/main/java/WayofTime/alchemicalWizardry/common/spell/complex/SpellModifier.java delete mode 100644 1.7.2/main/java/WayofTime/alchemicalWizardry/common/spell/complex/SpellModifierDefault.java delete mode 100644 1.7.2/main/java/WayofTime/alchemicalWizardry/common/spell/complex/SpellModifierDefensive.java delete mode 100644 1.7.2/main/java/WayofTime/alchemicalWizardry/common/spell/complex/SpellModifierEnvironmental.java delete mode 100644 1.7.2/main/java/WayofTime/alchemicalWizardry/common/spell/complex/SpellModifierOffensive.java delete mode 100644 1.7.2/main/java/WayofTime/alchemicalWizardry/common/spell/complex/SpellParadigm.java delete mode 100644 1.7.2/main/java/WayofTime/alchemicalWizardry/common/spell/complex/SpellParadigmMelee.java delete mode 100644 1.7.2/main/java/WayofTime/alchemicalWizardry/common/spell/complex/SpellParadigmProjectile.java delete mode 100644 1.7.2/main/java/WayofTime/alchemicalWizardry/common/spell/complex/SpellParadigmSelf.java delete mode 100644 1.7.2/main/java/WayofTime/alchemicalWizardry/common/spell/complex/SpellParadigmTool.java delete mode 100644 1.7.2/main/java/WayofTime/alchemicalWizardry/common/spell/complex/effect/SpellEffect.java delete mode 100644 1.7.2/main/java/WayofTime/alchemicalWizardry/common/spell/complex/effect/SpellEffectEarth.java delete mode 100644 1.7.2/main/java/WayofTime/alchemicalWizardry/common/spell/complex/effect/SpellEffectFire.java delete mode 100644 1.7.2/main/java/WayofTime/alchemicalWizardry/common/spell/complex/effect/SpellEffectIce.java delete mode 100644 1.7.2/main/java/WayofTime/alchemicalWizardry/common/spell/complex/effect/SpellEffectWind.java delete mode 100644 1.7.2/main/java/WayofTime/alchemicalWizardry/common/spell/complex/effect/SpellHelper.java delete mode 100644 1.7.2/main/java/WayofTime/alchemicalWizardry/common/spell/complex/effect/impactEffects/ExtrapolatedMeleeEntityEffect.java delete mode 100644 1.7.2/main/java/WayofTime/alchemicalWizardry/common/spell/complex/effect/impactEffects/IMeleeSpellEntityEffect.java delete mode 100644 1.7.2/main/java/WayofTime/alchemicalWizardry/common/spell/complex/effect/impactEffects/IMeleeSpellWorldEffect.java delete mode 100644 1.7.2/main/java/WayofTime/alchemicalWizardry/common/spell/complex/effect/impactEffects/IProjectileImpactEffect.java delete mode 100644 1.7.2/main/java/WayofTime/alchemicalWizardry/common/spell/complex/effect/impactEffects/IProjectileUpdateEffect.java delete mode 100644 1.7.2/main/java/WayofTime/alchemicalWizardry/common/spell/complex/effect/impactEffects/ISelfSpellEffect.java delete mode 100644 1.7.2/main/java/WayofTime/alchemicalWizardry/common/spell/complex/effect/impactEffects/MeleeSpellCenteredWorldEffect.java delete mode 100644 1.7.2/main/java/WayofTime/alchemicalWizardry/common/spell/complex/effect/impactEffects/MeleeSpellWorldEffect.java delete mode 100644 1.7.2/main/java/WayofTime/alchemicalWizardry/common/spell/complex/effect/impactEffects/ProjectileImpactEffect.java delete mode 100644 1.7.2/main/java/WayofTime/alchemicalWizardry/common/spell/complex/effect/impactEffects/ProjectileUpdateEffect.java delete mode 100644 1.7.2/main/java/WayofTime/alchemicalWizardry/common/spell/complex/effect/impactEffects/SelfSpellEffect.java delete mode 100644 1.7.2/main/java/WayofTime/alchemicalWizardry/common/spell/complex/effect/impactEffects/earth/MeleeDefaultEarth.java delete mode 100644 1.7.2/main/java/WayofTime/alchemicalWizardry/common/spell/complex/effect/impactEffects/earth/MeleeDefensiveEarth.java delete mode 100644 1.7.2/main/java/WayofTime/alchemicalWizardry/common/spell/complex/effect/impactEffects/earth/MeleeEnvironmentalEarth.java delete mode 100644 1.7.2/main/java/WayofTime/alchemicalWizardry/common/spell/complex/effect/impactEffects/earth/MeleeOffensiveEarth.java delete mode 100644 1.7.2/main/java/WayofTime/alchemicalWizardry/common/spell/complex/effect/impactEffects/earth/ProjectileDefaultEarth.java delete mode 100644 1.7.2/main/java/WayofTime/alchemicalWizardry/common/spell/complex/effect/impactEffects/earth/ProjectileDefensiveEarth.java delete mode 100644 1.7.2/main/java/WayofTime/alchemicalWizardry/common/spell/complex/effect/impactEffects/earth/ProjectileEnvironmentalEarth.java delete mode 100644 1.7.2/main/java/WayofTime/alchemicalWizardry/common/spell/complex/effect/impactEffects/earth/ProjectileOffensiveEarth.java delete mode 100644 1.7.2/main/java/WayofTime/alchemicalWizardry/common/spell/complex/effect/impactEffects/earth/SelfDefaultEarth.java delete mode 100644 1.7.2/main/java/WayofTime/alchemicalWizardry/common/spell/complex/effect/impactEffects/earth/SelfDefensiveEarth.java delete mode 100644 1.7.2/main/java/WayofTime/alchemicalWizardry/common/spell/complex/effect/impactEffects/earth/SelfEnvironmentalEarth.java delete mode 100644 1.7.2/main/java/WayofTime/alchemicalWizardry/common/spell/complex/effect/impactEffects/earth/SelfOffensiveEarth.java delete mode 100644 1.7.2/main/java/WayofTime/alchemicalWizardry/common/spell/complex/effect/impactEffects/earth/ToolEnvironmentalEarth.java delete mode 100644 1.7.2/main/java/WayofTime/alchemicalWizardry/common/spell/complex/effect/impactEffects/earth/ToolOffensiveEarth.java delete mode 100644 1.7.2/main/java/WayofTime/alchemicalWizardry/common/spell/complex/effect/impactEffects/fire/MeleeDefaultFire.java delete mode 100644 1.7.2/main/java/WayofTime/alchemicalWizardry/common/spell/complex/effect/impactEffects/fire/MeleeDefensiveFire.java delete mode 100644 1.7.2/main/java/WayofTime/alchemicalWizardry/common/spell/complex/effect/impactEffects/fire/MeleeEnvironmentalFire.java delete mode 100644 1.7.2/main/java/WayofTime/alchemicalWizardry/common/spell/complex/effect/impactEffects/fire/MeleeOffensiveFire.java delete mode 100644 1.7.2/main/java/WayofTime/alchemicalWizardry/common/spell/complex/effect/impactEffects/fire/ProjectileDefaultFire.java delete mode 100644 1.7.2/main/java/WayofTime/alchemicalWizardry/common/spell/complex/effect/impactEffects/fire/ProjectileDefensiveFire.java delete mode 100644 1.7.2/main/java/WayofTime/alchemicalWizardry/common/spell/complex/effect/impactEffects/fire/ProjectileEnvironmentalFire.java delete mode 100644 1.7.2/main/java/WayofTime/alchemicalWizardry/common/spell/complex/effect/impactEffects/fire/ProjectileOffensiveFire.java delete mode 100644 1.7.2/main/java/WayofTime/alchemicalWizardry/common/spell/complex/effect/impactEffects/fire/SelfDefaultFire.java delete mode 100644 1.7.2/main/java/WayofTime/alchemicalWizardry/common/spell/complex/effect/impactEffects/fire/SelfDefensiveFire.java delete mode 100644 1.7.2/main/java/WayofTime/alchemicalWizardry/common/spell/complex/effect/impactEffects/fire/SelfEnvironmentalFire.java delete mode 100644 1.7.2/main/java/WayofTime/alchemicalWizardry/common/spell/complex/effect/impactEffects/fire/SelfOffensiveFire.java delete mode 100644 1.7.2/main/java/WayofTime/alchemicalWizardry/common/spell/complex/effect/impactEffects/fire/ToolDefaultFire.java delete mode 100644 1.7.2/main/java/WayofTime/alchemicalWizardry/common/spell/complex/effect/impactEffects/fire/ToolEnvironmentalFire.java delete mode 100644 1.7.2/main/java/WayofTime/alchemicalWizardry/common/spell/complex/effect/impactEffects/fire/ToolOffensiveFire.java delete mode 100644 1.7.2/main/java/WayofTime/alchemicalWizardry/common/spell/complex/effect/impactEffects/ice/MeleeDefaultIce.java delete mode 100644 1.7.2/main/java/WayofTime/alchemicalWizardry/common/spell/complex/effect/impactEffects/ice/MeleeDefensiveIce.java delete mode 100644 1.7.2/main/java/WayofTime/alchemicalWizardry/common/spell/complex/effect/impactEffects/ice/MeleeEnvironmentalIce.java delete mode 100644 1.7.2/main/java/WayofTime/alchemicalWizardry/common/spell/complex/effect/impactEffects/ice/MeleeOffensiveIce.java delete mode 100644 1.7.2/main/java/WayofTime/alchemicalWizardry/common/spell/complex/effect/impactEffects/ice/ProjectileDefaultIce.java delete mode 100644 1.7.2/main/java/WayofTime/alchemicalWizardry/common/spell/complex/effect/impactEffects/ice/ProjectileDefensiveIce.java delete mode 100644 1.7.2/main/java/WayofTime/alchemicalWizardry/common/spell/complex/effect/impactEffects/ice/ProjectileEnvironmentalIce.java delete mode 100644 1.7.2/main/java/WayofTime/alchemicalWizardry/common/spell/complex/effect/impactEffects/ice/ProjectileOffensiveIce.java delete mode 100644 1.7.2/main/java/WayofTime/alchemicalWizardry/common/spell/complex/effect/impactEffects/ice/SelfDefaultIce.java delete mode 100644 1.7.2/main/java/WayofTime/alchemicalWizardry/common/spell/complex/effect/impactEffects/ice/SelfDefensiveIce.java delete mode 100644 1.7.2/main/java/WayofTime/alchemicalWizardry/common/spell/complex/effect/impactEffects/ice/SelfEnvironmentalIce.java delete mode 100644 1.7.2/main/java/WayofTime/alchemicalWizardry/common/spell/complex/effect/impactEffects/ice/SelfOffensiveIce.java delete mode 100644 1.7.2/main/java/WayofTime/alchemicalWizardry/common/spell/complex/effect/impactEffects/ice/ToolDefaultIce.java delete mode 100644 1.7.2/main/java/WayofTime/alchemicalWizardry/common/spell/complex/effect/impactEffects/ice/ToolDefensiveIce.java delete mode 100644 1.7.2/main/java/WayofTime/alchemicalWizardry/common/spell/complex/effect/impactEffects/tool/DigAreaEffect.java delete mode 100644 1.7.2/main/java/WayofTime/alchemicalWizardry/common/spell/complex/effect/impactEffects/tool/DigAreaTunnel.java delete mode 100644 1.7.2/main/java/WayofTime/alchemicalWizardry/common/spell/complex/effect/impactEffects/tool/IDigAreaEffect.java delete mode 100644 1.7.2/main/java/WayofTime/alchemicalWizardry/common/spell/complex/effect/impactEffects/tool/IItemManipulator.java delete mode 100644 1.7.2/main/java/WayofTime/alchemicalWizardry/common/spell/complex/effect/impactEffects/tool/ILeftClickEffect.java delete mode 100644 1.7.2/main/java/WayofTime/alchemicalWizardry/common/spell/complex/effect/impactEffects/tool/IOnBanishTool.java delete mode 100644 1.7.2/main/java/WayofTime/alchemicalWizardry/common/spell/complex/effect/impactEffects/tool/IOnBreakBlock.java delete mode 100644 1.7.2/main/java/WayofTime/alchemicalWizardry/common/spell/complex/effect/impactEffects/tool/IOnSummonTool.java delete mode 100644 1.7.2/main/java/WayofTime/alchemicalWizardry/common/spell/complex/effect/impactEffects/tool/IRightClickEffect.java delete mode 100644 1.7.2/main/java/WayofTime/alchemicalWizardry/common/spell/complex/effect/impactEffects/tool/ISpecialDamageEffect.java delete mode 100644 1.7.2/main/java/WayofTime/alchemicalWizardry/common/spell/complex/effect/impactEffects/tool/IToolUpdateEffect.java delete mode 100644 1.7.2/main/java/WayofTime/alchemicalWizardry/common/spell/complex/effect/impactEffects/tool/ItemManipulator.java delete mode 100644 1.7.2/main/java/WayofTime/alchemicalWizardry/common/spell/complex/effect/impactEffects/tool/LeftClickEffect.java delete mode 100644 1.7.2/main/java/WayofTime/alchemicalWizardry/common/spell/complex/effect/impactEffects/tool/OnBreakBlockEffect.java delete mode 100644 1.7.2/main/java/WayofTime/alchemicalWizardry/common/spell/complex/effect/impactEffects/tool/RightClickEffect.java delete mode 100644 1.7.2/main/java/WayofTime/alchemicalWizardry/common/spell/complex/effect/impactEffects/tool/RightClickTunnel.java delete mode 100644 1.7.2/main/java/WayofTime/alchemicalWizardry/common/spell/complex/effect/impactEffects/tool/SummonToolEffect.java delete mode 100644 1.7.2/main/java/WayofTime/alchemicalWizardry/common/spell/complex/effect/impactEffects/wind/MeleeDefaultWind.java delete mode 100644 1.7.2/main/java/WayofTime/alchemicalWizardry/common/spell/complex/effect/impactEffects/wind/MeleeDefensiveWind.java delete mode 100644 1.7.2/main/java/WayofTime/alchemicalWizardry/common/spell/complex/effect/impactEffects/wind/MeleeEnvironmentalWind.java delete mode 100644 1.7.2/main/java/WayofTime/alchemicalWizardry/common/spell/complex/effect/impactEffects/wind/MeleeOffensiveWind.java delete mode 100644 1.7.2/main/java/WayofTime/alchemicalWizardry/common/spell/complex/effect/impactEffects/wind/ProjectileDefaultWind.java delete mode 100644 1.7.2/main/java/WayofTime/alchemicalWizardry/common/spell/complex/effect/impactEffects/wind/ProjectileEnvironmentalWind.java delete mode 100644 1.7.2/main/java/WayofTime/alchemicalWizardry/common/spell/complex/effect/impactEffects/wind/ProjectileOffensiveWind.java delete mode 100644 1.7.2/main/java/WayofTime/alchemicalWizardry/common/spell/complex/effect/impactEffects/wind/SelfDefaultWind.java delete mode 100644 1.7.2/main/java/WayofTime/alchemicalWizardry/common/spell/complex/effect/impactEffects/wind/SelfDefensiveWind.java delete mode 100644 1.7.2/main/java/WayofTime/alchemicalWizardry/common/spell/complex/effect/impactEffects/wind/SelfEnvironmentalWind.java delete mode 100644 1.7.2/main/java/WayofTime/alchemicalWizardry/common/spell/complex/effect/impactEffects/wind/SelfOffensiveWind.java delete mode 100644 1.7.2/main/java/WayofTime/alchemicalWizardry/common/spell/complex/effect/impactEffects/wind/ToolDefensiveWind.java delete mode 100644 1.7.2/main/java/WayofTime/alchemicalWizardry/common/spell/complex/effect/impactEffects/wind/ToolEnvironmentalWind.java delete mode 100644 1.7.2/main/java/WayofTime/alchemicalWizardry/common/spell/complex/effect/impactEffects/wind/ToolOffensiveWind.java delete mode 100644 1.7.2/main/java/WayofTime/alchemicalWizardry/common/spell/complex/enhancement/SpellEnhancement.java delete mode 100644 1.7.2/main/java/WayofTime/alchemicalWizardry/common/spell/complex/enhancement/SpellEnhancementCost.java delete mode 100644 1.7.2/main/java/WayofTime/alchemicalWizardry/common/spell/complex/enhancement/SpellEnhancementPotency.java delete mode 100644 1.7.2/main/java/WayofTime/alchemicalWizardry/common/spell/complex/enhancement/SpellEnhancementPower.java delete mode 100644 1.7.2/main/java/WayofTime/alchemicalWizardry/common/spell/simple/HomSpell.java delete mode 100644 1.7.2/main/java/WayofTime/alchemicalWizardry/common/spell/simple/HomSpellComponent.java delete mode 100644 1.7.2/main/java/WayofTime/alchemicalWizardry/common/spell/simple/HomSpellRegistry.java delete mode 100644 1.7.2/main/java/WayofTime/alchemicalWizardry/common/spell/simple/ISimpleSpell.java delete mode 100644 1.7.2/main/java/WayofTime/alchemicalWizardry/common/spell/simple/SpellEarthBender.java delete mode 100644 1.7.2/main/java/WayofTime/alchemicalWizardry/common/spell/simple/SpellExplosions.java delete mode 100644 1.7.2/main/java/WayofTime/alchemicalWizardry/common/spell/simple/SpellFireBurst.java delete mode 100644 1.7.2/main/java/WayofTime/alchemicalWizardry/common/spell/simple/SpellFrozenWater.java delete mode 100644 1.7.2/main/java/WayofTime/alchemicalWizardry/common/spell/simple/SpellHolyBlast.java delete mode 100644 1.7.2/main/java/WayofTime/alchemicalWizardry/common/spell/simple/SpellLightningBolt.java delete mode 100644 1.7.2/main/java/WayofTime/alchemicalWizardry/common/spell/simple/SpellTeleport.java delete mode 100644 1.7.2/main/java/WayofTime/alchemicalWizardry/common/spell/simple/SpellWateryGrave.java delete mode 100644 1.7.2/main/java/WayofTime/alchemicalWizardry/common/spell/simple/SpellWindGust.java delete mode 100644 1.7.2/main/java/WayofTime/alchemicalWizardry/common/summoning/SummoningFallenAngel.java delete mode 100644 1.7.2/main/java/WayofTime/alchemicalWizardry/common/summoning/SummoningHelperAW.java delete mode 100644 1.7.2/main/java/WayofTime/alchemicalWizardry/common/summoning/meteor/MeteorParadigm.java delete mode 100644 1.7.2/main/java/WayofTime/alchemicalWizardry/common/summoning/meteor/MeteorParadigmComponent.java delete mode 100644 1.7.2/main/java/WayofTime/alchemicalWizardry/common/summoning/meteor/MeteorRegistry.java delete mode 100644 1.7.2/main/java/WayofTime/alchemicalWizardry/common/tileEntity/TEAltar.java delete mode 100644 1.7.2/main/java/WayofTime/alchemicalWizardry/common/tileEntity/TEConduit.java delete mode 100644 1.7.2/main/java/WayofTime/alchemicalWizardry/common/tileEntity/TEDemonPortal.java delete mode 100644 1.7.2/main/java/WayofTime/alchemicalWizardry/common/tileEntity/TEHomHeart.java delete mode 100644 1.7.2/main/java/WayofTime/alchemicalWizardry/common/tileEntity/TEImperfectRitualStone.java delete mode 100644 1.7.2/main/java/WayofTime/alchemicalWizardry/common/tileEntity/TEMasterStone.java delete mode 100644 1.7.2/main/java/WayofTime/alchemicalWizardry/common/tileEntity/TEOrientable.java delete mode 100644 1.7.2/main/java/WayofTime/alchemicalWizardry/common/tileEntity/TEPedestal.java delete mode 100644 1.7.2/main/java/WayofTime/alchemicalWizardry/common/tileEntity/TEPlinth.java delete mode 100644 1.7.2/main/java/WayofTime/alchemicalWizardry/common/tileEntity/TESchematicSaver.java delete mode 100644 1.7.2/main/java/WayofTime/alchemicalWizardry/common/tileEntity/TESocket.java delete mode 100644 1.7.2/main/java/WayofTime/alchemicalWizardry/common/tileEntity/TESpectralContainer.java delete mode 100644 1.7.2/main/java/WayofTime/alchemicalWizardry/common/tileEntity/TESpellBlock.java delete mode 100644 1.7.2/main/java/WayofTime/alchemicalWizardry/common/tileEntity/TESpellEffectBlock.java delete mode 100644 1.7.2/main/java/WayofTime/alchemicalWizardry/common/tileEntity/TESpellEnhancementBlock.java delete mode 100644 1.7.2/main/java/WayofTime/alchemicalWizardry/common/tileEntity/TESpellModifierBlock.java delete mode 100644 1.7.2/main/java/WayofTime/alchemicalWizardry/common/tileEntity/TESpellParadigmBlock.java delete mode 100644 1.7.2/main/java/WayofTime/alchemicalWizardry/common/tileEntity/TETeleposer.java delete mode 100644 1.7.2/main/java/WayofTime/alchemicalWizardry/common/tileEntity/TEWritingTable.java delete mode 100644 1.7.2/main/java/WayofTime/alchemicalWizardry/common/tileEntity/container/ContainerAltar.java delete mode 100644 1.7.2/main/java/WayofTime/alchemicalWizardry/common/tileEntity/container/ContainerTeleposer.java delete mode 100644 1.7.2/main/java/WayofTime/alchemicalWizardry/common/tileEntity/container/ContainerWritingTable.java delete mode 100644 1.7.2/main/java/WayofTime/alchemicalWizardry/common/tileEntity/gui/GuiHandler.java delete mode 100644 1.7.2/main/java/WayofTime/alchemicalWizardry/common/tileEntity/gui/GuiTeleposer.java delete mode 100644 1.7.2/main/java/WayofTime/alchemicalWizardry/common/tileEntity/gui/GuiWritingTable.java delete mode 100644 1.7.2/main/java/joshie/alchemicalWizardy/ShapedBloodOrbRecipe.java delete mode 100644 1.7.2/main/java/joshie/alchemicalWizardy/ShapelessBloodOrbRecipe.java delete mode 100644 1.7.2/main/java/joshie/alchemicalWizardy/nei/NEIAlchemyRecipeHandler.java delete mode 100644 1.7.2/main/java/joshie/alchemicalWizardy/nei/NEIAltarRecipeHandler.java delete mode 100644 1.7.2/main/java/joshie/alchemicalWizardy/nei/NEIBloodOrbShapedHandler.java delete mode 100644 1.7.2/main/java/joshie/alchemicalWizardy/nei/NEIBloodOrbShapelessHandler.java delete mode 100644 1.7.2/main/java/joshie/alchemicalWizardy/nei/NEIConfig.java delete mode 100644 1.7.2/main/resources/assets/alchemicalwizardry/altar.png delete mode 100644 1.7.2/main/resources/assets/alchemicalwizardry/books/architect.xml delete mode 100644 1.7.2/main/resources/assets/alchemicalwizardry/gui/Teleposer.png delete mode 100644 1.7.2/main/resources/assets/alchemicalwizardry/gui/WritingTable.png delete mode 100644 1.7.2/main/resources/assets/alchemicalwizardry/gui/bookleft.png delete mode 100644 1.7.2/main/resources/assets/alchemicalwizardry/gui/nei/alchemy.png delete mode 100644 1.7.2/main/resources/assets/alchemicalwizardry/gui/nei/altar.png delete mode 100644 1.7.2/main/resources/assets/alchemicalwizardry/lang/de_DE.lang delete mode 100644 1.7.2/main/resources/assets/alchemicalwizardry/lang/en_US.lang delete mode 100644 1.7.2/main/resources/assets/alchemicalwizardry/lang/it_IT.lang delete mode 100644 1.7.2/main/resources/assets/alchemicalwizardry/lang/ru_RU.lang delete mode 100644 1.7.2/main/resources/assets/alchemicalwizardry/lang/zh_CN.lang delete mode 100644 1.7.2/main/resources/assets/alchemicalwizardry/models/armor/armor - Shortcut.lnk delete mode 100644 1.7.2/main/resources/assets/alchemicalwizardry/models/armor/boundArmour_invisible_layer_1.png delete mode 100644 1.7.2/main/resources/assets/alchemicalwizardry/models/armor/boundArmour_invisible_layer_2.png delete mode 100644 1.7.2/main/resources/assets/alchemicalwizardry/models/armor/boundArmour_layer_1.png delete mode 100644 1.7.2/main/resources/assets/alchemicalwizardry/models/armor/boundArmour_layer_2.png delete mode 100644 1.7.2/main/resources/assets/alchemicalwizardry/models/armor/sanguineArmour_layer_1.png delete mode 100644 1.7.2/main/resources/assets/alchemicalwizardry/schematics/building/buildings.zip delete mode 100644 1.7.2/main/resources/assets/alchemicalwizardry/textures/blocks/AirRitualStone.png delete mode 100644 1.7.2/main/resources/assets/alchemicalwizardry/textures/blocks/AlchemicChemistrySet.png delete mode 100644 1.7.2/main/resources/assets/alchemicalwizardry/textures/blocks/AltarCapacityRune.png delete mode 100644 1.7.2/main/resources/assets/alchemicalwizardry/textures/blocks/ArcanePedestal.png delete mode 100644 1.7.2/main/resources/assets/alchemicalwizardry/textures/blocks/ArcanePlinth.png delete mode 100644 1.7.2/main/resources/assets/alchemicalwizardry/textures/blocks/BetterCapacityRune.png delete mode 100644 1.7.2/main/resources/assets/alchemicalwizardry/textures/blocks/BlankRune.png delete mode 100644 1.7.2/main/resources/assets/alchemicalwizardry/textures/blocks/BlockBloodLight.png delete mode 100644 1.7.2/main/resources/assets/alchemicalwizardry/textures/blocks/BloodAltar_Bottom.png delete mode 100644 1.7.2/main/resources/assets/alchemicalwizardry/textures/blocks/BloodAltar_SideType1.png delete mode 100644 1.7.2/main/resources/assets/alchemicalwizardry/textures/blocks/BloodAltar_SideType2.png delete mode 100644 1.7.2/main/resources/assets/alchemicalwizardry/textures/blocks/BloodAltar_Top.png delete mode 100644 1.7.2/main/resources/assets/alchemicalwizardry/textures/blocks/BloodSocket.png delete mode 100644 1.7.2/main/resources/assets/alchemicalwizardry/textures/blocks/BloodStoneBrick.png delete mode 100644 1.7.2/main/resources/assets/alchemicalwizardry/textures/blocks/DislocationRune.png delete mode 100644 1.7.2/main/resources/assets/alchemicalwizardry/textures/blocks/DuskRitualStone.png delete mode 100644 1.7.2/main/resources/assets/alchemicalwizardry/textures/blocks/EarthRitualStone.png delete mode 100644 1.7.2/main/resources/assets/alchemicalwizardry/textures/blocks/EfficiencyRune.png delete mode 100644 1.7.2/main/resources/assets/alchemicalwizardry/textures/blocks/EmptySocket.png delete mode 100644 1.7.2/main/resources/assets/alchemicalwizardry/textures/blocks/FireRitualStone.png delete mode 100644 1.7.2/main/resources/assets/alchemicalwizardry/textures/blocks/HomHeart_bottom.png delete mode 100644 1.7.2/main/resources/assets/alchemicalwizardry/textures/blocks/HomHeart_side.png delete mode 100644 1.7.2/main/resources/assets/alchemicalwizardry/textures/blocks/HomHeart_top.png delete mode 100644 1.7.2/main/resources/assets/alchemicalwizardry/textures/blocks/HomHeart_top1.png delete mode 100644 1.7.2/main/resources/assets/alchemicalwizardry/textures/blocks/ImperfectRitualStone.png delete mode 100644 1.7.2/main/resources/assets/alchemicalwizardry/textures/blocks/LargeBloodStoneBrick.png delete mode 100644 1.7.2/main/resources/assets/alchemicalwizardry/textures/blocks/MasterStone.png delete mode 100644 1.7.2/main/resources/assets/alchemicalwizardry/textures/blocks/OrbCapacityRune.png delete mode 100644 1.7.2/main/resources/assets/alchemicalwizardry/textures/blocks/RitualStone.png delete mode 100644 1.7.2/main/resources/assets/alchemicalwizardry/textures/blocks/RuneOfSacrifice.png delete mode 100644 1.7.2/main/resources/assets/alchemicalwizardry/textures/blocks/RuneOfSelfSacrifice.png delete mode 100644 1.7.2/main/resources/assets/alchemicalwizardry/textures/blocks/SoulForge.png delete mode 100644 1.7.2/main/resources/assets/alchemicalwizardry/textures/blocks/SpectralBlock.png delete mode 100644 1.7.2/main/resources/assets/alchemicalwizardry/textures/blocks/SpeedRune.png delete mode 100644 1.7.2/main/resources/assets/alchemicalwizardry/textures/blocks/Teleposer_Side.png delete mode 100644 1.7.2/main/resources/assets/alchemicalwizardry/textures/blocks/Teleposer_Top.png delete mode 100644 1.7.2/main/resources/assets/alchemicalwizardry/textures/blocks/Testing.png delete mode 100644 1.7.2/main/resources/assets/alchemicalwizardry/textures/blocks/WaterRitualStone.png delete mode 100644 1.7.2/main/resources/assets/alchemicalwizardry/textures/blocks/fireEffectBlock_blank.png delete mode 100644 1.7.2/main/resources/assets/alchemicalwizardry/textures/blocks/fireEffectBlock_input.png delete mode 100644 1.7.2/main/resources/assets/alchemicalwizardry/textures/blocks/fireEffectBlock_output.png delete mode 100644 1.7.2/main/resources/assets/alchemicalwizardry/textures/blocks/fireEffectBlock_upArrow.png delete mode 100644 1.7.2/main/resources/assets/alchemicalwizardry/textures/blocks/lifeEssenceFlowing.png delete mode 100644 1.7.2/main/resources/assets/alchemicalwizardry/textures/blocks/lifeEssenceStill.png delete mode 100644 1.7.2/main/resources/assets/alchemicalwizardry/textures/entities/energyBlastProjectile.png delete mode 100644 1.7.2/main/resources/assets/alchemicalwizardry/textures/entities/explosionProjectile.png delete mode 100644 1.7.2/main/resources/assets/alchemicalwizardry/textures/entities/fireProjectile.png delete mode 100644 1.7.2/main/resources/assets/alchemicalwizardry/textures/entities/holyProjectile.png delete mode 100644 1.7.2/main/resources/assets/alchemicalwizardry/textures/entities/iceProjectile.png delete mode 100644 1.7.2/main/resources/assets/alchemicalwizardry/textures/entities/lightningProjectile.png delete mode 100644 1.7.2/main/resources/assets/alchemicalwizardry/textures/entities/mudProjectile.png delete mode 100644 1.7.2/main/resources/assets/alchemicalwizardry/textures/entities/waterProjectile.png delete mode 100644 1.7.2/main/resources/assets/alchemicalwizardry/textures/entities/windGustProjectile.png delete mode 100644 1.7.2/main/resources/assets/alchemicalwizardry/textures/gui/GuiTrap.png delete mode 100644 1.7.2/main/resources/assets/alchemicalwizardry/textures/gui/bookcrafting.png delete mode 100644 1.7.2/main/resources/assets/alchemicalwizardry/textures/gui/bookfurnace.png delete mode 100644 1.7.2/main/resources/assets/alchemicalwizardry/textures/gui/bookleft.png delete mode 100644 1.7.2/main/resources/assets/alchemicalwizardry/textures/gui/bookright.png delete mode 100644 1.7.2/main/resources/assets/alchemicalwizardry/textures/items/8wWtY8d.png delete mode 100644 1.7.2/main/resources/assets/alchemicalwizardry/textures/items/Aether.png delete mode 100644 1.7.2/main/resources/assets/alchemicalwizardry/textures/items/AirScribeTool.png delete mode 100644 1.7.2/main/resources/assets/alchemicalwizardry/textures/items/AirSigil.png delete mode 100644 1.7.2/main/resources/assets/alchemicalwizardry/textures/items/ApprenticeBloodOrb.png delete mode 100644 1.7.2/main/resources/assets/alchemicalwizardry/textures/items/Aquasalus.png delete mode 100644 1.7.2/main/resources/assets/alchemicalwizardry/textures/items/ArchmageBloodOrb.png delete mode 100644 1.7.2/main/resources/assets/alchemicalwizardry/textures/items/ArmourInhibitor_activated.png delete mode 100644 1.7.2/main/resources/assets/alchemicalwizardry/textures/items/ArmourInhibitor_deactivated.png delete mode 100644 1.7.2/main/resources/assets/alchemicalwizardry/textures/items/AverageLengtheningCatalyst.png delete mode 100644 1.7.2/main/resources/assets/alchemicalwizardry/textures/items/AveragePowerCatalyst.png delete mode 100644 1.7.2/main/resources/assets/alchemicalwizardry/textures/items/BlankSlate.png delete mode 100644 1.7.2/main/resources/assets/alchemicalwizardry/textures/items/BlankSpell.png delete mode 100644 1.7.2/main/resources/assets/alchemicalwizardry/textures/items/BloodFrame.png delete mode 100644 1.7.2/main/resources/assets/alchemicalwizardry/textures/items/BloodLightSigil.png delete mode 100644 1.7.2/main/resources/assets/alchemicalwizardry/textures/items/BoundAxe_activated.png delete mode 100644 1.7.2/main/resources/assets/alchemicalwizardry/textures/items/BoundBoots.png delete mode 100644 1.7.2/main/resources/assets/alchemicalwizardry/textures/items/BoundHelmet.png delete mode 100644 1.7.2/main/resources/assets/alchemicalwizardry/textures/items/BoundLeggings.png delete mode 100644 1.7.2/main/resources/assets/alchemicalwizardry/textures/items/BoundPickaxe_activated.png delete mode 100644 1.7.2/main/resources/assets/alchemicalwizardry/textures/items/BoundPickaxe_deactivated.png delete mode 100644 1.7.2/main/resources/assets/alchemicalwizardry/textures/items/BoundPlate.png delete mode 100644 1.7.2/main/resources/assets/alchemicalwizardry/textures/items/BoundShovel_activated.png delete mode 100644 1.7.2/main/resources/assets/alchemicalwizardry/textures/items/BoundSword_activated.png delete mode 100644 1.7.2/main/resources/assets/alchemicalwizardry/textures/items/BoundTool.png delete mode 100644 1.7.2/main/resources/assets/alchemicalwizardry/textures/items/BridgeSigil_activated.png delete mode 100644 1.7.2/main/resources/assets/alchemicalwizardry/textures/items/BridgeSigil_deactivated.png delete mode 100644 1.7.2/main/resources/assets/alchemicalwizardry/textures/items/CeremonialDagger.png delete mode 100644 1.7.2/main/resources/assets/alchemicalwizardry/textures/items/ComplexCrystal.png delete mode 100644 1.7.2/main/resources/assets/alchemicalwizardry/textures/items/Crepitous.png delete mode 100644 1.7.2/main/resources/assets/alchemicalwizardry/textures/items/Crystallos.png delete mode 100644 1.7.2/main/resources/assets/alchemicalwizardry/textures/items/DaggerOfSacrifice.png delete mode 100644 1.7.2/main/resources/assets/alchemicalwizardry/textures/items/DemonBloodShard.png delete mode 100644 1.7.2/main/resources/assets/alchemicalwizardry/textures/items/DemonPlacer.png delete mode 100644 1.7.2/main/resources/assets/alchemicalwizardry/textures/items/DemonSlate.png delete mode 100644 1.7.2/main/resources/assets/alchemicalwizardry/textures/items/DemonicTeleposerFocus.png delete mode 100644 1.7.2/main/resources/assets/alchemicalwizardry/textures/items/DiabloKey.png delete mode 100644 1.7.2/main/resources/assets/alchemicalwizardry/textures/items/DivinationSigil.png delete mode 100644 1.7.2/main/resources/assets/alchemicalwizardry/textures/items/DuskScribeTool.png delete mode 100644 1.7.2/main/resources/assets/alchemicalwizardry/textures/items/EarthScribeTool.png delete mode 100644 1.7.2/main/resources/assets/alchemicalwizardry/textures/items/ElementalSigil_activated.png delete mode 100644 1.7.2/main/resources/assets/alchemicalwizardry/textures/items/ElementalSigil_deactivated.png delete mode 100644 1.7.2/main/resources/assets/alchemicalwizardry/textures/items/EnergyBattery.png delete mode 100644 1.7.2/main/resources/assets/alchemicalwizardry/textures/items/EnergyBazooka_activated.png delete mode 100644 1.7.2/main/resources/assets/alchemicalwizardry/textures/items/EnergyBlaster_activated.png delete mode 100644 1.7.2/main/resources/assets/alchemicalwizardry/textures/items/EnhancedFillingAgent.png delete mode 100644 1.7.2/main/resources/assets/alchemicalwizardry/textures/items/EnhancedTeleposerFocus.png delete mode 100644 1.7.2/main/resources/assets/alchemicalwizardry/textures/items/FireScribeTool.png delete mode 100644 1.7.2/main/resources/assets/alchemicalwizardry/textures/items/GreaterLengtheningCatalyst.png delete mode 100644 1.7.2/main/resources/assets/alchemicalwizardry/textures/items/GreaterPowerCatalyst.png delete mode 100644 1.7.2/main/resources/assets/alchemicalwizardry/textures/items/GrowthSigil_activated.png delete mode 100644 1.7.2/main/resources/assets/alchemicalwizardry/textures/items/GrowthSigil_deactivated.png delete mode 100644 1.7.2/main/resources/assets/alchemicalwizardry/textures/items/HasteSigil_activated.png delete mode 100644 1.7.2/main/resources/assets/alchemicalwizardry/textures/items/HasteSigil_deactivated.png delete mode 100644 1.7.2/main/resources/assets/alchemicalwizardry/textures/items/IceSigil_activated.png delete mode 100644 1.7.2/main/resources/assets/alchemicalwizardry/textures/items/IceSigil_deactivated.png delete mode 100644 1.7.2/main/resources/assets/alchemicalwizardry/textures/items/Incendium.png delete mode 100644 1.7.2/main/resources/assets/alchemicalwizardry/textures/items/InfusedSlate.png delete mode 100644 1.7.2/main/resources/assets/alchemicalwizardry/textures/items/LavaCrystal.png delete mode 100644 1.7.2/main/resources/assets/alchemicalwizardry/textures/items/LavaSigil.png delete mode 100644 1.7.2/main/resources/assets/alchemicalwizardry/textures/items/LifeBucket.png delete mode 100644 1.7.2/main/resources/assets/alchemicalwizardry/textures/items/Magicales.png delete mode 100644 1.7.2/main/resources/assets/alchemicalwizardry/textures/items/MagicianBloodOrb.png delete mode 100644 1.7.2/main/resources/assets/alchemicalwizardry/textures/items/MasterBloodOrb.png delete mode 100644 1.7.2/main/resources/assets/alchemicalwizardry/textures/items/MiningSigil_activated.png delete mode 100644 1.7.2/main/resources/assets/alchemicalwizardry/textures/items/MiningSigil_deactivated.png delete mode 100644 1.7.2/main/resources/assets/alchemicalwizardry/textures/items/MundaneLengtheningCatalyst.png delete mode 100644 1.7.2/main/resources/assets/alchemicalwizardry/textures/items/MundanePowerCatalyst.png delete mode 100644 1.7.2/main/resources/assets/alchemicalwizardry/textures/items/PotionFlask.png delete mode 100644 1.7.2/main/resources/assets/alchemicalwizardry/textures/items/ReinforcedSlate.png delete mode 100644 1.7.2/main/resources/assets/alchemicalwizardry/textures/items/ReinforcedTeleposerFocus.png delete mode 100644 1.7.2/main/resources/assets/alchemicalwizardry/textures/items/RitualDiviner.png delete mode 100644 1.7.2/main/resources/assets/alchemicalwizardry/textures/items/SacrificialDagger.png delete mode 100644 1.7.2/main/resources/assets/alchemicalwizardry/textures/items/Sanctus.png delete mode 100644 1.7.2/main/resources/assets/alchemicalwizardry/textures/items/SanguineHelmet.png delete mode 100644 1.7.2/main/resources/assets/alchemicalwizardry/textures/items/SeerSigil.png delete mode 100644 1.7.2/main/resources/assets/alchemicalwizardry/textures/items/SheathedItem.png delete mode 100644 1.7.2/main/resources/assets/alchemicalwizardry/textures/items/SigilOfHolding.png delete mode 100644 1.7.2/main/resources/assets/alchemicalwizardry/textures/items/SigilOfMagnetism_activated.png delete mode 100644 1.7.2/main/resources/assets/alchemicalwizardry/textures/items/SigilOfMagnetism_deactivated.png delete mode 100644 1.7.2/main/resources/assets/alchemicalwizardry/textures/items/SigilOfSeverance_activated.png delete mode 100644 1.7.2/main/resources/assets/alchemicalwizardry/textures/items/SigilOfSeverance_deactivated.png delete mode 100644 1.7.2/main/resources/assets/alchemicalwizardry/textures/items/SigilOfSupression_activated.png delete mode 100644 1.7.2/main/resources/assets/alchemicalwizardry/textures/items/SigilOfSupression_deactivated.png delete mode 100644 1.7.2/main/resources/assets/alchemicalwizardry/textures/items/SimpleCatalyst.png delete mode 100644 1.7.2/main/resources/assets/alchemicalwizardry/textures/items/StandardBindingAgent.png delete mode 100644 1.7.2/main/resources/assets/alchemicalwizardry/textures/items/StandardFillingAgent.png delete mode 100644 1.7.2/main/resources/assets/alchemicalwizardry/textures/items/TeleposerFocus.png delete mode 100644 1.7.2/main/resources/assets/alchemicalwizardry/textures/items/Tennebrae.png delete mode 100644 1.7.2/main/resources/assets/alchemicalwizardry/textures/items/Terrae.png delete mode 100644 1.7.2/main/resources/assets/alchemicalwizardry/textures/items/UntamedCrystal.png delete mode 100644 1.7.2/main/resources/assets/alchemicalwizardry/textures/items/VoidSigil.png delete mode 100644 1.7.2/main/resources/assets/alchemicalwizardry/textures/items/WarriorSigil_activated.png delete mode 100644 1.7.2/main/resources/assets/alchemicalwizardry/textures/items/WarriorSigil_deactivated.png delete mode 100644 1.7.2/main/resources/assets/alchemicalwizardry/textures/items/WaterScribeTool.png delete mode 100644 1.7.2/main/resources/assets/alchemicalwizardry/textures/items/WaterSigil.png delete mode 100644 1.7.2/main/resources/assets/alchemicalwizardry/textures/items/WeakBindingAgent.png delete mode 100644 1.7.2/main/resources/assets/alchemicalwizardry/textures/items/WeakBloodShard.png delete mode 100644 1.7.2/main/resources/assets/alchemicalwizardry/textures/items/WeakFillingAgent.png delete mode 100644 1.7.2/main/resources/assets/alchemicalwizardry/textures/items/WindSigil_activated.png delete mode 100644 1.7.2/main/resources/assets/alchemicalwizardry/textures/items/WindSigil_deactivated.png delete mode 100644 1.7.2/main/resources/assets/alchemicalwizardry/textures/items/activationCrystalAwakened.png delete mode 100644 1.7.2/main/resources/assets/alchemicalwizardry/textures/items/activationCrystalWeak.png delete mode 100644 1.7.2/main/resources/assets/alchemicalwizardry/textures/items/baseAlchemyItemConcentratedCatalyst.png delete mode 100644 1.7.2/main/resources/assets/alchemicalwizardry/textures/items/baseAlchemyItemFracturedBone.png delete mode 100644 1.7.2/main/resources/assets/alchemicalwizardry/textures/items/baseAlchemyItemOffensa.png delete mode 100644 1.7.2/main/resources/assets/alchemicalwizardry/textures/items/baseAlchemyItemOrbisTerrae.png delete mode 100644 1.7.2/main/resources/assets/alchemicalwizardry/textures/items/baseAlchemyItemPotentia.png delete mode 100644 1.7.2/main/resources/assets/alchemicalwizardry/textures/items/baseAlchemyItemPraesidium.png delete mode 100644 1.7.2/main/resources/assets/alchemicalwizardry/textures/items/baseAlchemyItemReductus.png delete mode 100644 1.7.2/main/resources/assets/alchemicalwizardry/textures/items/baseAlchemyItemStrengthenedCatalyst.png delete mode 100644 1.7.2/main/resources/assets/alchemicalwizardry/textures/items/baseAlchemyItemVirtus.png delete mode 100644 1.7.2/main/resources/assets/alchemicalwizardry/textures/items/baseItemCostCore.png delete mode 100644 1.7.2/main/resources/assets/alchemicalwizardry/textures/items/baseItemCrackedRunicPlate.png delete mode 100644 1.7.2/main/resources/assets/alchemicalwizardry/textures/items/baseItemDefaultCore.png delete mode 100644 1.7.2/main/resources/assets/alchemicalwizardry/textures/items/baseItemDefensiveCore.png delete mode 100644 1.7.2/main/resources/assets/alchemicalwizardry/textures/items/baseItemEarthenCore.png delete mode 100644 1.7.2/main/resources/assets/alchemicalwizardry/textures/items/baseItemEmptyCore.png delete mode 100644 1.7.2/main/resources/assets/alchemicalwizardry/textures/items/baseItemEnvironmentalCore.png delete mode 100644 1.7.2/main/resources/assets/alchemicalwizardry/textures/items/baseItemFlameCore.png delete mode 100644 1.7.2/main/resources/assets/alchemicalwizardry/textures/items/baseItemGustCore.png delete mode 100644 1.7.2/main/resources/assets/alchemicalwizardry/textures/items/baseItemIcyCore.png delete mode 100644 1.7.2/main/resources/assets/alchemicalwizardry/textures/items/baseItemInputCable.png delete mode 100644 1.7.2/main/resources/assets/alchemicalwizardry/textures/items/baseItemMagicalesCable.png delete mode 100644 1.7.2/main/resources/assets/alchemicalwizardry/textures/items/baseItemMeleeCore.png delete mode 100644 1.7.2/main/resources/assets/alchemicalwizardry/textures/items/baseItemObsidianBrace.png delete mode 100644 1.7.2/main/resources/assets/alchemicalwizardry/textures/items/baseItemOffensiveCore.png delete mode 100644 1.7.2/main/resources/assets/alchemicalwizardry/textures/items/baseItemOutputCable.png delete mode 100644 1.7.2/main/resources/assets/alchemicalwizardry/textures/items/baseItemParadigmBackPlate.png delete mode 100644 1.7.2/main/resources/assets/alchemicalwizardry/textures/items/baseItemPotencyCore.png delete mode 100644 1.7.2/main/resources/assets/alchemicalwizardry/textures/items/baseItemPowerCore.png delete mode 100644 1.7.2/main/resources/assets/alchemicalwizardry/textures/items/baseItemProjectileCore.png delete mode 100644 1.7.2/main/resources/assets/alchemicalwizardry/textures/items/baseItemQuartzRod.png delete mode 100644 1.7.2/main/resources/assets/alchemicalwizardry/textures/items/baseItemRunicPlate.png delete mode 100644 1.7.2/main/resources/assets/alchemicalwizardry/textures/items/baseItemScribedRunicPlate.png delete mode 100644 1.7.2/main/resources/assets/alchemicalwizardry/textures/items/baseItemSelfCore.png delete mode 100644 1.7.2/main/resources/assets/alchemicalwizardry/textures/items/baseItemStoneBrace.png delete mode 100644 1.7.2/main/resources/assets/alchemicalwizardry/textures/items/baseItemToolCore.png delete mode 100644 1.7.2/main/resources/assets/alchemicalwizardry/textures/items/baseItemWoodBrace.png delete mode 100644 1.7.2/main/resources/assets/alchemicalwizardry/textures/items/bloodBlastOrn.png delete mode 100644 1.7.2/main/resources/assets/alchemicalwizardry/textures/items/focusBloodBlastOrn.png delete mode 100644 1.7.2/main/resources/assets/alchemicalwizardry/textures/items/tYf5ft9.png delete mode 100644 1.7.2/main/resources/assets/alchemicalwizardry/textures/models/AirFloatingBeacon.png delete mode 100644 1.7.2/main/resources/assets/alchemicalwizardry/textures/models/BileDemon.png delete mode 100644 1.7.2/main/resources/assets/alchemicalwizardry/textures/models/Bird.png delete mode 100644 1.7.2/main/resources/assets/alchemicalwizardry/textures/models/BlockSpellEffect.png delete mode 100644 1.7.2/main/resources/assets/alchemicalwizardry/textures/models/BoulderFist.png delete mode 100644 1.7.2/main/resources/assets/alchemicalwizardry/textures/models/Conduit.png delete mode 100644 1.7.2/main/resources/assets/alchemicalwizardry/textures/models/DarkFloatingBeacon.png delete mode 100644 1.7.2/main/resources/assets/alchemicalwizardry/textures/models/EarthFloatingBeacon.png delete mode 100644 1.7.2/main/resources/assets/alchemicalwizardry/textures/models/EnergyBazookaMainProjectile.png delete mode 100644 1.7.2/main/resources/assets/alchemicalwizardry/textures/models/FireFloatingBeacon.png delete mode 100644 1.7.2/main/resources/assets/alchemicalwizardry/textures/models/FloatingBeacon.png delete mode 100644 1.7.2/main/resources/assets/alchemicalwizardry/textures/models/HolyFloatingBeacon.png delete mode 100644 1.7.2/main/resources/assets/alchemicalwizardry/textures/models/IceDemon.png delete mode 100644 1.7.2/main/resources/assets/alchemicalwizardry/textures/models/LowerGuardian.png delete mode 100644 1.7.2/main/resources/assets/alchemicalwizardry/textures/models/Meteor.png delete mode 100644 1.7.2/main/resources/assets/alchemicalwizardry/textures/models/ParadigmBlock.png delete mode 100644 1.7.2/main/resources/assets/alchemicalwizardry/textures/models/Pedestal.png delete mode 100644 1.7.2/main/resources/assets/alchemicalwizardry/textures/models/Plinth.png delete mode 100644 1.7.2/main/resources/assets/alchemicalwizardry/textures/models/ShadeMob.png delete mode 100644 1.7.2/main/resources/assets/alchemicalwizardry/textures/models/SmallEarthGolem.png delete mode 100644 1.7.2/main/resources/assets/alchemicalwizardry/textures/models/SpellEffectEarth.png delete mode 100644 1.7.2/main/resources/assets/alchemicalwizardry/textures/models/SpellEffectFire.png delete mode 100644 1.7.2/main/resources/assets/alchemicalwizardry/textures/models/SpellEffectIce.png delete mode 100644 1.7.2/main/resources/assets/alchemicalwizardry/textures/models/SpellEffectWind.png delete mode 100644 1.7.2/main/resources/assets/alchemicalwizardry/textures/models/SpellEnhancementCost1.png delete mode 100644 1.7.2/main/resources/assets/alchemicalwizardry/textures/models/SpellEnhancementCost2.png delete mode 100644 1.7.2/main/resources/assets/alchemicalwizardry/textures/models/SpellEnhancementCost3.png delete mode 100644 1.7.2/main/resources/assets/alchemicalwizardry/textures/models/SpellEnhancementPotency1.png delete mode 100644 1.7.2/main/resources/assets/alchemicalwizardry/textures/models/SpellEnhancementPotency2.png delete mode 100644 1.7.2/main/resources/assets/alchemicalwizardry/textures/models/SpellEnhancementPotency3.png delete mode 100644 1.7.2/main/resources/assets/alchemicalwizardry/textures/models/SpellEnhancementPower1.png delete mode 100644 1.7.2/main/resources/assets/alchemicalwizardry/textures/models/SpellEnhancementPower2.png delete mode 100644 1.7.2/main/resources/assets/alchemicalwizardry/textures/models/SpellEnhancementPower3.png delete mode 100644 1.7.2/main/resources/assets/alchemicalwizardry/textures/models/SpellModifierDefault.png delete mode 100644 1.7.2/main/resources/assets/alchemicalwizardry/textures/models/SpellModifierDefensive.png delete mode 100644 1.7.2/main/resources/assets/alchemicalwizardry/textures/models/SpellModifierEnvironmental.png delete mode 100644 1.7.2/main/resources/assets/alchemicalwizardry/textures/models/SpellModifierOffensive.png delete mode 100644 1.7.2/main/resources/assets/alchemicalwizardry/textures/models/SpellParadigmMelee.png delete mode 100644 1.7.2/main/resources/assets/alchemicalwizardry/textures/models/SpellParadigmProjectile.png delete mode 100644 1.7.2/main/resources/assets/alchemicalwizardry/textures/models/SpellParadigmSelf.png delete mode 100644 1.7.2/main/resources/assets/alchemicalwizardry/textures/models/SpellParadigmTool.png delete mode 100644 1.7.2/main/resources/assets/alchemicalwizardry/textures/models/WaterFloatingBeacon.png delete mode 100644 1.7.2/main/resources/assets/alchemicalwizardry/textures/models/WingedAngel.png delete mode 100644 1.7.2/main/resources/assets/alchemicalwizardry/textures/models/WingedFireDemon.png delete mode 100644 1.7.2/main/resources/assets/alchemicalwizardry/textures/models/WritingTable.png delete mode 100644 1.7.2/main/resources/assets/alchemicalwizardry/textures/models/altar.png delete mode 100644 1.7.2/main/resources/assets/alchemicalwizardry/textures/models/baseItemToolCore.png delete mode 100644 1.7.2/main/resources/assets/alchemicalwizardry/textures/models/blood.png delete mode 100644 1.7.2/main/resources/assets/forge/lang/en_US.lang delete mode 100644 1.7.2/main/resources/assets/forge/lang/es_ES.lang delete mode 100644 1.7.2/main/resources/assets/forge/lang/fr_FR.lang delete mode 100644 1.7.2/main/resources/mcmod.info delete mode 100644 BM_src/WayofTime/alchemicalWizardry/AlchemicalWizardry.java delete mode 100644 BM_src/WayofTime/alchemicalWizardry/BloodMagicConfiguration.java delete mode 100644 BM_src/WayofTime/alchemicalWizardry/ModBlocks.java delete mode 100644 BM_src/WayofTime/alchemicalWizardry/ModItems.java delete mode 100644 BM_src/WayofTime/alchemicalWizardry/api/alchemy/AlchemicalPotionCreationHandler.java delete mode 100644 BM_src/WayofTime/alchemicalWizardry/api/alchemy/AlchemyPotionHandlerComponent.java delete mode 100644 BM_src/WayofTime/alchemicalWizardry/api/alchemy/AlchemyPotionHelper.java delete mode 100644 BM_src/WayofTime/alchemicalWizardry/api/alchemy/AlchemyRecipe.java delete mode 100644 BM_src/WayofTime/alchemicalWizardry/api/alchemy/AlchemyRecipeRegistry.java delete mode 100644 BM_src/WayofTime/alchemicalWizardry/api/altarRecipeRegistry/AltarRecipe.java delete mode 100644 BM_src/WayofTime/alchemicalWizardry/api/altarRecipeRegistry/AltarRecipeRegistry.java delete mode 100644 BM_src/WayofTime/alchemicalWizardry/api/bindingRegistry/BindingRecipe.java delete mode 100644 BM_src/WayofTime/alchemicalWizardry/api/bindingRegistry/BindingRegistry.java delete mode 100644 BM_src/WayofTime/alchemicalWizardry/api/items/interfaces/ArmourUpgrade.java delete mode 100644 BM_src/WayofTime/alchemicalWizardry/api/items/interfaces/IBindable.java delete mode 100644 BM_src/WayofTime/alchemicalWizardry/api/items/interfaces/IBloodOrb.java delete mode 100644 BM_src/WayofTime/alchemicalWizardry/api/rituals/IMasterRitualStone.java delete mode 100644 BM_src/WayofTime/alchemicalWizardry/api/rituals/IRitualStone.java delete mode 100644 BM_src/WayofTime/alchemicalWizardry/api/rituals/RitualComponent.java delete mode 100644 BM_src/WayofTime/alchemicalWizardry/api/rituals/RitualEffect.java delete mode 100644 BM_src/WayofTime/alchemicalWizardry/api/rituals/Rituals.java delete mode 100644 BM_src/WayofTime/alchemicalWizardry/api/soulNetwork/LifeEssenceNetwork.java delete mode 100644 BM_src/WayofTime/alchemicalWizardry/api/soulNetwork/SoulNetworkHandler.java delete mode 100644 BM_src/WayofTime/alchemicalWizardry/api/summoningRegistry/SummoningHelper.java delete mode 100644 BM_src/WayofTime/alchemicalWizardry/api/summoningRegistry/SummoningRegistry.java delete mode 100644 BM_src/WayofTime/alchemicalWizardry/api/summoningRegistry/SummoningRegistryComponent.java delete mode 100644 BM_src/WayofTime/alchemicalWizardry/client/BMClientRegistry.java delete mode 100644 BM_src/WayofTime/alchemicalWizardry/client/ClientProxy.java delete mode 100644 BM_src/WayofTime/alchemicalWizardry/client/GuiManual.java delete mode 100644 BM_src/WayofTime/alchemicalWizardry/client/RenderItemCopy.java delete mode 100644 BM_src/WayofTime/alchemicalWizardry/client/SmallFontRenderer.java delete mode 100644 BM_src/WayofTime/alchemicalWizardry/client/TurnPageButton.java delete mode 100644 BM_src/WayofTime/alchemicalWizardry/client/book/pages/BlankPage.java delete mode 100644 BM_src/WayofTime/alchemicalWizardry/client/book/pages/BookPage.java delete mode 100644 BM_src/WayofTime/alchemicalWizardry/client/book/pages/ContentsTablePage.java delete mode 100644 BM_src/WayofTime/alchemicalWizardry/client/book/pages/CraftingPage.java delete mode 100644 BM_src/WayofTime/alchemicalWizardry/client/book/pages/FurnacePage.java delete mode 100644 BM_src/WayofTime/alchemicalWizardry/client/book/pages/PicturePage.java delete mode 100644 BM_src/WayofTime/alchemicalWizardry/client/book/pages/SectionPage.java delete mode 100644 BM_src/WayofTime/alchemicalWizardry/client/book/pages/SidebarPage.java delete mode 100644 BM_src/WayofTime/alchemicalWizardry/client/book/pages/TextPage.java delete mode 100644 BM_src/WayofTime/alchemicalWizardry/client/book/pages/TitlePage.java delete mode 100644 BM_src/WayofTime/alchemicalWizardry/common/AlchemicalWizardryEventHooks.java delete mode 100644 BM_src/WayofTime/alchemicalWizardry/common/AlchemicalWizardryFuelHandler.java delete mode 100644 BM_src/WayofTime/alchemicalWizardry/common/AlchemicalWizardryTickHandler.java delete mode 100644 BM_src/WayofTime/alchemicalWizardry/common/ArmourComponent.java delete mode 100644 BM_src/WayofTime/alchemicalWizardry/common/CommonProxy.java delete mode 100644 BM_src/WayofTime/alchemicalWizardry/common/EntityAIFly.java delete mode 100644 BM_src/WayofTime/alchemicalWizardry/common/EntityAITargetAggro.java delete mode 100644 BM_src/WayofTime/alchemicalWizardry/common/EntityAirElemental.java delete mode 100644 BM_src/WayofTime/alchemicalWizardry/common/EnumToolMaterialBoundBlood.java delete mode 100644 BM_src/WayofTime/alchemicalWizardry/common/IBindingAgent.java delete mode 100644 BM_src/WayofTime/alchemicalWizardry/common/ICatalyst.java delete mode 100644 BM_src/WayofTime/alchemicalWizardry/common/IDemon.java delete mode 100644 BM_src/WayofTime/alchemicalWizardry/common/IFillingAgent.java delete mode 100644 BM_src/WayofTime/alchemicalWizardry/common/LifeBucketHandler.java delete mode 100644 BM_src/WayofTime/alchemicalWizardry/common/LifeEssence.java delete mode 100644 BM_src/WayofTime/alchemicalWizardry/common/ModLivingDropsEvent.java delete mode 100644 BM_src/WayofTime/alchemicalWizardry/common/PacketHandler.java delete mode 100644 BM_src/WayofTime/alchemicalWizardry/common/PlinthComponent.java delete mode 100644 BM_src/WayofTime/alchemicalWizardry/common/PotionBoost.java delete mode 100644 BM_src/WayofTime/alchemicalWizardry/common/PotionDrowning.java delete mode 100644 BM_src/WayofTime/alchemicalWizardry/common/PotionFireFuse.java delete mode 100644 BM_src/WayofTime/alchemicalWizardry/common/PotionFlameCloak.java delete mode 100644 BM_src/WayofTime/alchemicalWizardry/common/PotionFlight.java delete mode 100644 BM_src/WayofTime/alchemicalWizardry/common/PotionHeavyHeart.java delete mode 100644 BM_src/WayofTime/alchemicalWizardry/common/PotionIceCloak.java delete mode 100644 BM_src/WayofTime/alchemicalWizardry/common/PotionInhibit.java delete mode 100644 BM_src/WayofTime/alchemicalWizardry/common/PotionPlanarBinding.java delete mode 100644 BM_src/WayofTime/alchemicalWizardry/common/PotionProjectileProtect.java delete mode 100644 BM_src/WayofTime/alchemicalWizardry/common/PotionReciprocation.java delete mode 100644 BM_src/WayofTime/alchemicalWizardry/common/alchemy/CombinedPotionCreationHandler.java delete mode 100644 BM_src/WayofTime/alchemicalWizardry/common/alchemy/CombinedPotionHandlerComponent.java delete mode 100644 BM_src/WayofTime/alchemicalWizardry/common/block/ArmourForge.java delete mode 100644 BM_src/WayofTime/alchemicalWizardry/common/block/BlockAltar.java delete mode 100644 BM_src/WayofTime/alchemicalWizardry/common/block/BlockBloodLightSource.java delete mode 100644 BM_src/WayofTime/alchemicalWizardry/common/block/BlockConduit.java delete mode 100644 BM_src/WayofTime/alchemicalWizardry/common/block/BlockHomHeart.java delete mode 100644 BM_src/WayofTime/alchemicalWizardry/common/block/BlockMasterStone.java delete mode 100644 BM_src/WayofTime/alchemicalWizardry/common/block/BlockOrientable.java delete mode 100644 BM_src/WayofTime/alchemicalWizardry/common/block/BlockPedestal.java delete mode 100644 BM_src/WayofTime/alchemicalWizardry/common/block/BlockPlinth.java delete mode 100644 BM_src/WayofTime/alchemicalWizardry/common/block/BlockSocket.java delete mode 100644 BM_src/WayofTime/alchemicalWizardry/common/block/BlockSpectralContainer.java delete mode 100644 BM_src/WayofTime/alchemicalWizardry/common/block/BlockSpellEffect.java delete mode 100644 BM_src/WayofTime/alchemicalWizardry/common/block/BlockSpellEnhancement.java delete mode 100644 BM_src/WayofTime/alchemicalWizardry/common/block/BlockSpellModifier.java delete mode 100644 BM_src/WayofTime/alchemicalWizardry/common/block/BlockSpellParadigm.java delete mode 100644 BM_src/WayofTime/alchemicalWizardry/common/block/BlockTeleposer.java delete mode 100644 BM_src/WayofTime/alchemicalWizardry/common/block/BlockWritingTable.java delete mode 100644 BM_src/WayofTime/alchemicalWizardry/common/block/BloodRune.java delete mode 100644 BM_src/WayofTime/alchemicalWizardry/common/block/BloodStoneBrick.java delete mode 100644 BM_src/WayofTime/alchemicalWizardry/common/block/EfficiencyRune.java delete mode 100644 BM_src/WayofTime/alchemicalWizardry/common/block/EmptySocket.java delete mode 100644 BM_src/WayofTime/alchemicalWizardry/common/block/IOrientable.java delete mode 100644 BM_src/WayofTime/alchemicalWizardry/common/block/ImperfectRitualStone.java delete mode 100644 BM_src/WayofTime/alchemicalWizardry/common/block/LargeBloodStoneBrick.java delete mode 100644 BM_src/WayofTime/alchemicalWizardry/common/block/LifeEssenceBlock.java delete mode 100644 BM_src/WayofTime/alchemicalWizardry/common/block/LifeEssenceFlowing.java delete mode 100644 BM_src/WayofTime/alchemicalWizardry/common/block/LifeEssenceStill.java delete mode 100644 BM_src/WayofTime/alchemicalWizardry/common/block/RitualStone.java delete mode 100644 BM_src/WayofTime/alchemicalWizardry/common/block/RuneOfSacrifice.java delete mode 100644 BM_src/WayofTime/alchemicalWizardry/common/block/RuneOfSelfSacrifice.java delete mode 100644 BM_src/WayofTime/alchemicalWizardry/common/block/SpectralBlock.java delete mode 100644 BM_src/WayofTime/alchemicalWizardry/common/block/SpeedRune.java delete mode 100644 BM_src/WayofTime/alchemicalWizardry/common/bloodAltarUpgrade/AltarComponent.java delete mode 100644 BM_src/WayofTime/alchemicalWizardry/common/bloodAltarUpgrade/AltarUpgradeComponent.java delete mode 100644 BM_src/WayofTime/alchemicalWizardry/common/bloodAltarUpgrade/UpgradedAltars.java delete mode 100644 BM_src/WayofTime/alchemicalWizardry/common/entity/mob/EntityBileDemon.java delete mode 100644 BM_src/WayofTime/alchemicalWizardry/common/entity/mob/EntityBoulderFist.java delete mode 100644 BM_src/WayofTime/alchemicalWizardry/common/entity/mob/EntityDemon.java delete mode 100644 BM_src/WayofTime/alchemicalWizardry/common/entity/mob/EntityEarthElemental.java delete mode 100644 BM_src/WayofTime/alchemicalWizardry/common/entity/mob/EntityElemental.java delete mode 100644 BM_src/WayofTime/alchemicalWizardry/common/entity/mob/EntityFallenAngel.java delete mode 100644 BM_src/WayofTime/alchemicalWizardry/common/entity/mob/EntityFireElemental.java delete mode 100644 BM_src/WayofTime/alchemicalWizardry/common/entity/mob/EntityHolyElemental.java delete mode 100644 BM_src/WayofTime/alchemicalWizardry/common/entity/mob/EntityIceDemon.java delete mode 100644 BM_src/WayofTime/alchemicalWizardry/common/entity/mob/EntityLowerGuardian.java delete mode 100644 BM_src/WayofTime/alchemicalWizardry/common/entity/mob/EntityShade.java delete mode 100644 BM_src/WayofTime/alchemicalWizardry/common/entity/mob/EntityShadeElemental.java delete mode 100644 BM_src/WayofTime/alchemicalWizardry/common/entity/mob/EntitySmallEarthGolem.java delete mode 100644 BM_src/WayofTime/alchemicalWizardry/common/entity/mob/EntityTestDemon.java delete mode 100644 BM_src/WayofTime/alchemicalWizardry/common/entity/mob/EntityWaterElemental.java delete mode 100644 BM_src/WayofTime/alchemicalWizardry/common/entity/mob/EntityWingedFireDemon.java delete mode 100644 BM_src/WayofTime/alchemicalWizardry/common/entity/mob/ai/PathNavigateFlying.java delete mode 100644 BM_src/WayofTime/alchemicalWizardry/common/entity/projectile/EnergyBlastProjectile.java delete mode 100644 BM_src/WayofTime/alchemicalWizardry/common/entity/projectile/EntityBloodLightProjectile.java delete mode 100644 BM_src/WayofTime/alchemicalWizardry/common/entity/projectile/EntityEnergyBazookaMainProjectile.java delete mode 100644 BM_src/WayofTime/alchemicalWizardry/common/entity/projectile/EntityEnergyBazookaSecondaryProjectile.java delete mode 100644 BM_src/WayofTime/alchemicalWizardry/common/entity/projectile/EntityMeteor.java delete mode 100644 BM_src/WayofTime/alchemicalWizardry/common/entity/projectile/ExplosionProjectile.java delete mode 100644 BM_src/WayofTime/alchemicalWizardry/common/entity/projectile/FireProjectile.java delete mode 100644 BM_src/WayofTime/alchemicalWizardry/common/entity/projectile/HolyProjectile.java delete mode 100644 BM_src/WayofTime/alchemicalWizardry/common/entity/projectile/IceProjectile.java delete mode 100644 BM_src/WayofTime/alchemicalWizardry/common/entity/projectile/LightningBoltProjectile.java delete mode 100644 BM_src/WayofTime/alchemicalWizardry/common/entity/projectile/MudProjectile.java delete mode 100644 BM_src/WayofTime/alchemicalWizardry/common/entity/projectile/TeleportProjectile.java delete mode 100644 BM_src/WayofTime/alchemicalWizardry/common/entity/projectile/WaterProjectile.java delete mode 100644 BM_src/WayofTime/alchemicalWizardry/common/entity/projectile/WindGustProjectile.java delete mode 100644 BM_src/WayofTime/alchemicalWizardry/common/items/AWBaseItems.java delete mode 100644 BM_src/WayofTime/alchemicalWizardry/common/items/ActivationCrystal.java delete mode 100644 BM_src/WayofTime/alchemicalWizardry/common/items/AirInk.java delete mode 100644 BM_src/WayofTime/alchemicalWizardry/common/items/AirScribeTool.java delete mode 100644 BM_src/WayofTime/alchemicalWizardry/common/items/ApprenticeBloodOrb.java delete mode 100644 BM_src/WayofTime/alchemicalWizardry/common/items/ArchmageBloodOrb.java delete mode 100644 BM_src/WayofTime/alchemicalWizardry/common/items/ArmourInhibitor.java delete mode 100644 BM_src/WayofTime/alchemicalWizardry/common/items/BlankSpell.java delete mode 100644 BM_src/WayofTime/alchemicalWizardry/common/items/BloodShard.java delete mode 100644 BM_src/WayofTime/alchemicalWizardry/common/items/BloodboundSword.java delete mode 100644 BM_src/WayofTime/alchemicalWizardry/common/items/BoundArmour.java delete mode 100644 BM_src/WayofTime/alchemicalWizardry/common/items/BoundAxe.java delete mode 100644 BM_src/WayofTime/alchemicalWizardry/common/items/BoundPickaxe.java delete mode 100644 BM_src/WayofTime/alchemicalWizardry/common/items/BoundShovel.java delete mode 100644 BM_src/WayofTime/alchemicalWizardry/common/items/CheatyItem.java delete mode 100644 BM_src/WayofTime/alchemicalWizardry/common/items/DaggerOfSacrifice.java delete mode 100644 BM_src/WayofTime/alchemicalWizardry/common/items/DemonPlacer.java delete mode 100644 BM_src/WayofTime/alchemicalWizardry/common/items/DemonicTelepositionFocus.java delete mode 100644 BM_src/WayofTime/alchemicalWizardry/common/items/DuskScribeTool.java delete mode 100644 BM_src/WayofTime/alchemicalWizardry/common/items/EarthInk.java delete mode 100644 BM_src/WayofTime/alchemicalWizardry/common/items/EarthScribeTool.java delete mode 100644 BM_src/WayofTime/alchemicalWizardry/common/items/EnergyBattery.java delete mode 100644 BM_src/WayofTime/alchemicalWizardry/common/items/EnergyBazooka.java delete mode 100644 BM_src/WayofTime/alchemicalWizardry/common/items/EnergyBlast.java delete mode 100644 BM_src/WayofTime/alchemicalWizardry/common/items/EnergyItems.java delete mode 100644 BM_src/WayofTime/alchemicalWizardry/common/items/EnergySword.java delete mode 100644 BM_src/WayofTime/alchemicalWizardry/common/items/FireInk.java delete mode 100644 BM_src/WayofTime/alchemicalWizardry/common/items/FireScribeTool.java delete mode 100644 BM_src/WayofTime/alchemicalWizardry/common/items/ItemAlchemyBase.java delete mode 100644 BM_src/WayofTime/alchemicalWizardry/common/items/ItemBloodRuneBlock.java delete mode 100644 BM_src/WayofTime/alchemicalWizardry/common/items/ItemComplexSpellCrystal.java delete mode 100644 BM_src/WayofTime/alchemicalWizardry/common/items/ItemComponents.java delete mode 100644 BM_src/WayofTime/alchemicalWizardry/common/items/ItemDiabloKey.java delete mode 100644 BM_src/WayofTime/alchemicalWizardry/common/items/ItemRitualDiviner.java delete mode 100644 BM_src/WayofTime/alchemicalWizardry/common/items/ItemSpellEffectBlock.java delete mode 100644 BM_src/WayofTime/alchemicalWizardry/common/items/ItemSpellEnhancementBlock.java delete mode 100644 BM_src/WayofTime/alchemicalWizardry/common/items/ItemSpellModifierBlock.java delete mode 100644 BM_src/WayofTime/alchemicalWizardry/common/items/ItemSpellParadigmBlock.java delete mode 100644 BM_src/WayofTime/alchemicalWizardry/common/items/LavaCrystal.java delete mode 100644 BM_src/WayofTime/alchemicalWizardry/common/items/LifeBucket.java delete mode 100644 BM_src/WayofTime/alchemicalWizardry/common/items/MagicianBloodOrb.java delete mode 100644 BM_src/WayofTime/alchemicalWizardry/common/items/MasterBloodOrb.java delete mode 100644 BM_src/WayofTime/alchemicalWizardry/common/items/OrbOfTesting.java delete mode 100644 BM_src/WayofTime/alchemicalWizardry/common/items/ReinforcedTelepositionFocus.java delete mode 100644 BM_src/WayofTime/alchemicalWizardry/common/items/SacrificialDagger.java delete mode 100644 BM_src/WayofTime/alchemicalWizardry/common/items/ScribeTool.java delete mode 100644 BM_src/WayofTime/alchemicalWizardry/common/items/TelepositionFocus.java delete mode 100644 BM_src/WayofTime/alchemicalWizardry/common/items/WaterInk.java delete mode 100644 BM_src/WayofTime/alchemicalWizardry/common/items/WaterScribeTool.java delete mode 100644 BM_src/WayofTime/alchemicalWizardry/common/items/books/ItemBloodArchives.java delete mode 100644 BM_src/WayofTime/alchemicalWizardry/common/items/forestry/ItemBloodFrame.java delete mode 100644 BM_src/WayofTime/alchemicalWizardry/common/items/potion/AlchemyFlask.java delete mode 100644 BM_src/WayofTime/alchemicalWizardry/common/items/potion/AlchemyReagent.java delete mode 100644 BM_src/WayofTime/alchemicalWizardry/common/items/potion/AverageLengtheningCatalyst.java delete mode 100644 BM_src/WayofTime/alchemicalWizardry/common/items/potion/AveragePowerCatalyst.java delete mode 100644 BM_src/WayofTime/alchemicalWizardry/common/items/potion/EnhancedFillingAgent.java delete mode 100644 BM_src/WayofTime/alchemicalWizardry/common/items/potion/EnhancedTelepositionFocus.java delete mode 100644 BM_src/WayofTime/alchemicalWizardry/common/items/potion/GreaterLengtheningCatalyst.java delete mode 100644 BM_src/WayofTime/alchemicalWizardry/common/items/potion/GreaterPowerCatalyst.java delete mode 100644 BM_src/WayofTime/alchemicalWizardry/common/items/potion/LengtheningCatalyst.java delete mode 100644 BM_src/WayofTime/alchemicalWizardry/common/items/potion/MundaneLengtheningCatalyst.java delete mode 100644 BM_src/WayofTime/alchemicalWizardry/common/items/potion/MundanePowerCatalyst.java delete mode 100644 BM_src/WayofTime/alchemicalWizardry/common/items/potion/PowerCatalyst.java delete mode 100644 BM_src/WayofTime/alchemicalWizardry/common/items/potion/StandardBindingAgent.java delete mode 100644 BM_src/WayofTime/alchemicalWizardry/common/items/potion/StandardFillingAgent.java delete mode 100644 BM_src/WayofTime/alchemicalWizardry/common/items/potion/WeakBindingAgent.java delete mode 100644 BM_src/WayofTime/alchemicalWizardry/common/items/potion/WeakFillingAgent.java delete mode 100644 BM_src/WayofTime/alchemicalWizardry/common/items/sigil/AirSigil.java delete mode 100644 BM_src/WayofTime/alchemicalWizardry/common/items/sigil/DivinationSigil.java delete mode 100644 BM_src/WayofTime/alchemicalWizardry/common/items/sigil/ItemBloodLightSigil.java delete mode 100644 BM_src/WayofTime/alchemicalWizardry/common/items/sigil/ItemSigilOfSupression.java delete mode 100644 BM_src/WayofTime/alchemicalWizardry/common/items/sigil/LavaSigil.java delete mode 100644 BM_src/WayofTime/alchemicalWizardry/common/items/sigil/SigilOfElementalAffinity.java delete mode 100644 BM_src/WayofTime/alchemicalWizardry/common/items/sigil/SigilOfGrowth.java delete mode 100644 BM_src/WayofTime/alchemicalWizardry/common/items/sigil/SigilOfHaste.java delete mode 100644 BM_src/WayofTime/alchemicalWizardry/common/items/sigil/SigilOfHolding.java delete mode 100644 BM_src/WayofTime/alchemicalWizardry/common/items/sigil/SigilOfMagnetism.java delete mode 100644 BM_src/WayofTime/alchemicalWizardry/common/items/sigil/SigilOfTheBridge.java delete mode 100644 BM_src/WayofTime/alchemicalWizardry/common/items/sigil/SigilOfTheFastMiner.java delete mode 100644 BM_src/WayofTime/alchemicalWizardry/common/items/sigil/SigilOfWind.java delete mode 100644 BM_src/WayofTime/alchemicalWizardry/common/items/sigil/VoidSigil.java delete mode 100644 BM_src/WayofTime/alchemicalWizardry/common/items/sigil/WaterSigil.java delete mode 100644 BM_src/WayofTime/alchemicalWizardry/common/items/thaumcraft/FocusBase.java delete mode 100644 BM_src/WayofTime/alchemicalWizardry/common/items/thaumcraft/FocusBloodBlast.java delete mode 100644 BM_src/WayofTime/alchemicalWizardry/common/items/thaumcraft/FocusGravityWell.java delete mode 100644 BM_src/WayofTime/alchemicalWizardry/common/items/thaumcraft/ItemSanguineArmour.java delete mode 100644 BM_src/WayofTime/alchemicalWizardry/common/mcmod.info delete mode 100644 BM_src/WayofTime/alchemicalWizardry/common/renderer/block/RenderConduit.java delete mode 100644 BM_src/WayofTime/alchemicalWizardry/common/renderer/block/RenderPedestal.java delete mode 100644 BM_src/WayofTime/alchemicalWizardry/common/renderer/block/RenderPlinth.java delete mode 100644 BM_src/WayofTime/alchemicalWizardry/common/renderer/block/RenderSpellEffectBlock.java delete mode 100644 BM_src/WayofTime/alchemicalWizardry/common/renderer/block/RenderSpellEnhancementBlock.java delete mode 100644 BM_src/WayofTime/alchemicalWizardry/common/renderer/block/RenderSpellModifierBlock.java delete mode 100644 BM_src/WayofTime/alchemicalWizardry/common/renderer/block/RenderSpellParadigmBlock.java delete mode 100644 BM_src/WayofTime/alchemicalWizardry/common/renderer/block/RenderWritingTable.java delete mode 100644 BM_src/WayofTime/alchemicalWizardry/common/renderer/block/TEAltarRenderer.java delete mode 100644 BM_src/WayofTime/alchemicalWizardry/common/renderer/block/itemRender/TEAltarItemRenderer.java delete mode 100644 BM_src/WayofTime/alchemicalWizardry/common/renderer/block/itemRender/TEConduitItemRenderer.java delete mode 100644 BM_src/WayofTime/alchemicalWizardry/common/renderer/block/itemRender/TESpellEffectBlockItemRenderer.java delete mode 100644 BM_src/WayofTime/alchemicalWizardry/common/renderer/block/itemRender/TESpellEnhancementBlockItemRenderer.java delete mode 100644 BM_src/WayofTime/alchemicalWizardry/common/renderer/block/itemRender/TESpellModifierBlockItemRenderer.java delete mode 100644 BM_src/WayofTime/alchemicalWizardry/common/renderer/block/itemRender/TESpellParadigmBlockItemRenderer.java delete mode 100644 BM_src/WayofTime/alchemicalWizardry/common/renderer/block/itemRender/TEWritingTableItemRenderer.java delete mode 100644 BM_src/WayofTime/alchemicalWizardry/common/renderer/mob/RenderBileDemon.java delete mode 100644 BM_src/WayofTime/alchemicalWizardry/common/renderer/mob/RenderBoulderFist.java delete mode 100644 BM_src/WayofTime/alchemicalWizardry/common/renderer/mob/RenderElemental.java delete mode 100644 BM_src/WayofTime/alchemicalWizardry/common/renderer/mob/RenderFallenAngel.java delete mode 100644 BM_src/WayofTime/alchemicalWizardry/common/renderer/mob/RenderIceDemon.java delete mode 100644 BM_src/WayofTime/alchemicalWizardry/common/renderer/mob/RenderLowerGuardian.java delete mode 100644 BM_src/WayofTime/alchemicalWizardry/common/renderer/mob/RenderShade.java delete mode 100644 BM_src/WayofTime/alchemicalWizardry/common/renderer/mob/RenderSmallEarthGolem.java delete mode 100644 BM_src/WayofTime/alchemicalWizardry/common/renderer/mob/RenderWingedFireDemon.java delete mode 100644 BM_src/WayofTime/alchemicalWizardry/common/renderer/model/ModelBileDemon.java delete mode 100644 BM_src/WayofTime/alchemicalWizardry/common/renderer/model/ModelBloodAltar.java delete mode 100644 BM_src/WayofTime/alchemicalWizardry/common/renderer/model/ModelBoulderFist.java delete mode 100644 BM_src/WayofTime/alchemicalWizardry/common/renderer/model/ModelConduit.java delete mode 100644 BM_src/WayofTime/alchemicalWizardry/common/renderer/model/ModelElemental.java delete mode 100644 BM_src/WayofTime/alchemicalWizardry/common/renderer/model/ModelEnergyBazookaMainProjectile.java delete mode 100644 BM_src/WayofTime/alchemicalWizardry/common/renderer/model/ModelFallenAngel.java delete mode 100644 BM_src/WayofTime/alchemicalWizardry/common/renderer/model/ModelIceDemon.java delete mode 100644 BM_src/WayofTime/alchemicalWizardry/common/renderer/model/ModelLowerGuardian.java delete mode 100644 BM_src/WayofTime/alchemicalWizardry/common/renderer/model/ModelMeteor.java delete mode 100644 BM_src/WayofTime/alchemicalWizardry/common/renderer/model/ModelPedestal.java delete mode 100644 BM_src/WayofTime/alchemicalWizardry/common/renderer/model/ModelPlinth.java delete mode 100644 BM_src/WayofTime/alchemicalWizardry/common/renderer/model/ModelShade.java delete mode 100644 BM_src/WayofTime/alchemicalWizardry/common/renderer/model/ModelSmallEarthGolem.java delete mode 100644 BM_src/WayofTime/alchemicalWizardry/common/renderer/model/ModelSpellEffectBlock.java delete mode 100644 BM_src/WayofTime/alchemicalWizardry/common/renderer/model/ModelSpellEnhancementBlock.java delete mode 100644 BM_src/WayofTime/alchemicalWizardry/common/renderer/model/ModelSpellModifierBlock.java delete mode 100644 BM_src/WayofTime/alchemicalWizardry/common/renderer/model/ModelSpellParadigmBlock.java delete mode 100644 BM_src/WayofTime/alchemicalWizardry/common/renderer/model/ModelWingedFireDemon.java delete mode 100644 BM_src/WayofTime/alchemicalWizardry/common/renderer/model/ModelWritingTable.java delete mode 100644 BM_src/WayofTime/alchemicalWizardry/common/renderer/projectile/RenderEnergyBazookaMainProjectile.java delete mode 100644 BM_src/WayofTime/alchemicalWizardry/common/renderer/projectile/RenderEnergyBlastProjectile.java delete mode 100644 BM_src/WayofTime/alchemicalWizardry/common/renderer/projectile/RenderFireProjectile.java delete mode 100644 BM_src/WayofTime/alchemicalWizardry/common/renderer/projectile/RenderMeteor.java delete mode 100644 BM_src/WayofTime/alchemicalWizardry/common/rituals/RitualEffectAnimalGrowth.java delete mode 100644 BM_src/WayofTime/alchemicalWizardry/common/rituals/RitualEffectApiaryOverclock.java delete mode 100644 BM_src/WayofTime/alchemicalWizardry/common/rituals/RitualEffectAutoAlchemy.java delete mode 100644 BM_src/WayofTime/alchemicalWizardry/common/rituals/RitualEffectBiomeChanger.java delete mode 100644 BM_src/WayofTime/alchemicalWizardry/common/rituals/RitualEffectContainment.java delete mode 100644 BM_src/WayofTime/alchemicalWizardry/common/rituals/RitualEffectCrushing.java delete mode 100644 BM_src/WayofTime/alchemicalWizardry/common/rituals/RitualEffectEnhancedAlchemy.java delete mode 100644 BM_src/WayofTime/alchemicalWizardry/common/rituals/RitualEffectExpulsion.java delete mode 100644 BM_src/WayofTime/alchemicalWizardry/common/rituals/RitualEffectFeatheredEarth.java delete mode 100644 BM_src/WayofTime/alchemicalWizardry/common/rituals/RitualEffectFeatheredKnife.java delete mode 100644 BM_src/WayofTime/alchemicalWizardry/common/rituals/RitualEffectFlight.java delete mode 100644 BM_src/WayofTime/alchemicalWizardry/common/rituals/RitualEffectGrowth.java delete mode 100644 BM_src/WayofTime/alchemicalWizardry/common/rituals/RitualEffectHealing.java delete mode 100644 BM_src/WayofTime/alchemicalWizardry/common/rituals/RitualEffectInterdiction.java delete mode 100644 BM_src/WayofTime/alchemicalWizardry/common/rituals/RitualEffectItemSuction.java delete mode 100644 BM_src/WayofTime/alchemicalWizardry/common/rituals/RitualEffectJumping.java delete mode 100644 BM_src/WayofTime/alchemicalWizardry/common/rituals/RitualEffectLava.java delete mode 100644 BM_src/WayofTime/alchemicalWizardry/common/rituals/RitualEffectLeap.java delete mode 100644 BM_src/WayofTime/alchemicalWizardry/common/rituals/RitualEffectMagnetic.java delete mode 100644 BM_src/WayofTime/alchemicalWizardry/common/rituals/RitualEffectSoulBound.java delete mode 100644 BM_src/WayofTime/alchemicalWizardry/common/rituals/RitualEffectSummonMeteor.java delete mode 100644 BM_src/WayofTime/alchemicalWizardry/common/rituals/RitualEffectSupression.java delete mode 100644 BM_src/WayofTime/alchemicalWizardry/common/rituals/RitualEffectUnbinding.java delete mode 100644 BM_src/WayofTime/alchemicalWizardry/common/rituals/RitualEffectWater.java delete mode 100644 BM_src/WayofTime/alchemicalWizardry/common/rituals/RitualEffectWellOfSuffering.java delete mode 100644 BM_src/WayofTime/alchemicalWizardry/common/spell/complex/EntitySpellProjectile.java delete mode 100644 BM_src/WayofTime/alchemicalWizardry/common/spell/complex/SpellModifier.java delete mode 100644 BM_src/WayofTime/alchemicalWizardry/common/spell/complex/SpellModifierDefault.java delete mode 100644 BM_src/WayofTime/alchemicalWizardry/common/spell/complex/SpellModifierDefensive.java delete mode 100644 BM_src/WayofTime/alchemicalWizardry/common/spell/complex/SpellModifierEnvironmental.java delete mode 100644 BM_src/WayofTime/alchemicalWizardry/common/spell/complex/SpellModifierOffensive.java delete mode 100644 BM_src/WayofTime/alchemicalWizardry/common/spell/complex/SpellParadigm.java delete mode 100644 BM_src/WayofTime/alchemicalWizardry/common/spell/complex/SpellParadigmMelee.java delete mode 100644 BM_src/WayofTime/alchemicalWizardry/common/spell/complex/SpellParadigmProjectile.java delete mode 100644 BM_src/WayofTime/alchemicalWizardry/common/spell/complex/SpellParadigmSelf.java delete mode 100644 BM_src/WayofTime/alchemicalWizardry/common/spell/complex/effect/SpellEffect.java delete mode 100644 BM_src/WayofTime/alchemicalWizardry/common/spell/complex/effect/SpellEffectEarth.java delete mode 100644 BM_src/WayofTime/alchemicalWizardry/common/spell/complex/effect/SpellEffectFire.java delete mode 100644 BM_src/WayofTime/alchemicalWizardry/common/spell/complex/effect/SpellEffectIce.java delete mode 100644 BM_src/WayofTime/alchemicalWizardry/common/spell/complex/effect/SpellEffectWind.java delete mode 100644 BM_src/WayofTime/alchemicalWizardry/common/spell/complex/effect/SpellHelper.java delete mode 100644 BM_src/WayofTime/alchemicalWizardry/common/spell/complex/effect/impactEffects/ExtrapolatedMeleeEntityEffect.java delete mode 100644 BM_src/WayofTime/alchemicalWizardry/common/spell/complex/effect/impactEffects/IMeleeSpellEntityEffect.java delete mode 100644 BM_src/WayofTime/alchemicalWizardry/common/spell/complex/effect/impactEffects/IMeleeSpellWorldEffect.java delete mode 100644 BM_src/WayofTime/alchemicalWizardry/common/spell/complex/effect/impactEffects/IProjectileImpactEffect.java delete mode 100644 BM_src/WayofTime/alchemicalWizardry/common/spell/complex/effect/impactEffects/IProjectileUpdateEffect.java delete mode 100644 BM_src/WayofTime/alchemicalWizardry/common/spell/complex/effect/impactEffects/ISelfSpellEffect.java delete mode 100644 BM_src/WayofTime/alchemicalWizardry/common/spell/complex/effect/impactEffects/MeleeSpellCenteredWorldEffect.java delete mode 100644 BM_src/WayofTime/alchemicalWizardry/common/spell/complex/effect/impactEffects/MeleeSpellWorldEffect.java delete mode 100644 BM_src/WayofTime/alchemicalWizardry/common/spell/complex/effect/impactEffects/ProjectileImpactEffect.java delete mode 100644 BM_src/WayofTime/alchemicalWizardry/common/spell/complex/effect/impactEffects/ProjectileUpdateEffect.java delete mode 100644 BM_src/WayofTime/alchemicalWizardry/common/spell/complex/effect/impactEffects/SelfSpellEffect.java delete mode 100644 BM_src/WayofTime/alchemicalWizardry/common/spell/complex/effect/impactEffects/earth/MeleeDefaultEarth.java delete mode 100644 BM_src/WayofTime/alchemicalWizardry/common/spell/complex/effect/impactEffects/earth/MeleeDefensiveEarth.java delete mode 100644 BM_src/WayofTime/alchemicalWizardry/common/spell/complex/effect/impactEffects/earth/MeleeEnvironmentalEarth.java delete mode 100644 BM_src/WayofTime/alchemicalWizardry/common/spell/complex/effect/impactEffects/earth/MeleeOffensiveEarth.java delete mode 100644 BM_src/WayofTime/alchemicalWizardry/common/spell/complex/effect/impactEffects/earth/ProjectileDefaultEarth.java delete mode 100644 BM_src/WayofTime/alchemicalWizardry/common/spell/complex/effect/impactEffects/earth/ProjectileDefensiveEarth.java delete mode 100644 BM_src/WayofTime/alchemicalWizardry/common/spell/complex/effect/impactEffects/earth/ProjectileEnvironmentalEarth.java delete mode 100644 BM_src/WayofTime/alchemicalWizardry/common/spell/complex/effect/impactEffects/earth/ProjectileOffensiveEarth.java delete mode 100644 BM_src/WayofTime/alchemicalWizardry/common/spell/complex/effect/impactEffects/earth/SelfDefaultEarth.java delete mode 100644 BM_src/WayofTime/alchemicalWizardry/common/spell/complex/effect/impactEffects/earth/SelfDefensiveEarth.java delete mode 100644 BM_src/WayofTime/alchemicalWizardry/common/spell/complex/effect/impactEffects/earth/SelfEnvironmentalEarth.java delete mode 100644 BM_src/WayofTime/alchemicalWizardry/common/spell/complex/effect/impactEffects/earth/SelfOffensiveEarth.java delete mode 100644 BM_src/WayofTime/alchemicalWizardry/common/spell/complex/effect/impactEffects/fire/MeleeDefaultFire.java delete mode 100644 BM_src/WayofTime/alchemicalWizardry/common/spell/complex/effect/impactEffects/fire/MeleeDefensiveFire.java delete mode 100644 BM_src/WayofTime/alchemicalWizardry/common/spell/complex/effect/impactEffects/fire/MeleeEnvironmentalFire.java delete mode 100644 BM_src/WayofTime/alchemicalWizardry/common/spell/complex/effect/impactEffects/fire/MeleeOffensiveFire.java delete mode 100644 BM_src/WayofTime/alchemicalWizardry/common/spell/complex/effect/impactEffects/fire/ProjectileDefaultFire.java delete mode 100644 BM_src/WayofTime/alchemicalWizardry/common/spell/complex/effect/impactEffects/fire/ProjectileDefensiveFire.java delete mode 100644 BM_src/WayofTime/alchemicalWizardry/common/spell/complex/effect/impactEffects/fire/ProjectileEnvironmentalFire.java delete mode 100644 BM_src/WayofTime/alchemicalWizardry/common/spell/complex/effect/impactEffects/fire/ProjectileOffensiveFire.java delete mode 100644 BM_src/WayofTime/alchemicalWizardry/common/spell/complex/effect/impactEffects/fire/SelfDefaultFire.java delete mode 100644 BM_src/WayofTime/alchemicalWizardry/common/spell/complex/effect/impactEffects/fire/SelfDefensiveFire.java delete mode 100644 BM_src/WayofTime/alchemicalWizardry/common/spell/complex/effect/impactEffects/fire/SelfEnvironmentalFire.java delete mode 100644 BM_src/WayofTime/alchemicalWizardry/common/spell/complex/effect/impactEffects/fire/SelfOffensiveFire.java delete mode 100644 BM_src/WayofTime/alchemicalWizardry/common/spell/complex/effect/impactEffects/ice/MeleeDefaultIce.java delete mode 100644 BM_src/WayofTime/alchemicalWizardry/common/spell/complex/effect/impactEffects/ice/MeleeDefensiveIce.java delete mode 100644 BM_src/WayofTime/alchemicalWizardry/common/spell/complex/effect/impactEffects/ice/MeleeEnvironmentalIce.java delete mode 100644 BM_src/WayofTime/alchemicalWizardry/common/spell/complex/effect/impactEffects/ice/MeleeOffensiveIce.java delete mode 100644 BM_src/WayofTime/alchemicalWizardry/common/spell/complex/effect/impactEffects/ice/ProjectileDefaultIce.java delete mode 100644 BM_src/WayofTime/alchemicalWizardry/common/spell/complex/effect/impactEffects/ice/ProjectileDefensiveIce.java delete mode 100644 BM_src/WayofTime/alchemicalWizardry/common/spell/complex/effect/impactEffects/ice/ProjectileEnvironmentalIce.java delete mode 100644 BM_src/WayofTime/alchemicalWizardry/common/spell/complex/effect/impactEffects/ice/ProjectileOffensiveIce.java delete mode 100644 BM_src/WayofTime/alchemicalWizardry/common/spell/complex/effect/impactEffects/ice/SelfDefaultIce.java delete mode 100644 BM_src/WayofTime/alchemicalWizardry/common/spell/complex/effect/impactEffects/ice/SelfDefensiveIce.java delete mode 100644 BM_src/WayofTime/alchemicalWizardry/common/spell/complex/effect/impactEffects/ice/SelfEnvironmentalIce.java delete mode 100644 BM_src/WayofTime/alchemicalWizardry/common/spell/complex/effect/impactEffects/ice/SelfOffensiveIce.java delete mode 100644 BM_src/WayofTime/alchemicalWizardry/common/spell/complex/effect/impactEffects/wind/MeleeDefaultWind.java delete mode 100644 BM_src/WayofTime/alchemicalWizardry/common/spell/complex/effect/impactEffects/wind/MeleeDefensiveWind.java delete mode 100644 BM_src/WayofTime/alchemicalWizardry/common/spell/complex/effect/impactEffects/wind/MeleeEnvironmentalWind.java delete mode 100644 BM_src/WayofTime/alchemicalWizardry/common/spell/complex/effect/impactEffects/wind/MeleeOffensiveWind.java delete mode 100644 BM_src/WayofTime/alchemicalWizardry/common/spell/complex/effect/impactEffects/wind/ProjectileDefaultWind.java delete mode 100644 BM_src/WayofTime/alchemicalWizardry/common/spell/complex/effect/impactEffects/wind/ProjectileEnvironmentalWind.java delete mode 100644 BM_src/WayofTime/alchemicalWizardry/common/spell/complex/effect/impactEffects/wind/ProjectileOffensiveWind.java delete mode 100644 BM_src/WayofTime/alchemicalWizardry/common/spell/complex/effect/impactEffects/wind/SelfDefaultWind.java delete mode 100644 BM_src/WayofTime/alchemicalWizardry/common/spell/complex/effect/impactEffects/wind/SelfDefensiveWind.java delete mode 100644 BM_src/WayofTime/alchemicalWizardry/common/spell/complex/effect/impactEffects/wind/SelfEnvironmentalWind.java delete mode 100644 BM_src/WayofTime/alchemicalWizardry/common/spell/complex/effect/impactEffects/wind/SelfOffensiveWind.java delete mode 100644 BM_src/WayofTime/alchemicalWizardry/common/spell/complex/enhancement/SpellEnhancement.java delete mode 100644 BM_src/WayofTime/alchemicalWizardry/common/spell/complex/enhancement/SpellEnhancementCost.java delete mode 100644 BM_src/WayofTime/alchemicalWizardry/common/spell/complex/enhancement/SpellEnhancementPotency.java delete mode 100644 BM_src/WayofTime/alchemicalWizardry/common/spell/complex/enhancement/SpellEnhancementPower.java delete mode 100644 BM_src/WayofTime/alchemicalWizardry/common/spell/simple/HomSpell.java delete mode 100644 BM_src/WayofTime/alchemicalWizardry/common/spell/simple/HomSpellComponent.java delete mode 100644 BM_src/WayofTime/alchemicalWizardry/common/spell/simple/HomSpellRegistry.java delete mode 100644 BM_src/WayofTime/alchemicalWizardry/common/spell/simple/ISimpleSpell.java delete mode 100644 BM_src/WayofTime/alchemicalWizardry/common/spell/simple/SpellEarthBender.java delete mode 100644 BM_src/WayofTime/alchemicalWizardry/common/spell/simple/SpellExplosions.java delete mode 100644 BM_src/WayofTime/alchemicalWizardry/common/spell/simple/SpellFireBurst.java delete mode 100644 BM_src/WayofTime/alchemicalWizardry/common/spell/simple/SpellFrozenWater.java delete mode 100644 BM_src/WayofTime/alchemicalWizardry/common/spell/simple/SpellHolyBlast.java delete mode 100644 BM_src/WayofTime/alchemicalWizardry/common/spell/simple/SpellLightningBolt.java delete mode 100644 BM_src/WayofTime/alchemicalWizardry/common/spell/simple/SpellTeleport.java delete mode 100644 BM_src/WayofTime/alchemicalWizardry/common/spell/simple/SpellWateryGrave.java delete mode 100644 BM_src/WayofTime/alchemicalWizardry/common/spell/simple/SpellWindGust.java delete mode 100644 BM_src/WayofTime/alchemicalWizardry/common/summoning/SummoningHelperAW.java delete mode 100644 BM_src/WayofTime/alchemicalWizardry/common/summoning/meteor/MeteorParadigm.java delete mode 100644 BM_src/WayofTime/alchemicalWizardry/common/summoning/meteor/MeteorParadigmComponent.java delete mode 100644 BM_src/WayofTime/alchemicalWizardry/common/summoning/meteor/MeteorRegistry.java delete mode 100644 BM_src/WayofTime/alchemicalWizardry/common/tileEntity/TEAltar.java delete mode 100644 BM_src/WayofTime/alchemicalWizardry/common/tileEntity/TEConduit.java delete mode 100644 BM_src/WayofTime/alchemicalWizardry/common/tileEntity/TEHomHeart.java delete mode 100644 BM_src/WayofTime/alchemicalWizardry/common/tileEntity/TEHomHeartRenderer.java delete mode 100644 BM_src/WayofTime/alchemicalWizardry/common/tileEntity/TEImperfectRitualStone.java delete mode 100644 BM_src/WayofTime/alchemicalWizardry/common/tileEntity/TEMasterStone.java delete mode 100644 BM_src/WayofTime/alchemicalWizardry/common/tileEntity/TEOrientable.java delete mode 100644 BM_src/WayofTime/alchemicalWizardry/common/tileEntity/TEPedestal.java delete mode 100644 BM_src/WayofTime/alchemicalWizardry/common/tileEntity/TEPlinth.java delete mode 100644 BM_src/WayofTime/alchemicalWizardry/common/tileEntity/TESocket.java delete mode 100644 BM_src/WayofTime/alchemicalWizardry/common/tileEntity/TESpectralContainer.java delete mode 100644 BM_src/WayofTime/alchemicalWizardry/common/tileEntity/TESpellBlock.java delete mode 100644 BM_src/WayofTime/alchemicalWizardry/common/tileEntity/TESpellEffectBlock.java delete mode 100644 BM_src/WayofTime/alchemicalWizardry/common/tileEntity/TESpellEnhancementBlock.java delete mode 100644 BM_src/WayofTime/alchemicalWizardry/common/tileEntity/TESpellModifierBlock.java delete mode 100644 BM_src/WayofTime/alchemicalWizardry/common/tileEntity/TESpellParadigmBlock.java delete mode 100644 BM_src/WayofTime/alchemicalWizardry/common/tileEntity/TETeleposer.java delete mode 100644 BM_src/WayofTime/alchemicalWizardry/common/tileEntity/TEWritingTable.java delete mode 100644 BM_src/WayofTime/alchemicalWizardry/common/tileEntity/container/ContainerAltar.java delete mode 100644 BM_src/WayofTime/alchemicalWizardry/common/tileEntity/container/ContainerTeleposer.java delete mode 100644 BM_src/WayofTime/alchemicalWizardry/common/tileEntity/container/ContainerWritingTable.java delete mode 100644 BM_src/WayofTime/alchemicalWizardry/common/tileEntity/gui/GuiHandler.java delete mode 100644 BM_src/WayofTime/alchemicalWizardry/common/tileEntity/gui/GuiTeleposer.java delete mode 100644 BM_src/WayofTime/alchemicalWizardry/common/tileEntity/gui/GuiWritingTable.java delete mode 100644 BM_src/WayofTime/mcmod.info delete mode 100644 BM_src/forestry/api/apiculture/BeeManager.java delete mode 100644 BM_src/forestry/api/apiculture/EnumBeeChromosome.java delete mode 100644 BM_src/forestry/api/apiculture/EnumBeeType.java delete mode 100644 BM_src/forestry/api/apiculture/FlowerManager.java delete mode 100644 BM_src/forestry/api/apiculture/IAlleleBeeEffect.java delete mode 100644 BM_src/forestry/api/apiculture/IAlleleBeeSpecies.java delete mode 100644 BM_src/forestry/api/apiculture/IAlvearyComponent.java delete mode 100644 BM_src/forestry/api/apiculture/IApiaristTracker.java delete mode 100644 BM_src/forestry/api/apiculture/IArmorApiarist.java delete mode 100644 BM_src/forestry/api/apiculture/IBee.java delete mode 100644 BM_src/forestry/api/apiculture/IBeeGenome.java delete mode 100644 BM_src/forestry/api/apiculture/IBeeHousing.java delete mode 100644 BM_src/forestry/api/apiculture/IBeeListener.java delete mode 100644 BM_src/forestry/api/apiculture/IBeeModifier.java delete mode 100644 BM_src/forestry/api/apiculture/IBeeMutation.java delete mode 100644 BM_src/forestry/api/apiculture/IBeeRoot.java delete mode 100644 BM_src/forestry/api/apiculture/IBeekeepingLogic.java delete mode 100644 BM_src/forestry/api/apiculture/IBeekeepingMode.java delete mode 100644 BM_src/forestry/api/apiculture/IHiveDrop.java delete mode 100644 BM_src/forestry/api/apiculture/IHiveFrame.java delete mode 100644 BM_src/forestry/api/apiculture/package-info.java delete mode 100644 BM_src/forestry/api/arboriculture/EnumGermlingType.java delete mode 100644 BM_src/forestry/api/arboriculture/EnumGrowthConditions.java delete mode 100644 BM_src/forestry/api/arboriculture/EnumTreeChromosome.java delete mode 100644 BM_src/forestry/api/arboriculture/IAlleleFruit.java delete mode 100644 BM_src/forestry/api/arboriculture/IAlleleGrowth.java delete mode 100644 BM_src/forestry/api/arboriculture/IAlleleLeafEffect.java delete mode 100644 BM_src/forestry/api/arboriculture/IAlleleTreeSpecies.java delete mode 100644 BM_src/forestry/api/arboriculture/IArboristTracker.java delete mode 100644 BM_src/forestry/api/arboriculture/IFruitProvider.java delete mode 100644 BM_src/forestry/api/arboriculture/IGrowthProvider.java delete mode 100644 BM_src/forestry/api/arboriculture/ILeafTickHandler.java delete mode 100644 BM_src/forestry/api/arboriculture/IToolGrafter.java delete mode 100644 BM_src/forestry/api/arboriculture/ITree.java delete mode 100644 BM_src/forestry/api/arboriculture/ITreeGenome.java delete mode 100644 BM_src/forestry/api/arboriculture/ITreeModifier.java delete mode 100644 BM_src/forestry/api/arboriculture/ITreeMutation.java delete mode 100644 BM_src/forestry/api/arboriculture/ITreeRoot.java delete mode 100644 BM_src/forestry/api/arboriculture/ITreekeepingMode.java delete mode 100644 BM_src/forestry/api/arboriculture/TreeManager.java delete mode 100644 BM_src/forestry/api/arboriculture/package-info.java delete mode 100644 BM_src/forestry/api/circuits/ChipsetManager.java delete mode 100644 BM_src/forestry/api/circuits/ICircuit.java delete mode 100644 BM_src/forestry/api/circuits/ICircuitBoard.java delete mode 100644 BM_src/forestry/api/circuits/ICircuitLayout.java delete mode 100644 BM_src/forestry/api/circuits/ICircuitLibrary.java delete mode 100644 BM_src/forestry/api/circuits/ICircuitRegistry.java delete mode 100644 BM_src/forestry/api/circuits/ISolderManager.java delete mode 100644 BM_src/forestry/api/circuits/package-info.java delete mode 100644 BM_src/forestry/api/core/BlockInterface.java delete mode 100644 BM_src/forestry/api/core/EnumHumidity.java delete mode 100644 BM_src/forestry/api/core/EnumTemperature.java delete mode 100644 BM_src/forestry/api/core/ForestryAPI.java delete mode 100644 BM_src/forestry/api/core/ForestryEvent.java delete mode 100644 BM_src/forestry/api/core/GlobalManager.java delete mode 100644 BM_src/forestry/api/core/IArmorNaturalist.java delete mode 100644 BM_src/forestry/api/core/IForestryConstants.java delete mode 100644 BM_src/forestry/api/core/IGameMode.java delete mode 100644 BM_src/forestry/api/core/IIconProvider.java delete mode 100644 BM_src/forestry/api/core/INBTTagable.java delete mode 100644 BM_src/forestry/api/core/IPlugin.java delete mode 100644 BM_src/forestry/api/core/IStructureLogic.java delete mode 100644 BM_src/forestry/api/core/ITextureManager.java delete mode 100644 BM_src/forestry/api/core/ITileStructure.java delete mode 100644 BM_src/forestry/api/core/IToolScoop.java delete mode 100644 BM_src/forestry/api/core/ItemInterface.java delete mode 100644 BM_src/forestry/api/core/PluginInfo.java delete mode 100644 BM_src/forestry/api/core/Tabs.java delete mode 100644 BM_src/forestry/api/core/package-info.java delete mode 100644 BM_src/forestry/api/farming/Farmables.java delete mode 100644 BM_src/forestry/api/farming/ICrop.java delete mode 100644 BM_src/forestry/api/farming/IFarmComponent.java delete mode 100644 BM_src/forestry/api/farming/IFarmHousing.java delete mode 100644 BM_src/forestry/api/farming/IFarmInterface.java delete mode 100644 BM_src/forestry/api/farming/IFarmListener.java delete mode 100644 BM_src/forestry/api/farming/IFarmLogic.java delete mode 100644 BM_src/forestry/api/farming/IFarmable.java delete mode 100644 BM_src/forestry/api/farming/package-info.java delete mode 100644 BM_src/forestry/api/food/BeverageManager.java delete mode 100644 BM_src/forestry/api/food/IBeverageEffect.java delete mode 100644 BM_src/forestry/api/food/IInfuserManager.java delete mode 100644 BM_src/forestry/api/food/IIngredientManager.java delete mode 100644 BM_src/forestry/api/food/package-info.java delete mode 100644 BM_src/forestry/api/fuels/EngineBronzeFuel.java delete mode 100644 BM_src/forestry/api/fuels/EngineCopperFuel.java delete mode 100644 BM_src/forestry/api/fuels/FermenterFuel.java delete mode 100644 BM_src/forestry/api/fuels/FuelManager.java delete mode 100644 BM_src/forestry/api/fuels/GeneratorFuel.java delete mode 100644 BM_src/forestry/api/fuels/MoistenerFuel.java delete mode 100644 BM_src/forestry/api/fuels/RainSubstrate.java delete mode 100644 BM_src/forestry/api/fuels/package-info.java delete mode 100644 BM_src/forestry/api/genetics/AlleleManager.java delete mode 100644 BM_src/forestry/api/genetics/EnumTolerance.java delete mode 100644 BM_src/forestry/api/genetics/IAllele.java delete mode 100644 BM_src/forestry/api/genetics/IAlleleArea.java delete mode 100644 BM_src/forestry/api/genetics/IAlleleBoolean.java delete mode 100644 BM_src/forestry/api/genetics/IAlleleEffect.java delete mode 100644 BM_src/forestry/api/genetics/IAlleleFloat.java delete mode 100644 BM_src/forestry/api/genetics/IAlleleFlowers.java delete mode 100644 BM_src/forestry/api/genetics/IAlleleHandler.java delete mode 100644 BM_src/forestry/api/genetics/IAlleleInteger.java delete mode 100644 BM_src/forestry/api/genetics/IAllelePlantType.java delete mode 100644 BM_src/forestry/api/genetics/IAlleleRegistry.java delete mode 100644 BM_src/forestry/api/genetics/IAlleleSpecies.java delete mode 100644 BM_src/forestry/api/genetics/IAlleleTolerance.java delete mode 100644 BM_src/forestry/api/genetics/IBreedingTracker.java delete mode 100644 BM_src/forestry/api/genetics/IChromosome.java delete mode 100644 BM_src/forestry/api/genetics/IChromosomeType.java delete mode 100644 BM_src/forestry/api/genetics/IClassification.java delete mode 100644 BM_src/forestry/api/genetics/IEffectData.java delete mode 100644 BM_src/forestry/api/genetics/IFlowerProvider.java delete mode 100644 BM_src/forestry/api/genetics/IFruitBearer.java delete mode 100644 BM_src/forestry/api/genetics/IFruitFamily.java delete mode 100644 BM_src/forestry/api/genetics/IGenome.java delete mode 100644 BM_src/forestry/api/genetics/IHousing.java delete mode 100644 BM_src/forestry/api/genetics/IIndividual.java delete mode 100644 BM_src/forestry/api/genetics/IIndividualLiving.java delete mode 100644 BM_src/forestry/api/genetics/ILegacyHandler.java delete mode 100644 BM_src/forestry/api/genetics/IMutation.java delete mode 100644 BM_src/forestry/api/genetics/IPollinatable.java delete mode 100644 BM_src/forestry/api/genetics/ISpeciesRoot.java delete mode 100644 BM_src/forestry/api/genetics/package-info.java delete mode 100644 BM_src/forestry/api/lepidopterology/EnumButterflyChromosome.java delete mode 100644 BM_src/forestry/api/lepidopterology/EnumFlutterType.java delete mode 100644 BM_src/forestry/api/lepidopterology/IAlleleButterflyEffect.java delete mode 100644 BM_src/forestry/api/lepidopterology/IAlleleButterflySpecies.java delete mode 100644 BM_src/forestry/api/lepidopterology/IButterfly.java delete mode 100644 BM_src/forestry/api/lepidopterology/IButterflyGenome.java delete mode 100644 BM_src/forestry/api/lepidopterology/IButterflyMutation.java delete mode 100644 BM_src/forestry/api/lepidopterology/IButterflyNursery.java delete mode 100644 BM_src/forestry/api/lepidopterology/IButterflyRoot.java delete mode 100644 BM_src/forestry/api/lepidopterology/IEntityButterfly.java delete mode 100644 BM_src/forestry/api/lepidopterology/ILepidopteristTracker.java delete mode 100644 BM_src/forestry/api/lepidopterology/package-info.java delete mode 100644 BM_src/forestry/api/mail/EnumPostage.java delete mode 100644 BM_src/forestry/api/mail/ILetter.java delete mode 100644 BM_src/forestry/api/mail/ILetterHandler.java delete mode 100644 BM_src/forestry/api/mail/IPostOffice.java delete mode 100644 BM_src/forestry/api/mail/IPostRegistry.java delete mode 100644 BM_src/forestry/api/mail/IPostalCarrier.java delete mode 100644 BM_src/forestry/api/mail/IPostalState.java delete mode 100644 BM_src/forestry/api/mail/IStamps.java delete mode 100644 BM_src/forestry/api/mail/ITradeStation.java delete mode 100644 BM_src/forestry/api/mail/MailAddress.java delete mode 100644 BM_src/forestry/api/mail/PostManager.java delete mode 100644 BM_src/forestry/api/mail/TradeStationInfo.java delete mode 100644 BM_src/forestry/api/mail/package-info.java delete mode 100644 BM_src/forestry/api/package-info.java delete mode 100644 BM_src/forestry/api/recipes/IBottlerManager.java delete mode 100644 BM_src/forestry/api/recipes/ICarpenterManager.java delete mode 100644 BM_src/forestry/api/recipes/ICentrifugeManager.java delete mode 100644 BM_src/forestry/api/recipes/ICraftingProvider.java delete mode 100644 BM_src/forestry/api/recipes/IFabricatorManager.java delete mode 100644 BM_src/forestry/api/recipes/IFermenterManager.java delete mode 100644 BM_src/forestry/api/recipes/IGenericCrate.java delete mode 100644 BM_src/forestry/api/recipes/IMoistenerManager.java delete mode 100644 BM_src/forestry/api/recipes/ISqueezerManager.java delete mode 100644 BM_src/forestry/api/recipes/IStillManager.java delete mode 100644 BM_src/forestry/api/recipes/IVariableFermentable.java delete mode 100644 BM_src/forestry/api/recipes/RecipeManagers.java delete mode 100644 BM_src/forestry/api/recipes/package-info.java delete mode 100644 BM_src/forestry/api/storage/BackpackEvent.java delete mode 100644 BM_src/forestry/api/storage/BackpackManager.java delete mode 100644 BM_src/forestry/api/storage/BackpackResupplyEvent.java delete mode 100644 BM_src/forestry/api/storage/BackpackStowEvent.java delete mode 100644 BM_src/forestry/api/storage/EnumBackpackType.java delete mode 100644 BM_src/forestry/api/storage/IBackpackDefinition.java delete mode 100644 BM_src/forestry/api/storage/IBackpackInterface.java delete mode 100644 BM_src/forestry/api/storage/package-info.java delete mode 100644 BM_src/forestry/api/world/ITreeGenData.java delete mode 100644 BM_src/forestry/api/world/IWorldGenInterface.java delete mode 100644 BM_src/forestry/api/world/WorldGenManager.java delete mode 100644 BM_src/forestry/api/world/package-info.java delete mode 100644 BM_src/joshie/alchemicalWizardy/nei/NEIAlchemyRecipeHandler.java delete mode 100644 BM_src/joshie/alchemicalWizardy/nei/NEIAltarRecipeHandler.java delete mode 100644 BM_src/joshie/alchemicalWizardy/nei/NEIConfig.java delete mode 100644 BM_src/thaumcraft/api/LICENSE delete mode 100644 BM_src/thaumcraft/api/README.md delete mode 100644 BM_src/thaumcraft/api/nodes/NodeModifier.java delete mode 100644 BM_src/thaumcraft/api/nodes/NodeType.java rename 1.7.10 Build Files/CREDITS-fml.txt => CREDITS-fml.txt (100%) rename 1.7.10 Build Files/LICENSE-fml.txt => LICENSE-fml.txt (100%) rename 1.7.10 Build Files/MinecraftForge-Credits.txt => MinecraftForge-Credits.txt (100%) rename 1.7.10 Build Files/MinecraftForge-License.txt => MinecraftForge-License.txt (100%) rename 1.7.10 Build Files/README.txt => README.txt (100%) rename 1.7.10 Build Files/build.gradle => build.gradle (100%) rename 1.7.10 Build Files/build.properties => build.properties (100%) rename 1.7.10 Build Files/forge-1.7.10-10.13.0.1152-changelog.txt => forge-1.7.10-10.13.0.1152-changelog.txt (100%) rename 1.7.10 Build Files/gradlew => gradlew (100%) rename 1.7.10 Build Files/gradlew.bat => gradlew.bat (100%) create mode 100644 libs/MineTweaker3-Dev-1.7.10-3.0.9.jar delete mode 100644 resources/assets/alchemicalwizardry/altar.png delete mode 100644 resources/assets/alchemicalwizardry/bloodaltar.obj delete mode 100644 resources/assets/alchemicalwizardry/bloodlevel.obj delete mode 100644 resources/assets/alchemicalwizardry/books/architect.xml delete mode 100644 resources/assets/alchemicalwizardry/gui/Teleposer.png delete mode 100644 resources/assets/alchemicalwizardry/gui/WritingTable.png delete mode 100644 resources/assets/alchemicalwizardry/gui/bookleft.png delete mode 100644 resources/assets/alchemicalwizardry/gui/nei/alchemy.png delete mode 100644 resources/assets/alchemicalwizardry/gui/nei/altar.png delete mode 100644 resources/assets/alchemicalwizardry/lang/cs_CZ.lang delete mode 100644 resources/assets/alchemicalwizardry/lang/de_DE.lang delete mode 100644 resources/assets/alchemicalwizardry/lang/en_US.lang delete mode 100644 resources/assets/alchemicalwizardry/lang/fr_FR.lang delete mode 100644 resources/assets/alchemicalwizardry/lang/ru_RU.lang delete mode 100644 resources/assets/alchemicalwizardry/lang/zh_CN.lang delete mode 100644 resources/assets/alchemicalwizardry/lang/zh_TW.lang delete mode 100644 resources/assets/alchemicalwizardry/models/armor/armor - Shortcut.lnk delete mode 100644 resources/assets/alchemicalwizardry/models/armor/boundArmour_invisible_layer_1.png delete mode 100644 resources/assets/alchemicalwizardry/models/armor/boundArmour_invisible_layer_2.png delete mode 100644 resources/assets/alchemicalwizardry/models/armor/boundArmour_layer_1.png delete mode 100644 resources/assets/alchemicalwizardry/models/armor/boundArmour_layer_2.png delete mode 100644 resources/assets/alchemicalwizardry/models/armor/sanguineArmour_layer_1.png delete mode 100644 resources/assets/alchemicalwizardry/models/bloodaltar-fixeUV.obj delete mode 100644 resources/assets/alchemicalwizardry/models/bloodaltar.obj delete mode 100644 resources/assets/alchemicalwizardry/models/bloodlevel.obj delete mode 100644 resources/assets/alchemicalwizardry/textures/blocks/AirRitualStone.png delete mode 100644 resources/assets/alchemicalwizardry/textures/blocks/AlchemicChemistrySet.png delete mode 100644 resources/assets/alchemicalwizardry/textures/blocks/AltarCapacityRune.png delete mode 100644 resources/assets/alchemicalwizardry/textures/blocks/ArcanePedestal.png delete mode 100644 resources/assets/alchemicalwizardry/textures/blocks/ArcanePlinth.png delete mode 100644 resources/assets/alchemicalwizardry/textures/blocks/BlankRune.png delete mode 100644 resources/assets/alchemicalwizardry/textures/blocks/BlockBloodLight.png delete mode 100644 resources/assets/alchemicalwizardry/textures/blocks/BloodAltar_Bottom.png delete mode 100644 resources/assets/alchemicalwizardry/textures/blocks/BloodAltar_SideType1.png delete mode 100644 resources/assets/alchemicalwizardry/textures/blocks/BloodAltar_SideType2.png delete mode 100644 resources/assets/alchemicalwizardry/textures/blocks/BloodAltar_Top.png delete mode 100644 resources/assets/alchemicalwizardry/textures/blocks/BloodSocket.png delete mode 100644 resources/assets/alchemicalwizardry/textures/blocks/BloodStoneBrick.png delete mode 100644 resources/assets/alchemicalwizardry/textures/blocks/DislocationRune.png delete mode 100644 resources/assets/alchemicalwizardry/textures/blocks/DuskRitualStone.png delete mode 100644 resources/assets/alchemicalwizardry/textures/blocks/EarthRitualStone.png delete mode 100644 resources/assets/alchemicalwizardry/textures/blocks/EfficiencyRune.png delete mode 100644 resources/assets/alchemicalwizardry/textures/blocks/EmptySocket.png delete mode 100644 resources/assets/alchemicalwizardry/textures/blocks/FireRitualStone.png delete mode 100644 resources/assets/alchemicalwizardry/textures/blocks/HomHeart_bottom.png delete mode 100644 resources/assets/alchemicalwizardry/textures/blocks/HomHeart_side.png delete mode 100644 resources/assets/alchemicalwizardry/textures/blocks/HomHeart_top.png delete mode 100644 resources/assets/alchemicalwizardry/textures/blocks/HomHeart_top1.png delete mode 100644 resources/assets/alchemicalwizardry/textures/blocks/ImperfectRitualStone.png delete mode 100644 resources/assets/alchemicalwizardry/textures/blocks/LargeBloodStoneBrick.png delete mode 100644 resources/assets/alchemicalwizardry/textures/blocks/MasterStone.png delete mode 100644 resources/assets/alchemicalwizardry/textures/blocks/OrbCapacityRune.png delete mode 100644 resources/assets/alchemicalwizardry/textures/blocks/RitualStone.png delete mode 100644 resources/assets/alchemicalwizardry/textures/blocks/RuneOfSacrifice.png delete mode 100644 resources/assets/alchemicalwizardry/textures/blocks/RuneOfSelfSacrifice.png delete mode 100644 resources/assets/alchemicalwizardry/textures/blocks/SoulForge.png delete mode 100644 resources/assets/alchemicalwizardry/textures/blocks/SpectralBlock.png delete mode 100644 resources/assets/alchemicalwizardry/textures/blocks/SpeedRune.png delete mode 100644 resources/assets/alchemicalwizardry/textures/blocks/Teleposer_Side.png delete mode 100644 resources/assets/alchemicalwizardry/textures/blocks/Teleposer_Top.png delete mode 100644 resources/assets/alchemicalwizardry/textures/blocks/Testing.png delete mode 100644 resources/assets/alchemicalwizardry/textures/blocks/WaterRitualStone.png delete mode 100644 resources/assets/alchemicalwizardry/textures/blocks/fireEffectBlock_blank.png delete mode 100644 resources/assets/alchemicalwizardry/textures/blocks/fireEffectBlock_input.png delete mode 100644 resources/assets/alchemicalwizardry/textures/blocks/fireEffectBlock_output.png delete mode 100644 resources/assets/alchemicalwizardry/textures/blocks/fireEffectBlock_upArrow.png delete mode 100644 resources/assets/alchemicalwizardry/textures/blocks/lifeEssenceFlowing.png delete mode 100644 resources/assets/alchemicalwizardry/textures/blocks/lifeEssenceStill.png delete mode 100644 resources/assets/alchemicalwizardry/textures/entities/energyBlastProjectile.png delete mode 100644 resources/assets/alchemicalwizardry/textures/entities/explosionProjectile.png delete mode 100644 resources/assets/alchemicalwizardry/textures/entities/fireProjectile.png delete mode 100644 resources/assets/alchemicalwizardry/textures/entities/holyProjectile.png delete mode 100644 resources/assets/alchemicalwizardry/textures/entities/iceProjectile.png delete mode 100644 resources/assets/alchemicalwizardry/textures/entities/lightningProjectile.png delete mode 100644 resources/assets/alchemicalwizardry/textures/entities/mudProjectile.png delete mode 100644 resources/assets/alchemicalwizardry/textures/entities/waterProjectile.png delete mode 100644 resources/assets/alchemicalwizardry/textures/entities/windGustProjectile.png delete mode 100644 resources/assets/alchemicalwizardry/textures/gui/GuiTrap.png delete mode 100644 resources/assets/alchemicalwizardry/textures/gui/bookcrafting.png delete mode 100644 resources/assets/alchemicalwizardry/textures/gui/bookfurnace.png delete mode 100644 resources/assets/alchemicalwizardry/textures/gui/bookleft.png delete mode 100644 resources/assets/alchemicalwizardry/textures/gui/bookright.png delete mode 100644 resources/assets/alchemicalwizardry/textures/items/8wWtY8d.png delete mode 100644 resources/assets/alchemicalwizardry/textures/items/Aether.png delete mode 100644 resources/assets/alchemicalwizardry/textures/items/AirScribeTool.png delete mode 100644 resources/assets/alchemicalwizardry/textures/items/AirSigil.png delete mode 100644 resources/assets/alchemicalwizardry/textures/items/AlchemyFlask.png delete mode 100644 resources/assets/alchemicalwizardry/textures/items/ApprenticeBloodOrb.png delete mode 100644 resources/assets/alchemicalwizardry/textures/items/Aquasalus.png delete mode 100644 resources/assets/alchemicalwizardry/textures/items/ArchmageBloodOrb.png delete mode 100644 resources/assets/alchemicalwizardry/textures/items/ArmourInhibitor_activated.png delete mode 100644 resources/assets/alchemicalwizardry/textures/items/ArmourInhibitor_deactivated.png delete mode 100644 resources/assets/alchemicalwizardry/textures/items/AverageLengtheningCatalyst.png delete mode 100644 resources/assets/alchemicalwizardry/textures/items/AveragePowerCatalyst.png delete mode 100644 resources/assets/alchemicalwizardry/textures/items/BlankSlate.png delete mode 100644 resources/assets/alchemicalwizardry/textures/items/BlankSpell.png delete mode 100644 resources/assets/alchemicalwizardry/textures/items/BloodFrame.png delete mode 100644 resources/assets/alchemicalwizardry/textures/items/BloodLightSigil.png delete mode 100644 resources/assets/alchemicalwizardry/textures/items/BoundAxe_activated.png delete mode 100644 resources/assets/alchemicalwizardry/textures/items/BoundBoots.png delete mode 100644 resources/assets/alchemicalwizardry/textures/items/BoundHelmet.png delete mode 100644 resources/assets/alchemicalwizardry/textures/items/BoundLeggings.png delete mode 100644 resources/assets/alchemicalwizardry/textures/items/BoundPickaxe_activated.png delete mode 100644 resources/assets/alchemicalwizardry/textures/items/BoundPickaxe_deactivated.png delete mode 100644 resources/assets/alchemicalwizardry/textures/items/BoundPlate.png delete mode 100644 resources/assets/alchemicalwizardry/textures/items/BoundShovel_activated.png delete mode 100644 resources/assets/alchemicalwizardry/textures/items/BoundSword_activated.png delete mode 100644 resources/assets/alchemicalwizardry/textures/items/BridgeSigil_activated.png delete mode 100644 resources/assets/alchemicalwizardry/textures/items/BridgeSigil_deactivated.png delete mode 100644 resources/assets/alchemicalwizardry/textures/items/CeremonialDagger.png delete mode 100644 resources/assets/alchemicalwizardry/textures/items/ComplexCrystal.png delete mode 100644 resources/assets/alchemicalwizardry/textures/items/Crepitous.png delete mode 100644 resources/assets/alchemicalwizardry/textures/items/Crystallos.png delete mode 100644 resources/assets/alchemicalwizardry/textures/items/DaggerOfSacrifice.png delete mode 100644 resources/assets/alchemicalwizardry/textures/items/DemonBloodShard.png delete mode 100644 resources/assets/alchemicalwizardry/textures/items/DemonPlacer.png delete mode 100644 resources/assets/alchemicalwizardry/textures/items/DemonSlate.png delete mode 100644 resources/assets/alchemicalwizardry/textures/items/DemonicTeleposerFocus.png delete mode 100644 resources/assets/alchemicalwizardry/textures/items/DiabloKey.png delete mode 100644 resources/assets/alchemicalwizardry/textures/items/DivinationSigil.png delete mode 100644 resources/assets/alchemicalwizardry/textures/items/DuskScribeTool.png delete mode 100644 resources/assets/alchemicalwizardry/textures/items/EarthScribeTool.png delete mode 100644 resources/assets/alchemicalwizardry/textures/items/ElementalInkAir.png delete mode 100644 resources/assets/alchemicalwizardry/textures/items/ElementalInkEarth.png delete mode 100644 resources/assets/alchemicalwizardry/textures/items/ElementalInkFire.png delete mode 100644 resources/assets/alchemicalwizardry/textures/items/ElementalInkWater.png delete mode 100644 resources/assets/alchemicalwizardry/textures/items/ElementalSigil_activated.png delete mode 100644 resources/assets/alchemicalwizardry/textures/items/ElementalSigil_deactivated.png delete mode 100644 resources/assets/alchemicalwizardry/textures/items/EnergyBattery.png delete mode 100644 resources/assets/alchemicalwizardry/textures/items/EnergyBazooka_activated.png delete mode 100644 resources/assets/alchemicalwizardry/textures/items/EnergyBlaster_activated.png delete mode 100644 resources/assets/alchemicalwizardry/textures/items/EnhancedFillingAgent.png delete mode 100644 resources/assets/alchemicalwizardry/textures/items/EnhancedTeleposerFocus.png delete mode 100644 resources/assets/alchemicalwizardry/textures/items/FireScribeTool.png delete mode 100644 resources/assets/alchemicalwizardry/textures/items/GreaterLengtheningCatalyst.png delete mode 100644 resources/assets/alchemicalwizardry/textures/items/GreaterPowerCatalyst.png delete mode 100644 resources/assets/alchemicalwizardry/textures/items/GrowthSigil_activated.png delete mode 100644 resources/assets/alchemicalwizardry/textures/items/GrowthSigil_deactivated.png delete mode 100644 resources/assets/alchemicalwizardry/textures/items/HasteSigil_activated.png delete mode 100644 resources/assets/alchemicalwizardry/textures/items/HasteSigil_deactivated.png delete mode 100644 resources/assets/alchemicalwizardry/textures/items/IceSigil_activated.png delete mode 100644 resources/assets/alchemicalwizardry/textures/items/IceSigil_deactivated.png delete mode 100644 resources/assets/alchemicalwizardry/textures/items/Incendium.png delete mode 100644 resources/assets/alchemicalwizardry/textures/items/InfusedSlate.png delete mode 100644 resources/assets/alchemicalwizardry/textures/items/LavaCrystal.png delete mode 100644 resources/assets/alchemicalwizardry/textures/items/LavaSigil.png delete mode 100644 resources/assets/alchemicalwizardry/textures/items/LifeBucket.png delete mode 100644 resources/assets/alchemicalwizardry/textures/items/Magicales.png delete mode 100644 resources/assets/alchemicalwizardry/textures/items/MagicianBloodOrb.png delete mode 100644 resources/assets/alchemicalwizardry/textures/items/MasterBloodOrb.png delete mode 100644 resources/assets/alchemicalwizardry/textures/items/MiningSigil_activated.png delete mode 100644 resources/assets/alchemicalwizardry/textures/items/MiningSigil_deactivated.png delete mode 100644 resources/assets/alchemicalwizardry/textures/items/MundaneLengtheningCatalyst.png delete mode 100644 resources/assets/alchemicalwizardry/textures/items/MundanePowerCatalyst.png delete mode 100644 resources/assets/alchemicalwizardry/textures/items/PotionFlask.png delete mode 100644 resources/assets/alchemicalwizardry/textures/items/ReinforcedSlate.png delete mode 100644 resources/assets/alchemicalwizardry/textures/items/ReinforcedTeleposerFocus.png delete mode 100644 resources/assets/alchemicalwizardry/textures/items/RitualDiviner.png delete mode 100644 resources/assets/alchemicalwizardry/textures/items/SacrificialDagger.png delete mode 100644 resources/assets/alchemicalwizardry/textures/items/Sanctus.png delete mode 100644 resources/assets/alchemicalwizardry/textures/items/SanguineHelmet.png delete mode 100644 resources/assets/alchemicalwizardry/textures/items/SheathedItem.png delete mode 100644 resources/assets/alchemicalwizardry/textures/items/SigilOfHolding.png delete mode 100644 resources/assets/alchemicalwizardry/textures/items/SigilOfMagnetism_activated.png delete mode 100644 resources/assets/alchemicalwizardry/textures/items/SigilOfMagnetism_deactivated.png delete mode 100644 resources/assets/alchemicalwizardry/textures/items/SigilOfSupression_activated.png delete mode 100644 resources/assets/alchemicalwizardry/textures/items/SigilOfSupression_deactivated.png delete mode 100644 resources/assets/alchemicalwizardry/textures/items/SimpleCatalyst.png delete mode 100644 resources/assets/alchemicalwizardry/textures/items/StandardBindingAgent.png delete mode 100644 resources/assets/alchemicalwizardry/textures/items/StandardFillingAgent.png delete mode 100644 resources/assets/alchemicalwizardry/textures/items/TeleposerFocus.png delete mode 100644 resources/assets/alchemicalwizardry/textures/items/Tennebrae.png delete mode 100644 resources/assets/alchemicalwizardry/textures/items/Terrae.png delete mode 100644 resources/assets/alchemicalwizardry/textures/items/UntamedCrystal.png delete mode 100644 resources/assets/alchemicalwizardry/textures/items/VoidSigil.png delete mode 100644 resources/assets/alchemicalwizardry/textures/items/WarriorSigil_activated.png delete mode 100644 resources/assets/alchemicalwizardry/textures/items/WarriorSigil_deactivated.png delete mode 100644 resources/assets/alchemicalwizardry/textures/items/WaterScribeTool.png delete mode 100644 resources/assets/alchemicalwizardry/textures/items/WaterSigil.png delete mode 100644 resources/assets/alchemicalwizardry/textures/items/WeakBindingAgent.png delete mode 100644 resources/assets/alchemicalwizardry/textures/items/WeakBloodShard.png delete mode 100644 resources/assets/alchemicalwizardry/textures/items/WeakFillingAgent.png delete mode 100644 resources/assets/alchemicalwizardry/textures/items/WindSigil_activated.png delete mode 100644 resources/assets/alchemicalwizardry/textures/items/WindSigil_deactivated.png delete mode 100644 resources/assets/alchemicalwizardry/textures/items/activationCrystalAwakened.png delete mode 100644 resources/assets/alchemicalwizardry/textures/items/activationCrystalWeak.png delete mode 100644 resources/assets/alchemicalwizardry/textures/items/baseAlchemyItemConcentratedCatalyst.png delete mode 100644 resources/assets/alchemicalwizardry/textures/items/baseAlchemyItemFracturedBone.png delete mode 100644 resources/assets/alchemicalwizardry/textures/items/baseAlchemyItemOffensa.png delete mode 100644 resources/assets/alchemicalwizardry/textures/items/baseAlchemyItemOrbisTerrae.png delete mode 100644 resources/assets/alchemicalwizardry/textures/items/baseAlchemyItemPotentia.png delete mode 100644 resources/assets/alchemicalwizardry/textures/items/baseAlchemyItemPraesidium.png delete mode 100644 resources/assets/alchemicalwizardry/textures/items/baseAlchemyItemReductus.png delete mode 100644 resources/assets/alchemicalwizardry/textures/items/baseAlchemyItemStrengthenedCatalyst.png delete mode 100644 resources/assets/alchemicalwizardry/textures/items/baseAlchemyItemVirtus.png delete mode 100644 resources/assets/alchemicalwizardry/textures/items/baseItemCostCore.png delete mode 100644 resources/assets/alchemicalwizardry/textures/items/baseItemCrackedRunicPlate.png delete mode 100644 resources/assets/alchemicalwizardry/textures/items/baseItemDefaultCore.png delete mode 100644 resources/assets/alchemicalwizardry/textures/items/baseItemDefensiveCore.png delete mode 100644 resources/assets/alchemicalwizardry/textures/items/baseItemEarthenCore.png delete mode 100644 resources/assets/alchemicalwizardry/textures/items/baseItemEmptyCore.png delete mode 100644 resources/assets/alchemicalwizardry/textures/items/baseItemEnvironmentalCore.png delete mode 100644 resources/assets/alchemicalwizardry/textures/items/baseItemFlameCore.png delete mode 100644 resources/assets/alchemicalwizardry/textures/items/baseItemGustCore.png delete mode 100644 resources/assets/alchemicalwizardry/textures/items/baseItemIcyCore.png delete mode 100644 resources/assets/alchemicalwizardry/textures/items/baseItemInputCable.png delete mode 100644 resources/assets/alchemicalwizardry/textures/items/baseItemMagicalesCable.png delete mode 100644 resources/assets/alchemicalwizardry/textures/items/baseItemMeleeCore.png delete mode 100644 resources/assets/alchemicalwizardry/textures/items/baseItemObsidianBrace.png delete mode 100644 resources/assets/alchemicalwizardry/textures/items/baseItemOffensiveCore.png delete mode 100644 resources/assets/alchemicalwizardry/textures/items/baseItemOutputCable.png delete mode 100644 resources/assets/alchemicalwizardry/textures/items/baseItemParadigmBackPlate.png delete mode 100644 resources/assets/alchemicalwizardry/textures/items/baseItemPotencyCore.png delete mode 100644 resources/assets/alchemicalwizardry/textures/items/baseItemPowerCore.png delete mode 100644 resources/assets/alchemicalwizardry/textures/items/baseItemProjectileCore.png delete mode 100644 resources/assets/alchemicalwizardry/textures/items/baseItemQuartzRod.png delete mode 100644 resources/assets/alchemicalwizardry/textures/items/baseItemRunicPlate.png delete mode 100644 resources/assets/alchemicalwizardry/textures/items/baseItemScribedRunicPlate.png delete mode 100644 resources/assets/alchemicalwizardry/textures/items/baseItemSelfCore.png delete mode 100644 resources/assets/alchemicalwizardry/textures/items/baseItemStoneBrace.png delete mode 100644 resources/assets/alchemicalwizardry/textures/items/baseItemWoodBrace.png delete mode 100644 resources/assets/alchemicalwizardry/textures/items/bloodBlastOrn.png delete mode 100644 resources/assets/alchemicalwizardry/textures/items/focusBloodBlastOrn.png delete mode 100644 resources/assets/alchemicalwizardry/textures/items/tYf5ft9.png delete mode 100644 resources/assets/alchemicalwizardry/textures/models/AirFloatingBeacon.png delete mode 100644 resources/assets/alchemicalwizardry/textures/models/BileDemon.png delete mode 100644 resources/assets/alchemicalwizardry/textures/models/Bird.png delete mode 100644 resources/assets/alchemicalwizardry/textures/models/BlockSpellEffect.png delete mode 100644 resources/assets/alchemicalwizardry/textures/models/BoulderFist.png delete mode 100644 resources/assets/alchemicalwizardry/textures/models/Conduit.png delete mode 100644 resources/assets/alchemicalwizardry/textures/models/DarkFloatingBeacon.png delete mode 100644 resources/assets/alchemicalwizardry/textures/models/EarthFloatingBeacon.png delete mode 100644 resources/assets/alchemicalwizardry/textures/models/EnergyBazookaMainProjectile.png delete mode 100644 resources/assets/alchemicalwizardry/textures/models/FireFloatingBeacon.png delete mode 100644 resources/assets/alchemicalwizardry/textures/models/FloatingBeacon.png delete mode 100644 resources/assets/alchemicalwizardry/textures/models/HolyFloatingBeacon.png delete mode 100644 resources/assets/alchemicalwizardry/textures/models/IceDemon.png delete mode 100644 resources/assets/alchemicalwizardry/textures/models/LowerGuardian.png delete mode 100644 resources/assets/alchemicalwizardry/textures/models/Meteor.png delete mode 100644 resources/assets/alchemicalwizardry/textures/models/ParadigmBlock.png delete mode 100644 resources/assets/alchemicalwizardry/textures/models/Pedestal.png delete mode 100644 resources/assets/alchemicalwizardry/textures/models/Plinth.png delete mode 100644 resources/assets/alchemicalwizardry/textures/models/ShadeMob.png delete mode 100644 resources/assets/alchemicalwizardry/textures/models/SmallEarthGolem.png delete mode 100644 resources/assets/alchemicalwizardry/textures/models/SpellEffectEarth.png delete mode 100644 resources/assets/alchemicalwizardry/textures/models/SpellEffectFire.png delete mode 100644 resources/assets/alchemicalwizardry/textures/models/SpellEffectIce.png delete mode 100644 resources/assets/alchemicalwizardry/textures/models/SpellEffectWind.png delete mode 100644 resources/assets/alchemicalwizardry/textures/models/SpellEnhancementCost1.png delete mode 100644 resources/assets/alchemicalwizardry/textures/models/SpellEnhancementCost2.png delete mode 100644 resources/assets/alchemicalwizardry/textures/models/SpellEnhancementCost3.png delete mode 100644 resources/assets/alchemicalwizardry/textures/models/SpellEnhancementPotency1.png delete mode 100644 resources/assets/alchemicalwizardry/textures/models/SpellEnhancementPotency2.png delete mode 100644 resources/assets/alchemicalwizardry/textures/models/SpellEnhancementPotency3.png delete mode 100644 resources/assets/alchemicalwizardry/textures/models/SpellEnhancementPower1.png delete mode 100644 resources/assets/alchemicalwizardry/textures/models/SpellEnhancementPower2.png delete mode 100644 resources/assets/alchemicalwizardry/textures/models/SpellEnhancementPower3.png delete mode 100644 resources/assets/alchemicalwizardry/textures/models/SpellModifierDefault.png delete mode 100644 resources/assets/alchemicalwizardry/textures/models/SpellModifierDefensive.png delete mode 100644 resources/assets/alchemicalwizardry/textures/models/SpellModifierEnvironmental.png delete mode 100644 resources/assets/alchemicalwizardry/textures/models/SpellModifierOffensive.png delete mode 100644 resources/assets/alchemicalwizardry/textures/models/SpellParadigmMelee.png delete mode 100644 resources/assets/alchemicalwizardry/textures/models/SpellParadigmProjectile.png delete mode 100644 resources/assets/alchemicalwizardry/textures/models/SpellParadigmSelf.png delete mode 100644 resources/assets/alchemicalwizardry/textures/models/WaterFloatingBeacon.png delete mode 100644 resources/assets/alchemicalwizardry/textures/models/WingedAngel.png delete mode 100644 resources/assets/alchemicalwizardry/textures/models/WingedFireDemon.png delete mode 100644 resources/assets/alchemicalwizardry/textures/models/WritingTable.png delete mode 100644 resources/assets/alchemicalwizardry/textures/models/altar.png delete mode 100644 resources/assets/alchemicalwizardry/textures/models/blood.png delete mode 100644 resources/assets/forge/lang/cs_CZ.lang delete mode 100644 resources/assets/forge/lang/en_US.lang delete mode 100644 resources/assets/forge/lang/es_ES.lang delete mode 100644 resources/assets/forge/lang/fr_FR.lang rename {1.7.10 => src}/api/java/thaumcraft/api/IGoggles.java (100%) rename {1.7.10 => src}/api/java/thaumcraft/api/IRepairable.java (100%) rename {1.7.10 => src}/api/java/thaumcraft/api/IRepairableExtended.java (100%) rename {1.7.10 => src}/api/java/thaumcraft/api/IRunicArmor.java (100%) rename {1.7.10 => src}/api/java/thaumcraft/api/IScribeTools.java (100%) rename {1.7.10 => src}/api/java/thaumcraft/api/IVisDiscountGear.java (100%) rename {1.7.10 => src}/api/java/thaumcraft/api/ItemApi.java (100%) rename {1.7.10 => src}/api/java/thaumcraft/api/ItemRunic.java (100%) rename {1.7.10 => src}/api/java/thaumcraft/api/ThaumcraftApi.java (100%) rename {1.7.10 => src}/api/java/thaumcraft/api/ThaumcraftApiHelper.java (100%) rename {1.7.10 => src}/api/java/thaumcraft/api/TileThaumcraft.java (100%) rename {1.7.10 => src}/api/java/thaumcraft/api/WorldCoordinates.java (100%) rename {1.7.10 => src}/api/java/thaumcraft/api/aspects/Aspect.java (100%) rename {1.7.10 => src}/api/java/thaumcraft/api/aspects/AspectList.java (100%) rename {1.7.10 => src}/api/java/thaumcraft/api/aspects/AspectSourceHelper.java (100%) rename {1.7.10 => src}/api/java/thaumcraft/api/aspects/IAspectContainer.java (100%) rename {1.7.10 => src}/api/java/thaumcraft/api/aspects/IAspectSource.java (100%) rename {1.7.10 => src}/api/java/thaumcraft/api/aspects/IEssentiaContainerItem.java (100%) rename {1.7.10 => src}/api/java/thaumcraft/api/aspects/IEssentiaTransport.java (100%) rename {1.7.10 => src}/api/java/thaumcraft/api/crafting/CrucibleRecipe.java (100%) rename {1.7.10 => src}/api/java/thaumcraft/api/crafting/IArcaneRecipe.java (100%) rename {1.7.10 => src}/api/java/thaumcraft/api/crafting/IInfusionStabiliser.java (100%) rename {1.7.10 => src}/api/java/thaumcraft/api/crafting/InfusionEnchantmentRecipe.java (100%) rename {1.7.10 => src}/api/java/thaumcraft/api/crafting/InfusionRecipe.java (100%) rename {1.7.10 => src}/api/java/thaumcraft/api/crafting/ShapedArcaneRecipe.java (100%) rename {1.7.10 => src}/api/java/thaumcraft/api/crafting/ShapelessArcaneRecipe.java (100%) rename {1.7.10 => src}/api/java/thaumcraft/api/damagesource/DamageSourceIndirectThaumcraftEntity.java (100%) rename {1.7.10 => src}/api/java/thaumcraft/api/damagesource/DamageSourceThaumcraft.java (100%) rename {1.7.10 => src}/api/java/thaumcraft/api/entities/ITaintedMob.java (100%) rename {1.7.10 => src}/api/java/thaumcraft/api/nodes/INode.java (100%) rename {1.7.10 => src}/api/java/thaumcraft/api/nodes/IRevealer.java (100%) rename {1.7.10 => src}/api/java/thaumcraft/api/nodes/NodeModifier.java (100%) rename {1.7.10 => src}/api/java/thaumcraft/api/nodes/NodeType.java (100%) rename {1.7.10 => src}/api/java/thaumcraft/api/package-info.java (100%) rename {1.7.10 => src}/api/java/thaumcraft/api/potions/PotionFluxTaint.java (100%) rename {1.7.10 => src}/api/java/thaumcraft/api/research/IScanEventHandler.java (100%) rename {1.7.10 => src}/api/java/thaumcraft/api/research/ResearchCategories.java (100%) rename {1.7.10 => src}/api/java/thaumcraft/api/research/ResearchCategoryList.java (100%) rename {1.7.10 => src}/api/java/thaumcraft/api/research/ResearchItem.java (100%) rename {1.7.10 => src}/api/java/thaumcraft/api/research/ResearchPage.java (100%) rename {1.7.10 => src}/api/java/thaumcraft/api/research/ScanResult.java (100%) rename {1.7.10 => src}/api/java/thaumcraft/api/visnet/TileVisNode.java (100%) rename {1.7.10 => src}/api/java/thaumcraft/api/visnet/VisNetHandler.java (100%) rename {1.7.10 => src}/api/java/thaumcraft/api/wands/IWandFocus.java (100%) rename {1.7.10 => src}/api/java/thaumcraft/api/wands/IWandRodOnUpdate.java (100%) rename {1.7.10 => src}/api/java/thaumcraft/api/wands/IWandTriggerManager.java (100%) rename {1.7.10 => src}/api/java/thaumcraft/api/wands/IWandable.java (100%) rename {1.7.10 => src}/api/java/thaumcraft/api/wands/ItemFocusBasic.java (100%) rename {1.7.10 => src}/api/java/thaumcraft/api/wands/StaffRod.java (100%) rename {1.7.10 => src}/api/java/thaumcraft/api/wands/WandCap.java (100%) rename {1.7.10 => src}/api/java/thaumcraft/api/wands/WandRod.java (100%) rename {1.7.10 => src}/api/java/thaumcraft/api/wands/WandTriggerRegistry.java (100%) rename {1.7.10 => src}/api/java/vazkii/botania/api/BotaniaAPI.java (100%) rename {1.7.10 => src}/api/java/vazkii/botania/api/internal/DummyManaNetwork.java (100%) rename {1.7.10 => src}/api/java/vazkii/botania/api/internal/DummyMethodHandler.java (100%) rename {1.7.10 => src}/api/java/vazkii/botania/api/internal/DummyPage.java (100%) rename {1.7.10 => src}/api/java/vazkii/botania/api/internal/DummySubTile.java (100%) rename {1.7.10 => src}/api/java/vazkii/botania/api/internal/IGuiLexiconEntry.java (100%) rename {1.7.10 => src}/api/java/vazkii/botania/api/internal/IInternalMethodHandler.java (100%) rename {1.7.10 => src}/api/java/vazkii/botania/api/internal/IManaBurst.java (100%) rename {1.7.10 => src}/api/java/vazkii/botania/api/internal/IManaNetwork.java (100%) rename {1.7.10 => src}/api/java/vazkii/botania/api/item/IExoflameHeatable.java (100%) rename {1.7.10 => src}/api/java/vazkii/botania/api/item/IExtendedPlayerController.java (100%) rename {1.7.10 => src}/api/java/vazkii/botania/api/item/IPetalApothecary.java (100%) rename {1.7.10 => src}/api/java/vazkii/botania/api/item/IPixieSpawner.java (100%) rename {1.7.10 => src}/api/java/vazkii/botania/api/lexicon/IAddonEntry.java (100%) rename {1.7.10 => src}/api/java/vazkii/botania/api/lexicon/ILexicon.java (100%) rename {1.7.10 => src}/api/java/vazkii/botania/api/lexicon/ILexiconable.java (100%) rename {1.7.10 => src}/api/java/vazkii/botania/api/lexicon/IRecipeKeyProvider.java (100%) rename {1.7.10 => src}/api/java/vazkii/botania/api/lexicon/KnowledgeType.java (100%) rename {1.7.10 => src}/api/java/vazkii/botania/api/lexicon/LexiconCategory.java (100%) rename {1.7.10 => src}/api/java/vazkii/botania/api/lexicon/LexiconEntry.java (100%) rename {1.7.10 => src}/api/java/vazkii/botania/api/lexicon/LexiconPage.java (100%) rename {1.7.10 => src}/api/java/vazkii/botania/api/lexicon/LexiconRecipeMappings.java (100%) rename {1.7.10 => src}/api/java/vazkii/botania/api/mana/BurstProperties.java (100%) rename {1.7.10 => src}/api/java/vazkii/botania/api/mana/IClientManaHandler.java (100%) rename {1.7.10 => src}/api/java/vazkii/botania/api/mana/ICreativeManaProvider.java (100%) rename {1.7.10 => src}/api/java/vazkii/botania/api/mana/IKeyLocked.java (100%) rename {1.7.10 => src}/api/java/vazkii/botania/api/mana/ILaputaImmobile.java (100%) rename {1.7.10 => src}/api/java/vazkii/botania/api/mana/ILens.java (100%) rename {1.7.10 => src}/api/java/vazkii/botania/api/mana/ILensEffect.java (100%) rename {1.7.10 => src}/api/java/vazkii/botania/api/mana/IManaBlock.java (100%) rename {1.7.10 => src}/api/java/vazkii/botania/api/mana/IManaCollector.java (100%) rename {1.7.10 => src}/api/java/vazkii/botania/api/mana/IManaCollisionGhost.java (100%) rename {1.7.10 => src}/api/java/vazkii/botania/api/mana/IManaItem.java (100%) rename {1.7.10 => src}/api/java/vazkii/botania/api/mana/IManaPool.java (100%) rename {1.7.10 => src}/api/java/vazkii/botania/api/mana/IManaReceiver.java (100%) rename {1.7.10 => src}/api/java/vazkii/botania/api/mana/IManaTrigger.java (100%) rename {1.7.10 => src}/api/java/vazkii/botania/api/mana/IManaUsingItem.java (100%) rename {1.7.10 => src}/api/java/vazkii/botania/api/mana/IPoolOverlayProvider.java (100%) rename {1.7.10 => src}/api/java/vazkii/botania/api/mana/ITinyPlanetExcempt.java (100%) rename {1.7.10 => src}/api/java/vazkii/botania/api/mana/ManaItemHandler.java (100%) rename {1.7.10 => src}/api/java/vazkii/botania/api/mana/ManaNetworkEvent.java (100%) rename {1.7.10 => src}/api/java/vazkii/botania/api/mana/TileSignature.java (100%) rename {1.7.10 => src}/api/java/vazkii/botania/api/mana/spark/ISparkAttachable.java (100%) rename {1.7.10 => src}/api/java/vazkii/botania/api/mana/spark/ISparkEntity.java (100%) rename {1.7.10 => src}/api/java/vazkii/botania/api/mana/spark/SparkHelper.java (100%) rename {1.7.10 => src}/api/java/vazkii/botania/api/package-info.java (100%) rename {1.7.10 => src}/api/java/vazkii/botania/api/recipe/IElvenItem.java (100%) rename {1.7.10 => src}/api/java/vazkii/botania/api/recipe/IFlowerComponent.java (100%) rename {1.7.10 => src}/api/java/vazkii/botania/api/recipe/RecipeElvenTrade.java (100%) rename {1.7.10 => src}/api/java/vazkii/botania/api/recipe/RecipeManaInfusion.java (100%) rename {1.7.10 => src}/api/java/vazkii/botania/api/recipe/RecipePetals.java (100%) rename {1.7.10 => src}/api/java/vazkii/botania/api/recipe/RecipeRuneAltar.java (100%) rename {1.7.10 => src}/api/java/vazkii/botania/api/subtile/ISpecialFlower.java (100%) rename {1.7.10 => src}/api/java/vazkii/botania/api/subtile/ISubTileContainer.java (100%) rename {1.7.10 => src}/api/java/vazkii/botania/api/subtile/SubTileEntity.java (100%) rename {1.7.10 => src}/api/java/vazkii/botania/api/subtile/SubTileFunctional.java (100%) rename {1.7.10 => src}/api/java/vazkii/botania/api/subtile/SubTileGenerating.java (100%) rename {1.7.10 => src}/api/java/vazkii/botania/api/wand/ICoordBoundItem.java (100%) rename {1.7.10 => src}/api/java/vazkii/botania/api/wand/ITileBound.java (100%) rename {1.7.10 => src}/api/java/vazkii/botania/api/wand/IWandBindable.java (100%) rename {1.7.10 => src}/api/java/vazkii/botania/api/wand/IWandHUD.java (100%) rename {1.7.10 => src}/api/java/vazkii/botania/api/wand/IWandable.java (100%) rename {1.7.10 => src}/api/java/vazkii/botania/api/wand/IWireframeAABBProvider.java (100%) rename {1.7.10 => src}/api/java/vazkii/botania/api/wiki/IWikiProvider.java (100%) rename {1.7.10 => src}/api/java/vazkii/botania/api/wiki/SimpleWikiProvider.java (100%) rename {1.7.10 => src}/api/java/vazkii/botania/api/wiki/WikiHooks.java (100%) rename {1.7.10 => src}/main/java/WayofTime/alchemicalWizardry/AlchemicalWizardry.java (100%) rename {1.7.10 => src}/main/java/WayofTime/alchemicalWizardry/BloodMagicConfiguration.java (100%) rename {1.7.10 => src}/main/java/WayofTime/alchemicalWizardry/ModBlocks.java (100%) rename {1.7.10 => src}/main/java/WayofTime/alchemicalWizardry/ModItems.java (100%) rename {1.7.10 => src}/main/java/WayofTime/alchemicalWizardry/api/ColourAndCoords.java (100%) rename {1.7.10 => src}/main/java/WayofTime/alchemicalWizardry/api/alchemy/AlchemicalPotionCreationHandler.java (100%) rename {1.7.10 => src}/main/java/WayofTime/alchemicalWizardry/api/alchemy/AlchemyPotionHandlerComponent.java (100%) rename {1.7.10 => src}/main/java/WayofTime/alchemicalWizardry/api/alchemy/AlchemyPotionHelper.java (100%) rename {1.7.10 => src}/main/java/WayofTime/alchemicalWizardry/api/alchemy/AlchemyRecipe.java (100%) rename {1.7.10 => src}/main/java/WayofTime/alchemicalWizardry/api/alchemy/AlchemyRecipeRegistry.java (100%) rename {1.7.10 => src}/main/java/WayofTime/alchemicalWizardry/api/alchemy/energy/IAlchemyGoggles.java (100%) rename {1.7.10 => src}/main/java/WayofTime/alchemicalWizardry/api/alchemy/energy/IReagentContainer.java (100%) rename {1.7.10 => src}/main/java/WayofTime/alchemicalWizardry/api/alchemy/energy/IReagentHandler.java (100%) rename {1.7.10 => src}/main/java/WayofTime/alchemicalWizardry/api/alchemy/energy/ISegmentedReagentHandler.java (100%) rename {1.7.10 => src}/main/java/WayofTime/alchemicalWizardry/api/alchemy/energy/Reagent.java (100%) rename {1.7.10 => src}/main/java/WayofTime/alchemicalWizardry/api/alchemy/energy/ReagentContainer.java (100%) rename {1.7.10 => src}/main/java/WayofTime/alchemicalWizardry/api/alchemy/energy/ReagentContainerInfo.java (100%) rename {1.7.10 => src}/main/java/WayofTime/alchemicalWizardry/api/alchemy/energy/ReagentRegistry.java (100%) rename {1.7.10 => src}/main/java/WayofTime/alchemicalWizardry/api/alchemy/energy/ReagentStack.java (100%) rename {1.7.10 => src}/main/java/WayofTime/alchemicalWizardry/api/alchemy/energy/TileReagentHandler.java (100%) rename {1.7.10 => src}/main/java/WayofTime/alchemicalWizardry/api/alchemy/energy/TileSegmentedReagentHandler.java (100%) rename {1.7.10 => src}/main/java/WayofTime/alchemicalWizardry/api/altarRecipeRegistry/AltarRecipe.java (100%) rename {1.7.10 => src}/main/java/WayofTime/alchemicalWizardry/api/altarRecipeRegistry/AltarRecipeRegistry.java (100%) rename {1.7.10 => src}/main/java/WayofTime/alchemicalWizardry/api/bindingRegistry/BindingRecipe.java (100%) rename {1.7.10 => src}/main/java/WayofTime/alchemicalWizardry/api/bindingRegistry/BindingRegistry.java (100%) rename {1.7.10 => src}/main/java/WayofTime/alchemicalWizardry/api/harvest/HarvestRegistry.java (100%) rename {1.7.10 => src}/main/java/WayofTime/alchemicalWizardry/api/harvest/IHarvestHandler.java (100%) rename {1.7.10 => src}/main/java/WayofTime/alchemicalWizardry/api/items/ShapedBloodOrbRecipe.java (100%) rename {1.7.10 => src}/main/java/WayofTime/alchemicalWizardry/api/items/ShapelessBloodOrbRecipe.java (100%) rename {1.7.10 => src}/main/java/WayofTime/alchemicalWizardry/api/items/interfaces/ArmourUpgrade.java (100%) rename {1.7.10 => src}/main/java/WayofTime/alchemicalWizardry/api/items/interfaces/IBindable.java (100%) rename {1.7.10 => src}/main/java/WayofTime/alchemicalWizardry/api/items/interfaces/IBloodOrb.java (100%) rename {1.7.10 => src}/main/java/WayofTime/alchemicalWizardry/api/items/interfaces/IHolding.java (100%) rename {1.7.10 => src}/main/java/WayofTime/alchemicalWizardry/api/items/interfaces/IReagentManipulator.java (100%) rename {1.7.10 => src}/main/java/WayofTime/alchemicalWizardry/api/rituals/IMasterRitualStone.java (100%) rename {1.7.10 => src}/main/java/WayofTime/alchemicalWizardry/api/rituals/IRitualStone.java (100%) rename {1.7.10 => src}/main/java/WayofTime/alchemicalWizardry/api/rituals/RitualComponent.java (100%) rename {1.7.10 => src}/main/java/WayofTime/alchemicalWizardry/api/rituals/RitualEffect.java (100%) rename {1.7.10 => src}/main/java/WayofTime/alchemicalWizardry/api/rituals/Rituals.java (100%) rename {1.7.10 => src}/main/java/WayofTime/alchemicalWizardry/api/soulNetwork/LifeEssenceNetwork.java (100%) rename {1.7.10 => src}/main/java/WayofTime/alchemicalWizardry/api/soulNetwork/SoulNetworkHandler.java (100%) rename {1.7.10 => src}/main/java/WayofTime/alchemicalWizardry/api/summoningRegistry/SummoningHelper.java (100%) rename {1.7.10 => src}/main/java/WayofTime/alchemicalWizardry/api/summoningRegistry/SummoningRegistry.java (100%) rename {1.7.10 => src}/main/java/WayofTime/alchemicalWizardry/api/summoningRegistry/SummoningRegistryComponent.java (100%) rename {1.7.10 => src}/main/java/WayofTime/alchemicalWizardry/api/tile/IBloodAltar.java (100%) rename {1.7.10 => src}/main/java/WayofTime/alchemicalWizardry/client/ClientEventHandler.java (100%) rename {1.7.10 => src}/main/java/WayofTime/alchemicalWizardry/client/ClientProxy.java (100%) rename {1.7.10 => src}/main/java/WayofTime/alchemicalWizardry/client/nei/NEIAlchemyRecipeHandler.java (100%) rename {1.7.10 => src}/main/java/WayofTime/alchemicalWizardry/client/nei/NEIAltarRecipeHandler.java (100%) rename {1.7.10 => src}/main/java/WayofTime/alchemicalWizardry/client/nei/NEIBloodOrbShapedHandler.java (100%) rename {1.7.10 => src}/main/java/WayofTime/alchemicalWizardry/client/nei/NEIBloodOrbShapelessHandler.java (100%) rename {1.7.10 => src}/main/java/WayofTime/alchemicalWizardry/client/nei/NEIConfig.java (100%) rename {1.7.10 => src}/main/java/WayofTime/alchemicalWizardry/client/renderer/ColourThreshold.java (100%) rename {1.7.10 => src}/main/java/WayofTime/alchemicalWizardry/client/renderer/HUDElement.java (100%) rename {1.7.10 => src}/main/java/WayofTime/alchemicalWizardry/client/renderer/HUDUtils.java (100%) rename {1.7.10 => src}/main/java/WayofTime/alchemicalWizardry/client/renderer/RenderHelper.java (100%) rename {1.7.10 => src}/main/java/WayofTime/alchemicalWizardry/common/AlchemicalWizardryEventHooks.java (100%) rename {1.7.10 => src}/main/java/WayofTime/alchemicalWizardry/common/AlchemicalWizardryFuelHandler.java (100%) rename {1.7.10 => src}/main/java/WayofTime/alchemicalWizardry/common/ArmourComponent.java (100%) rename {1.7.10 => src}/main/java/WayofTime/alchemicalWizardry/common/CommonProxy.java (100%) rename {1.7.10 => src}/main/java/WayofTime/alchemicalWizardry/common/CoordAndRange.java (100%) rename {1.7.10 => src}/main/java/WayofTime/alchemicalWizardry/common/EntityAITargetAggro.java (100%) rename {1.7.10 => src}/main/java/WayofTime/alchemicalWizardry/common/EntityAirElemental.java (100%) rename {1.7.10 => src}/main/java/WayofTime/alchemicalWizardry/common/IBindingAgent.java (100%) rename {1.7.10 => src}/main/java/WayofTime/alchemicalWizardry/common/ICatalyst.java (100%) rename {1.7.10 => src}/main/java/WayofTime/alchemicalWizardry/common/IDemon.java (100%) rename {1.7.10 => src}/main/java/WayofTime/alchemicalWizardry/common/IFillingAgent.java (100%) rename {1.7.10 => src}/main/java/WayofTime/alchemicalWizardry/common/Int3.java (100%) rename {1.7.10 => src}/main/java/WayofTime/alchemicalWizardry/common/LifeBucketHandler.java (100%) rename {1.7.10 => src}/main/java/WayofTime/alchemicalWizardry/common/LifeEssence.java (100%) rename {1.7.10 => src}/main/java/WayofTime/alchemicalWizardry/common/ModLivingDropsEvent.java (100%) rename {1.7.10 => src}/main/java/WayofTime/alchemicalWizardry/common/NewPacketHandler.java (100%) rename {1.7.10 => src}/main/java/WayofTime/alchemicalWizardry/common/PlinthComponent.java (100%) rename {1.7.10 => src}/main/java/WayofTime/alchemicalWizardry/common/alchemy/CombinedPotionComponent.java (100%) rename {1.7.10 => src}/main/java/WayofTime/alchemicalWizardry/common/alchemy/CombinedPotionRegistry.java (100%) rename {1.7.10 => src}/main/java/WayofTime/alchemicalWizardry/common/alchemy/ICombinationalCatalyst.java (100%) rename {1.7.10 => src}/main/java/WayofTime/alchemicalWizardry/common/block/ArmourForge.java (100%) rename {1.7.10 => src}/main/java/WayofTime/alchemicalWizardry/common/block/BlockAlchemicCalcinator.java (100%) rename {1.7.10 => src}/main/java/WayofTime/alchemicalWizardry/common/block/BlockAltar.java (100%) rename {1.7.10 => src}/main/java/WayofTime/alchemicalWizardry/common/block/BlockBelljar.java (100%) rename {1.7.10 => src}/main/java/WayofTime/alchemicalWizardry/common/block/BlockBloodLightSource.java (100%) rename {1.7.10 => src}/main/java/WayofTime/alchemicalWizardry/common/block/BlockConduit.java (100%) rename {1.7.10 => src}/main/java/WayofTime/alchemicalWizardry/common/block/BlockDemonPortal.java (100%) rename {1.7.10 => src}/main/java/WayofTime/alchemicalWizardry/common/block/BlockHomHeart.java (100%) rename {1.7.10 => src}/main/java/WayofTime/alchemicalWizardry/common/block/BlockMasterStone.java (100%) rename {1.7.10 => src}/main/java/WayofTime/alchemicalWizardry/common/block/BlockOrientable.java (100%) rename {1.7.10 => src}/main/java/WayofTime/alchemicalWizardry/common/block/BlockPedestal.java (100%) rename {1.7.10 => src}/main/java/WayofTime/alchemicalWizardry/common/block/BlockPlinth.java (100%) rename {1.7.10 => src}/main/java/WayofTime/alchemicalWizardry/common/block/BlockReagentConduit.java (100%) rename {1.7.10 => src}/main/java/WayofTime/alchemicalWizardry/common/block/BlockSchematicSaver.java (100%) rename {1.7.10 => src}/main/java/WayofTime/alchemicalWizardry/common/block/BlockSocket.java (100%) rename {1.7.10 => src}/main/java/WayofTime/alchemicalWizardry/common/block/BlockSpectralContainer.java (100%) rename {1.7.10 => src}/main/java/WayofTime/alchemicalWizardry/common/block/BlockSpellEffect.java (100%) rename {1.7.10 => src}/main/java/WayofTime/alchemicalWizardry/common/block/BlockSpellEnhancement.java (100%) rename {1.7.10 => src}/main/java/WayofTime/alchemicalWizardry/common/block/BlockSpellModifier.java (100%) rename {1.7.10 => src}/main/java/WayofTime/alchemicalWizardry/common/block/BlockSpellParadigm.java (100%) rename {1.7.10 => src}/main/java/WayofTime/alchemicalWizardry/common/block/BlockTeleposer.java (100%) rename {1.7.10 => src}/main/java/WayofTime/alchemicalWizardry/common/block/BlockWritingTable.java (100%) rename {1.7.10 => src}/main/java/WayofTime/alchemicalWizardry/common/block/BloodRune.java (100%) rename {1.7.10 => src}/main/java/WayofTime/alchemicalWizardry/common/block/BloodStoneBrick.java (100%) rename {1.7.10 => src}/main/java/WayofTime/alchemicalWizardry/common/block/EfficiencyRune.java (100%) rename {1.7.10 => src}/main/java/WayofTime/alchemicalWizardry/common/block/EmptySocket.java (100%) rename {1.7.10 => src}/main/java/WayofTime/alchemicalWizardry/common/block/IOrientable.java (100%) rename {1.7.10 => src}/main/java/WayofTime/alchemicalWizardry/common/block/ImperfectRitualStone.java (100%) rename {1.7.10 => src}/main/java/WayofTime/alchemicalWizardry/common/block/LargeBloodStoneBrick.java (100%) rename {1.7.10 => src}/main/java/WayofTime/alchemicalWizardry/common/block/LifeEssenceBlock.java (100%) rename {1.7.10 => src}/main/java/WayofTime/alchemicalWizardry/common/block/RitualStone.java (100%) rename {1.7.10 => src}/main/java/WayofTime/alchemicalWizardry/common/block/RuneOfSacrifice.java (100%) rename {1.7.10 => src}/main/java/WayofTime/alchemicalWizardry/common/block/RuneOfSelfSacrifice.java (100%) rename {1.7.10 => src}/main/java/WayofTime/alchemicalWizardry/common/block/SpectralBlock.java (100%) rename {1.7.10 => src}/main/java/WayofTime/alchemicalWizardry/common/block/SpeedRune.java (100%) rename {1.7.10 => src}/main/java/WayofTime/alchemicalWizardry/common/bloodAltarUpgrade/AltarComponent.java (100%) rename {1.7.10 => src}/main/java/WayofTime/alchemicalWizardry/common/bloodAltarUpgrade/AltarUpgradeComponent.java (100%) rename {1.7.10 => src}/main/java/WayofTime/alchemicalWizardry/common/bloodAltarUpgrade/UpgradedAltars.java (100%) rename {1.7.10 => src}/main/java/WayofTime/alchemicalWizardry/common/demonVillage/BlockSet.java (100%) rename {1.7.10 => src}/main/java/WayofTime/alchemicalWizardry/common/demonVillage/BuildingSchematic.java (100%) rename {1.7.10 => src}/main/java/WayofTime/alchemicalWizardry/common/demonVillage/DemonBuilding.java (100%) rename {1.7.10 => src}/main/java/WayofTime/alchemicalWizardry/common/demonVillage/DemonCrosspath.java (100%) rename {1.7.10 => src}/main/java/WayofTime/alchemicalWizardry/common/demonVillage/DemonVillagePath.java (100%) rename {1.7.10 => src}/main/java/WayofTime/alchemicalWizardry/common/demonVillage/GridSpace.java (100%) rename {1.7.10 => src}/main/java/WayofTime/alchemicalWizardry/common/demonVillage/GridSpaceHolder.java (100%) rename {1.7.10 => src}/main/java/WayofTime/alchemicalWizardry/common/demonVillage/TileBlockSet.java (100%) rename {1.7.10 => src}/main/java/WayofTime/alchemicalWizardry/common/demonVillage/ai/EntityDemonAIHurtByTarget.java (100%) rename {1.7.10 => src}/main/java/WayofTime/alchemicalWizardry/common/demonVillage/demonHoard/DemonHoardPacket.java (100%) rename {1.7.10 => src}/main/java/WayofTime/alchemicalWizardry/common/demonVillage/demonHoard/DemonPacketAngel.java (100%) rename {1.7.10 => src}/main/java/WayofTime/alchemicalWizardry/common/demonVillage/demonHoard/DemonPacketRegistry.java (100%) rename {1.7.10 => src}/main/java/WayofTime/alchemicalWizardry/common/demonVillage/demonHoard/DemonType.java (100%) rename {1.7.10 => src}/main/java/WayofTime/alchemicalWizardry/common/demonVillage/demonHoard/demon/EntityMinorDemonGrunt.java (100%) rename {1.7.10 => src}/main/java/WayofTime/alchemicalWizardry/common/demonVillage/demonHoard/demon/IHoardDemon.java (100%) rename {1.7.10 => src}/main/java/WayofTime/alchemicalWizardry/common/demonVillage/tileEntity/TEDemonPortal.java (100%) rename {1.7.10 => src}/main/java/WayofTime/alchemicalWizardry/common/entity/mob/EntityBileDemon.java (100%) rename {1.7.10 => src}/main/java/WayofTime/alchemicalWizardry/common/entity/mob/EntityBoulderFist.java (100%) rename {1.7.10 => src}/main/java/WayofTime/alchemicalWizardry/common/entity/mob/EntityDemon.java (100%) rename {1.7.10 => src}/main/java/WayofTime/alchemicalWizardry/common/entity/mob/EntityEarthElemental.java (100%) rename {1.7.10 => src}/main/java/WayofTime/alchemicalWizardry/common/entity/mob/EntityElemental.java (100%) rename {1.7.10 => src}/main/java/WayofTime/alchemicalWizardry/common/entity/mob/EntityFallenAngel.java (100%) rename {1.7.10 => src}/main/java/WayofTime/alchemicalWizardry/common/entity/mob/EntityFireElemental.java (100%) rename {1.7.10 => src}/main/java/WayofTime/alchemicalWizardry/common/entity/mob/EntityHolyElemental.java (100%) rename {1.7.10 => src}/main/java/WayofTime/alchemicalWizardry/common/entity/mob/EntityIceDemon.java (100%) rename {1.7.10 => src}/main/java/WayofTime/alchemicalWizardry/common/entity/mob/EntityLowerGuardian.java (100%) rename {1.7.10 => src}/main/java/WayofTime/alchemicalWizardry/common/entity/mob/EntityShade.java (100%) rename {1.7.10 => src}/main/java/WayofTime/alchemicalWizardry/common/entity/mob/EntityShadeElemental.java (100%) rename {1.7.10 => src}/main/java/WayofTime/alchemicalWizardry/common/entity/mob/EntitySmallEarthGolem.java (100%) rename {1.7.10 => src}/main/java/WayofTime/alchemicalWizardry/common/entity/mob/EntityWaterElemental.java (100%) rename {1.7.10 => src}/main/java/WayofTime/alchemicalWizardry/common/entity/mob/EntityWingedFireDemon.java (100%) rename {1.7.10 => src}/main/java/WayofTime/alchemicalWizardry/common/entity/projectile/EnergyBlastProjectile.java (100%) rename {1.7.10 => src}/main/java/WayofTime/alchemicalWizardry/common/entity/projectile/EntityBeamParticle.java (100%) rename {1.7.10 => src}/main/java/WayofTime/alchemicalWizardry/common/entity/projectile/EntityBloodLightProjectile.java (100%) rename {1.7.10 => src}/main/java/WayofTime/alchemicalWizardry/common/entity/projectile/EntityEnergyBazookaMainProjectile.java (100%) rename {1.7.10 => src}/main/java/WayofTime/alchemicalWizardry/common/entity/projectile/EntityEnergyBazookaSecondaryProjectile.java (100%) rename {1.7.10 => src}/main/java/WayofTime/alchemicalWizardry/common/entity/projectile/EntityMeteor.java (100%) rename {1.7.10 => src}/main/java/WayofTime/alchemicalWizardry/common/entity/projectile/EntityParticleBeam.java (100%) rename {1.7.10 => src}/main/java/WayofTime/alchemicalWizardry/common/entity/projectile/ExplosionProjectile.java (100%) rename {1.7.10 => src}/main/java/WayofTime/alchemicalWizardry/common/entity/projectile/FireProjectile.java (100%) rename {1.7.10 => src}/main/java/WayofTime/alchemicalWizardry/common/entity/projectile/HolyProjectile.java (100%) rename {1.7.10 => src}/main/java/WayofTime/alchemicalWizardry/common/entity/projectile/IceProjectile.java (100%) rename {1.7.10 => src}/main/java/WayofTime/alchemicalWizardry/common/entity/projectile/LightningBoltProjectile.java (100%) rename {1.7.10 => src}/main/java/WayofTime/alchemicalWizardry/common/entity/projectile/MudProjectile.java (100%) rename {1.7.10 => src}/main/java/WayofTime/alchemicalWizardry/common/entity/projectile/TeleportProjectile.java (100%) rename {1.7.10 => src}/main/java/WayofTime/alchemicalWizardry/common/entity/projectile/WaterProjectile.java (100%) rename {1.7.10 => src}/main/java/WayofTime/alchemicalWizardry/common/entity/projectile/WindGustProjectile.java (100%) rename {1.7.10 => src}/main/java/WayofTime/alchemicalWizardry/common/harvest/BloodMagicHarvestHandler.java (100%) rename {1.7.10 => src}/main/java/WayofTime/alchemicalWizardry/common/harvest/CactusReedHarvestHandler.java (100%) rename {1.7.10 => src}/main/java/WayofTime/alchemicalWizardry/common/harvest/GenericPamSeedlessFruitHarvestHandler.java (100%) rename {1.7.10 => src}/main/java/WayofTime/alchemicalWizardry/common/harvest/GenericSeededHarvestHandler.java (100%) rename {1.7.10 => src}/main/java/WayofTime/alchemicalWizardry/common/harvest/GourdHarvestHandler.java (100%) rename {1.7.10 => src}/main/java/WayofTime/alchemicalWizardry/common/harvest/PamHarvestCompatRegistry.java (100%) rename {1.7.10 => src}/main/java/WayofTime/alchemicalWizardry/common/items/AWBaseItems.java (100%) rename {1.7.10 => src}/main/java/WayofTime/alchemicalWizardry/common/items/ActivationCrystal.java (100%) rename {1.7.10 => src}/main/java/WayofTime/alchemicalWizardry/common/items/AirScribeTool.java (100%) rename {1.7.10 => src}/main/java/WayofTime/alchemicalWizardry/common/items/ApprenticeBloodOrb.java (100%) rename {1.7.10 => src}/main/java/WayofTime/alchemicalWizardry/common/items/ArchmageBloodOrb.java (100%) rename {1.7.10 => src}/main/java/WayofTime/alchemicalWizardry/common/items/ArmourInhibitor.java (100%) rename {1.7.10 => src}/main/java/WayofTime/alchemicalWizardry/common/items/BlankSpell.java (100%) rename {1.7.10 => src}/main/java/WayofTime/alchemicalWizardry/common/items/BloodShard.java (100%) rename {1.7.10 => src}/main/java/WayofTime/alchemicalWizardry/common/items/BloodboundSword.java (100%) rename {1.7.10 => src}/main/java/WayofTime/alchemicalWizardry/common/items/BoundArmour.java (100%) rename {1.7.10 => src}/main/java/WayofTime/alchemicalWizardry/common/items/BoundAxe.java (100%) rename {1.7.10 => src}/main/java/WayofTime/alchemicalWizardry/common/items/BoundPickaxe.java (100%) rename {1.7.10 => src}/main/java/WayofTime/alchemicalWizardry/common/items/BoundShovel.java (100%) rename {1.7.10 => src}/main/java/WayofTime/alchemicalWizardry/common/items/CheatyItem.java (100%) rename {1.7.10 => src}/main/java/WayofTime/alchemicalWizardry/common/items/DaggerOfSacrifice.java (100%) rename {1.7.10 => src}/main/java/WayofTime/alchemicalWizardry/common/items/DemonPlacer.java (100%) rename {1.7.10 => src}/main/java/WayofTime/alchemicalWizardry/common/items/DemonicTelepositionFocus.java (100%) rename {1.7.10 => src}/main/java/WayofTime/alchemicalWizardry/common/items/DuskScribeTool.java (100%) rename {1.7.10 => src}/main/java/WayofTime/alchemicalWizardry/common/items/EarthScribeTool.java (100%) rename {1.7.10 => src}/main/java/WayofTime/alchemicalWizardry/common/items/EnergyBattery.java (100%) rename {1.7.10 => src}/main/java/WayofTime/alchemicalWizardry/common/items/EnergyBazooka.java (100%) rename {1.7.10 => src}/main/java/WayofTime/alchemicalWizardry/common/items/EnergyBlast.java (100%) rename {1.7.10 => src}/main/java/WayofTime/alchemicalWizardry/common/items/EnergyItems.java (100%) rename {1.7.10 => src}/main/java/WayofTime/alchemicalWizardry/common/items/EnergySword.java (100%) rename {1.7.10 => src}/main/java/WayofTime/alchemicalWizardry/common/items/EnhancedTelepositionFocus.java (100%) rename {1.7.10 => src}/main/java/WayofTime/alchemicalWizardry/common/items/FireScribeTool.java (100%) rename {1.7.10 => src}/main/java/WayofTime/alchemicalWizardry/common/items/ItemAlchemyBase.java (100%) rename {1.7.10 => src}/main/java/WayofTime/alchemicalWizardry/common/items/ItemBlockCrystalBelljar.java (100%) rename {1.7.10 => src}/main/java/WayofTime/alchemicalWizardry/common/items/ItemBloodRuneBlock.java (100%) rename {1.7.10 => src}/main/java/WayofTime/alchemicalWizardry/common/items/ItemComplexSpellCrystal.java (100%) rename {1.7.10 => src}/main/java/WayofTime/alchemicalWizardry/common/items/ItemComponents.java (100%) rename {1.7.10 => src}/main/java/WayofTime/alchemicalWizardry/common/items/ItemDiabloKey.java (100%) rename {1.7.10 => src}/main/java/WayofTime/alchemicalWizardry/common/items/ItemRitualDiviner.java (100%) rename {1.7.10 => src}/main/java/WayofTime/alchemicalWizardry/common/items/ItemSpellEffectBlock.java (100%) rename {1.7.10 => src}/main/java/WayofTime/alchemicalWizardry/common/items/ItemSpellEnhancementBlock.java (100%) rename {1.7.10 => src}/main/java/WayofTime/alchemicalWizardry/common/items/ItemSpellModifierBlock.java (100%) rename {1.7.10 => src}/main/java/WayofTime/alchemicalWizardry/common/items/ItemSpellParadigmBlock.java (100%) rename {1.7.10 => src}/main/java/WayofTime/alchemicalWizardry/common/items/LavaCrystal.java (100%) rename {1.7.10 => src}/main/java/WayofTime/alchemicalWizardry/common/items/LifeBucket.java (100%) rename {1.7.10 => src}/main/java/WayofTime/alchemicalWizardry/common/items/MagicianBloodOrb.java (100%) rename {1.7.10 => src}/main/java/WayofTime/alchemicalWizardry/common/items/MasterBloodOrb.java (100%) rename {1.7.10 => src}/main/java/WayofTime/alchemicalWizardry/common/items/OrbOfTesting.java (100%) rename {1.7.10 => src}/main/java/WayofTime/alchemicalWizardry/common/items/ReinforcedTelepositionFocus.java (100%) rename {1.7.10 => src}/main/java/WayofTime/alchemicalWizardry/common/items/SacrificialDagger.java (100%) rename {1.7.10 => src}/main/java/WayofTime/alchemicalWizardry/common/items/ScribeTool.java (100%) rename {1.7.10 => src}/main/java/WayofTime/alchemicalWizardry/common/items/TelepositionFocus.java (100%) rename {1.7.10 => src}/main/java/WayofTime/alchemicalWizardry/common/items/WaterScribeTool.java (100%) rename {1.7.10 => src}/main/java/WayofTime/alchemicalWizardry/common/items/energy/ItemAttunedCrystal.java (100%) rename {1.7.10 => src}/main/java/WayofTime/alchemicalWizardry/common/items/energy/ItemDestinationClearer.java (100%) rename {1.7.10 => src}/main/java/WayofTime/alchemicalWizardry/common/items/energy/ItemTankSegmenter.java (100%) rename {1.7.10 => src}/main/java/WayofTime/alchemicalWizardry/common/items/forestry/ItemBloodFrame.java (100%) rename {1.7.10 => src}/main/java/WayofTime/alchemicalWizardry/common/items/potion/AlchemyFlask.java (100%) rename {1.7.10 => src}/main/java/WayofTime/alchemicalWizardry/common/items/potion/AlchemyReagent.java (100%) rename {1.7.10 => src}/main/java/WayofTime/alchemicalWizardry/common/items/potion/AverageLengtheningCatalyst.java (100%) rename {1.7.10 => src}/main/java/WayofTime/alchemicalWizardry/common/items/potion/AveragePowerCatalyst.java (100%) rename {1.7.10 => src}/main/java/WayofTime/alchemicalWizardry/common/items/potion/CombinationalCatalyst.java (100%) rename {1.7.10 => src}/main/java/WayofTime/alchemicalWizardry/common/items/potion/EnhancedFillingAgent.java (100%) rename {1.7.10 => src}/main/java/WayofTime/alchemicalWizardry/common/items/potion/GreaterLengtheningCatalyst.java (100%) rename {1.7.10 => src}/main/java/WayofTime/alchemicalWizardry/common/items/potion/GreaterPowerCatalyst.java (100%) rename {1.7.10 => src}/main/java/WayofTime/alchemicalWizardry/common/items/potion/LengtheningCatalyst.java (100%) rename {1.7.10 => src}/main/java/WayofTime/alchemicalWizardry/common/items/potion/MundaneLengtheningCatalyst.java (100%) rename {1.7.10 => src}/main/java/WayofTime/alchemicalWizardry/common/items/potion/MundanePowerCatalyst.java (100%) rename {1.7.10 => src}/main/java/WayofTime/alchemicalWizardry/common/items/potion/PowerCatalyst.java (100%) rename {1.7.10 => src}/main/java/WayofTime/alchemicalWizardry/common/items/potion/StandardBindingAgent.java (100%) rename {1.7.10 => src}/main/java/WayofTime/alchemicalWizardry/common/items/potion/StandardFillingAgent.java (100%) rename {1.7.10 => src}/main/java/WayofTime/alchemicalWizardry/common/items/potion/WeakBindingAgent.java (100%) rename {1.7.10 => src}/main/java/WayofTime/alchemicalWizardry/common/items/potion/WeakFillingAgent.java (100%) rename {1.7.10 => src}/main/java/WayofTime/alchemicalWizardry/common/items/sigil/AirSigil.java (100%) rename {1.7.10 => src}/main/java/WayofTime/alchemicalWizardry/common/items/sigil/DivinationSigil.java (100%) rename {1.7.10 => src}/main/java/WayofTime/alchemicalWizardry/common/items/sigil/ItemBloodLightSigil.java (100%) rename {1.7.10 => src}/main/java/WayofTime/alchemicalWizardry/common/items/sigil/ItemFluidSigil.java (100%) rename {1.7.10 => src}/main/java/WayofTime/alchemicalWizardry/common/items/sigil/ItemSeerSigil.java (100%) rename {1.7.10 => src}/main/java/WayofTime/alchemicalWizardry/common/items/sigil/ItemSigilOfEnderSeverance.java (100%) rename {1.7.10 => src}/main/java/WayofTime/alchemicalWizardry/common/items/sigil/ItemSigilOfSupression.java (100%) rename {1.7.10 => src}/main/java/WayofTime/alchemicalWizardry/common/items/sigil/LavaSigil.java (100%) rename {1.7.10 => src}/main/java/WayofTime/alchemicalWizardry/common/items/sigil/SigilOfElementalAffinity.java (100%) rename {1.7.10 => src}/main/java/WayofTime/alchemicalWizardry/common/items/sigil/SigilOfGrowth.java (100%) rename {1.7.10 => src}/main/java/WayofTime/alchemicalWizardry/common/items/sigil/SigilOfHaste.java (100%) rename {1.7.10 => src}/main/java/WayofTime/alchemicalWizardry/common/items/sigil/SigilOfHolding.java (100%) rename {1.7.10 => src}/main/java/WayofTime/alchemicalWizardry/common/items/sigil/SigilOfMagnetism.java (100%) rename {1.7.10 => src}/main/java/WayofTime/alchemicalWizardry/common/items/sigil/SigilOfTheBridge.java (100%) rename {1.7.10 => src}/main/java/WayofTime/alchemicalWizardry/common/items/sigil/SigilOfTheFastMiner.java (100%) rename {1.7.10 => src}/main/java/WayofTime/alchemicalWizardry/common/items/sigil/SigilOfWind.java (100%) rename {1.7.10 => src}/main/java/WayofTime/alchemicalWizardry/common/items/sigil/VoidSigil.java (100%) rename {1.7.10 => src}/main/java/WayofTime/alchemicalWizardry/common/items/sigil/WaterSigil.java (100%) rename {1.7.10 => src}/main/java/WayofTime/alchemicalWizardry/common/items/spell/ItemSpellMultiTool.java (100%) rename {1.7.10 => src}/main/java/WayofTime/alchemicalWizardry/common/items/thaumcraft/ItemSanguineArmour.java (100%) rename {1.7.10 => src}/main/java/WayofTime/alchemicalWizardry/common/potion/PotionBoost.java (100%) rename {1.7.10 => src}/main/java/WayofTime/alchemicalWizardry/common/potion/PotionDeaf.java (100%) rename {1.7.10 => src}/main/java/WayofTime/alchemicalWizardry/common/potion/PotionDrowning.java (100%) rename {1.7.10 => src}/main/java/WayofTime/alchemicalWizardry/common/potion/PotionFeatherFall.java (100%) rename {1.7.10 => src}/main/java/WayofTime/alchemicalWizardry/common/potion/PotionFireFuse.java (100%) rename {1.7.10 => src}/main/java/WayofTime/alchemicalWizardry/common/potion/PotionFlameCloak.java (100%) rename {1.7.10 => src}/main/java/WayofTime/alchemicalWizardry/common/potion/PotionFlight.java (100%) rename {1.7.10 => src}/main/java/WayofTime/alchemicalWizardry/common/potion/PotionHeavyHeart.java (100%) rename {1.7.10 => src}/main/java/WayofTime/alchemicalWizardry/common/potion/PotionIceCloak.java (100%) rename {1.7.10 => src}/main/java/WayofTime/alchemicalWizardry/common/potion/PotionInhibit.java (100%) rename {1.7.10 => src}/main/java/WayofTime/alchemicalWizardry/common/potion/PotionPlanarBinding.java (100%) rename {1.7.10 => src}/main/java/WayofTime/alchemicalWizardry/common/potion/PotionProjectileProtect.java (100%) rename {1.7.10 => src}/main/java/WayofTime/alchemicalWizardry/common/potion/PotionReciprocation.java (100%) rename {1.7.10 => src}/main/java/WayofTime/alchemicalWizardry/common/potion/PotionSoulFray.java (100%) rename {1.7.10 => src}/main/java/WayofTime/alchemicalWizardry/common/potion/PotionSoulHarden.java (100%) rename {1.7.10 => src}/main/java/WayofTime/alchemicalWizardry/common/renderer/AlchemyCircleRenderer.java (100%) rename {1.7.10 => src}/main/java/WayofTime/alchemicalWizardry/common/renderer/BeamRenderer.java (100%) rename {1.7.10 => src}/main/java/WayofTime/alchemicalWizardry/common/renderer/MRSRenderer.java (100%) rename {1.7.10 => src}/main/java/WayofTime/alchemicalWizardry/common/renderer/block/RenderAlchemicCalcinator.java (100%) rename {1.7.10 => src}/main/java/WayofTime/alchemicalWizardry/common/renderer/block/RenderConduit.java (100%) rename {1.7.10 => src}/main/java/WayofTime/alchemicalWizardry/common/renderer/block/RenderCrystalBelljar.java (100%) rename {1.7.10 => src}/main/java/WayofTime/alchemicalWizardry/common/renderer/block/RenderMasterStone.java (100%) rename {1.7.10 => src}/main/java/WayofTime/alchemicalWizardry/common/renderer/block/RenderPedestal.java (100%) rename {1.7.10 => src}/main/java/WayofTime/alchemicalWizardry/common/renderer/block/RenderPlinth.java (100%) rename {1.7.10 => src}/main/java/WayofTime/alchemicalWizardry/common/renderer/block/RenderReagentConduit.java (100%) rename {1.7.10 => src}/main/java/WayofTime/alchemicalWizardry/common/renderer/block/RenderSpellEffectBlock.java (100%) rename {1.7.10 => src}/main/java/WayofTime/alchemicalWizardry/common/renderer/block/RenderSpellEnhancementBlock.java (100%) rename {1.7.10 => src}/main/java/WayofTime/alchemicalWizardry/common/renderer/block/RenderSpellModifierBlock.java (100%) rename {1.7.10 => src}/main/java/WayofTime/alchemicalWizardry/common/renderer/block/RenderSpellParadigmBlock.java (100%) rename {1.7.10 => src}/main/java/WayofTime/alchemicalWizardry/common/renderer/block/RenderWritingTable.java (100%) rename {1.7.10 => src}/main/java/WayofTime/alchemicalWizardry/common/renderer/block/ShaderHelper.java (100%) rename {1.7.10 => src}/main/java/WayofTime/alchemicalWizardry/common/renderer/block/TEAltarRenderer.java (100%) rename {1.7.10 => src}/main/java/WayofTime/alchemicalWizardry/common/renderer/block/itemRender/TEAlchemicalCalcinatorItemRenderer.java (100%) rename {1.7.10 => src}/main/java/WayofTime/alchemicalWizardry/common/renderer/block/itemRender/TEAltarItemRenderer.java (100%) rename {1.7.10 => src}/main/java/WayofTime/alchemicalWizardry/common/renderer/block/itemRender/TEBellJarItemRenderer.java (100%) rename {1.7.10 => src}/main/java/WayofTime/alchemicalWizardry/common/renderer/block/itemRender/TEConduitItemRenderer.java (100%) rename {1.7.10 => src}/main/java/WayofTime/alchemicalWizardry/common/renderer/block/itemRender/TESpellEffectBlockItemRenderer.java (100%) rename {1.7.10 => src}/main/java/WayofTime/alchemicalWizardry/common/renderer/block/itemRender/TESpellEnhancementBlockItemRenderer.java (100%) rename {1.7.10 => src}/main/java/WayofTime/alchemicalWizardry/common/renderer/block/itemRender/TESpellModifierBlockItemRenderer.java (100%) rename {1.7.10 => src}/main/java/WayofTime/alchemicalWizardry/common/renderer/block/itemRender/TESpellParadigmBlockItemRenderer.java (100%) rename {1.7.10 => src}/main/java/WayofTime/alchemicalWizardry/common/renderer/block/itemRender/TEWritingTableItemRenderer.java (100%) rename {1.7.10 => src}/main/java/WayofTime/alchemicalWizardry/common/renderer/mob/RenderBileDemon.java (100%) rename {1.7.10 => src}/main/java/WayofTime/alchemicalWizardry/common/renderer/mob/RenderBoulderFist.java (100%) rename {1.7.10 => src}/main/java/WayofTime/alchemicalWizardry/common/renderer/mob/RenderElemental.java (100%) rename {1.7.10 => src}/main/java/WayofTime/alchemicalWizardry/common/renderer/mob/RenderFallenAngel.java (100%) rename {1.7.10 => src}/main/java/WayofTime/alchemicalWizardry/common/renderer/mob/RenderIceDemon.java (100%) rename {1.7.10 => src}/main/java/WayofTime/alchemicalWizardry/common/renderer/mob/RenderLowerGuardian.java (100%) rename {1.7.10 => src}/main/java/WayofTime/alchemicalWizardry/common/renderer/mob/RenderShade.java (100%) rename {1.7.10 => src}/main/java/WayofTime/alchemicalWizardry/common/renderer/mob/RenderSmallEarthGolem.java (100%) rename {1.7.10 => src}/main/java/WayofTime/alchemicalWizardry/common/renderer/mob/RenderWingedFireDemon.java (100%) rename {1.7.10 => src}/main/java/WayofTime/alchemicalWizardry/common/renderer/model/ModelAlchemicalCalcinator.java (100%) rename {1.7.10 => src}/main/java/WayofTime/alchemicalWizardry/common/renderer/model/ModelBileDemon.java (100%) rename {1.7.10 => src}/main/java/WayofTime/alchemicalWizardry/common/renderer/model/ModelBloodAltar.java (100%) rename {1.7.10 => src}/main/java/WayofTime/alchemicalWizardry/common/renderer/model/ModelBoulderFist.java (100%) rename {1.7.10 => src}/main/java/WayofTime/alchemicalWizardry/common/renderer/model/ModelConduit.java (100%) rename {1.7.10 => src}/main/java/WayofTime/alchemicalWizardry/common/renderer/model/ModelCrystalBelljar.java (100%) rename {1.7.10 => src}/main/java/WayofTime/alchemicalWizardry/common/renderer/model/ModelElemental.java (100%) rename {1.7.10 => src}/main/java/WayofTime/alchemicalWizardry/common/renderer/model/ModelEnergyBazookaMainProjectile.java (100%) rename {1.7.10 => src}/main/java/WayofTime/alchemicalWizardry/common/renderer/model/ModelFallenAngel.java (100%) rename {1.7.10 => src}/main/java/WayofTime/alchemicalWizardry/common/renderer/model/ModelIceDemon.java (100%) rename {1.7.10 => src}/main/java/WayofTime/alchemicalWizardry/common/renderer/model/ModelLowerGuardian.java (100%) rename {1.7.10 => src}/main/java/WayofTime/alchemicalWizardry/common/renderer/model/ModelMeteor.java (100%) rename {1.7.10 => src}/main/java/WayofTime/alchemicalWizardry/common/renderer/model/ModelOmegaArmour.java (100%) rename {1.7.10 => src}/main/java/WayofTime/alchemicalWizardry/common/renderer/model/ModelPedestal.java (100%) rename {1.7.10 => src}/main/java/WayofTime/alchemicalWizardry/common/renderer/model/ModelPlinth.java (100%) rename {1.7.10 => src}/main/java/WayofTime/alchemicalWizardry/common/renderer/model/ModelShade.java (100%) rename {1.7.10 => src}/main/java/WayofTime/alchemicalWizardry/common/renderer/model/ModelSmallEarthGolem.java (100%) rename {1.7.10 => src}/main/java/WayofTime/alchemicalWizardry/common/renderer/model/ModelSpellEffectBlock.java (100%) rename {1.7.10 => src}/main/java/WayofTime/alchemicalWizardry/common/renderer/model/ModelSpellEnhancementBlock.java (100%) rename {1.7.10 => src}/main/java/WayofTime/alchemicalWizardry/common/renderer/model/ModelSpellModifierBlock.java (100%) rename {1.7.10 => src}/main/java/WayofTime/alchemicalWizardry/common/renderer/model/ModelSpellParadigmBlock.java (100%) rename {1.7.10 => src}/main/java/WayofTime/alchemicalWizardry/common/renderer/model/ModelWingedFireDemon.java (100%) rename {1.7.10 => src}/main/java/WayofTime/alchemicalWizardry/common/renderer/model/ModelWritingTable.java (100%) rename {1.7.10 => src}/main/java/WayofTime/alchemicalWizardry/common/renderer/projectile/RenderEnergyBazookaMainProjectile.java (100%) rename {1.7.10 => src}/main/java/WayofTime/alchemicalWizardry/common/renderer/projectile/RenderEnergyBlastProjectile.java (100%) rename {1.7.10 => src}/main/java/WayofTime/alchemicalWizardry/common/renderer/projectile/RenderFireProjectile.java (100%) rename {1.7.10 => src}/main/java/WayofTime/alchemicalWizardry/common/renderer/projectile/RenderMeteor.java (100%) rename {1.7.10 => src}/main/java/WayofTime/alchemicalWizardry/common/rituals/RitualEffectAnimalGrowth.java (100%) rename {1.7.10 => src}/main/java/WayofTime/alchemicalWizardry/common/rituals/RitualEffectApiaryOverclock.java (100%) rename {1.7.10 => src}/main/java/WayofTime/alchemicalWizardry/common/rituals/RitualEffectAutoAlchemy.java (100%) rename {1.7.10 => src}/main/java/WayofTime/alchemicalWizardry/common/rituals/RitualEffectBiomeChanger.java (100%) rename {1.7.10 => src}/main/java/WayofTime/alchemicalWizardry/common/rituals/RitualEffectContainment.java (100%) rename {1.7.10 => src}/main/java/WayofTime/alchemicalWizardry/common/rituals/RitualEffectCrushing.java (100%) rename {1.7.10 => src}/main/java/WayofTime/alchemicalWizardry/common/rituals/RitualEffectEllipsoid.java (100%) rename {1.7.10 => src}/main/java/WayofTime/alchemicalWizardry/common/rituals/RitualEffectEvaporation.java (100%) rename {1.7.10 => src}/main/java/WayofTime/alchemicalWizardry/common/rituals/RitualEffectExpulsion.java (100%) rename {1.7.10 => src}/main/java/WayofTime/alchemicalWizardry/common/rituals/RitualEffectFeatheredEarth.java (100%) rename {1.7.10 => src}/main/java/WayofTime/alchemicalWizardry/common/rituals/RitualEffectFeatheredKnife.java (100%) rename {1.7.10 => src}/main/java/WayofTime/alchemicalWizardry/common/rituals/RitualEffectFlight.java (100%) rename {1.7.10 => src}/main/java/WayofTime/alchemicalWizardry/common/rituals/RitualEffectFullStomach.java (100%) rename {1.7.10 => src}/main/java/WayofTime/alchemicalWizardry/common/rituals/RitualEffectGrowth.java (100%) rename {1.7.10 => src}/main/java/WayofTime/alchemicalWizardry/common/rituals/RitualEffectHarvest.java (100%) rename {1.7.10 => src}/main/java/WayofTime/alchemicalWizardry/common/rituals/RitualEffectHealing.java (100%) rename {1.7.10 => src}/main/java/WayofTime/alchemicalWizardry/common/rituals/RitualEffectInterdiction.java (100%) rename {1.7.10 => src}/main/java/WayofTime/alchemicalWizardry/common/rituals/RitualEffectItemSuction.java (100%) rename {1.7.10 => src}/main/java/WayofTime/alchemicalWizardry/common/rituals/RitualEffectJumping.java (100%) rename {1.7.10 => src}/main/java/WayofTime/alchemicalWizardry/common/rituals/RitualEffectLava.java (100%) rename {1.7.10 => src}/main/java/WayofTime/alchemicalWizardry/common/rituals/RitualEffectLeap.java (100%) rename {1.7.10 => src}/main/java/WayofTime/alchemicalWizardry/common/rituals/RitualEffectLifeConduit.java (100%) rename {1.7.10 => src}/main/java/WayofTime/alchemicalWizardry/common/rituals/RitualEffectMagnetic.java (100%) rename {1.7.10 => src}/main/java/WayofTime/alchemicalWizardry/common/rituals/RitualEffectSoulBound.java (100%) rename {1.7.10 => src}/main/java/WayofTime/alchemicalWizardry/common/rituals/RitualEffectSpawnWard.java (100%) rename {1.7.10 => src}/main/java/WayofTime/alchemicalWizardry/common/rituals/RitualEffectSummonMeteor.java (100%) rename {1.7.10 => src}/main/java/WayofTime/alchemicalWizardry/common/rituals/RitualEffectSupression.java (100%) rename {1.7.10 => src}/main/java/WayofTime/alchemicalWizardry/common/rituals/RitualEffectUnbinding.java (100%) rename {1.7.10 => src}/main/java/WayofTime/alchemicalWizardry/common/rituals/RitualEffectVeilOfEvil.java (100%) rename {1.7.10 => src}/main/java/WayofTime/alchemicalWizardry/common/rituals/RitualEffectWater.java (100%) rename {1.7.10 => src}/main/java/WayofTime/alchemicalWizardry/common/rituals/RitualEffectWellOfSuffering.java (100%) rename {1.7.10 => src}/main/java/WayofTime/alchemicalWizardry/common/spell/complex/EntitySpellProjectile.java (100%) rename {1.7.10 => src}/main/java/WayofTime/alchemicalWizardry/common/spell/complex/SpellModifier.java (100%) rename {1.7.10 => src}/main/java/WayofTime/alchemicalWizardry/common/spell/complex/SpellModifierDefault.java (100%) rename {1.7.10 => src}/main/java/WayofTime/alchemicalWizardry/common/spell/complex/SpellModifierDefensive.java (100%) rename {1.7.10 => src}/main/java/WayofTime/alchemicalWizardry/common/spell/complex/SpellModifierEnvironmental.java (100%) rename {1.7.10 => src}/main/java/WayofTime/alchemicalWizardry/common/spell/complex/SpellModifierOffensive.java (100%) rename {1.7.10 => src}/main/java/WayofTime/alchemicalWizardry/common/spell/complex/SpellParadigm.java (100%) rename {1.7.10 => src}/main/java/WayofTime/alchemicalWizardry/common/spell/complex/SpellParadigmMelee.java (100%) rename {1.7.10 => src}/main/java/WayofTime/alchemicalWizardry/common/spell/complex/SpellParadigmProjectile.java (100%) rename {1.7.10 => src}/main/java/WayofTime/alchemicalWizardry/common/spell/complex/SpellParadigmSelf.java (100%) rename {1.7.10 => src}/main/java/WayofTime/alchemicalWizardry/common/spell/complex/SpellParadigmTool.java (100%) rename {1.7.10 => src}/main/java/WayofTime/alchemicalWizardry/common/spell/complex/effect/SpellEffect.java (100%) rename {1.7.10 => src}/main/java/WayofTime/alchemicalWizardry/common/spell/complex/effect/SpellEffectEarth.java (100%) rename {1.7.10 => src}/main/java/WayofTime/alchemicalWizardry/common/spell/complex/effect/SpellEffectFire.java (100%) rename {1.7.10 => src}/main/java/WayofTime/alchemicalWizardry/common/spell/complex/effect/SpellEffectIce.java (100%) rename {1.7.10 => src}/main/java/WayofTime/alchemicalWizardry/common/spell/complex/effect/SpellEffectWind.java (100%) rename {1.7.10 => src}/main/java/WayofTime/alchemicalWizardry/common/spell/complex/effect/SpellHelper.java (100%) rename {1.7.10 => src}/main/java/WayofTime/alchemicalWizardry/common/spell/complex/effect/impactEffects/ExtrapolatedMeleeEntityEffect.java (100%) rename {1.7.10 => src}/main/java/WayofTime/alchemicalWizardry/common/spell/complex/effect/impactEffects/IMeleeSpellEntityEffect.java (100%) rename {1.7.10 => src}/main/java/WayofTime/alchemicalWizardry/common/spell/complex/effect/impactEffects/IMeleeSpellWorldEffect.java (100%) rename {1.7.10 => src}/main/java/WayofTime/alchemicalWizardry/common/spell/complex/effect/impactEffects/IProjectileImpactEffect.java (100%) rename {1.7.10 => src}/main/java/WayofTime/alchemicalWizardry/common/spell/complex/effect/impactEffects/IProjectileUpdateEffect.java (100%) rename {1.7.10 => src}/main/java/WayofTime/alchemicalWizardry/common/spell/complex/effect/impactEffects/ISelfSpellEffect.java (100%) rename {1.7.10 => src}/main/java/WayofTime/alchemicalWizardry/common/spell/complex/effect/impactEffects/MeleeSpellCenteredWorldEffect.java (100%) rename {1.7.10 => src}/main/java/WayofTime/alchemicalWizardry/common/spell/complex/effect/impactEffects/MeleeSpellWorldEffect.java (100%) rename {1.7.10 => src}/main/java/WayofTime/alchemicalWizardry/common/spell/complex/effect/impactEffects/ProjectileImpactEffect.java (100%) rename {1.7.10 => src}/main/java/WayofTime/alchemicalWizardry/common/spell/complex/effect/impactEffects/ProjectileUpdateEffect.java (100%) rename {1.7.10 => src}/main/java/WayofTime/alchemicalWizardry/common/spell/complex/effect/impactEffects/SelfSpellEffect.java (100%) rename {1.7.10 => src}/main/java/WayofTime/alchemicalWizardry/common/spell/complex/effect/impactEffects/earth/MeleeDefaultEarth.java (100%) rename {1.7.10 => src}/main/java/WayofTime/alchemicalWizardry/common/spell/complex/effect/impactEffects/earth/MeleeDefensiveEarth.java (100%) rename {1.7.10 => src}/main/java/WayofTime/alchemicalWizardry/common/spell/complex/effect/impactEffects/earth/MeleeEnvironmentalEarth.java (100%) rename {1.7.10 => src}/main/java/WayofTime/alchemicalWizardry/common/spell/complex/effect/impactEffects/earth/MeleeOffensiveEarth.java (100%) rename {1.7.10 => src}/main/java/WayofTime/alchemicalWizardry/common/spell/complex/effect/impactEffects/earth/ProjectileDefaultEarth.java (100%) rename {1.7.10 => src}/main/java/WayofTime/alchemicalWizardry/common/spell/complex/effect/impactEffects/earth/ProjectileDefensiveEarth.java (100%) rename {1.7.10 => src}/main/java/WayofTime/alchemicalWizardry/common/spell/complex/effect/impactEffects/earth/ProjectileEnvironmentalEarth.java (100%) rename {1.7.10 => src}/main/java/WayofTime/alchemicalWizardry/common/spell/complex/effect/impactEffects/earth/ProjectileOffensiveEarth.java (100%) rename {1.7.10 => src}/main/java/WayofTime/alchemicalWizardry/common/spell/complex/effect/impactEffects/earth/SelfDefaultEarth.java (100%) rename {1.7.10 => src}/main/java/WayofTime/alchemicalWizardry/common/spell/complex/effect/impactEffects/earth/SelfDefensiveEarth.java (100%) rename {1.7.10 => src}/main/java/WayofTime/alchemicalWizardry/common/spell/complex/effect/impactEffects/earth/SelfEnvironmentalEarth.java (100%) rename {1.7.10 => src}/main/java/WayofTime/alchemicalWizardry/common/spell/complex/effect/impactEffects/earth/SelfOffensiveEarth.java (100%) rename {1.7.10 => src}/main/java/WayofTime/alchemicalWizardry/common/spell/complex/effect/impactEffects/earth/ToolEnvironmentalEarth.java (100%) rename {1.7.10 => src}/main/java/WayofTime/alchemicalWizardry/common/spell/complex/effect/impactEffects/earth/ToolOffensiveEarth.java (100%) rename {1.7.10 => src}/main/java/WayofTime/alchemicalWizardry/common/spell/complex/effect/impactEffects/fire/MeleeDefaultFire.java (100%) rename {1.7.10 => src}/main/java/WayofTime/alchemicalWizardry/common/spell/complex/effect/impactEffects/fire/MeleeDefensiveFire.java (100%) rename {1.7.10 => src}/main/java/WayofTime/alchemicalWizardry/common/spell/complex/effect/impactEffects/fire/MeleeEnvironmentalFire.java (100%) rename {1.7.10 => src}/main/java/WayofTime/alchemicalWizardry/common/spell/complex/effect/impactEffects/fire/MeleeOffensiveFire.java (100%) rename {1.7.10 => src}/main/java/WayofTime/alchemicalWizardry/common/spell/complex/effect/impactEffects/fire/ProjectileDefaultFire.java (100%) rename {1.7.10 => src}/main/java/WayofTime/alchemicalWizardry/common/spell/complex/effect/impactEffects/fire/ProjectileDefensiveFire.java (100%) rename {1.7.10 => src}/main/java/WayofTime/alchemicalWizardry/common/spell/complex/effect/impactEffects/fire/ProjectileEnvironmentalFire.java (100%) rename {1.7.10 => src}/main/java/WayofTime/alchemicalWizardry/common/spell/complex/effect/impactEffects/fire/ProjectileOffensiveFire.java (100%) rename {1.7.10 => src}/main/java/WayofTime/alchemicalWizardry/common/spell/complex/effect/impactEffects/fire/SelfDefaultFire.java (100%) rename {1.7.10 => src}/main/java/WayofTime/alchemicalWizardry/common/spell/complex/effect/impactEffects/fire/SelfDefensiveFire.java (100%) rename {1.7.10 => src}/main/java/WayofTime/alchemicalWizardry/common/spell/complex/effect/impactEffects/fire/SelfEnvironmentalFire.java (100%) rename {1.7.10 => src}/main/java/WayofTime/alchemicalWizardry/common/spell/complex/effect/impactEffects/fire/SelfOffensiveFire.java (100%) rename {1.7.10 => src}/main/java/WayofTime/alchemicalWizardry/common/spell/complex/effect/impactEffects/fire/ToolDefaultFire.java (100%) rename {1.7.10 => src}/main/java/WayofTime/alchemicalWizardry/common/spell/complex/effect/impactEffects/fire/ToolEnvironmentalFire.java (100%) rename {1.7.10 => src}/main/java/WayofTime/alchemicalWizardry/common/spell/complex/effect/impactEffects/fire/ToolOffensiveFire.java (100%) rename {1.7.10 => src}/main/java/WayofTime/alchemicalWizardry/common/spell/complex/effect/impactEffects/ice/MeleeDefaultIce.java (100%) rename {1.7.10 => src}/main/java/WayofTime/alchemicalWizardry/common/spell/complex/effect/impactEffects/ice/MeleeDefensiveIce.java (100%) rename {1.7.10 => src}/main/java/WayofTime/alchemicalWizardry/common/spell/complex/effect/impactEffects/ice/MeleeEnvironmentalIce.java (100%) rename {1.7.10 => src}/main/java/WayofTime/alchemicalWizardry/common/spell/complex/effect/impactEffects/ice/MeleeOffensiveIce.java (100%) rename {1.7.10 => src}/main/java/WayofTime/alchemicalWizardry/common/spell/complex/effect/impactEffects/ice/ProjectileDefaultIce.java (100%) rename {1.7.10 => src}/main/java/WayofTime/alchemicalWizardry/common/spell/complex/effect/impactEffects/ice/ProjectileDefensiveIce.java (100%) rename {1.7.10 => src}/main/java/WayofTime/alchemicalWizardry/common/spell/complex/effect/impactEffects/ice/ProjectileEnvironmentalIce.java (100%) rename {1.7.10 => src}/main/java/WayofTime/alchemicalWizardry/common/spell/complex/effect/impactEffects/ice/ProjectileOffensiveIce.java (100%) rename {1.7.10 => src}/main/java/WayofTime/alchemicalWizardry/common/spell/complex/effect/impactEffects/ice/SelfDefaultIce.java (100%) rename {1.7.10 => src}/main/java/WayofTime/alchemicalWizardry/common/spell/complex/effect/impactEffects/ice/SelfDefensiveIce.java (100%) rename {1.7.10 => src}/main/java/WayofTime/alchemicalWizardry/common/spell/complex/effect/impactEffects/ice/SelfEnvironmentalIce.java (100%) rename {1.7.10 => src}/main/java/WayofTime/alchemicalWizardry/common/spell/complex/effect/impactEffects/ice/SelfOffensiveIce.java (100%) rename {1.7.10 => src}/main/java/WayofTime/alchemicalWizardry/common/spell/complex/effect/impactEffects/ice/ToolDefaultIce.java (100%) rename {1.7.10 => src}/main/java/WayofTime/alchemicalWizardry/common/spell/complex/effect/impactEffects/ice/ToolDefensiveIce.java (100%) rename {1.7.10 => src}/main/java/WayofTime/alchemicalWizardry/common/spell/complex/effect/impactEffects/tool/DigAreaEffect.java (100%) rename {1.7.10 => src}/main/java/WayofTime/alchemicalWizardry/common/spell/complex/effect/impactEffects/tool/DigAreaTunnel.java (100%) rename {1.7.10 => src}/main/java/WayofTime/alchemicalWizardry/common/spell/complex/effect/impactEffects/tool/IDigAreaEffect.java (100%) rename {1.7.10 => src}/main/java/WayofTime/alchemicalWizardry/common/spell/complex/effect/impactEffects/tool/IItemManipulator.java (100%) rename {1.7.10 => src}/main/java/WayofTime/alchemicalWizardry/common/spell/complex/effect/impactEffects/tool/ILeftClickEffect.java (100%) rename {1.7.10 => src}/main/java/WayofTime/alchemicalWizardry/common/spell/complex/effect/impactEffects/tool/IOnBanishTool.java (100%) rename {1.7.10 => src}/main/java/WayofTime/alchemicalWizardry/common/spell/complex/effect/impactEffects/tool/IOnBreakBlock.java (100%) rename {1.7.10 => src}/main/java/WayofTime/alchemicalWizardry/common/spell/complex/effect/impactEffects/tool/IOnSummonTool.java (100%) rename {1.7.10 => src}/main/java/WayofTime/alchemicalWizardry/common/spell/complex/effect/impactEffects/tool/IRightClickEffect.java (100%) rename {1.7.10 => src}/main/java/WayofTime/alchemicalWizardry/common/spell/complex/effect/impactEffects/tool/ISpecialDamageEffect.java (100%) rename {1.7.10 => src}/main/java/WayofTime/alchemicalWizardry/common/spell/complex/effect/impactEffects/tool/IToolUpdateEffect.java (100%) rename {1.7.10 => src}/main/java/WayofTime/alchemicalWizardry/common/spell/complex/effect/impactEffects/tool/ItemManipulator.java (100%) rename {1.7.10 => src}/main/java/WayofTime/alchemicalWizardry/common/spell/complex/effect/impactEffects/tool/LeftClickEffect.java (100%) rename {1.7.10 => src}/main/java/WayofTime/alchemicalWizardry/common/spell/complex/effect/impactEffects/tool/OnBreakBlockEffect.java (100%) rename {1.7.10 => src}/main/java/WayofTime/alchemicalWizardry/common/spell/complex/effect/impactEffects/tool/RightClickEffect.java (100%) rename {1.7.10 => src}/main/java/WayofTime/alchemicalWizardry/common/spell/complex/effect/impactEffects/tool/RightClickTunnel.java (100%) rename {1.7.10 => src}/main/java/WayofTime/alchemicalWizardry/common/spell/complex/effect/impactEffects/tool/SummonToolEffect.java (100%) rename {1.7.10 => src}/main/java/WayofTime/alchemicalWizardry/common/spell/complex/effect/impactEffects/wind/MeleeDefaultWind.java (100%) rename {1.7.10 => src}/main/java/WayofTime/alchemicalWizardry/common/spell/complex/effect/impactEffects/wind/MeleeDefensiveWind.java (100%) rename {1.7.10 => src}/main/java/WayofTime/alchemicalWizardry/common/spell/complex/effect/impactEffects/wind/MeleeEnvironmentalWind.java (100%) rename {1.7.10 => src}/main/java/WayofTime/alchemicalWizardry/common/spell/complex/effect/impactEffects/wind/MeleeOffensiveWind.java (100%) rename {1.7.10 => src}/main/java/WayofTime/alchemicalWizardry/common/spell/complex/effect/impactEffects/wind/ProjectileDefaultWind.java (100%) rename {1.7.10 => src}/main/java/WayofTime/alchemicalWizardry/common/spell/complex/effect/impactEffects/wind/ProjectileEnvironmentalWind.java (100%) rename {1.7.10 => src}/main/java/WayofTime/alchemicalWizardry/common/spell/complex/effect/impactEffects/wind/ProjectileOffensiveWind.java (100%) rename {1.7.10 => src}/main/java/WayofTime/alchemicalWizardry/common/spell/complex/effect/impactEffects/wind/SelfDefaultWind.java (100%) rename {1.7.10 => src}/main/java/WayofTime/alchemicalWizardry/common/spell/complex/effect/impactEffects/wind/SelfDefensiveWind.java (100%) rename {1.7.10 => src}/main/java/WayofTime/alchemicalWizardry/common/spell/complex/effect/impactEffects/wind/SelfEnvironmentalWind.java (100%) rename {1.7.10 => src}/main/java/WayofTime/alchemicalWizardry/common/spell/complex/effect/impactEffects/wind/SelfOffensiveWind.java (100%) rename {1.7.10 => src}/main/java/WayofTime/alchemicalWizardry/common/spell/complex/effect/impactEffects/wind/ToolDefensiveWind.java (100%) rename {1.7.10 => src}/main/java/WayofTime/alchemicalWizardry/common/spell/complex/effect/impactEffects/wind/ToolEnvironmentalWind.java (100%) rename {1.7.10 => src}/main/java/WayofTime/alchemicalWizardry/common/spell/complex/effect/impactEffects/wind/ToolOffensiveWind.java (100%) rename {1.7.10 => src}/main/java/WayofTime/alchemicalWizardry/common/spell/complex/enhancement/SpellEnhancement.java (100%) rename {1.7.10 => src}/main/java/WayofTime/alchemicalWizardry/common/spell/complex/enhancement/SpellEnhancementCost.java (100%) rename {1.7.10 => src}/main/java/WayofTime/alchemicalWizardry/common/spell/complex/enhancement/SpellEnhancementPotency.java (100%) rename {1.7.10 => src}/main/java/WayofTime/alchemicalWizardry/common/spell/complex/enhancement/SpellEnhancementPower.java (100%) rename {1.7.10 => src}/main/java/WayofTime/alchemicalWizardry/common/spell/simple/HomSpell.java (100%) rename {1.7.10 => src}/main/java/WayofTime/alchemicalWizardry/common/spell/simple/HomSpellComponent.java (100%) rename {1.7.10 => src}/main/java/WayofTime/alchemicalWizardry/common/spell/simple/HomSpellRegistry.java (100%) rename {1.7.10 => src}/main/java/WayofTime/alchemicalWizardry/common/spell/simple/ISimpleSpell.java (100%) rename {1.7.10 => src}/main/java/WayofTime/alchemicalWizardry/common/spell/simple/SpellEarthBender.java (100%) rename {1.7.10 => src}/main/java/WayofTime/alchemicalWizardry/common/spell/simple/SpellExplosions.java (100%) rename {1.7.10 => src}/main/java/WayofTime/alchemicalWizardry/common/spell/simple/SpellFireBurst.java (100%) rename {1.7.10 => src}/main/java/WayofTime/alchemicalWizardry/common/spell/simple/SpellFrozenWater.java (100%) rename {1.7.10 => src}/main/java/WayofTime/alchemicalWizardry/common/spell/simple/SpellHolyBlast.java (100%) rename {1.7.10 => src}/main/java/WayofTime/alchemicalWizardry/common/spell/simple/SpellLightningBolt.java (100%) rename {1.7.10 => src}/main/java/WayofTime/alchemicalWizardry/common/spell/simple/SpellTeleport.java (100%) rename {1.7.10 => src}/main/java/WayofTime/alchemicalWizardry/common/spell/simple/SpellWateryGrave.java (100%) rename {1.7.10 => src}/main/java/WayofTime/alchemicalWizardry/common/spell/simple/SpellWindGust.java (100%) rename {1.7.10 => src}/main/java/WayofTime/alchemicalWizardry/common/summoning/SummoningFallenAngel.java (100%) rename {1.7.10 => src}/main/java/WayofTime/alchemicalWizardry/common/summoning/SummoningHelperAW.java (100%) rename {1.7.10 => src}/main/java/WayofTime/alchemicalWizardry/common/summoning/meteor/MeteorParadigm.java (100%) rename {1.7.10 => src}/main/java/WayofTime/alchemicalWizardry/common/summoning/meteor/MeteorParadigmComponent.java (100%) rename {1.7.10 => src}/main/java/WayofTime/alchemicalWizardry/common/summoning/meteor/MeteorRegistry.java (100%) rename {1.7.10 => src}/main/java/WayofTime/alchemicalWizardry/common/tileEntity/TEAlchemicCalcinator.java (100%) rename {1.7.10 => src}/main/java/WayofTime/alchemicalWizardry/common/tileEntity/TEAltar.java (100%) rename {1.7.10 => src}/main/java/WayofTime/alchemicalWizardry/common/tileEntity/TEBellJar.java (100%) rename {1.7.10 => src}/main/java/WayofTime/alchemicalWizardry/common/tileEntity/TEConduit.java (100%) rename {1.7.10 => src}/main/java/WayofTime/alchemicalWizardry/common/tileEntity/TEHomHeart.java (100%) rename {1.7.10 => src}/main/java/WayofTime/alchemicalWizardry/common/tileEntity/TEImperfectRitualStone.java (100%) rename {1.7.10 => src}/main/java/WayofTime/alchemicalWizardry/common/tileEntity/TEMasterStone.java (100%) rename {1.7.10 => src}/main/java/WayofTime/alchemicalWizardry/common/tileEntity/TEOrientable.java (100%) rename {1.7.10 => src}/main/java/WayofTime/alchemicalWizardry/common/tileEntity/TEPedestal.java (100%) rename {1.7.10 => src}/main/java/WayofTime/alchemicalWizardry/common/tileEntity/TEPlinth.java (100%) rename {1.7.10 => src}/main/java/WayofTime/alchemicalWizardry/common/tileEntity/TEReagentConduit.java (100%) rename {1.7.10 => src}/main/java/WayofTime/alchemicalWizardry/common/tileEntity/TESchematicSaver.java (100%) rename {1.7.10 => src}/main/java/WayofTime/alchemicalWizardry/common/tileEntity/TESocket.java (100%) rename {1.7.10 => src}/main/java/WayofTime/alchemicalWizardry/common/tileEntity/TESpectralBlock.java (100%) rename {1.7.10 => src}/main/java/WayofTime/alchemicalWizardry/common/tileEntity/TESpectralContainer.java (100%) rename {1.7.10 => src}/main/java/WayofTime/alchemicalWizardry/common/tileEntity/TESpellBlock.java (100%) rename {1.7.10 => src}/main/java/WayofTime/alchemicalWizardry/common/tileEntity/TESpellEffectBlock.java (100%) rename {1.7.10 => src}/main/java/WayofTime/alchemicalWizardry/common/tileEntity/TESpellEnhancementBlock.java (100%) rename {1.7.10 => src}/main/java/WayofTime/alchemicalWizardry/common/tileEntity/TESpellModifierBlock.java (100%) rename {1.7.10 => src}/main/java/WayofTime/alchemicalWizardry/common/tileEntity/TESpellParadigmBlock.java (100%) rename {1.7.10 => src}/main/java/WayofTime/alchemicalWizardry/common/tileEntity/TETeleposer.java (100%) rename {1.7.10 => src}/main/java/WayofTime/alchemicalWizardry/common/tileEntity/TEWritingTable.java (100%) rename {1.7.10 => src}/main/java/WayofTime/alchemicalWizardry/common/tileEntity/container/ContainerAltar.java (100%) rename {1.7.10 => src}/main/java/WayofTime/alchemicalWizardry/common/tileEntity/container/ContainerTeleposer.java (100%) rename {1.7.10 => src}/main/java/WayofTime/alchemicalWizardry/common/tileEntity/container/ContainerWritingTable.java (100%) rename {1.7.10 => src}/main/java/WayofTime/alchemicalWizardry/common/tileEntity/gui/GuiHandler.java (100%) rename {1.7.10 => src}/main/java/WayofTime/alchemicalWizardry/common/tileEntity/gui/GuiTeleposer.java (100%) rename {1.7.10 => src}/main/java/WayofTime/alchemicalWizardry/common/tileEntity/gui/GuiWritingTable.java (100%) rename {1.7.10 => src}/main/java/WayofTime/alchemicalWizardry/common/tweaker/Alchemy.java (100%) rename {1.7.10 => src}/main/java/WayofTime/alchemicalWizardry/common/tweaker/Binding.java (100%) rename {1.7.10 => src}/main/java/WayofTime/alchemicalWizardry/common/tweaker/BloodAltar.java (100%) rename {1.7.10 => src}/main/java/WayofTime/alchemicalWizardry/common/tweaker/BloodOrb.java (100%) rename {1.7.10 => src}/main/java/WayofTime/alchemicalWizardry/common/tweaker/MTHelper.java (100%) rename {1.7.10 => src}/main/java/WayofTime/alchemicalWizardry/common/tweaker/MineTweakerIntegration.java (100%) rename {1.7.10 => src}/main/resources/assets/alchemicalwizardry/altar.png (100%) rename {1.7.10 => src}/main/resources/assets/alchemicalwizardry/books/architect.xml (100%) rename {1.7.10 => src}/main/resources/assets/alchemicalwizardry/gui/Teleposer.png (100%) rename {1.7.10 => src}/main/resources/assets/alchemicalwizardry/gui/WritingTable.png (100%) rename {1.7.10 => src}/main/resources/assets/alchemicalwizardry/gui/bookleft.png (100%) rename {1.7.10 => src}/main/resources/assets/alchemicalwizardry/gui/nei/alchemy.png (100%) rename {1.7.10 => src}/main/resources/assets/alchemicalwizardry/gui/nei/altar.png (100%) rename {1.7.10 => src}/main/resources/assets/alchemicalwizardry/lang/de_DE.lang (100%) rename {1.7.10 => src}/main/resources/assets/alchemicalwizardry/lang/en_US.lang (100%) rename {1.7.10 => src}/main/resources/assets/alchemicalwizardry/lang/fr_FR.lang (100%) rename {1.7.10 => src}/main/resources/assets/alchemicalwizardry/lang/it_IT.lang (100%) rename {1.7.10 => src}/main/resources/assets/alchemicalwizardry/lang/ko_KR.lang (100%) rename {1.7.10 => src}/main/resources/assets/alchemicalwizardry/lang/ru_RU.lang (100%) rename {1.7.10 => src}/main/resources/assets/alchemicalwizardry/lang/zh_CN.lang (100%) rename {1.7.10 => src}/main/resources/assets/alchemicalwizardry/lang/zh_TW.lang (100%) rename {1.7.10 => src}/main/resources/assets/alchemicalwizardry/models/armor/BloodArmour_WIP.png (100%) rename {1.7.10 => src}/main/resources/assets/alchemicalwizardry/models/armor/boundArmour_invisible_layer_1.png (100%) rename {1.7.10 => src}/main/resources/assets/alchemicalwizardry/models/armor/boundArmour_invisible_layer_2.png (100%) rename {1.7.10 => src}/main/resources/assets/alchemicalwizardry/models/armor/boundArmour_layer_1.png (100%) rename {1.7.10 => src}/main/resources/assets/alchemicalwizardry/models/armor/boundArmour_layer_2.png (100%) rename {1.7.10 => src}/main/resources/assets/alchemicalwizardry/models/armor/sanguineArmour_layer_1.png (100%) rename {1.7.10 => src}/main/resources/assets/alchemicalwizardry/models/armor/sanguineArmour_layer_2.png (100%) rename {1.7.10 => src}/main/resources/assets/alchemicalwizardry/schematics/building/buildings.zip (100%) rename {1.7.10 => src}/main/resources/assets/alchemicalwizardry/shaders/beam.frag (100%) rename {1.7.10 => src}/main/resources/assets/alchemicalwizardry/textures/blocks/AirRitualStone.png (100%) rename {1.7.10 => src}/main/resources/assets/alchemicalwizardry/textures/blocks/AlchemicChemistrySet.png (100%) rename {1.7.10 => src}/main/resources/assets/alchemicalwizardry/textures/blocks/AltarCapacityRune.png (100%) rename {1.7.10 => src}/main/resources/assets/alchemicalwizardry/textures/blocks/ArcanePedestal.png (100%) rename {1.7.10 => src}/main/resources/assets/alchemicalwizardry/textures/blocks/ArcanePlinth.png (100%) rename {1.7.10 => src}/main/resources/assets/alchemicalwizardry/textures/blocks/BetterCapacityRune.png (100%) rename {1.7.10 => src}/main/resources/assets/alchemicalwizardry/textures/blocks/BlankRune.png (100%) rename {1.7.10 => src}/main/resources/assets/alchemicalwizardry/textures/blocks/BlockBloodLight.png (100%) rename {1.7.10 => src}/main/resources/assets/alchemicalwizardry/textures/blocks/BloodAltar_Bottom.png (100%) rename {1.7.10 => src}/main/resources/assets/alchemicalwizardry/textures/blocks/BloodAltar_SideType1.png (100%) rename {1.7.10 => src}/main/resources/assets/alchemicalwizardry/textures/blocks/BloodAltar_SideType2.png (100%) rename {1.7.10 => src}/main/resources/assets/alchemicalwizardry/textures/blocks/BloodAltar_Top.png (100%) rename {1.7.10 => src}/main/resources/assets/alchemicalwizardry/textures/blocks/BloodSocket.png (100%) rename {1.7.10 => src}/main/resources/assets/alchemicalwizardry/textures/blocks/BloodStoneBrick.png (100%) rename {1.7.10 => src}/main/resources/assets/alchemicalwizardry/textures/blocks/DislocationRune.png (100%) rename {1.7.10 => src}/main/resources/assets/alchemicalwizardry/textures/blocks/DuskRitualStone.png (100%) rename {1.7.10 => src}/main/resources/assets/alchemicalwizardry/textures/blocks/EarthRitualStone.png (100%) rename {1.7.10 => src}/main/resources/assets/alchemicalwizardry/textures/blocks/EfficiencyRune.png (100%) rename {1.7.10 => src}/main/resources/assets/alchemicalwizardry/textures/blocks/EmptySocket.png (100%) rename {1.7.10 => src}/main/resources/assets/alchemicalwizardry/textures/blocks/FireRitualStone.png (100%) rename {1.7.10 => src}/main/resources/assets/alchemicalwizardry/textures/blocks/HomHeart_bottom.png (100%) rename {1.7.10 => src}/main/resources/assets/alchemicalwizardry/textures/blocks/HomHeart_side.png (100%) rename {1.7.10 => src}/main/resources/assets/alchemicalwizardry/textures/blocks/HomHeart_top.png (100%) rename {1.7.10 => src}/main/resources/assets/alchemicalwizardry/textures/blocks/HomHeart_top1.png (100%) rename {1.7.10 => src}/main/resources/assets/alchemicalwizardry/textures/blocks/ImperfectRitualStone.png (100%) rename {1.7.10 => src}/main/resources/assets/alchemicalwizardry/textures/blocks/LargeBloodStoneBrick.png (100%) rename {1.7.10 => src}/main/resources/assets/alchemicalwizardry/textures/blocks/MasterStone.png (100%) rename {1.7.10 => src}/main/resources/assets/alchemicalwizardry/textures/blocks/OrbCapacityRune.png (100%) rename {1.7.10 => src}/main/resources/assets/alchemicalwizardry/textures/blocks/RitualStone.png (100%) rename {1.7.10 => src}/main/resources/assets/alchemicalwizardry/textures/blocks/RuneOfSacrifice.png (100%) rename {1.7.10 => src}/main/resources/assets/alchemicalwizardry/textures/blocks/RuneOfSelfSacrifice.png (100%) rename {1.7.10 => src}/main/resources/assets/alchemicalwizardry/textures/blocks/SimpleTransCircle.png (100%) rename {1.7.10 => src}/main/resources/assets/alchemicalwizardry/textures/blocks/SoulForge.png (100%) rename {1.7.10 => src}/main/resources/assets/alchemicalwizardry/textures/blocks/SpectralBlock.png (100%) rename {1.7.10 => src}/main/resources/assets/alchemicalwizardry/textures/blocks/SpeedRune.png (100%) rename {1.7.10 => src}/main/resources/assets/alchemicalwizardry/textures/blocks/Teleposer_Side.png (100%) rename {1.7.10 => src}/main/resources/assets/alchemicalwizardry/textures/blocks/Teleposer_Top.png (100%) rename {1.7.10 => src}/main/resources/assets/alchemicalwizardry/textures/blocks/Testing.png (100%) rename {1.7.10 => src}/main/resources/assets/alchemicalwizardry/textures/blocks/WaterRitualStone.png (100%) rename {1.7.10 => src}/main/resources/assets/alchemicalwizardry/textures/blocks/fireEffectBlock_blank.png (100%) rename {1.7.10 => src}/main/resources/assets/alchemicalwizardry/textures/blocks/fireEffectBlock_input.png (100%) rename {1.7.10 => src}/main/resources/assets/alchemicalwizardry/textures/blocks/fireEffectBlock_output.png (100%) rename {1.7.10 => src}/main/resources/assets/alchemicalwizardry/textures/blocks/fireEffectBlock_upArrow.png (100%) rename {1.7.10 => src}/main/resources/assets/alchemicalwizardry/textures/blocks/lifeEssenceFlowing.png (100%) rename {1.7.10 => src}/main/resources/assets/alchemicalwizardry/textures/blocks/lifeEssenceStill.png (100%) rename {1.7.10 => src}/main/resources/assets/alchemicalwizardry/textures/entities/energyBlastProjectile.png (100%) rename {1.7.10 => src}/main/resources/assets/alchemicalwizardry/textures/entities/explosionProjectile.png (100%) rename {1.7.10 => src}/main/resources/assets/alchemicalwizardry/textures/entities/fireProjectile.png (100%) rename {1.7.10 => src}/main/resources/assets/alchemicalwizardry/textures/entities/holyProjectile.png (100%) rename {1.7.10 => src}/main/resources/assets/alchemicalwizardry/textures/entities/iceProjectile.png (100%) rename {1.7.10 => src}/main/resources/assets/alchemicalwizardry/textures/entities/lightningProjectile.png (100%) rename {1.7.10 => src}/main/resources/assets/alchemicalwizardry/textures/entities/mudProjectile.png (100%) rename {1.7.10 => src}/main/resources/assets/alchemicalwizardry/textures/entities/waterProjectile.png (100%) rename {1.7.10 => src}/main/resources/assets/alchemicalwizardry/textures/entities/windGustProjectile.png (100%) rename {1.7.10 => src}/main/resources/assets/alchemicalwizardry/textures/gui/GuiTrap.png (100%) rename {1.7.10 => src}/main/resources/assets/alchemicalwizardry/textures/gui/bookcrafting.png (100%) rename {1.7.10 => src}/main/resources/assets/alchemicalwizardry/textures/gui/bookfurnace.png (100%) rename {1.7.10 => src}/main/resources/assets/alchemicalwizardry/textures/gui/bookleft.png (100%) rename {1.7.10 => src}/main/resources/assets/alchemicalwizardry/textures/gui/bookright.png (100%) rename {1.7.10 => src}/main/resources/assets/alchemicalwizardry/textures/items/8wWtY8d.png (100%) rename {1.7.10 => src}/main/resources/assets/alchemicalwizardry/textures/items/Aether.png (100%) rename {1.7.10 => src}/main/resources/assets/alchemicalwizardry/textures/items/AirScribeTool.png (100%) rename {1.7.10 => src}/main/resources/assets/alchemicalwizardry/textures/items/AirSigil.png (100%) rename {1.7.10 => src}/main/resources/assets/alchemicalwizardry/textures/items/ApprenticeBloodOrb.png (100%) rename {1.7.10 => src}/main/resources/assets/alchemicalwizardry/textures/items/Aquasalus.png (100%) rename {1.7.10 => src}/main/resources/assets/alchemicalwizardry/textures/items/ArchmageBloodOrb.png (100%) rename {1.7.10 => src}/main/resources/assets/alchemicalwizardry/textures/items/ArmourInhibitor_activated.png (100%) rename {1.7.10 => src}/main/resources/assets/alchemicalwizardry/textures/items/ArmourInhibitor_deactivated.png (100%) rename {1.7.10 => src}/main/resources/assets/alchemicalwizardry/textures/items/AttunedCrystal1.png (100%) rename {1.7.10 => src}/main/resources/assets/alchemicalwizardry/textures/items/AttunedCrystal2.png (100%) rename {1.7.10 => src}/main/resources/assets/alchemicalwizardry/textures/items/AverageLengtheningCatalyst.png (100%) rename {1.7.10 => src}/main/resources/assets/alchemicalwizardry/textures/items/AveragePowerCatalyst.png (100%) rename {1.7.10 => src}/main/resources/assets/alchemicalwizardry/textures/items/BlankSlate.png (100%) rename {1.7.10 => src}/main/resources/assets/alchemicalwizardry/textures/items/BlankSpell.png (100%) rename {1.7.10 => src}/main/resources/assets/alchemicalwizardry/textures/items/BloodFrame.png (100%) rename {1.7.10 => src}/main/resources/assets/alchemicalwizardry/textures/items/BloodLightSigil.png (100%) rename {1.7.10 => src}/main/resources/assets/alchemicalwizardry/textures/items/BoundAxe_activated.png (100%) rename {1.7.10 => src}/main/resources/assets/alchemicalwizardry/textures/items/BoundBoots.png (100%) rename {1.7.10 => src}/main/resources/assets/alchemicalwizardry/textures/items/BoundHelmet.png (100%) rename {1.7.10 => src}/main/resources/assets/alchemicalwizardry/textures/items/BoundLeggings.png (100%) rename {1.7.10 => src}/main/resources/assets/alchemicalwizardry/textures/items/BoundPickaxe_activated.png (100%) rename {1.7.10 => src}/main/resources/assets/alchemicalwizardry/textures/items/BoundPickaxe_deactivated.png (100%) rename {1.7.10 => src}/main/resources/assets/alchemicalwizardry/textures/items/BoundPlate.png (100%) rename {1.7.10 => src}/main/resources/assets/alchemicalwizardry/textures/items/BoundShovel_activated.png (100%) rename {1.7.10 => src}/main/resources/assets/alchemicalwizardry/textures/items/BoundSword_activated.png (100%) rename {1.7.10 => src}/main/resources/assets/alchemicalwizardry/textures/items/BoundTool.png (100%) rename {1.7.10 => src}/main/resources/assets/alchemicalwizardry/textures/items/BridgeSigil_activated.png (100%) rename {1.7.10 => src}/main/resources/assets/alchemicalwizardry/textures/items/BridgeSigil_deactivated.png (100%) rename {1.7.10 => src}/main/resources/assets/alchemicalwizardry/textures/items/CeremonialDagger.png (100%) rename {1.7.10 => src}/main/resources/assets/alchemicalwizardry/textures/items/CombinationalCatalyst.png (100%) rename {1.7.10 => src}/main/resources/assets/alchemicalwizardry/textures/items/ComplexCrystal.png (100%) rename {1.7.10 => src}/main/resources/assets/alchemicalwizardry/textures/items/Crepitous.png (100%) rename {1.7.10 => src}/main/resources/assets/alchemicalwizardry/textures/items/Crystallos.png (100%) rename {1.7.10 => src}/main/resources/assets/alchemicalwizardry/textures/items/DaggerOfSacrifice.png (100%) rename {1.7.10 => src}/main/resources/assets/alchemicalwizardry/textures/items/DemonBloodShard.png (100%) rename {1.7.10 => src}/main/resources/assets/alchemicalwizardry/textures/items/DemonPlacer.png (100%) rename {1.7.10 => src}/main/resources/assets/alchemicalwizardry/textures/items/DemonSlate.png (100%) rename {1.7.10 => src}/main/resources/assets/alchemicalwizardry/textures/items/DemonicTeleposerFocus.png (100%) rename {1.7.10 => src}/main/resources/assets/alchemicalwizardry/textures/items/DiabloKey.png (100%) rename {1.7.10 => src}/main/resources/assets/alchemicalwizardry/textures/items/DivinationSigil.png (100%) rename {1.7.10 => src}/main/resources/assets/alchemicalwizardry/textures/items/DuskScribeTool.png (100%) rename {1.7.10 => src}/main/resources/assets/alchemicalwizardry/textures/items/EarthScribeTool.png (100%) rename {1.7.10 => src}/main/resources/assets/alchemicalwizardry/textures/items/ElementalSigil_activated.png (100%) rename {1.7.10 => src}/main/resources/assets/alchemicalwizardry/textures/items/ElementalSigil_deactivated.png (100%) rename {1.7.10 => src}/main/resources/assets/alchemicalwizardry/textures/items/EnergyBattery.png (100%) rename {1.7.10 => src}/main/resources/assets/alchemicalwizardry/textures/items/EnergyBazooka_activated.png (100%) rename {1.7.10 => src}/main/resources/assets/alchemicalwizardry/textures/items/EnergyBlaster_activated.png (100%) rename {1.7.10 => src}/main/resources/assets/alchemicalwizardry/textures/items/EnhancedFillingAgent.png (100%) rename {1.7.10 => src}/main/resources/assets/alchemicalwizardry/textures/items/EnhancedTeleposerFocus.png (100%) rename {1.7.10 => src}/main/resources/assets/alchemicalwizardry/textures/items/FireScribeTool.png (100%) rename {1.7.10 => src}/main/resources/assets/alchemicalwizardry/textures/items/GreaterLengtheningCatalyst.png (100%) rename {1.7.10 => src}/main/resources/assets/alchemicalwizardry/textures/items/GreaterPowerCatalyst.png (100%) rename {1.7.10 => src}/main/resources/assets/alchemicalwizardry/textures/items/GrowthSigil_activated.png (100%) rename {1.7.10 => src}/main/resources/assets/alchemicalwizardry/textures/items/GrowthSigil_deactivated.png (100%) rename {1.7.10 => src}/main/resources/assets/alchemicalwizardry/textures/items/HasteSigil_activated.png (100%) rename {1.7.10 => src}/main/resources/assets/alchemicalwizardry/textures/items/HasteSigil_deactivated.png (100%) rename {1.7.10 => src}/main/resources/assets/alchemicalwizardry/textures/items/IceSigil_activated.png (100%) rename {1.7.10 => src}/main/resources/assets/alchemicalwizardry/textures/items/IceSigil_deactivated.png (100%) rename {1.7.10 => src}/main/resources/assets/alchemicalwizardry/textures/items/Incendium.png (100%) rename {1.7.10 => src}/main/resources/assets/alchemicalwizardry/textures/items/InfusedSlate.png (100%) rename {1.7.10 => src}/main/resources/assets/alchemicalwizardry/textures/items/LavaCrystal.png (100%) rename {1.7.10 => src}/main/resources/assets/alchemicalwizardry/textures/items/LavaSigil.png (100%) rename {1.7.10 => src}/main/resources/assets/alchemicalwizardry/textures/items/LifeBucket.png (100%) rename {1.7.10 => src}/main/resources/assets/alchemicalwizardry/textures/items/Magicales.png (100%) rename {1.7.10 => src}/main/resources/assets/alchemicalwizardry/textures/items/MagicianBloodOrb.png (100%) rename {1.7.10 => src}/main/resources/assets/alchemicalwizardry/textures/items/MasterBloodOrb.png (100%) rename {1.7.10 => src}/main/resources/assets/alchemicalwizardry/textures/items/MiningSigil_activated.png (100%) rename {1.7.10 => src}/main/resources/assets/alchemicalwizardry/textures/items/MiningSigil_deactivated.png (100%) rename {1.7.10 => src}/main/resources/assets/alchemicalwizardry/textures/items/MundaneLengtheningCatalyst.png (100%) rename {1.7.10 => src}/main/resources/assets/alchemicalwizardry/textures/items/MundanePowerCatalyst.png (100%) rename {1.7.10 => src}/main/resources/assets/alchemicalwizardry/textures/items/PotionFlask.png (100%) rename {1.7.10 => src}/main/resources/assets/alchemicalwizardry/textures/items/ReinforcedSlate.png (100%) rename {1.7.10 => src}/main/resources/assets/alchemicalwizardry/textures/items/ReinforcedTeleposerFocus.png (100%) rename {1.7.10 => src}/main/resources/assets/alchemicalwizardry/textures/items/RitualDiviner.png (100%) rename {1.7.10 => src}/main/resources/assets/alchemicalwizardry/textures/items/SacrificialDagger.png (100%) rename {1.7.10 => src}/main/resources/assets/alchemicalwizardry/textures/items/Sanctus.png (100%) rename {1.7.10 => src}/main/resources/assets/alchemicalwizardry/textures/items/SanguineHelmet.png (100%) rename {1.7.10 => src}/main/resources/assets/alchemicalwizardry/textures/items/SeerSigil.png (100%) rename {1.7.10 => src}/main/resources/assets/alchemicalwizardry/textures/items/SheathedItem.png (100%) rename {1.7.10 => src}/main/resources/assets/alchemicalwizardry/textures/items/SigilOfHolding.png (100%) rename {1.7.10 => src}/main/resources/assets/alchemicalwizardry/textures/items/SigilOfMagnetism_activated.png (100%) rename {1.7.10 => src}/main/resources/assets/alchemicalwizardry/textures/items/SigilOfMagnetism_deactivated.png (100%) rename {1.7.10 => src}/main/resources/assets/alchemicalwizardry/textures/items/SigilOfSeverance_activated.png (100%) rename {1.7.10 => src}/main/resources/assets/alchemicalwizardry/textures/items/SigilOfSeverance_deactivated.png (100%) rename {1.7.10 => src}/main/resources/assets/alchemicalwizardry/textures/items/SigilOfSupression_activated.png (100%) rename {1.7.10 => src}/main/resources/assets/alchemicalwizardry/textures/items/SigilOfSupression_deactivated.png (100%) rename {1.7.10 => src}/main/resources/assets/alchemicalwizardry/textures/items/SimpleCatalyst.png (100%) rename {1.7.10 => src}/main/resources/assets/alchemicalwizardry/textures/items/StandardBindingAgent.png (100%) rename {1.7.10 => src}/main/resources/assets/alchemicalwizardry/textures/items/StandardFillingAgent.png (100%) rename {1.7.10 => src}/main/resources/assets/alchemicalwizardry/textures/items/TankClearer.png (100%) rename {1.7.10 => src}/main/resources/assets/alchemicalwizardry/textures/items/TankSegmenter1.png (100%) rename {1.7.10 => src}/main/resources/assets/alchemicalwizardry/textures/items/TankSegmenter2.png (100%) rename {1.7.10 => src}/main/resources/assets/alchemicalwizardry/textures/items/TeleposerFocus.png (100%) rename {1.7.10 => src}/main/resources/assets/alchemicalwizardry/textures/items/Tennebrae.png (100%) rename {1.7.10 => src}/main/resources/assets/alchemicalwizardry/textures/items/Terrae.png (100%) rename {1.7.10 => src}/main/resources/assets/alchemicalwizardry/textures/items/UntamedCrystal.png (100%) rename {1.7.10 => src}/main/resources/assets/alchemicalwizardry/textures/items/VoidSigil.png (100%) rename {1.7.10 => src}/main/resources/assets/alchemicalwizardry/textures/items/WarriorSigil_activated.png (100%) rename {1.7.10 => src}/main/resources/assets/alchemicalwizardry/textures/items/WarriorSigil_deactivated.png (100%) rename {1.7.10 => src}/main/resources/assets/alchemicalwizardry/textures/items/WaterScribeTool.png (100%) rename {1.7.10 => src}/main/resources/assets/alchemicalwizardry/textures/items/WaterSigil.png (100%) rename {1.7.10 => src}/main/resources/assets/alchemicalwizardry/textures/items/WeakBindingAgent.png (100%) rename {1.7.10 => src}/main/resources/assets/alchemicalwizardry/textures/items/WeakBloodShard.png (100%) rename {1.7.10 => src}/main/resources/assets/alchemicalwizardry/textures/items/WeakFillingAgent.png (100%) rename {1.7.10 => src}/main/resources/assets/alchemicalwizardry/textures/items/WindSigil_activated.png (100%) rename {1.7.10 => src}/main/resources/assets/alchemicalwizardry/textures/items/WindSigil_deactivated.png (100%) rename {1.7.10 => src}/main/resources/assets/alchemicalwizardry/textures/items/activationCrystalAwakened.png (100%) rename {1.7.10 => src}/main/resources/assets/alchemicalwizardry/textures/items/activationCrystalWeak.png (100%) rename {1.7.10 => src}/main/resources/assets/alchemicalwizardry/textures/items/baseAlchemyItemConcentratedCatalyst.png (100%) rename {1.7.10 => src}/main/resources/assets/alchemicalwizardry/textures/items/baseAlchemyItemFracturedBone.png (100%) rename {1.7.10 => src}/main/resources/assets/alchemicalwizardry/textures/items/baseAlchemyItemOffensa.png (100%) rename {1.7.10 => src}/main/resources/assets/alchemicalwizardry/textures/items/baseAlchemyItemOrbisTerrae.png (100%) rename {1.7.10 => src}/main/resources/assets/alchemicalwizardry/textures/items/baseAlchemyItemPotentia.png (100%) rename {1.7.10 => src}/main/resources/assets/alchemicalwizardry/textures/items/baseAlchemyItemPraesidium.png (100%) rename {1.7.10 => src}/main/resources/assets/alchemicalwizardry/textures/items/baseAlchemyItemReductus.png (100%) rename {1.7.10 => src}/main/resources/assets/alchemicalwizardry/textures/items/baseAlchemyItemStrengthenedCatalyst.png (100%) rename {1.7.10 => src}/main/resources/assets/alchemicalwizardry/textures/items/baseAlchemyItemVirtus.png (100%) rename {1.7.10 => src}/main/resources/assets/alchemicalwizardry/textures/items/baseItemCostCore.png (100%) rename {1.7.10 => src}/main/resources/assets/alchemicalwizardry/textures/items/baseItemCrackedRunicPlate.png (100%) rename {1.7.10 => src}/main/resources/assets/alchemicalwizardry/textures/items/baseItemDefaultCore.png (100%) rename {1.7.10 => src}/main/resources/assets/alchemicalwizardry/textures/items/baseItemDefensiveCore.png (100%) rename {1.7.10 => src}/main/resources/assets/alchemicalwizardry/textures/items/baseItemEarthenCore.png (100%) rename {1.7.10 => src}/main/resources/assets/alchemicalwizardry/textures/items/baseItemEmptyCore.png (100%) rename {1.7.10 => src}/main/resources/assets/alchemicalwizardry/textures/items/baseItemEnvironmentalCore.png (100%) rename {1.7.10 => src}/main/resources/assets/alchemicalwizardry/textures/items/baseItemFlameCore.png (100%) rename {1.7.10 => src}/main/resources/assets/alchemicalwizardry/textures/items/baseItemGustCore.png (100%) rename {1.7.10 => src}/main/resources/assets/alchemicalwizardry/textures/items/baseItemIcyCore.png (100%) rename {1.7.10 => src}/main/resources/assets/alchemicalwizardry/textures/items/baseItemInputCable.png (100%) rename {1.7.10 => src}/main/resources/assets/alchemicalwizardry/textures/items/baseItemMagicalesCable.png (100%) rename {1.7.10 => src}/main/resources/assets/alchemicalwizardry/textures/items/baseItemMeleeCore.png (100%) rename {1.7.10 => src}/main/resources/assets/alchemicalwizardry/textures/items/baseItemObsidianBrace.png (100%) rename {1.7.10 => src}/main/resources/assets/alchemicalwizardry/textures/items/baseItemOffensiveCore.png (100%) rename {1.7.10 => src}/main/resources/assets/alchemicalwizardry/textures/items/baseItemOutputCable.png (100%) rename {1.7.10 => src}/main/resources/assets/alchemicalwizardry/textures/items/baseItemParadigmBackPlate.png (100%) rename {1.7.10 => src}/main/resources/assets/alchemicalwizardry/textures/items/baseItemPotencyCore.png (100%) rename {1.7.10 => src}/main/resources/assets/alchemicalwizardry/textures/items/baseItemPowerCore.png (100%) rename {1.7.10 => src}/main/resources/assets/alchemicalwizardry/textures/items/baseItemProjectileCore.png (100%) rename {1.7.10 => src}/main/resources/assets/alchemicalwizardry/textures/items/baseItemQuartzRod.png (100%) rename {1.7.10 => src}/main/resources/assets/alchemicalwizardry/textures/items/baseItemRunicPlate.png (100%) rename {1.7.10 => src}/main/resources/assets/alchemicalwizardry/textures/items/baseItemScribedRunicPlate.png (100%) rename {1.7.10 => src}/main/resources/assets/alchemicalwizardry/textures/items/baseItemSelfCore.png (100%) rename {1.7.10 => src}/main/resources/assets/alchemicalwizardry/textures/items/baseItemStoneBrace.png (100%) rename {1.7.10 => src}/main/resources/assets/alchemicalwizardry/textures/items/baseItemToolCore.png (100%) rename {1.7.10 => src}/main/resources/assets/alchemicalwizardry/textures/items/baseItemWoodBrace.png (100%) rename {1.7.10 => src}/main/resources/assets/alchemicalwizardry/textures/items/bloodBlastOrn.png (100%) rename {1.7.10 => src}/main/resources/assets/alchemicalwizardry/textures/items/focusBloodBlastOrn.png (100%) rename {1.7.10 => src}/main/resources/assets/alchemicalwizardry/textures/items/tYf5ft9.png (100%) rename {1.7.10 => src}/main/resources/assets/alchemicalwizardry/textures/models/AirFloatingBeacon.png (100%) rename {1.7.10 => src}/main/resources/assets/alchemicalwizardry/textures/models/AlchemicalCalcinator.png (100%) rename {1.7.10 => src}/main/resources/assets/alchemicalwizardry/textures/models/BileDemon.png (100%) rename {1.7.10 => src}/main/resources/assets/alchemicalwizardry/textures/models/Bird.png (100%) rename {1.7.10 => src}/main/resources/assets/alchemicalwizardry/textures/models/BlockSpellEffect.png (100%) rename {1.7.10 => src}/main/resources/assets/alchemicalwizardry/textures/models/BoulderFist.png (100%) rename {1.7.10 => src}/main/resources/assets/alchemicalwizardry/textures/models/Conduit.png (100%) rename {1.7.10 => src}/main/resources/assets/alchemicalwizardry/textures/models/CrystalBelljar.png (100%) rename {1.7.10 => src}/main/resources/assets/alchemicalwizardry/textures/models/DarkFloatingBeacon.png (100%) rename {1.7.10 => src}/main/resources/assets/alchemicalwizardry/textures/models/EarthFloatingBeacon.png (100%) rename {1.7.10 => src}/main/resources/assets/alchemicalwizardry/textures/models/EnergyBazookaMainProjectile.png (100%) rename {1.7.10 => src}/main/resources/assets/alchemicalwizardry/textures/models/FireFloatingBeacon.png (100%) rename {1.7.10 => src}/main/resources/assets/alchemicalwizardry/textures/models/FloatingBeacon.png (100%) rename {1.7.10 => src}/main/resources/assets/alchemicalwizardry/textures/models/HolyFloatingBeacon.png (100%) rename {1.7.10 => src}/main/resources/assets/alchemicalwizardry/textures/models/IceDemon.png (100%) rename {1.7.10 => src}/main/resources/assets/alchemicalwizardry/textures/models/LowerGuardian.png (100%) rename {1.7.10 => src}/main/resources/assets/alchemicalwizardry/textures/models/Meteor.png (100%) rename {1.7.10 => src}/main/resources/assets/alchemicalwizardry/textures/models/ParadigmBlock.png (100%) rename {1.7.10 => src}/main/resources/assets/alchemicalwizardry/textures/models/Pedestal.png (100%) rename {1.7.10 => src}/main/resources/assets/alchemicalwizardry/textures/models/Plinth.png (100%) rename {1.7.10 => src}/main/resources/assets/alchemicalwizardry/textures/models/Reagent.png (100%) rename {1.7.10 => src}/main/resources/assets/alchemicalwizardry/textures/models/ShadeMob.png (100%) rename {1.7.10 => src}/main/resources/assets/alchemicalwizardry/textures/models/SimpleTransCircle.png (100%) rename {1.7.10 => src}/main/resources/assets/alchemicalwizardry/textures/models/SmallEarthGolem.png (100%) rename {1.7.10 => src}/main/resources/assets/alchemicalwizardry/textures/models/SpellEffectEarth.png (100%) rename {1.7.10 => src}/main/resources/assets/alchemicalwizardry/textures/models/SpellEffectFire.png (100%) rename {1.7.10 => src}/main/resources/assets/alchemicalwizardry/textures/models/SpellEffectIce.png (100%) rename {1.7.10 => src}/main/resources/assets/alchemicalwizardry/textures/models/SpellEffectWind.png (100%) rename {1.7.10 => src}/main/resources/assets/alchemicalwizardry/textures/models/SpellEnhancementCost1.png (100%) rename {1.7.10 => src}/main/resources/assets/alchemicalwizardry/textures/models/SpellEnhancementCost2.png (100%) rename {1.7.10 => src}/main/resources/assets/alchemicalwizardry/textures/models/SpellEnhancementCost3.png (100%) rename {1.7.10 => src}/main/resources/assets/alchemicalwizardry/textures/models/SpellEnhancementPotency1.png (100%) rename {1.7.10 => src}/main/resources/assets/alchemicalwizardry/textures/models/SpellEnhancementPotency2.png (100%) rename {1.7.10 => src}/main/resources/assets/alchemicalwizardry/textures/models/SpellEnhancementPotency3.png (100%) rename {1.7.10 => src}/main/resources/assets/alchemicalwizardry/textures/models/SpellEnhancementPower1.png (100%) rename {1.7.10 => src}/main/resources/assets/alchemicalwizardry/textures/models/SpellEnhancementPower2.png (100%) rename {1.7.10 => src}/main/resources/assets/alchemicalwizardry/textures/models/SpellEnhancementPower3.png (100%) rename {1.7.10 => src}/main/resources/assets/alchemicalwizardry/textures/models/SpellModifierDefault.png (100%) rename {1.7.10 => src}/main/resources/assets/alchemicalwizardry/textures/models/SpellModifierDefensive.png (100%) rename {1.7.10 => src}/main/resources/assets/alchemicalwizardry/textures/models/SpellModifierEnvironmental.png (100%) rename {1.7.10 => src}/main/resources/assets/alchemicalwizardry/textures/models/SpellModifierOffensive.png (100%) rename {1.7.10 => src}/main/resources/assets/alchemicalwizardry/textures/models/SpellParadigmMelee.png (100%) rename {1.7.10 => src}/main/resources/assets/alchemicalwizardry/textures/models/SpellParadigmProjectile.png (100%) rename {1.7.10 => src}/main/resources/assets/alchemicalwizardry/textures/models/SpellParadigmSelf.png (100%) rename {1.7.10 => src}/main/resources/assets/alchemicalwizardry/textures/models/SpellParadigmTool.png (100%) rename {1.7.10 => src}/main/resources/assets/alchemicalwizardry/textures/models/TransCircle.png (100%) rename {1.7.10 => src}/main/resources/assets/alchemicalwizardry/textures/models/TransCircleBinding.png (100%) rename {1.7.10 => src}/main/resources/assets/alchemicalwizardry/textures/models/TransCircleSuffering.png (100%) rename {1.7.10 => src}/main/resources/assets/alchemicalwizardry/textures/models/WaterFloatingBeacon.png (100%) rename {1.7.10 => src}/main/resources/assets/alchemicalwizardry/textures/models/WingedAngel.png (100%) rename {1.7.10 => src}/main/resources/assets/alchemicalwizardry/textures/models/WingedFireDemon.png (100%) rename {1.7.10 => src}/main/resources/assets/alchemicalwizardry/textures/models/WritingTable.png (100%) rename {1.7.10 => src}/main/resources/assets/alchemicalwizardry/textures/models/altar.png (100%) rename {1.7.10 => src}/main/resources/assets/alchemicalwizardry/textures/models/baseItemToolCore.png (100%) rename {1.7.10 => src}/main/resources/assets/alchemicalwizardry/textures/models/blood.png (100%) rename {1.7.10 => src}/main/resources/assets/forge/lang/en_US.lang (100%) rename {1.7.10 => src}/main/resources/assets/forge/lang/es_ES.lang (100%) rename {1.7.10 => src}/main/resources/assets/forge/lang/fr_FR.lang (100%) rename {1.7.10 => src}/main/resources/mcmod.info (100%) diff --git a/1.7.10/main/resources/assets/alchemicalwizardry/bloodaltar.obj b/1.7.10/main/resources/assets/alchemicalwizardry/bloodaltar.obj deleted file mode 100644 index 88037009..00000000 --- a/1.7.10/main/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.10/main/resources/assets/alchemicalwizardry/bloodlevel.obj b/1.7.10/main/resources/assets/alchemicalwizardry/bloodlevel.obj deleted file mode 100644 index f301ee48..00000000 --- a/1.7.10/main/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.10/main/resources/assets/alchemicalwizardry/models/bloodaltar-fixeUV.obj b/1.7.10/main/resources/assets/alchemicalwizardry/models/bloodaltar-fixeUV.obj deleted file mode 100644 index 83d13903..00000000 --- a/1.7.10/main/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.10/main/resources/assets/alchemicalwizardry/models/bloodaltar.obj b/1.7.10/main/resources/assets/alchemicalwizardry/models/bloodaltar.obj deleted file mode 100644 index 88037009..00000000 --- a/1.7.10/main/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.10/main/resources/assets/alchemicalwizardry/models/bloodlevel.obj b/1.7.10/main/resources/assets/alchemicalwizardry/models/bloodlevel.obj deleted file mode 100644 index f301ee48..00000000 --- a/1.7.10/main/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/1.7.2/api/java/thaumcraft/api/IGoggles.java b/1.7.2/api/java/thaumcraft/api/IGoggles.java deleted file mode 100644 index 2f53d816..00000000 --- a/1.7.2/api/java/thaumcraft/api/IGoggles.java +++ /dev/null @@ -1,22 +0,0 @@ -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 deleted file mode 100644 index 48c6dff9..00000000 --- a/1.7.2/api/java/thaumcraft/api/IRepairable.java +++ /dev/null @@ -1,13 +0,0 @@ -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 deleted file mode 100644 index 33827124..00000000 --- a/1.7.2/api/java/thaumcraft/api/IRepairableExtended.java +++ /dev/null @@ -1,17 +0,0 @@ -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 deleted file mode 100644 index 89d3c379..00000000 --- a/1.7.2/api/java/thaumcraft/api/IRunicArmor.java +++ /dev/null @@ -1,23 +0,0 @@ -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 deleted file mode 100644 index 8800fa57..00000000 --- a/1.7.2/api/java/thaumcraft/api/IScribeTools.java +++ /dev/null @@ -1,14 +0,0 @@ -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 deleted file mode 100644 index 3793ea3e..00000000 --- a/1.7.2/api/java/thaumcraft/api/IVisDiscountGear.java +++ /dev/null @@ -1,20 +0,0 @@ -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 deleted file mode 100644 index 25dda282..00000000 --- a/1.7.2/api/java/thaumcraft/api/ItemApi.java +++ /dev/null @@ -1,70 +0,0 @@ -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 deleted file mode 100644 index 80251f59..00000000 --- a/1.7.2/api/java/thaumcraft/api/ItemRunic.java +++ /dev/null @@ -1,21 +0,0 @@ -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 deleted file mode 100644 index 9dd0b6d2..00000000 --- a/1.7.2/api/java/thaumcraft/api/ThaumcraftApi.java +++ /dev/null @@ -1,469 +0,0 @@ -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 deleted file mode 100644 index b5feb068..00000000 --- a/1.7.2/api/java/thaumcraft/api/ThaumcraftApiHelper.java +++ /dev/null @@ -1,268 +0,0 @@ -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 deleted file mode 100644 index 3c33a4a7..00000000 --- a/1.7.2/api/java/thaumcraft/api/aspects/Aspect.java +++ /dev/null @@ -1,201 +0,0 @@ -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 deleted file mode 100644 index 6b9dfcef..00000000 --- a/1.7.2/api/java/thaumcraft/api/aspects/AspectList.java +++ /dev/null @@ -1,256 +0,0 @@ -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 deleted file mode 100644 index fecbc160..00000000 --- a/1.7.2/api/java/thaumcraft/api/aspects/IEssentiaTransport.java +++ /dev/null @@ -1,100 +0,0 @@ -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 deleted file mode 100644 index ebd84791..00000000 --- a/1.7.2/api/java/thaumcraft/api/crafting/CrucibleRecipe.java +++ /dev/null @@ -1,74 +0,0 @@ -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 deleted file mode 100644 index bb5036d2..00000000 --- a/1.7.2/api/java/thaumcraft/api/crafting/IArcaneRecipe.java +++ /dev/null @@ -1,35 +0,0 @@ -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 deleted file mode 100644 index d137ff24..00000000 --- a/1.7.2/api/java/thaumcraft/api/crafting/IInfusionStabiliser.java +++ /dev/null @@ -1,19 +0,0 @@ -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 deleted file mode 100644 index 6fb4d63d..00000000 --- a/1.7.2/api/java/thaumcraft/api/crafting/InfusionEnchantmentRecipe.java +++ /dev/null @@ -1,156 +0,0 @@ -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 deleted file mode 100644 index fef0a347..00000000 --- a/1.7.2/api/java/thaumcraft/api/crafting/InfusionRecipe.java +++ /dev/null @@ -1,128 +0,0 @@ -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 deleted file mode 100644 index 40c7bc27..00000000 --- a/1.7.2/api/java/thaumcraft/api/crafting/ShapedArcaneRecipe.java +++ /dev/null @@ -1,261 +0,0 @@ -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 deleted file mode 100644 index 3d4ed508..00000000 --- a/1.7.2/api/java/thaumcraft/api/crafting/ShapelessArcaneRecipe.java +++ /dev/null @@ -1,157 +0,0 @@ -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 deleted file mode 100644 index 8c71414d..00000000 --- a/1.7.2/api/java/thaumcraft/api/nodes/INode.java +++ /dev/null @@ -1,53 +0,0 @@ -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 deleted file mode 100644 index 14a19b54..00000000 --- a/1.7.2/api/java/thaumcraft/api/nodes/IRevealer.java +++ /dev/null @@ -1,22 +0,0 @@ -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 deleted file mode 100644 index 885b8678..00000000 --- a/1.7.2/api/java/thaumcraft/api/nodes/NodeModifier.java +++ /dev/null @@ -1,6 +0,0 @@ -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 deleted file mode 100644 index 355324b5..00000000 --- a/1.7.2/api/java/thaumcraft/api/nodes/NodeType.java +++ /dev/null @@ -1,6 +0,0 @@ -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 deleted file mode 100644 index d0efac5f..00000000 --- a/1.7.2/api/java/thaumcraft/api/research/IScanEventHandler.java +++ /dev/null @@ -1,9 +0,0 @@ -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 deleted file mode 100644 index 82309b36..00000000 --- a/1.7.2/api/java/thaumcraft/api/research/ResearchCategories.java +++ /dev/null @@ -1,101 +0,0 @@ -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 deleted file mode 100644 index 7eed0101..00000000 --- a/1.7.2/api/java/thaumcraft/api/research/ResearchCategoryList.java +++ /dev/null @@ -1,37 +0,0 @@ -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 deleted file mode 100644 index 55b3820c..00000000 --- a/1.7.2/api/java/thaumcraft/api/research/ResearchItem.java +++ /dev/null @@ -1,367 +0,0 @@ -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 deleted file mode 100644 index a2e7824a..00000000 --- a/1.7.2/api/java/thaumcraft/api/research/ResearchPage.java +++ /dev/null @@ -1,174 +0,0 @@ -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 deleted file mode 100644 index e1498f31..00000000 --- a/1.7.2/api/java/thaumcraft/api/research/ScanResult.java +++ /dev/null @@ -1,39 +0,0 @@ -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 deleted file mode 100644 index da4b9ae9..00000000 --- a/1.7.2/api/java/thaumcraft/api/wands/IWandFocus.java +++ /dev/null @@ -1,64 +0,0 @@ -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 deleted file mode 100644 index 4ef8c849..00000000 --- a/1.7.2/api/java/thaumcraft/api/wands/IWandRodOnUpdate.java +++ /dev/null @@ -1,16 +0,0 @@ -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 deleted file mode 100644 index 47465552..00000000 --- a/1.7.2/api/java/thaumcraft/api/wands/IWandTriggerManager.java +++ /dev/null @@ -1,12 +0,0 @@ -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 deleted file mode 100644 index aeb9bac7..00000000 --- a/1.7.2/api/java/thaumcraft/api/wands/IWandable.java +++ /dev/null @@ -1,25 +0,0 @@ -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 deleted file mode 100644 index 35900520..00000000 --- a/1.7.2/api/java/thaumcraft/api/wands/ItemFocusBasic.java +++ /dev/null @@ -1,166 +0,0 @@ -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 deleted file mode 100644 index e7ae90f0..00000000 --- a/1.7.2/api/java/thaumcraft/api/wands/StaffRod.java +++ /dev/null @@ -1,48 +0,0 @@ -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 deleted file mode 100644 index 1fc9ba1c..00000000 --- a/1.7.2/api/java/thaumcraft/api/wands/WandCap.java +++ /dev/null @@ -1,122 +0,0 @@ -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 deleted file mode 100644 index 6b43cd47..00000000 --- a/1.7.2/api/java/thaumcraft/api/wands/WandRod.java +++ /dev/null @@ -1,151 +0,0 @@ -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 deleted file mode 100644 index 68655cb7..00000000 --- a/1.7.2/api/java/thaumcraft/api/wands/WandTriggerRegistry.java +++ /dev/null @@ -1,72 +0,0 @@ -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/main/java/WayofTime/alchemicalWizardry/AlchemicalWizardry.java b/1.7.2/main/java/WayofTime/alchemicalWizardry/AlchemicalWizardry.java deleted file mode 100644 index d84f732e..00000000 --- a/1.7.2/main/java/WayofTime/alchemicalWizardry/AlchemicalWizardry.java +++ /dev/null @@ -1,1004 +0,0 @@ -package WayofTime.alchemicalWizardry; - -import java.io.File; -import java.io.FileOutputStream; -import java.io.InputStream; -import java.lang.reflect.Field; -import java.lang.reflect.Modifier; -import java.util.zip.ZipEntry; -import java.util.zip.ZipInputStream; - -import joshie.alchemicalWizardy.ShapedBloodOrbRecipe; -import joshie.alchemicalWizardy.ShapelessBloodOrbRecipe; -import net.minecraft.creativetab.CreativeTabs; -import net.minecraft.init.Blocks; -import net.minecraft.init.Items; -import net.minecraft.item.Item; -import net.minecraft.item.Item.ToolMaterial; -import net.minecraft.item.ItemArmor.ArmorMaterial; -import net.minecraft.item.ItemStack; -import net.minecraft.potion.Potion; -import net.minecraft.util.WeightedRandomChestContent; -import net.minecraftforge.common.ChestGenHooks; -import net.minecraftforge.common.MinecraftForge; -import net.minecraftforge.common.util.EnumHelper; -import net.minecraftforge.fluids.Fluid; -import net.minecraftforge.fluids.FluidContainerRegistry; -import net.minecraftforge.fluids.FluidRegistry; -import net.minecraftforge.oredict.OreDictionary; -import net.minecraftforge.oredict.RecipeSorter; -import net.minecraftforge.oredict.RecipeSorter.Category; -import thaumcraft.api.ItemApi; -import WayofTime.alchemicalWizardry.api.alchemy.AlchemicalPotionCreationHandler; -import WayofTime.alchemicalWizardry.api.alchemy.AlchemyRecipeRegistry; -import WayofTime.alchemicalWizardry.api.altarRecipeRegistry.AltarRecipeRegistry; -import WayofTime.alchemicalWizardry.api.bindingRegistry.BindingRegistry; -import WayofTime.alchemicalWizardry.api.harvest.HarvestRegistry; -import WayofTime.alchemicalWizardry.api.rituals.Rituals; -import WayofTime.alchemicalWizardry.api.summoningRegistry.SummoningRegistry; -import WayofTime.alchemicalWizardry.common.AlchemicalWizardryEventHooks; -import WayofTime.alchemicalWizardry.common.AlchemicalWizardryFuelHandler; -import WayofTime.alchemicalWizardry.common.CommonProxy; -import WayofTime.alchemicalWizardry.common.EntityAirElemental; -import WayofTime.alchemicalWizardry.common.LifeBucketHandler; -import WayofTime.alchemicalWizardry.common.LifeEssence; -import WayofTime.alchemicalWizardry.common.ModLivingDropsEvent; -import WayofTime.alchemicalWizardry.common.NewPacketHandler; -import WayofTime.alchemicalWizardry.common.block.ArmourForge; -import WayofTime.alchemicalWizardry.common.bloodAltarUpgrade.UpgradedAltars; -import WayofTime.alchemicalWizardry.common.entity.mob.EntityBileDemon; -import WayofTime.alchemicalWizardry.common.entity.mob.EntityBoulderFist; -import WayofTime.alchemicalWizardry.common.entity.mob.EntityEarthElemental; -import WayofTime.alchemicalWizardry.common.entity.mob.EntityFallenAngel; -import WayofTime.alchemicalWizardry.common.entity.mob.EntityFireElemental; -import WayofTime.alchemicalWizardry.common.entity.mob.EntityHolyElemental; -import WayofTime.alchemicalWizardry.common.entity.mob.EntityIceDemon; -import WayofTime.alchemicalWizardry.common.entity.mob.EntityLowerGuardian; -import WayofTime.alchemicalWizardry.common.entity.mob.EntityShade; -import WayofTime.alchemicalWizardry.common.entity.mob.EntityShadeElemental; -import WayofTime.alchemicalWizardry.common.entity.mob.EntitySmallEarthGolem; -import WayofTime.alchemicalWizardry.common.entity.mob.EntityWaterElemental; -import WayofTime.alchemicalWizardry.common.entity.mob.EntityWingedFireDemon; -import WayofTime.alchemicalWizardry.common.harvest.BloodMagicHarvestHandler; -import WayofTime.alchemicalWizardry.common.harvest.GourdHarvestHandler; -import WayofTime.alchemicalWizardry.common.items.ItemRitualDiviner; -import WayofTime.alchemicalWizardry.common.items.sigil.SigilOfHolding; -import WayofTime.alchemicalWizardry.common.items.thaumcraft.ItemSanguineArmour; -import WayofTime.alchemicalWizardry.common.potion.PotionBoost; -import WayofTime.alchemicalWizardry.common.potion.PotionDrowning; -import WayofTime.alchemicalWizardry.common.potion.PotionFireFuse; -import WayofTime.alchemicalWizardry.common.potion.PotionFlameCloak; -import WayofTime.alchemicalWizardry.common.potion.PotionFlight; -import WayofTime.alchemicalWizardry.common.potion.PotionHeavyHeart; -import WayofTime.alchemicalWizardry.common.potion.PotionIceCloak; -import WayofTime.alchemicalWizardry.common.potion.PotionInhibit; -import WayofTime.alchemicalWizardry.common.potion.PotionPlanarBinding; -import WayofTime.alchemicalWizardry.common.potion.PotionProjectileProtect; -import WayofTime.alchemicalWizardry.common.potion.PotionReciprocation; -import WayofTime.alchemicalWizardry.common.rituals.RitualEffectAnimalGrowth; -import WayofTime.alchemicalWizardry.common.rituals.RitualEffectAutoAlchemy; -import WayofTime.alchemicalWizardry.common.rituals.RitualEffectBiomeChanger; -import WayofTime.alchemicalWizardry.common.rituals.RitualEffectContainment; -import WayofTime.alchemicalWizardry.common.rituals.RitualEffectCrushing; -import WayofTime.alchemicalWizardry.common.rituals.RitualEffectExpulsion; -import WayofTime.alchemicalWizardry.common.rituals.RitualEffectFeatheredEarth; -import WayofTime.alchemicalWizardry.common.rituals.RitualEffectFeatheredKnife; -import WayofTime.alchemicalWizardry.common.rituals.RitualEffectFlight; -import WayofTime.alchemicalWizardry.common.rituals.RitualEffectGrowth; -import WayofTime.alchemicalWizardry.common.rituals.RitualEffectHarvest; -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; -import WayofTime.alchemicalWizardry.common.rituals.RitualEffectLifeConduit; -import WayofTime.alchemicalWizardry.common.rituals.RitualEffectMagnetic; -import WayofTime.alchemicalWizardry.common.rituals.RitualEffectSoulBound; -import WayofTime.alchemicalWizardry.common.rituals.RitualEffectSummonMeteor; -import WayofTime.alchemicalWizardry.common.rituals.RitualEffectSupression; -import WayofTime.alchemicalWizardry.common.rituals.RitualEffectUnbinding; -import WayofTime.alchemicalWizardry.common.rituals.RitualEffectWater; -import WayofTime.alchemicalWizardry.common.rituals.RitualEffectWellOfSuffering; -import WayofTime.alchemicalWizardry.common.spell.simple.HomSpellRegistry; -import WayofTime.alchemicalWizardry.common.spell.simple.SpellEarthBender; -import WayofTime.alchemicalWizardry.common.spell.simple.SpellExplosions; -import WayofTime.alchemicalWizardry.common.spell.simple.SpellFireBurst; -import WayofTime.alchemicalWizardry.common.spell.simple.SpellFrozenWater; -import WayofTime.alchemicalWizardry.common.spell.simple.SpellHolyBlast; -import WayofTime.alchemicalWizardry.common.spell.simple.SpellLightningBolt; -import WayofTime.alchemicalWizardry.common.spell.simple.SpellTeleport; -import WayofTime.alchemicalWizardry.common.spell.simple.SpellWateryGrave; -import WayofTime.alchemicalWizardry.common.spell.simple.SpellWindGust; -import WayofTime.alchemicalWizardry.common.summoning.SummoningHelperAW; -import WayofTime.alchemicalWizardry.common.summoning.meteor.MeteorRegistry; -import WayofTime.alchemicalWizardry.common.tileEntity.TEAltar; -import WayofTime.alchemicalWizardry.common.tileEntity.TEConduit; -import WayofTime.alchemicalWizardry.common.tileEntity.TEDemonPortal; -import WayofTime.alchemicalWizardry.common.tileEntity.TEHomHeart; -import WayofTime.alchemicalWizardry.common.tileEntity.TEMasterStone; -import WayofTime.alchemicalWizardry.common.tileEntity.TEOrientable; -import WayofTime.alchemicalWizardry.common.tileEntity.TEPedestal; -import WayofTime.alchemicalWizardry.common.tileEntity.TEPlinth; -import WayofTime.alchemicalWizardry.common.tileEntity.TESchematicSaver; -import WayofTime.alchemicalWizardry.common.tileEntity.TESocket; -import WayofTime.alchemicalWizardry.common.tileEntity.TESpectralContainer; -import WayofTime.alchemicalWizardry.common.tileEntity.TESpellEffectBlock; -import WayofTime.alchemicalWizardry.common.tileEntity.TESpellEnhancementBlock; -import WayofTime.alchemicalWizardry.common.tileEntity.TESpellModifierBlock; -import WayofTime.alchemicalWizardry.common.tileEntity.TESpellParadigmBlock; -import WayofTime.alchemicalWizardry.common.tileEntity.TETeleposer; -import WayofTime.alchemicalWizardry.common.tileEntity.TEWritingTable; -import WayofTime.alchemicalWizardry.common.tileEntity.gui.GuiHandler; -import cpw.mods.fml.common.FMLCommonHandler; -import cpw.mods.fml.common.Loader; -import cpw.mods.fml.common.Mod; -import cpw.mods.fml.common.Mod.EventHandler; -import cpw.mods.fml.common.Mod.Instance; -import cpw.mods.fml.common.SidedProxy; -import cpw.mods.fml.common.event.FMLInitializationEvent; -import cpw.mods.fml.common.event.FMLPostInitializationEvent; -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; - -@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 -{ - public static boolean doMeteorsDestroyBlocks = true; - public static String[] diamondMeteorArray; - public static int diamondMeteorRadius; - public static String[] stoneMeteorArray; - public static int stoneMeteorRadius; - public static String[] ironBlockMeteorArray; - public static int ironBlockMeteorRadius; - public static String[] netherStarMeteorArray; - public static int netherStarMeteorRadius; - - public static String[] allowedCrushedOresArray; - - public static Potion customPotionDrowning; - public static Potion customPotionBoost; - public static Potion customPotionProjProt; - public static Potion customPotionInhibit; - public static Potion customPotionFlight; - public static Potion customPotionReciprocation; - public static Potion customPotionFlameCloak; - public static Potion customPotionIceCloak; - public static Potion customPotionHeavyHeart; - public static Potion customPotionFireFuse; - public static Potion customPotionPlanarBinding; - - public static int customPotionDrowningID; - public static int customPotionBoostID; - public static int customPotionProjProtID; - public static int customPotionInhibitID; - public static int customPotionFlightID; - public static int customPotionReciprocationID; - public static int customPotionFlameCloakID; - public static int customPotionIceCloakID; - public static int customPotionHeavyHeartID; - public static int customPotionFireFuseID; - public static int customPotionPlanarBindingID; - - public static boolean isThaumcraftLoaded; - public static boolean isForestryLoaded; - - public static boolean wimpySettings; - public static boolean respawnWithLowerHealth; - - public static CreativeTabs tabBloodMagic = new CreativeTabs("tabBloodMagic") - { - @Override - public ItemStack getIconItemStack() - { - return new ItemStack(ModItems.weakBloodOrb, 1, 0); - } - - @Override - public Item getTabIconItem() - { - return ModItems.weakBloodOrb; - } - }; - - public static ToolMaterial bloodBoundToolMaterial = EnumHelper.addToolMaterial("BoundBlood", 4, 1000, 12.0f, 8.0f, 50); - public static ArmorMaterial sanguineArmourArmourMaterial = EnumHelper.addArmorMaterial("SanguineArmour", 1000, new int[]{3, 6, 5, 2}, 30); - - //Dungeon loot chances - public static int standardBindingAgentDungeonChance; - public static int mundanePowerCatalystDungeonChance; - public static int averagePowerCatalystDungeonChance; - public static int greaterPowerCatalystDungeonChance; - public static int mundaneLengtheningCatalystDungeonChance; - public static int averageLengtheningCatalystDungeonChance; - public static int greaterLengtheningCatalystDungeonChance; - - //Mob IDs - public static int entityFallenAngelID = 20; - public static int entityLowerGuardianID = 21; - public static int entityBileDemonID = 22; - public static int entityWingedFireDemonID = 23; - public static int entitySmallEarthGolemID = 24; - public static int entityIceDemonID = 25; - public static int entityBoulderFistID = 26; - public static int entityShadeID = 27; - public static int entityAirElementalID = 28; - public static int entityWaterElementalID = 29; - public static int entityEarthElementalID = 30; - public static int entityFireElementalID = 31; - public static int entityShadeElementalID = 32; - public static int entityHolyElementalID = 33; - - - public static Fluid lifeEssenceFluid; - - // The instance of your mod that Forge uses. - @Instance("AWWayofTime") - public static AlchemicalWizardry instance; - - // Says where the client and server 'proxy' code is loaded. - @SidedProxy(clientSide = "WayofTime.alchemicalWizardry.client.ClientProxy", serverSide = "WayofTime.alchemicalWizardry.common.CommonProxy") - public static CommonProxy proxy; - - @EventHandler - public void preInit(FMLPreInitializationEvent event) - { - File bmDirectory = new File("config/BloodMagic/schematics"); - - if(!bmDirectory.exists() && bmDirectory.mkdirs()) - { - try - { - InputStream in = AlchemicalWizardry.class.getResourceAsStream("/assets/alchemicalwizardry/schematics/building/buildings.zip"); - System.out.println("none yet!"); - if(in != null) - { - System.out.println("I have found a zip!"); - ZipInputStream zipStream = new ZipInputStream(in); - ZipEntry entry = null; - - int extractCount = 0; - - while((entry = zipStream.getNextEntry()) != null) - { - File file = new File(bmDirectory, entry.getName()); - if(file.exists() && file.length() > 3L) - { - continue; - } - FileOutputStream out = new FileOutputStream(file); - - byte[] buffer = new byte[8192]; - int len; - while((len = zipStream.read(buffer)) != -1) - { - out.write(buffer, 0, len); - } - out.close(); - - extractCount++; - } - } - } - catch(Exception e) - { - - } - } - - TEDemonPortal.loadBuildingList(); - - MinecraftForge.EVENT_BUS.register(new LifeBucketHandler()); - BloodMagicConfiguration.init(new File(event.getModConfigurationDirectory(), "AWWayofTime.cfg")); - - //Custom config stuff goes here - - - Potion[] potionTypes = null; - - for (Field f : Potion.class.getDeclaredFields()) - { - f.setAccessible(true); - - try - { - if (f.getName().equals("potionTypes") || f.getName().equals("field_76425_a")) - { - Field modfield = Field.class.getDeclaredField("modifiers"); - modfield.setAccessible(true); - modfield.setInt(f, f.getModifiers() & ~Modifier.FINAL); - potionTypes = (Potion[]) f.get(null); - final Potion[] newPotionTypes = new Potion[256]; - System.arraycopy(potionTypes, 0, newPotionTypes, 0, potionTypes.length); - f.set(null, newPotionTypes); - } - } catch (Exception e) - { - System.err.println("Severe error, please report this to the mod author:"); - System.err.println(e); - } - } - AlchemicalWizardry.lifeEssenceFluid = new LifeEssence("Life Essence"); - FluidRegistry.registerFluid(lifeEssenceFluid); - - ModBlocks.init(); - - - ModBlocks.registerBlocksInPre(); - - ModItems.init(); - - ModItems.registerItems(); - - RecipeSorter.INSTANCE.register("AWWayofTime:shapedorb", ShapedBloodOrbRecipe.class, Category.SHAPED, "before:minecraft:shapeless"); - RecipeSorter.INSTANCE.register("AWWayofTime:shapelessorb", ShapelessBloodOrbRecipe.class, Category.SHAPELESS, "after:minecraft:shapeless"); - - Object eventHook = new AlchemicalWizardryEventHooks(); - FMLCommonHandler.instance().bus().register(eventHook); - MinecraftForge.EVENT_BUS.register(eventHook); - NewPacketHandler.INSTANCE.ordinal(); - } - - @EventHandler - public void load(FMLInitializationEvent event) - { - int craftingConstant = OreDictionary.WILDCARD_VALUE; - //TickRegistry.registerTickHandler(new AlchemicalWizardryTickHandler(), Side.SERVER); - - ModBlocks.registerBlocksInInit(); - //blocks - - proxy.registerRenderers(); - proxy.registerEntities(); - proxy.registerEntityTrackers(); - //ItemStacks used for crafting go here - ItemStack lapisStack = new ItemStack(Items.dye,1,4); - ItemStack lavaBucketStack = new ItemStack(Items.lava_bucket); - ItemStack cobblestoneStack = new ItemStack(Blocks.cobblestone); - ItemStack glassStack = new ItemStack(Blocks.glass, 1, craftingConstant); - ItemStack ironIngotStack = new ItemStack(Items.iron_ingot); - ItemStack diamondStack = new ItemStack(Items.diamond, 1, craftingConstant); - ItemStack woolStack = new ItemStack(Blocks.wool); - ItemStack goldNuggetStack = new ItemStack(Items.gold_nugget); - ItemStack stoneStack = new ItemStack(Blocks.stone, 1, craftingConstant); - ItemStack redstoneStack = new ItemStack(Items.redstone); - ItemStack glowstoneBlockStack = new ItemStack(Blocks.glowstone); - ItemStack ironBlockStack = new ItemStack(Blocks.iron_block); - ItemStack waterBucketStack = new ItemStack(Items.water_bucket); - ItemStack emptyBucketStack = new ItemStack(Items.bucket); - ItemStack magmaCreamStack = new ItemStack(Items.magma_cream); - ItemStack stringStack = new ItemStack(Items.string); - ItemStack obsidianStack = new ItemStack(Blocks.obsidian); - ItemStack diamondSwordStack = new ItemStack(Items.diamond_sword); - ItemStack goldIngotStack = new ItemStack(Items.gold_ingot); - ItemStack cauldronStack = new ItemStack(Blocks.cauldron); - ItemStack furnaceStack = new ItemStack(Blocks.furnace); - ItemStack sugarStack = new ItemStack(Items.sugar); - ItemStack featherStack = new ItemStack(Items.feather); - ItemStack ghastTearStack = new ItemStack(Items.ghast_tear); - ItemStack ironPickaxeStack = new ItemStack(Items.iron_pickaxe); - ItemStack ironAxeStack = new ItemStack(Items.iron_axe); - ItemStack ironShovelStack = new ItemStack(Items.iron_shovel); - ItemStack glowstoneDustStack = new ItemStack(Items.glowstone_dust); - ItemStack saplingStack = new ItemStack(Blocks.sapling); - ItemStack reedStack = new ItemStack(Items.reeds); - ItemStack blankSlateStack = new ItemStack(ModItems.blankSlate, 1, craftingConstant); - //ItemStack glassShardStack = new ItemStack(glassShard); - ItemStack weakBloodOrbStackCrafted = new ItemStack(ModItems.weakBloodOrb); - //ItemStack bloodiedShardStack = new ItemStack(bloodiedShard); - ItemStack reinforcedSlateStack = new ItemStack(ModItems.reinforcedSlate, 1, craftingConstant); - ItemStack weakBloodOrbStack = new ItemStack(ModItems.weakBloodOrb, 1, craftingConstant); - ItemStack imbuedSlateStack = new ItemStack(ModItems.imbuedSlate, 1, craftingConstant); - ItemStack demonSlateStack = new ItemStack(ModItems.demonicSlate, 1, craftingConstant); - ItemStack apprenticeBloodOrbStack = new ItemStack(ModItems.apprenticeBloodOrb, 1, craftingConstant); - ItemStack magicianBloodOrbStack = new ItemStack(ModItems.magicianBloodOrb, 1, craftingConstant); - ItemStack waterSigilStackCrafted = new ItemStack(ModItems.waterSigil); - ItemStack lavaSigilStackCrafted = new ItemStack(ModItems.lavaSigil); - ItemStack voidSigilStackCrafted = new ItemStack(ModItems.voidSigil); - ItemStack airSigilStack = new ItemStack(ModItems.airSigil); - ItemStack lavaCrystalStackCrafted = new ItemStack(ModItems.lavaCrystal); - ItemStack lavaCrystalStack = new ItemStack(ModItems.lavaCrystal); - ItemStack energySwordStack = new ItemStack(ModItems.energySword); - ItemStack energyBlasterStack = new ItemStack(ModItems.energyBlaster); - ItemStack sacrificialDaggerStack = new ItemStack(ModItems.sacrificialDagger); - ItemStack bloodAltarStack = new ItemStack(ModBlocks.blockAltar,1,0); - ItemStack bloodRuneCraftedStack = new ItemStack(ModBlocks.bloodRune, 1); - ItemStack bloodRuneStack = new ItemStack(ModBlocks.bloodRune); - ItemStack speedRuneStack = new ItemStack(ModBlocks.speedRune); - ItemStack efficiencyRuneStack = new ItemStack(ModBlocks.efficiencyRune); - ItemStack runeOfSacrificeStack = new ItemStack(ModBlocks.runeOfSacrifice); - ItemStack runeOfSelfSacrificeStack = new ItemStack(ModBlocks.runeOfSelfSacrifice); - ItemStack runeOfBetterCapacityStack = new ItemStack(ModBlocks.bloodRune,1,4); - ItemStack miningSigilStackCrafted = new ItemStack(ModItems.sigilOfTheFastMiner); - ItemStack divinationSigilStackCrafted = new ItemStack(ModItems.divinationSigil); - ItemStack seerSigilStack = new ItemStack(ModItems.itemSeerSigil); -// ItemStack elementalInkWaterStack = new ItemStack(elementalInkWater); -// ItemStack elementalInkFireStack = new ItemStack(elementalInkFire); -// ItemStack elementalInkEarthStack = new ItemStack(elementalInkEarth); -// ItemStack elementalInkAirStack = new ItemStack(elementalInkAir); - ItemStack waterScribeToolStack = new ItemStack(ModItems.waterScribeTool); - ItemStack fireScribeToolStack = new ItemStack(ModItems.fireScribeTool); - ItemStack earthScribeToolStack = new ItemStack(ModItems.earthScribeTool); - ItemStack airScribeToolStack = new ItemStack(ModItems.airScribeTool); - ItemStack ritualStoneStackCrafted = new ItemStack(ModBlocks.ritualStone, 4); - ItemStack ritualStoneStack = new ItemStack(ModBlocks.ritualStone); - ItemStack masterRitualStoneStack = new ItemStack(ModBlocks.blockMasterStone); - ItemStack imperfectRitualStoneStack = new ItemStack(ModBlocks.imperfectRitualStone); - ItemStack sigilOfElementalAffinityStackCrafted = new ItemStack(ModItems.sigilOfElementalAffinity); - ItemStack lavaSigilStack = new ItemStack(ModItems.lavaSigil); - ItemStack waterSigilStack = new ItemStack(ModItems.waterSigil); - ItemStack sigilOfHoldingStack = new ItemStack(ModItems.sigilOfHolding); - ItemStack weakBloodShardStack = new ItemStack(ModItems.weakBloodShard); - ItemStack emptySocketStack = new ItemStack(ModBlocks.emptySocket); - ItemStack bloodSocketStack = new ItemStack(ModBlocks.bloodSocket); - ItemStack armourForgeStack = new ItemStack(ModBlocks.armourForge); - ItemStack largeBloodStoneBrickStackCrafted = new ItemStack(ModBlocks.largeBloodStoneBrick, 32); - ItemStack largeBloodStoneBrickStack = new ItemStack(ModBlocks.largeBloodStoneBrick); - ItemStack bloodStoneBrickStackCrafted = new ItemStack(ModBlocks.bloodStoneBrick, 4); - ItemStack growthSigilStack = new ItemStack(ModItems.growthSigil); - ItemStack blockHomHeartStack = new ItemStack(ModBlocks.blockHomHeart); - ItemStack redWoolStack = new ItemStack(Blocks.wool, 1, 14); - ItemStack zombieHead = new ItemStack(Items.skull, 1, 2); - ItemStack simpleCatalystStack = new ItemStack(ModItems.simpleCatalyst); - ItemStack duskRitualDivinerStack = new ItemStack(ModItems.itemRitualDiviner); - ((ItemRitualDiviner) duskRitualDivinerStack.getItem()).setMaxRuneDisplacement(duskRitualDivinerStack, 1); - //weakBloodOrbStackCrafted.setItemDamage(weakBloodOrbStackCrafted.getMaxDamage()); - waterSigilStackCrafted.setItemDamage(waterSigilStackCrafted.getMaxDamage()); - lavaSigilStackCrafted.setItemDamage(lavaSigilStackCrafted.getMaxDamage()); - voidSigilStackCrafted.setItemDamage(voidSigilStackCrafted.getMaxDamage()); - lavaCrystalStackCrafted.setItemDamage(lavaCrystalStackCrafted.getMaxDamage()); - miningSigilStackCrafted.setItemDamage(miningSigilStackCrafted.getMaxDamage()); - sigilOfElementalAffinityStackCrafted.setItemDamage(sigilOfElementalAffinityStackCrafted.getMaxDamage()); - ItemStack archmageBloodOrbStack = new ItemStack(ModItems.archmageBloodOrb); - ItemStack sanctusStack = new ItemStack(ModItems.sanctus); - ItemStack aetherStack = new ItemStack(ModItems.aether); - ItemStack terraeStack = new ItemStack(ModItems.terrae); - ItemStack incendiumStack = new ItemStack(ModItems.incendium); - ItemStack tennebraeStack = new ItemStack(ModItems.tennebrae); - ItemStack aquasalusStack = new ItemStack(ModItems.aquasalus); - ItemStack crystallosStack = new ItemStack(ModItems.crystallos); - ItemStack crepitousStack = new ItemStack(ModItems.crepitous); - ItemStack magicalesStack = new ItemStack(ModItems.magicales); - //All crafting goes here - // GameRegistry.addRecipe(orbOfTestingStack, "x x", " ", "x x", 'x', cobblestoneStack); - //GameRegistry.addRecipe(glassShardStack, " x", "y ", 'x', ironIngotStack, 'y', glassStack); - //GameRegistry.addRecipe(weakBloodOrbStackCrafted, "xxx", "xdx", "www", 'x', bloodiedShardStack, 'd', diamondStack, 'w', woolStack); - GameRegistry.addRecipe(sacrificialDaggerStack, "ggg", " dg", "i g", 'g', glassStack, 'd', goldIngotStack, 'i', ironIngotStack); - //GameRegistry.addRecipe(blankSlateStack, "sgs", "gig", "sgs", 's', stoneStack, 'g', goldNuggetStack, 'i', ironIngotStack); - //GameRegistry.addRecipe(reinforcedSlateStack, "rir", "ibi", "gig", 'r', redstoneStack, 'i', ironIngotStack, 'b', blankSlateStack, 'g', glowstoneBlockStack); - GameRegistry.addRecipe(new ShapedBloodOrbRecipe(lavaCrystalStackCrafted, "glg", "lbl", "odo", 'g', glassStack, 'l', lavaBucketStack, 'b', weakBloodOrbStack, 'd', diamondStack, 'o', obsidianStack)); - GameRegistry.addRecipe(new ShapedBloodOrbRecipe(waterSigilStackCrafted, "www", "wbw", "wow", 'w', waterBucketStack, 'b', blankSlateStack, 'o', weakBloodOrbStack)); - GameRegistry.addRecipe(lavaSigilStackCrafted, "lml", "lbl", "lcl", 'l', lavaBucketStack, 'b', blankSlateStack, 'm', magmaCreamStack, 'c', lavaCrystalStack); - GameRegistry.addRecipe(new ShapedBloodOrbRecipe(voidSigilStackCrafted, "ese", "ere", "eoe", 'e', emptyBucketStack, 'r', reinforcedSlateStack, 'o', apprenticeBloodOrbStack, 's', stringStack)); - GameRegistry.addRecipe(bloodAltarStack, "s s", "scs", "gdg", 's', stoneStack, 'c', furnaceStack, 'd', diamondStack, 'g', goldIngotStack); - //GameRegistry.addRecipe(energySwordStack, " o ", " o ", " s ", 'o', weakBloodOrbStack, 's', diamondSwordStack); - //GameRegistry.addRecipe(energyBlasterStack, "oi ", "gdi", " rd", 'o', weakBloodOrbStack, 'i', ironIngotStack, 'd', diamondStack, 'r', reinforcedSlateStack, 'g', goldIngotStack); - GameRegistry.addRecipe(new ShapedBloodOrbRecipe(bloodRuneCraftedStack, "sss", "ror", "sss", 's', stoneStack, 'o', weakBloodOrbStack, 'r', blankSlateStack)); - GameRegistry.addRecipe(speedRuneStack, "sbs", "uru", "sbs", 'u', sugarStack, 's', stoneStack, 'r', bloodRuneStack, 'b', blankSlateStack); - //GameRegistry.addRecipe(efficiencyRuneStack, "sbs", "rur", "sbs", 'r', redstoneStack, 's', stoneStack, 'u', bloodRuneStack,'b',blankSlateStack); - GameRegistry.addRecipe(new ShapedBloodOrbRecipe(new ItemStack(ModBlocks.bloodRune, 1, 1), "sbs", "bob", "srs", 's', stoneStack, 'o', magicianBloodOrbStack, 'b', emptyBucketStack, 'r', new ItemStack(ModItems.imbuedSlate))); - GameRegistry.addRecipe(new ShapedBloodOrbRecipe(new ItemStack(ModBlocks.bloodRune, 1, 2), "sbs", "bob", "srs", 's', stoneStack, 'o', magicianBloodOrbStack, 'b', waterBucketStack, 'r', new ItemStack(ModItems.imbuedSlate))); - GameRegistry.addRecipe(new ShapedBloodOrbRecipe(new ItemStack(ModBlocks.bloodRune, 1, 3), "sws", "ror", "sws", 's', stoneStack, 'o', new ItemStack(ModItems.masterBloodOrb), 'w', weakBloodOrbStack, 'r', new ItemStack(ModItems.demonicSlate))); - GameRegistry.addRecipe(new ShapedBloodOrbRecipe(new ItemStack(ModBlocks.bloodRune, 1, 4), "tst", "brb", "tot", 'b', emptyBucketStack, 't', new ItemStack(Blocks.obsidian), 'r', new ItemStack(ModBlocks.bloodRune,1,1), 's', new ItemStack(ModItems.demonicSlate),'o', new ItemStack(ModItems.masterBloodOrb))); - GameRegistry.addRecipe(new ShapedBloodOrbRecipe(airSigilStack, "fgf", "fsf", "fof", 'f', featherStack, 'g', ghastTearStack, 's', reinforcedSlateStack, 'o', apprenticeBloodOrbStack)); - GameRegistry.addRecipe(new ShapedBloodOrbRecipe(miningSigilStackCrafted, "sps", "hra", "sos", 'o', apprenticeBloodOrbStack, 's', stoneStack, 'p', ironPickaxeStack, 'h', ironShovelStack, 'a', ironAxeStack, 'r', reinforcedSlateStack)); - GameRegistry.addRecipe(new ShapedBloodOrbRecipe(runeOfSacrificeStack, "srs", "gog", "srs", 's', stoneStack, 'g', goldIngotStack, 'o', apprenticeBloodOrbStack, 'r', reinforcedSlateStack)); - GameRegistry.addRecipe(new ShapedBloodOrbRecipe(runeOfSelfSacrificeStack, "srs", "gog", "srs", 's', stoneStack, 'g', glowstoneDustStack, 'o', apprenticeBloodOrbStack, 'r', reinforcedSlateStack)); - GameRegistry.addRecipe(new ShapedBloodOrbRecipe(divinationSigilStackCrafted, "ggg", "gsg", "gog", 'g', glassStack, 's', blankSlateStack, 'o', weakBloodOrbStack)); - GameRegistry.addRecipe(new ShapedBloodOrbRecipe(seerSigilStack, "gbg", "gsg", "gog", 'g', glassStack, 's', divinationSigilStackCrafted, 'o', apprenticeBloodOrbStack,'b', new ItemStack(ModItems.bucketLife))); - - // GameRegistry.addRecipe(waterScribeToolStack, "f", "i", 'f', featherStack, 'i', elementalInkWaterStack); -// GameRegistry.addRecipe(fireScribeToolStack, "f", "i", 'f', featherStack, 'i', elementalInkFireStack); -// GameRegistry.addRecipe(earthScribeToolStack, "f", "i", 'f', featherStack, 'i', elementalInkEarthStack); -// GameRegistry.addRecipe(airScribeToolStack, "f", "i", 'f', featherStack, 'i', elementalInkAirStack); - GameRegistry.addRecipe(new ShapedBloodOrbRecipe(ritualStoneStackCrafted, "srs", "ror", "srs", 's', obsidianStack, 'o', apprenticeBloodOrbStack, 'r', reinforcedSlateStack)); - GameRegistry.addRecipe(new ShapedBloodOrbRecipe(masterRitualStoneStack, "brb", "ror", "brb", 'b', obsidianStack, 'o', magicianBloodOrbStack, 'r', ritualStoneStack)); - GameRegistry.addRecipe(new ShapedBloodOrbRecipe(imperfectRitualStoneStack, "bsb", "sos", "bsb", 's', stoneStack, 'b', obsidianStack, 'o', weakBloodOrbStack)); - GameRegistry.addRecipe(new ShapedBloodOrbRecipe(sigilOfElementalAffinityStackCrafted, "oao", "wsl", "oro", 'o', obsidianStack, 'a', airSigilStack, 'w', waterSigilStack, 'l', lavaSigilStack, 'r', magicianBloodOrbStack, 's', imbuedSlateStack)); - GameRegistry.addRecipe(new ShapedBloodOrbRecipe(sigilOfHoldingStack, "asa", "srs", "aoa", 'a', blankSlateStack, 's', stoneStack, 'r', imbuedSlateStack, 'o', magicianBloodOrbStack)); - GameRegistry.addRecipe(emptySocketStack, "bgb", "gdg", "bgb", 'b', weakBloodShardStack, 'g', glassStack, 'd', diamondStack); - GameRegistry.addRecipe(new ShapedBloodOrbRecipe(armourForgeStack, "sfs", "fof", "sfs", 'f', bloodSocketStack, 's', stoneStack, 'o', magicianBloodOrbStack)); - GameRegistry.addShapelessRecipe(largeBloodStoneBrickStackCrafted, weakBloodShardStack, stoneStack); - GameRegistry.addRecipe(bloodStoneBrickStackCrafted, "bb", "bb", 'b', largeBloodStoneBrickStack); - GameRegistry.addRecipe(new ShapedBloodOrbRecipe(growthSigilStack, "srs", "rer", "sos", 's', saplingStack, 'r', reedStack, 'o', apprenticeBloodOrbStack, 'e', reinforcedSlateStack)); - GameRegistry.addRecipe(new ShapedBloodOrbRecipe(blockHomHeartStack, "www", "srs", "sos", 'w', redWoolStack, 's', stoneStack, 'r', bloodRuneStack, 'o', apprenticeBloodOrbStack)); - GameRegistry.addShapelessRecipe(new ItemStack(Items.skull, 1, 2), new ItemStack(Items.skull, 1, 1), new ItemStack(Items.rotten_flesh), new ItemStack(Items.iron_ingot), new ItemStack(Items.leather)); - GameRegistry.addShapelessRecipe(new ItemStack(Items.skull, 1, 0), new ItemStack(Items.skull, 1, 1), new ItemStack(Items.bow, 1, 0), new ItemStack(Items.arrow, 1, 0), new ItemStack(Items.bone)); - GameRegistry.addShapelessRecipe(new ItemStack(Items.skull, 1, 4), new ItemStack(Items.skull, 1, 1), new ItemStack(Items.gunpowder), new ItemStack(Blocks.dirt), new ItemStack(Blocks.sand)); - GameRegistry.addRecipe(new ShapedBloodOrbRecipe(new ItemStack(ModBlocks.blockWritingTable), " s ", "ror", 's', new ItemStack(Items.brewing_stand), 'r', obsidianStack, 'o', weakBloodOrbStack)); - GameRegistry.addRecipe(new ItemStack(ModBlocks.blockPedestal), "ooo", " c ", "ooo", 'o', obsidianStack, 'c', weakBloodShardStack); - GameRegistry.addRecipe(new ItemStack(ModBlocks.blockPlinth), "iii", " p ", "iii", 'i', ironBlockStack, 'p', new ItemStack(ModBlocks.blockPedestal)); - GameRegistry.addShapelessRecipe(new ItemStack(ModItems.alchemyFlask, 1, 0), new ItemStack(ModItems.alchemyFlask, 1, craftingConstant), new ItemStack(Items.nether_wart), redstoneStack, glowstoneDustStack); - GameRegistry.addRecipe(new ShapedBloodOrbRecipe(new ItemStack(ModItems.sigilOfHaste), "csc", "sts", "ror", 'c', new ItemStack(Items.cookie), 's', new ItemStack(Items.sugar), 't', ModItems.demonicSlate, 'r', obsidianStack, 'o', new ItemStack(ModItems.masterBloodOrb))); - GameRegistry.addRecipe(new ShapedBloodOrbRecipe(new ItemStack(ModItems.sigilOfWind), "faf", "grg", "fof", 'f', featherStack, 'g', ghastTearStack, 'a', new ItemStack(ModItems.airSigil), 'o', new ItemStack(ModItems.masterBloodOrb), 'r', ModItems.demonicSlate)); - GameRegistry.addRecipe(new ShapelessBloodOrbRecipe(new ItemStack(ModItems.weakBloodShard, 5, 0), new ItemStack(ModItems.masterBloodOrb), new ItemStack(ModItems.weakBloodShard), imbuedSlateStack)); - GameRegistry.addRecipe(new ItemStack(ModBlocks.blockTeleposer), "ggg", "efe", "ggg", 'g', goldIngotStack, 'f', new ItemStack(ModItems.telepositionFocus), 'e', new ItemStack(Items.ender_pearl)); - GameRegistry.addShapelessRecipe(new ItemStack(ModItems.reinforcedTelepositionFocus), new ItemStack(ModItems.enhancedTelepositionFocus), new ItemStack(ModItems.weakBloodShard)); - GameRegistry.addShapelessRecipe(new ItemStack(ModItems.demonicTelepositionFocus), new ItemStack(ModItems.reinforcedTelepositionFocus), new ItemStack(ModItems.demonBloodShard)); - GameRegistry.addRecipe(new ShapedBloodOrbRecipe(new ItemStack(ModItems.sigilOfTheBridge), "nnn", "nsn", "ror", 'n', stoneStack, 'r', new ItemStack(Blocks.soul_sand), 's', imbuedSlateStack, 'o', magicianBloodOrbStack)); - GameRegistry.addRecipe(new ItemStack(ModItems.armourInhibitor), " gg", "gsg", "gg ", 'g', goldIngotStack, 's', new ItemStack(ModItems.weakBloodShard)); - GameRegistry.addRecipe(new ItemStack(ModItems.itemRitualDiviner), "d1d", "2e3", "d4d", '1', new ItemStack(ModItems.airScribeTool), '2', new ItemStack(ModItems.waterScribeTool), '3', new ItemStack(ModItems.fireScribeTool), '4', new ItemStack(ModItems.earthScribeTool), 'd', diamondStack, 'e', new ItemStack(Items.emerald)); - GameRegistry.addRecipe(duskRitualDivinerStack, " d ", "srs", " d ", 'd', new ItemStack(ModItems.duskScribeTool), 's', new ItemStack(ModItems.demonicSlate), 'r', new ItemStack(ModItems.itemRitualDiviner)); - GameRegistry.addRecipe(new ShapedBloodOrbRecipe(new ItemStack(ModItems.sigilOfMagnetism), "bgb", "gsg", "bob", 'b', new ItemStack(Blocks.iron_block), 'g', goldIngotStack, 's', new ItemStack(ModItems.imbuedSlate), 'o', magicianBloodOrbStack)); - GameRegistry.addRecipe(new ShapedBloodOrbRecipe(new ItemStack(ModItems.energyBazooka), "Ocd", "cb ", "d w", 'O', archmageBloodOrbStack, 'c', crepitousStack, 'b', new ItemStack(ModItems.energyBlaster), 'd', diamondStack, 'w', new ItemStack(ModItems.weakBloodShard))); - GameRegistry.addRecipe(new ShapedBloodOrbRecipe(new ItemStack(ModItems.itemBloodLightSigil), "btb", "sss", "bob", 'o', magicianBloodOrbStack, 'b', glowstoneBlockStack, 't', new ItemStack(Blocks.torch), 's', imbuedSlateStack)); - GameRegistry.addRecipe(new ItemStack(ModItems.itemKeyOfDiablo), " gw", "gdg", "wg ", 'w', weakBloodShardStack, 'g', goldIngotStack, 'd', diamondStack); - customPotionDrowning = (new PotionDrowning(customPotionDrowningID, true, 0)).setIconIndex(0, 0).setPotionName("Drowning"); - customPotionBoost = (new PotionBoost(customPotionBoostID, false, 0)).setIconIndex(0, 0).setPotionName("Boost"); - customPotionProjProt = (new PotionProjectileProtect(customPotionProjProtID, false, 0)).setIconIndex(0, 0).setPotionName("Whirlwind"); - customPotionInhibit = (new PotionInhibit(customPotionInhibitID, false, 0)).setIconIndex(0, 0).setPotionName("Inhibit"); - customPotionFlight = (new PotionFlight(customPotionFlightID, false, 0)).setIconIndex(0, 0).setPotionName("Flight"); - customPotionReciprocation = (new PotionReciprocation(customPotionReciprocationID, false, 0xFFFFFF)).setIconIndex(0, 0).setPotionName("Reciprocation"); - customPotionFlameCloak = (new PotionFlameCloak(customPotionFlameCloakID,false,0).setIconIndex(0,0).setPotionName("Flame Cloak")); - customPotionIceCloak = (new PotionIceCloak(customPotionIceCloakID,false,0).setIconIndex(0,0).setPotionName("Ice Cloak")); - customPotionHeavyHeart = (new PotionHeavyHeart(customPotionHeavyHeartID,true,0).setIconIndex(0, 0).setPotionName("Heavy Heart")); - customPotionFireFuse = (new PotionFireFuse(customPotionFireFuseID,true,0).setIconIndex(0, 0).setPotionName("Fire Fuse")); - customPotionPlanarBinding = (new PotionPlanarBinding(customPotionPlanarBindingID,true,0).setIconIndex(0,0).setPotionName("Planar Binding")); - - ItemStack masterBloodOrbStack = new ItemStack(ModItems.masterBloodOrb); - - //FluidStack lifeEssenceFluidStack = new FluidStack(lifeEssenceFluid, 1); - //LiquidStack lifeEssence = new LiquidStack(lifeEssenceFlowing, 1); - //LiquidDictionary.getOrCreateLiquid("Life Essence", lifeEssence); - - -// ModBlocks.blockLifeEssence.setUnlocalizedName("lifeEssenceBlock"); - FluidContainerRegistry.registerFluidContainer(lifeEssenceFluid, new ItemStack(ModItems.bucketLife), FluidContainerRegistry.EMPTY_BUCKET); - - //lifeEssenceFluid.setUnlocalizedName("lifeEssence"); - //LiquidContainerRegistry.registerLiquid(new LiquidContainerData(LiquidDictionary.getLiquid("Life Essence", LiquidContainerRegistry.BUCKET_VOLUME), new ItemStack(AlchemicalWizardry.bucketLife), new ItemStack(Items.bucketEmpty))); - //GameRegistry.registerBlock(testingBlock, "testingBlock"); - //LanguageRegistry.addName(testingBlock, "Testing Block"); - //(testingBlock, "pickaxe", 0); - ModBlocks.blockAltar.setHarvestLevel("pickaxe", 1); - //Register Tile Entity - GameRegistry.registerTileEntity(TEAltar.class, "containerAltar"); - GameRegistry.registerTileEntity(TEMasterStone.class, "containerMasterStone"); - GameRegistry.registerTileEntity(TESocket.class, "containerSocket"); - GameRegistry.registerTileEntity(TEWritingTable.class, "containerWritingTable"); - GameRegistry.registerTileEntity(TEHomHeart.class, "containerHomHeart"); - GameRegistry.registerTileEntity(TEPedestal.class, "containerPedestal"); - GameRegistry.registerTileEntity(TEPlinth.class, "containerPlinth"); - GameRegistry.registerTileEntity(TETeleposer.class, "containerTeleposer"); - GameRegistry.registerTileEntity(TEConduit.class, "containerConduit"); - GameRegistry.registerTileEntity(TEOrientable.class, "containerOrientable"); - GameRegistry.registerTileEntity(TESpellParadigmBlock.class, "containerSpellParadigmBlock"); - GameRegistry.registerTileEntity(TESpellEffectBlock.class, "containerSpellEffectBlock"); - GameRegistry.registerTileEntity(TESpellModifierBlock.class, "containerSpellModifierBlock"); - GameRegistry.registerTileEntity(TESpellEnhancementBlock.class, "containerSpellEnhancementBlock"); - GameRegistry.registerTileEntity(TESpectralContainer.class,"spectralContainerTileEntity"); - GameRegistry.registerTileEntity(TEDemonPortal.class, "containerDemonPortal"); - GameRegistry.registerTileEntity(TESchematicSaver.class, "containerSchematicSaver"); - //GameRegistry.registerBlock(ModBlocks.blockSpellEffect,"blockSpellEffect"); - ModBlocks.bloodRune.setHarvestLevel("pickaxe", 2); - ModBlocks.speedRune.setHarvestLevel("pickaxe", 2); - ModBlocks.efficiencyRune.setHarvestLevel("pickaxe", 2); - ModBlocks.runeOfSacrifice.setHarvestLevel("pickaxe", 2); - ModBlocks.runeOfSelfSacrifice.setHarvestLevel("pickaxe", 2); - ModBlocks.ritualStone.setHarvestLevel("pickaxe", 2); - ModBlocks.bloodSocket.setHarvestLevel("pickaxe", 2); - ModBlocks.ritualStone.setHarvestLevel("pickaxe", 2); - ModBlocks.imperfectRitualStone.setHarvestLevel("pickaxe", 2); - ModBlocks.blockMasterStone.setHarvestLevel("pickaxe", 2); - ModBlocks.emptySocket.setHarvestLevel("pickaxe", 2); - ModBlocks.bloodStoneBrick.setHarvestLevel("pickaxe", 0); - ModBlocks.largeBloodStoneBrick.setHarvestLevel("pickaxe", 0); - ModBlocks.blockWritingTable.setHarvestLevel("pickaxe", 1); - ModBlocks.blockHomHeart.setHarvestLevel("pickaxe", 1); - ModBlocks.blockPedestal.setHarvestLevel("pickaxe", 2); - ModBlocks.blockPlinth.setHarvestLevel("pickaxe", 2); - ModBlocks.blockTeleposer.setHarvestLevel("pickaxe", 2); - //Fuel handler - GameRegistry.registerFuelHandler(new AlchemicalWizardryFuelHandler()); - //EntityRegistry.registerModEntity(EnergyBlastProjectile.class, "BlasterProj", 0, this, 128, 5, true); - - //Gui registration - // NetworkRegistry.instance().registerGuiHandler(this, new GuiHandlerAltar()); - UpgradedAltars.loadAltars(); - SigilOfHolding.initiateSigilOfHolding(); - ArmourForge.initializeRecipes(); - TEPlinth.initialize(); - - this.initAlchemyPotionRecipes(); - this.initAltarRecipes(); - this.initRituals(); - this.initBindingRecipes(); - this.initHarvestRegistry(); - - //MinecraftForge.setToolClass(ModItems.boundPickaxe, "pickaxe", 5); - //MinecraftForge.setToolClass(ModItems.boundAxe, "axe", 5); - //MinecraftForge.setToolClass(ModItems.boundShovel, "shovel", 5); - MinecraftForge.EVENT_BUS.register(new ModLivingDropsEvent()); - proxy.InitRendering(); - NetworkRegistry.INSTANCE.registerGuiHandler(this, new GuiHandler()); -// ItemStack[] comp = new ItemStack[5]; -// for(int i=0;i<5;i++) -// { -// comp[i] = redstoneStack; -// } -// AlchemyRecipeRegistry.registerRecipe(glowstoneDustStack, 2, comp, 2); - - ItemStack gunpowderStack = new ItemStack(Items.gunpowder); - - ItemStack offensaStack = new ItemStack(ModItems.baseAlchemyItems,1,0); - ItemStack praesidiumStack = new ItemStack(ModItems.baseAlchemyItems,1,1); - ItemStack orbisTerraeStack = new ItemStack(ModItems.baseAlchemyItems,1,2); - ItemStack strengthenedCatalystStack = new ItemStack(ModItems.baseAlchemyItems,1,3); - ItemStack concentratedCatalystStack = new ItemStack(ModItems.baseAlchemyItems,1,4); - ItemStack fracturedBoneStack = new ItemStack(ModItems.baseAlchemyItems,1,5); - ItemStack virtusStack = new ItemStack(ModItems.baseAlchemyItems,1,6); - ItemStack reductusStack = new ItemStack(ModItems.baseAlchemyItems,1,7); - ItemStack potentiaStack = new ItemStack(ModItems.baseAlchemyItems,1,8); - - ItemStack strengthenedCatalystStackCrafted = new ItemStack(ModItems.baseAlchemyItems,2,3); - ItemStack fracturedBoneStackCrafted = new ItemStack(ModItems.baseAlchemyItems,4,5); - - //TODO NEW RECIPES! - AlchemyRecipeRegistry.registerRecipe(new ItemStack(ModItems.weakBindingAgent), 10, new ItemStack[]{simpleCatalystStack, simpleCatalystStack, new ItemStack(Items.clay_ball)}, 2); - AlchemyRecipeRegistry.registerRecipe(new ItemStack(ModItems.standardBindingAgent), 15, new ItemStack[]{new ItemStack(ModItems.weakBindingAgent), sanctusStack, new ItemStack(ModItems.crystallos)}, 3); - AlchemyRecipeRegistry.registerRecipe(simpleCatalystStack, 2, new ItemStack[]{sugarStack, redstoneStack, redstoneStack, glowstoneDustStack, new ItemStack(Items.gunpowder)}, 1); - AlchemyRecipeRegistry.registerRecipe(new ItemStack(ModItems.incendium), 5, new ItemStack[]{lavaBucketStack, new ItemStack(Items.blaze_powder), new ItemStack(Items.blaze_powder), new ItemStack(Blocks.netherrack), simpleCatalystStack}, 2); - AlchemyRecipeRegistry.registerRecipe(new ItemStack(ModItems.aether), 5, new ItemStack[]{featherStack, featherStack, glowstoneDustStack, ghastTearStack, simpleCatalystStack}, 2); - AlchemyRecipeRegistry.registerRecipe(new ItemStack(ModItems.sanctus), 5, new ItemStack[]{glowstoneDustStack, new ItemStack(Items.gold_nugget), glowstoneDustStack, glassStack, simpleCatalystStack}, 2); - AlchemyRecipeRegistry.registerRecipe(new ItemStack(ModItems.crepitous), 5, new ItemStack[]{new ItemStack(Items.gunpowder), new ItemStack(Items.gunpowder), cobblestoneStack, cobblestoneStack, simpleCatalystStack}, 2); - AlchemyRecipeRegistry.registerRecipe(new ItemStack(ModItems.crystallos), 5, new ItemStack[]{new ItemStack(Blocks.ice), new ItemStack(Blocks.ice), new ItemStack(Blocks.snow), new ItemStack(Blocks.snow), simpleCatalystStack}, 2); - AlchemyRecipeRegistry.registerRecipe(new ItemStack(ModItems.terrae), 5, new ItemStack[]{new ItemStack(Blocks.dirt), new ItemStack(Blocks.sand), obsidianStack, obsidianStack, simpleCatalystStack}, 2); - AlchemyRecipeRegistry.registerRecipe(new ItemStack(ModItems.aquasalus), 5, new ItemStack[]{simpleCatalystStack, new ItemStack(Items.dye, 1, 0), new ItemStack(Items.potionitem, 1, 0), new ItemStack(Items.potionitem, 1, 0), new ItemStack(Items.potionitem, 1, 0)}, 2); - AlchemyRecipeRegistry.registerRecipe(new ItemStack(ModItems.tennebrae), 5, new ItemStack[]{simpleCatalystStack, new ItemStack(Items.coal), new ItemStack(Items.coal), new ItemStack(Blocks.obsidian), new ItemStack(Items.clay_ball)}, 2); - AlchemyRecipeRegistry.registerRecipe(new ItemStack(ModItems.magicales), 5, new ItemStack[]{redstoneStack, simpleCatalystStack, new ItemStack(Items.gunpowder), new ItemStack(Items.glowstone_dust), new ItemStack(Items.glowstone_dust)}, 2); - AlchemyRecipeRegistry.registerRecipe(new ItemStack(ModItems.mundanePowerCatalyst), 10, new ItemStack[]{glowstoneDustStack, glowstoneDustStack, glowstoneDustStack, new ItemStack(ModItems.weakBindingAgent), simpleCatalystStack}, 3); - AlchemyRecipeRegistry.registerRecipe(new ItemStack(ModItems.mundaneLengtheningCatalyst), 10, new ItemStack[]{redstoneStack, redstoneStack, redstoneStack, new ItemStack(ModItems.weakBindingAgent), simpleCatalystStack}, 3); - AlchemyRecipeRegistry.registerRecipe(new ItemStack(ModItems.averagePowerCatalyst), 20, new ItemStack[]{new ItemStack(ModItems.mundanePowerCatalyst), new ItemStack(ModItems.mundanePowerCatalyst), new ItemStack(ModItems.standardBindingAgent)}, 4); - AlchemyRecipeRegistry.registerRecipe(new ItemStack(ModItems.averageLengtheningCatalyst), 20, new ItemStack[]{new ItemStack(ModItems.mundaneLengtheningCatalyst), new ItemStack(ModItems.mundaneLengtheningCatalyst), new ItemStack(ModItems.standardBindingAgent)}, 4); - AlchemyRecipeRegistry.registerRecipe(new ItemStack(ModItems.greaterPowerCatalyst), 30, new ItemStack[]{new ItemStack(ModItems.averagePowerCatalyst), new ItemStack(ModItems.averagePowerCatalyst), new ItemStack(ModItems.incendium)}, 4); - AlchemyRecipeRegistry.registerRecipe(new ItemStack(ModItems.greaterLengtheningCatalyst), 30, new ItemStack[]{new ItemStack(ModItems.averageLengtheningCatalyst), new ItemStack(ModItems.averageLengtheningCatalyst), new ItemStack(ModItems.aquasalus)}, 4); - AlchemyRecipeRegistry.registerRecipe(new ItemStack(ModItems.weakFillingAgent), 5, new ItemStack[]{simpleCatalystStack, new ItemStack(Items.nether_wart), redstoneStack, glowstoneDustStack}, 3); - AlchemyRecipeRegistry.registerRecipe(new ItemStack(ModItems.standardFillingAgent), 10, new ItemStack[]{new ItemStack(ModItems.weakFillingAgent), new ItemStack(ModItems.terrae)}, 3); - AlchemyRecipeRegistry.registerRecipe(new ItemStack(ModItems.enhancedFillingAgent), 25, new ItemStack[]{new ItemStack(ModItems.standardFillingAgent), new ItemStack(ModItems.aquasalus), new ItemStack(ModItems.magicales)}, 4); - AlchemyRecipeRegistry.registerRecipe(new ItemStack(ModItems.activationCrystal, 1, 1), 100, new ItemStack[]{new ItemStack(ModItems.activationCrystal, 1, 0), new ItemStack(ModItems.demonBloodShard), incendiumStack, aquasalusStack, aetherStack}, 4); - AlchemyRecipeRegistry.registerRecipe(new ItemStack(ModItems.activationCrystal, 1, 1), 100, new ItemStack[]{new ItemStack(ModItems.activationCrystal, 1, 0), new ItemStack(Items.nether_star), incendiumStack, aquasalusStack, aetherStack}, 4); - - AlchemyRecipeRegistry.registerRecipe(new ItemStack(Blocks.web),2,new ItemStack[]{new ItemStack(Items.string),new ItemStack(Items.string),new ItemStack(Items.string),new ItemStack(Items.string),new ItemStack(Items.string)},1); - AlchemyRecipeRegistry.registerRecipe(new ItemStack(Items.gunpowder,2,0), 2, new ItemStack[]{gunpowderStack, new ItemStack(Items.coal), new ItemStack(Blocks.sand)}, 1); - - AlchemyRecipeRegistry.registerRecipe(strengthenedCatalystStackCrafted, 10, new ItemStack[]{simpleCatalystStack, simpleCatalystStack, new ItemStack(Items.dye,1,15), new ItemStack(Items.nether_wart)}, 3); - AlchemyRecipeRegistry.registerRecipe(offensaStack,10, new ItemStack[]{strengthenedCatalystStack,incendiumStack, new ItemStack(Items.arrow), new ItemStack(Items.flint), new ItemStack(Items.arrow)},3); - AlchemyRecipeRegistry.registerRecipe(praesidiumStack, 10, new ItemStack[]{strengthenedCatalystStack,tennebraeStack,ironIngotStack,new ItemStack(Blocks.web),redstoneStack}, 3); - AlchemyRecipeRegistry.registerRecipe(orbisTerraeStack, 10, new ItemStack[]{strengthenedCatalystStack,terraeStack, gunpowderStack, new ItemStack(Blocks.netherrack), new ItemStack(Blocks.sand)}, 3); - AlchemyRecipeRegistry.registerRecipe(concentratedCatalystStack,10,new ItemStack[]{strengthenedCatalystStack,fracturedBoneStack,goldNuggetStack},4); - AlchemyRecipeRegistry.registerRecipe(fracturedBoneStackCrafted, 2, new ItemStack[]{new ItemStack(Items.bone), new ItemStack(Items.bone),new ItemStack(Items.bone),new ItemStack(Items.bone), gunpowderStack},1); - AlchemyRecipeRegistry.registerRecipe(virtusStack,20, new ItemStack[]{redstoneStack, new ItemStack(Items.coal),strengthenedCatalystStack,redstoneStack,gunpowderStack}, 3); - AlchemyRecipeRegistry.registerRecipe(reductusStack,20,new ItemStack[]{redstoneStack, goldIngotStack, strengthenedCatalystStack,new ItemStack(Blocks.soul_sand), new ItemStack(Items.carrot)},3); - AlchemyRecipeRegistry.registerRecipe(potentiaStack,20, new ItemStack[]{glowstoneDustStack,strengthenedCatalystStack,lapisStack,lapisStack,new ItemStack(Items.quartz)}, 3); - - - HomSpellRegistry.registerBasicSpell(new ItemStack(Items.flint_and_steel), new SpellFireBurst()); - HomSpellRegistry.registerBasicSpell(new ItemStack(Blocks.ice), new SpellFrozenWater()); - HomSpellRegistry.registerBasicSpell(new ItemStack(Blocks.tnt), new SpellExplosions()); - HomSpellRegistry.registerBasicSpell(new ItemStack(ModItems.apprenticeBloodOrb), new SpellHolyBlast()); - HomSpellRegistry.registerBasicSpell(new ItemStack(Items.ghast_tear), new SpellWindGust()); - HomSpellRegistry.registerBasicSpell(new ItemStack(Items.glowstone_dust), new SpellLightningBolt()); - HomSpellRegistry.registerBasicSpell(new ItemStack(Items.water_bucket), new SpellWateryGrave()); - HomSpellRegistry.registerBasicSpell(new ItemStack(Blocks.obsidian), new SpellEarthBender()); - HomSpellRegistry.registerBasicSpell(new ItemStack(Items.ender_pearl), new SpellTeleport()); - SummoningRegistry.registerSummon(new SummoningHelperAW(this.entityFallenAngelID), new ItemStack[]{sanctusStack, sanctusStack, sanctusStack, aetherStack, tennebraeStack, terraeStack}, new ItemStack[]{}, new ItemStack[]{}, 0, 4); - SummoningRegistry.registerSummon(new SummoningHelperAW(this.entityLowerGuardianID), new ItemStack[]{cobblestoneStack, cobblestoneStack, terraeStack, tennebraeStack, new ItemStack(Items.iron_ingot), new ItemStack(Items.gold_nugget)}, new ItemStack[]{}, new ItemStack[]{}, 0, 4); - SummoningRegistry.registerSummon(new SummoningHelperAW(this.entityBileDemonID), new ItemStack[]{new ItemStack(Items.poisonous_potato), tennebraeStack, terraeStack, new ItemStack(Items.porkchop), new ItemStack(Items.egg), new ItemStack(Items.beef)}, new ItemStack[]{crepitousStack, crepitousStack, terraeStack, ironBlockStack, ironBlockStack, diamondStack}, new ItemStack[]{}, 0, 5); - SummoningRegistry.registerSummon(new SummoningHelperAW(this.entityWingedFireDemonID), new ItemStack[]{aetherStack, incendiumStack, incendiumStack, incendiumStack, tennebraeStack, new ItemStack(Blocks.netherrack)}, new ItemStack[]{diamondStack, new ItemStack(Blocks.gold_block), magicalesStack, magicalesStack, new ItemStack(Items.fire_charge), new ItemStack(Blocks.coal_block)}, new ItemStack[]{}, 0, 5); - SummoningRegistry.registerSummon(new SummoningHelperAW(this.entitySmallEarthGolemID), new ItemStack[]{new ItemStack(Items.clay_ball), terraeStack, terraeStack}, new ItemStack[]{}, new ItemStack[]{}, 0, 4); - SummoningRegistry.registerSummon(new SummoningHelperAW(this.entityIceDemonID), new ItemStack[]{crystallosStack, crystallosStack, aquasalusStack, crystallosStack, sanctusStack, terraeStack}, new ItemStack[]{}, new ItemStack[]{}, 0, 4); - SummoningRegistry.registerSummon(new SummoningHelperAW(this.entityBoulderFistID), new ItemStack[]{terraeStack, sanctusStack, tennebraeStack, new ItemStack(Items.bone), new ItemStack(Items.cooked_beef), new ItemStack(Items.cooked_beef)}, new ItemStack[]{}, new ItemStack[]{}, 0, 4); - SummoningRegistry.registerSummon(new SummoningHelperAW(this.entityShadeID), new ItemStack[]{tennebraeStack, tennebraeStack, tennebraeStack, aetherStack, glassStack, new ItemStack(Items.glass_bottle)}, new ItemStack[]{}, new ItemStack[]{}, 0, 4); - SummoningRegistry.registerSummon(new SummoningHelperAW(this.entityAirElementalID), new ItemStack[]{aetherStack, aetherStack, aetherStack, aetherStack, aetherStack, aetherStack}, new ItemStack[]{}, new ItemStack[]{}, 0, 4); - SummoningRegistry.registerSummon(new SummoningHelperAW(this.entityWaterElementalID), new ItemStack[]{aquasalusStack, aquasalusStack, aquasalusStack, aquasalusStack, aquasalusStack, aquasalusStack}, new ItemStack[]{}, new ItemStack[]{}, 0, 4); - SummoningRegistry.registerSummon(new SummoningHelperAW(this.entityEarthElementalID), new ItemStack[]{terraeStack, terraeStack, terraeStack, terraeStack, terraeStack, terraeStack}, new ItemStack[]{}, new ItemStack[]{}, 0, 4); - SummoningRegistry.registerSummon(new SummoningHelperAW(this.entityFireElementalID), new ItemStack[]{incendiumStack, incendiumStack, incendiumStack, incendiumStack, incendiumStack, incendiumStack}, new ItemStack[]{}, new ItemStack[]{}, 0, 4); - SummoningRegistry.registerSummon(new SummoningHelperAW(this.entityShadeElementalID), new ItemStack[]{tennebraeStack,tennebraeStack,tennebraeStack,tennebraeStack,tennebraeStack,tennebraeStack}, new ItemStack[]{}, new ItemStack[]{}, 0, 4); - SummoningRegistry.registerSummon(new SummoningHelperAW(this.entityHolyElementalID), new ItemStack[]{sanctusStack, sanctusStack, sanctusStack, sanctusStack, sanctusStack, sanctusStack}, new ItemStack[]{}, new ItemStack[]{}, 0, 4); - //Custom mobs - EntityRegistry.registerModEntity(EntityFallenAngel.class, "FallenAngel", this.entityFallenAngelID, this, 80, 3, true); - EntityRegistry.registerModEntity(EntityLowerGuardian.class, "LowerGuardian", this.entityLowerGuardianID, this, 80, 3, true); - EntityRegistry.registerModEntity(EntityBileDemon.class, "BileDemon", this.entityBileDemonID, this, 80, 3, true); - EntityRegistry.registerModEntity(EntityWingedFireDemon.class, "WingedFireDemon", this.entityWingedFireDemonID, this, 80, 3, true); - EntityRegistry.registerModEntity(EntitySmallEarthGolem.class, "SmallEarthGolem", this.entitySmallEarthGolemID, this, 80, 3, true); - EntityRegistry.registerModEntity(EntityIceDemon.class, "IceDemon", this.entityIceDemonID, this, 80, 3, true); - EntityRegistry.registerModEntity(EntityBoulderFist.class, "BoulderFist", this.entityBoulderFistID, this, 80, 3, true); - EntityRegistry.registerModEntity(EntityShade.class, "Shade", this.entityShadeID, this, 80, 3, true); - EntityRegistry.registerModEntity(EntityAirElemental.class, "AirElemental", this.entityAirElementalID, this, 120, 3, true); - EntityRegistry.registerModEntity(EntityWaterElemental.class, "WaterElemental", this.entityWaterElementalID, this, 120, 3, true); - EntityRegistry.registerModEntity(EntityEarthElemental.class, "EarthElemental", this.entityEarthElementalID, this, 120, 3, true); - EntityRegistry.registerModEntity(EntityFireElemental.class, "FireElemental", this.entityFireElementalID, this, 120, 3, true); - EntityRegistry.registerModEntity(EntityShadeElemental.class, "ShadeElemental", this.entityShadeElementalID, this, 120, 3, true); - EntityRegistry.registerModEntity(EntityHolyElemental.class, "HolyElemental", this.entityHolyElementalID, this, 120, 3, true); - //EntityRegistry.addSpawn(EntityFallenAngel.class, 5, 1, 5, EnumCreatureType.creature, BiomeGenBase.biomeList); - ChestGenHooks.getInfo(ChestGenHooks.DUNGEON_CHEST).addItem(new WeightedRandomChestContent(new ItemStack(ModItems.standardBindingAgent), 1, 3, this.standardBindingAgentDungeonChance)); - ChestGenHooks.getInfo(ChestGenHooks.DUNGEON_CHEST).addItem(new WeightedRandomChestContent(new ItemStack(ModItems.mundanePowerCatalyst), 1, 1, this.mundanePowerCatalystDungeonChance)); - ChestGenHooks.getInfo(ChestGenHooks.DUNGEON_CHEST).addItem(new WeightedRandomChestContent(new ItemStack(ModItems.mundaneLengtheningCatalyst), 1, 1, this.mundaneLengtheningCatalystDungeonChance)); - ChestGenHooks.getInfo(ChestGenHooks.DUNGEON_CHEST).addItem(new WeightedRandomChestContent(new ItemStack(ModItems.averagePowerCatalyst), 1, 1, this.averagePowerCatalystDungeonChance)); - ChestGenHooks.getInfo(ChestGenHooks.DUNGEON_CHEST).addItem(new WeightedRandomChestContent(new ItemStack(ModItems.averageLengtheningCatalyst), 1, 1, this.averageLengtheningCatalystDungeonChance)); - ChestGenHooks.getInfo(ChestGenHooks.DUNGEON_CHEST).addItem(new WeightedRandomChestContent(new ItemStack(ModItems.greaterPowerCatalyst), 1, 1, this.greaterPowerCatalystDungeonChance)); - ChestGenHooks.getInfo(ChestGenHooks.DUNGEON_CHEST).addItem(new WeightedRandomChestContent(new ItemStack(ModItems.greaterLengtheningCatalyst), 1, 1, this.greaterLengtheningCatalystDungeonChance)); - //Ore Dictionary Registration - OreDictionary.registerOre("oreCoal", Blocks.coal_ore); - MeteorRegistry.registerMeteorParadigm(diamondStack, diamondMeteorArray, diamondMeteorRadius); - MeteorRegistry.registerMeteorParadigm(stoneStack, this.stoneMeteorArray, this.stoneMeteorRadius); - MeteorRegistry.registerMeteorParadigm(ironBlockStack, this.ironBlockMeteorArray, this.ironBlockMeteorRadius); - MeteorRegistry.registerMeteorParadigm(new ItemStack(Items.nether_star), this.netherStarMeteorArray, this.netherStarMeteorRadius); - - //Register spell component recipes - ItemStack complexSpellCrystalStack = new ItemStack(ModItems.itemComplexSpellCrystal); - ItemStack quartzRodStack = new ItemStack(ModItems.baseItems,1,0); - ItemStack emptyCoreStack = new ItemStack(ModItems.baseItems,1,1); - ItemStack magicalesCableStack = new ItemStack(ModItems.baseItems,1,2); - ItemStack woodBraceStack = new ItemStack(ModItems.baseItems,1,3); - ItemStack stoneBraceStack = new ItemStack(ModItems.baseItems,1,4); - ItemStack projectileCoreStack = new ItemStack(ModItems.baseItems,1,5); - ItemStack selfCoreStack = new ItemStack(ModItems.baseItems,1,6); - ItemStack meleeCoreStack = new ItemStack(ModItems.baseItems,1,7); - ItemStack paradigmBackPlateStack = new ItemStack(ModItems.baseItems,1,8); - ItemStack outputCableStack = new ItemStack(ModItems.baseItems,1,9); - ItemStack flameCoreStack = new ItemStack(ModItems.baseItems,1,10); - ItemStack iceCoreStack = new ItemStack(ModItems.baseItems,1,11); - ItemStack windCoreStack = new ItemStack(ModItems.baseItems,1,12); - ItemStack earthCoreStack = new ItemStack(ModItems.baseItems,1,13); - ItemStack inputCableStack = new ItemStack(ModItems.baseItems,1,14); - ItemStack crackedRunicPlateStack = new ItemStack(ModItems.baseItems,1,15); - ItemStack runicPlateStack = new ItemStack(ModItems.baseItems,1,16); - ItemStack imbuedRunicPlateStack = new ItemStack(ModItems.baseItems,1,17); - ItemStack defaultCoreStack = new ItemStack(ModItems.baseItems,1,18); - ItemStack offenseCoreStack = new ItemStack(ModItems.baseItems,1,19); - ItemStack defensiveCoreStack = new ItemStack(ModItems.baseItems,1,20); - ItemStack environmentalCoreStack = new ItemStack(ModItems.baseItems,1,21); - ItemStack powerCoreStack = new ItemStack(ModItems.baseItems,1,22); - ItemStack costCoreStack = new ItemStack(ModItems.baseItems,1,23); - ItemStack potencyCoreStack = new ItemStack(ModItems.baseItems,1,24); - ItemStack obsidianBraceStack = new ItemStack(ModItems.baseItems,1,25); - ItemStack toolCoreStack = new ItemStack(ModItems.baseItems,1,26); - - ItemStack magicalesCraftedCableStack = new ItemStack(ModItems.baseItems,5,2); - ItemStack crackedRunicPlateStackCrafted = new ItemStack(ModItems.baseItems,2,15); - ItemStack runicPlateStackCrafted = new ItemStack(ModItems.baseItems,2,16); - - GameRegistry.addRecipe(quartzRodStack, "qqq", 'q', new ItemStack(Items.quartz)); - GameRegistry.addRecipe(emptyCoreStack,"gig","nrn","gig",'n',goldIngotStack,'i',ironIngotStack,'g',glassStack,'r',simpleCatalystStack); - GameRegistry.addRecipe(magicalesCraftedCableStack,"sss","mmm","sss",'s',new ItemStack(Items.string),'m',magicalesStack); - GameRegistry.addRecipe(woodBraceStack," il","ili","li ",'l', new ItemStack(Blocks.log,1,craftingConstant),'i',new ItemStack(Items.string)); - GameRegistry.addRecipe(stoneBraceStack," is","isi","si ",'i', ironIngotStack,'s',reinforcedSlateStack); - GameRegistry.addRecipe(obsidianBraceStack," is","ibi","si ",'i', obsidianStack,'s',reinforcedSlateStack,'b',stoneBraceStack); - - GameRegistry.addRecipe(new ShapedBloodOrbRecipe(projectileCoreStack, "mbm","aca","mom",'c', emptyCoreStack,'b',weakBloodShardStack,'m', magicalesStack,'o', magicianBloodOrbStack,'a',new ItemStack(Items.arrow))); - GameRegistry.addRecipe(new ShapedBloodOrbRecipe(selfCoreStack,"sbs","ncn","sos",'c', emptyCoreStack, 's',sanctusStack,'b', weakBloodShardStack,'o', magicianBloodOrbStack,'n',glowstoneDustStack)); - GameRegistry.addRecipe(new ShapedBloodOrbRecipe(meleeCoreStack,"sbs","ncn","sos",'c', emptyCoreStack, 's',incendiumStack,'b', weakBloodShardStack,'o', magicianBloodOrbStack,'n',new ItemStack(Items.fire_charge))); - GameRegistry.addRecipe(new ShapedBloodOrbRecipe(toolCoreStack,"sbs","ncn","sos",'c', emptyCoreStack, 's',terraeStack,'b', weakBloodShardStack,'o', magicianBloodOrbStack,'n',new ItemStack(Blocks.obsidian))); - GameRegistry.addRecipe(paradigmBackPlateStack,"isi","rgr","isi",'i',ironIngotStack,'r',stoneStack,'g',goldIngotStack,'s',reinforcedSlateStack); - GameRegistry.addRecipe(outputCableStack, " si","s c"," si",'s',stoneStack,'i',ironIngotStack,'c',simpleCatalystStack); - - GameRegistry.addRecipe(new ShapedBloodOrbRecipe(flameCoreStack,"mdm","scs","mom",'m',incendiumStack,'c',emptyCoreStack,'o',magicianBloodOrbStack,'d',diamondStack,'s',weakBloodShardStack)); - GameRegistry.addRecipe(new ShapedBloodOrbRecipe(iceCoreStack,"mdm","scs","mom",'m',crystallosStack,'c',emptyCoreStack,'o',magicianBloodOrbStack,'d',diamondStack,'s',weakBloodShardStack)); - GameRegistry.addRecipe(new ShapedBloodOrbRecipe(windCoreStack,"mdm","scs","mom",'m',aetherStack,'c',emptyCoreStack,'o',magicianBloodOrbStack,'d',diamondStack,'s',weakBloodShardStack)); - GameRegistry.addRecipe(new ShapedBloodOrbRecipe(earthCoreStack,"mdm","scs","mom",'m',terraeStack,'c',emptyCoreStack,'o',magicianBloodOrbStack,'d',diamondStack,'s',weakBloodShardStack)); - - GameRegistry.addRecipe(inputCableStack, "ws ","rcs","ws ",'w',blankSlateStack,'s',stoneStack,'r',imbuedSlateStack,'c',simpleCatalystStack); - - GameRegistry.addRecipe(new ShapedBloodOrbRecipe(defaultCoreStack,"msm","geg","mom",'m', strengthenedCatalystStack,'e', emptyCoreStack, 'o', magicianBloodOrbStack, 's',weakBloodShardStack, 'g', goldIngotStack)); - GameRegistry.addRecipe(new ShapedBloodOrbRecipe(offenseCoreStack,"msm","geg","mom",'m', offensaStack,'e', emptyCoreStack, 'o', magicianBloodOrbStack, 's',weakBloodShardStack, 'g', goldIngotStack)); - GameRegistry.addRecipe(new ShapedBloodOrbRecipe(defensiveCoreStack,"msm","geg","mom",'m', praesidiumStack,'e', emptyCoreStack, 'o', magicianBloodOrbStack, 's',weakBloodShardStack, 'g', goldIngotStack)); - GameRegistry.addRecipe(new ShapedBloodOrbRecipe(environmentalCoreStack,"msm","geg","mom",'m', orbisTerraeStack,'e', emptyCoreStack, 'o', magicianBloodOrbStack, 's',weakBloodShardStack, 'g', goldIngotStack)); - - GameRegistry.addRecipe(new ShapedBloodOrbRecipe(powerCoreStack,"msm","geg","mom",'m', virtusStack,'e', emptyCoreStack, 'o', masterBloodOrbStack, 's',weakBloodShardStack, 'g', goldIngotStack)); - GameRegistry.addRecipe(new ShapedBloodOrbRecipe(costCoreStack,"msm","geg","mom",'m', reductusStack,'e', emptyCoreStack, 'o', masterBloodOrbStack, 's',weakBloodShardStack, 'g', goldIngotStack)); - GameRegistry.addRecipe(new ShapedBloodOrbRecipe(potencyCoreStack,"msm","geg","mom",'m', potentiaStack,'e', emptyCoreStack, 'o', masterBloodOrbStack, 's',weakBloodShardStack, 'g', goldIngotStack)); - - AlchemyRecipeRegistry.registerRecipe(crackedRunicPlateStackCrafted, 10, new ItemStack[]{imbuedSlateStack,imbuedSlateStack,concentratedCatalystStack}, 4); - AlchemyRecipeRegistry.registerRecipe(runicPlateStack, 30, new ItemStack[]{crackedRunicPlateStack,terraeStack}, 5); - AlchemyRecipeRegistry.registerRecipe(imbuedRunicPlateStack, 100, new ItemStack[]{magicalesStack,incendiumStack,runicPlateStack, runicPlateStack,aquasalusStack}, 5); - AlchemyRecipeRegistry.registerRecipe(complexSpellCrystalStack,50,new ItemStack[]{new ItemStack(ModItems.blankSpell), weakBloodShardStack, weakBloodShardStack, diamondStack,goldIngotStack},3); - - GameRegistry.addRecipe(new ItemStack(ModBlocks.blockConduit,1,0),"q q","ccc","q q",'q', quartzRodStack,'c', magicalesCableStack); - - GameRegistry.addRecipe(new ItemStack(ModBlocks.blockSpellParadigm,1,0),"gb ","pcw","gb ",'p',paradigmBackPlateStack,'c', projectileCoreStack,'g',goldIngotStack,'b',stoneBraceStack,'w',outputCableStack); - GameRegistry.addRecipe(new ItemStack(ModBlocks.blockSpellParadigm,1,1),"gb ","pcw","gb ",'p',paradigmBackPlateStack,'c', selfCoreStack,'g',goldIngotStack,'b',stoneBraceStack,'w',outputCableStack); - GameRegistry.addRecipe(new ItemStack(ModBlocks.blockSpellParadigm,1,2),"gb ","pcw","gb ",'p',paradigmBackPlateStack,'c', meleeCoreStack,'g',goldIngotStack,'b',stoneBraceStack,'w',outputCableStack); - GameRegistry.addRecipe(new ItemStack(ModBlocks.blockSpellParadigm,1,3),"gb ","pcw","gb ",'p',paradigmBackPlateStack,'c', toolCoreStack,'g',goldIngotStack,'b',stoneBraceStack,'w',outputCableStack); - - GameRegistry.addRecipe(new ItemStack(ModBlocks.blockSpellEffect,1,0),"bgb","ico","bgb",'c',flameCoreStack,'b',stoneBraceStack,'g',goldIngotStack,'i',inputCableStack,'o',outputCableStack); - GameRegistry.addRecipe(new ItemStack(ModBlocks.blockSpellEffect,1,1),"bgb","ico","bgb",'c',iceCoreStack,'b',stoneBraceStack,'g',goldIngotStack,'i',inputCableStack,'o',outputCableStack); - GameRegistry.addRecipe(new ItemStack(ModBlocks.blockSpellEffect,1,2),"bgb","ico","bgb",'c',windCoreStack,'b',stoneBraceStack,'g',goldIngotStack,'i',inputCableStack,'o',outputCableStack); - GameRegistry.addRecipe(new ItemStack(ModBlocks.blockSpellEffect,1,3),"bgb","ico","bgb",'c',earthCoreStack,'b',stoneBraceStack,'g',goldIngotStack,'i',inputCableStack,'o',outputCableStack); - - GameRegistry.addRecipe(new ItemStack(ModBlocks.blockSpellModifier,1,0),"bgb","ico","bgb",'c',defaultCoreStack,'i',inputCableStack,'o',outputCableStack,'b',stoneBraceStack,'g',ironIngotStack); - GameRegistry.addRecipe(new ItemStack(ModBlocks.blockSpellModifier,1,1),"bgb","ico","bgb",'c',offenseCoreStack,'i',inputCableStack,'o',outputCableStack,'b',stoneBraceStack,'g',ironIngotStack); - GameRegistry.addRecipe(new ItemStack(ModBlocks.blockSpellModifier,1,2),"bgb","ico","bgb",'c',defensiveCoreStack,'i',inputCableStack,'o',outputCableStack,'b',stoneBraceStack,'g',ironIngotStack); - GameRegistry.addRecipe(new ItemStack(ModBlocks.blockSpellModifier,1,3),"bgb","ico","bgb",'c',environmentalCoreStack,'i',inputCableStack,'o',outputCableStack,'b',stoneBraceStack,'g',ironIngotStack); - - GameRegistry.addRecipe(new ItemStack(ModBlocks.blockSpellEnhancement,1,0),"bpb","ico","bpb",'c', powerCoreStack,'b',woodBraceStack,'p',crackedRunicPlateStack,'i',inputCableStack,'o',outputCableStack); - GameRegistry.addRecipe(new ItemStack(ModBlocks.blockSpellEnhancement,1,1),"bpb","ico","bpb",'c', powerCoreStack,'b',stoneBraceStack,'p',runicPlateStack,'i',inputCableStack,'o',outputCableStack); - GameRegistry.addRecipe(new ItemStack(ModBlocks.blockSpellEnhancement,1,2),"bpb","ico","bpb",'c', powerCoreStack,'b',obsidianBraceStack,'p',imbuedRunicPlateStack,'i',inputCableStack,'o',outputCableStack); - GameRegistry.addRecipe(new ItemStack(ModBlocks.blockSpellEnhancement,1,5),"bpb","ico","bpb",'c', costCoreStack,'b',woodBraceStack,'p',crackedRunicPlateStack,'i',inputCableStack,'o',outputCableStack); - GameRegistry.addRecipe(new ItemStack(ModBlocks.blockSpellEnhancement,1,6),"bpb","ico","bpb",'c', costCoreStack,'b',stoneBraceStack,'p',runicPlateStack,'i',inputCableStack,'o',outputCableStack); - GameRegistry.addRecipe(new ItemStack(ModBlocks.blockSpellEnhancement,1,7),"bpb","ico","bpb",'c', costCoreStack,'b',obsidianBraceStack,'p',imbuedRunicPlateStack,'i',inputCableStack,'o',outputCableStack); - GameRegistry.addRecipe(new ItemStack(ModBlocks.blockSpellEnhancement,1,10),"bpb","ico","bpb",'c', potencyCoreStack,'b',woodBraceStack,'p',crackedRunicPlateStack,'i',inputCableStack,'o',outputCableStack); - GameRegistry.addRecipe(new ItemStack(ModBlocks.blockSpellEnhancement,1,11),"bpb","ico","bpb",'c', potencyCoreStack,'b',stoneBraceStack,'p',runicPlateStack,'i',inputCableStack,'o',outputCableStack); - GameRegistry.addRecipe(new ItemStack(ModBlocks.blockSpellEnhancement,1,12),"bpb","ico","bpb",'c', potencyCoreStack,'b',obsidianBraceStack,'p',imbuedRunicPlateStack,'i',inputCableStack,'o',outputCableStack); - - GameRegistry.addShapelessRecipe(new ItemStack(Items.dye,5,15),fracturedBoneStack); - - GameRegistry.addRecipe(new ShapedBloodOrbRecipe(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 ShapedBloodOrbRecipe(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); - AlchemyRecipeRegistry.registerRecipe(new ItemStack(Items.leather,3,0), 2, new ItemStack[]{new ItemStack(Items.rotten_flesh),new ItemStack(Items.rotten_flesh),new ItemStack(Items.rotten_flesh),waterBucketStack,new ItemStack(Items.flint)}, 1); - AlchemyRecipeRegistry.registerRecipe(new ItemStack(Items.bread), 1, new ItemStack[]{new ItemStack(Items.wheat),new ItemStack(Items.sugar)}, 1); - AlchemyRecipeRegistry.registerRecipe(new ItemStack(Items.fire_charge,5,0), 3, new ItemStack[]{new ItemStack(Items.coal),new ItemStack(Items.blaze_powder),gunpowderStack}, 1); - AlchemyRecipeRegistry.registerRecipe(new ItemStack(Blocks.sand,2,0), 1, new ItemStack[]{new ItemStack(Blocks.cobblestone),gunpowderStack}, 1); - AlchemyRecipeRegistry.registerRecipe(new ItemStack(Blocks.clay,4,0), 2, new ItemStack[]{new ItemStack(Blocks.hardened_clay,1,craftingConstant),new ItemStack(Blocks.hardened_clay,1,craftingConstant),new ItemStack(Blocks.hardened_clay,1,craftingConstant),new ItemStack(Blocks.hardened_clay,1,craftingConstant),waterBucketStack}, 1); - AlchemyRecipeRegistry.registerRecipe(new ItemStack(Items.string,4,0), 1, new ItemStack[]{new ItemStack(Blocks.wool,1,craftingConstant),new ItemStack(Items.flint)}, 1); - AlchemyRecipeRegistry.registerRecipe(new ItemStack(Blocks.gravel,2,0), 1, new ItemStack[]{new ItemStack(Blocks.stone),gunpowderStack}, 1); - AlchemyRecipeRegistry.registerRecipe(new ItemStack(Blocks.obsidian), 1, new ItemStack[]{waterBucketStack,lavaBucketStack}, 1); - AlchemyRecipeRegistry.registerRecipe(new ItemStack(Items.paper), 1, new ItemStack[]{new ItemStack(Items.reeds)}, 1); - AlchemyRecipeRegistry.registerRecipe(new ItemStack(Blocks.soul_sand,3,0), 3, new ItemStack[]{new ItemStack(Blocks.sand),new ItemStack(Blocks.sand),new ItemStack(Blocks.sand),waterBucketStack,weakBloodShardStack}, 3); - AlchemyRecipeRegistry.registerRecipe(new ItemStack(Blocks.mycelium,1,0), 5, new ItemStack[]{new ItemStack(Blocks.grass),new ItemStack(Blocks.brown_mushroom), new ItemStack(Blocks.red_mushroom)}, 2); - AlchemyRecipeRegistry.registerRecipe(new ItemStack(Blocks.ice), 2, new ItemStack[]{waterBucketStack,new ItemStack(Items.snowball)}, 1); - } - - @EventHandler - public void postInit(FMLPostInitializationEvent event) - { - //TODO Thaumcraft Integration - if (Loader.isModLoaded("Thaumcraft")) - { - this.isThaumcraftLoaded = true; - - try - { - //do stuff - ModItems.sanguineHelmet = new ItemSanguineArmour().setUnlocalizedName("sanguineHelmet"); - GameRegistry.registerItem(ModItems.sanguineHelmet, "sanguineHelmet"); - - ItemStack itemGoggles = ItemApi.getItem("itemGoggles", 0); - - if (itemGoggles != null) - { - BindingRegistry.registerRecipe(new ItemStack(ModItems.sanguineHelmet), itemGoggles); - - } - - //LogHelper.log(Level.INFO, "Loaded RP2 World addon"); - } catch (Exception e) - { - //LogHelper.log(Level.SEVERE, "Could not load RP2 World addon"); - e.printStackTrace(System.err); - } - } else - { - this.isThaumcraftLoaded = false; - } - - if(Loader.isModLoaded("Forestry")) - { - this.isForestryLoaded = true; - -// ModItems.itemBloodFrame = new ItemBloodFrame(this.itemBloodFrameItemID).setUnlocalizedName("bloodFrame"); -// -// ItemStack provenFrame = GameRegistry.findItemStack("Forestry", "frameImpregnated", 1); -// -// if(provenFrame !=null) -// { -// AltarRecipeRegistry.registerAltarRecipe(new ItemStack(ModItems.itemBloodFrame), provenFrame, 3, 30000, 20, 20, false); -// } - }else - { - this.isForestryLoaded = false; - } - } - - public static void initAlchemyPotionRecipes() - { - AlchemicalPotionCreationHandler.addPotion(new ItemStack(Items.ghast_tear), Potion.regeneration.id, 450); - AlchemicalPotionCreationHandler.addPotion(new ItemStack(Items.golden_carrot), Potion.nightVision.id, 2 * 60 * 20); - AlchemicalPotionCreationHandler.addPotion(new ItemStack(Items.magma_cream), Potion.fireResistance.id, 2 * 60 * 20); - AlchemicalPotionCreationHandler.addPotion(new ItemStack(Items.water_bucket), Potion.waterBreathing.id, 2 * 60 * 20); - AlchemicalPotionCreationHandler.addPotion(new ItemStack(Items.sugar), Potion.moveSpeed.id, 2 * 60 * 20); - AlchemicalPotionCreationHandler.addPotion(new ItemStack(Items.speckled_melon), Potion.heal.id, 2 * 60 * 20); - AlchemicalPotionCreationHandler.addPotion(new ItemStack(Items.spider_eye), Potion.poison.id, 450); - AlchemicalPotionCreationHandler.addPotion(new ItemStack(Items.fermented_spider_eye), Potion.weakness.id, 450); - AlchemicalPotionCreationHandler.addPotion(new ItemStack(Items.blaze_powder), Potion.damageBoost.id, 2 * 60 * 20); - AlchemicalPotionCreationHandler.addPotion(new ItemStack(ModItems.aether), Potion.jump.id, 2 * 60 * 20); - AlchemicalPotionCreationHandler.addPotion(new ItemStack(Items.clay_ball), Potion.moveSlowdown.id, 450); - AlchemicalPotionCreationHandler.addPotion(new ItemStack(Items.redstone), Potion.digSpeed.id, 2 * 60 * 20); - AlchemicalPotionCreationHandler.addPotion(new ItemStack(Items.potionitem, 1, 0), AlchemicalWizardry.customPotionDrowning.id, 450); - //AlchemicalPotionCreationHandler.addPotion(new ItemStack(Item.goldenCarrot),Potion.nightVision.id,2*60*20); - AlchemicalPotionCreationHandler.addPotion(new ItemStack(Items.glass_bottle), Potion.invisibility.id, 2 * 60 * 20); - AlchemicalPotionCreationHandler.addPotion(new ItemStack(Items.diamond), Potion.resistance.id, 2 * 60 * 20); - AlchemicalPotionCreationHandler.addPotion(new ItemStack(Items.poisonous_potato), Potion.field_76443_y.id, 2); //saturation - AlchemicalPotionCreationHandler.addPotion(new ItemStack(ModItems.demonBloodShard), Potion.field_76434_w.id, 4 * 60 * 20); //health boost - AlchemicalPotionCreationHandler.addPotion(new ItemStack(ModItems.weakBloodShard), Potion.field_76444_x.id, 4 * 60 * 20); //Absorption - AlchemicalPotionCreationHandler.addPotion(new ItemStack(ModItems.terrae), AlchemicalWizardry.customPotionBoost.id, 1 * 60 * 20); - AlchemicalPotionCreationHandler.addPotion(new ItemStack(Items.feather), AlchemicalWizardry.customPotionFlight.id, 1 * 60 * 20); - AlchemicalPotionCreationHandler.addPotion(new ItemStack(Items.arrow), AlchemicalWizardry.customPotionReciprocation.id, 1 * 60 * 20); - AlchemicalPotionCreationHandler.addPotion(new ItemStack(Items.ender_pearl),AlchemicalWizardry.customPotionPlanarBinding.id,1*60*20); - } - - public static void initAltarRecipes() - { - AltarRecipeRegistry.registerAltarRecipe(new ItemStack(ModItems.weakBloodOrb), new ItemStack(Items.diamond),1,2000,2,1,false); - AltarRecipeRegistry.registerAltarRecipe(new ItemStack(ModItems.apprenticeBloodOrb), new ItemStack(Items.emerald),2,5000,5,5,false); - AltarRecipeRegistry.registerAltarRecipe(new ItemStack(ModItems.magicianBloodOrb), new ItemStack(Blocks.gold_block),3,25000,20,20,false); - AltarRecipeRegistry.registerAltarRecipe(new ItemStack(ModItems.masterBloodOrb), new ItemStack(ModItems.weakBloodShard),4,40000,30,50,false); - AltarRecipeRegistry.registerAltarRecipe(new ItemStack(ModItems.archmageBloodOrb), new ItemStack(ModItems.demonBloodShard),5,75000,50,100,false); - - AltarRecipeRegistry.registerAltarOrbRecipe(new ItemStack(ModItems.weakBloodOrb),1,2); - AltarRecipeRegistry.registerAltarOrbRecipe(new ItemStack(ModItems.apprenticeBloodOrb),2,5); - AltarRecipeRegistry.registerAltarOrbRecipe(new ItemStack(ModItems.magicianBloodOrb),3,15); - AltarRecipeRegistry.registerAltarOrbRecipe(new ItemStack(ModItems.masterBloodOrb),4,25); - AltarRecipeRegistry.registerAltarOrbRecipe(new ItemStack(ModItems.archmageBloodOrb),5,50); - - AltarRecipeRegistry.registerAltarRecipe(new ItemStack(ModItems.telepositionFocus), new ItemStack(Items.ender_pearl),4,2000,10,10,false); - AltarRecipeRegistry.registerAltarRecipe(new ItemStack(ModItems.enhancedTelepositionFocus), new ItemStack(ModItems.telepositionFocus),4,10000,25,15,false); - AltarRecipeRegistry.registerAltarRecipe(new ItemStack(ModItems.demonicSlate), new ItemStack(ModItems.imbuedSlate),4,15000,20,20,false); - AltarRecipeRegistry.registerAltarRecipe(new ItemStack(ModItems.duskScribeTool), new ItemStack(Blocks.coal_block),4,2000,20,10,false); - AltarRecipeRegistry.registerAltarRecipe(new ItemStack(ModBlocks.bloodSocket), new ItemStack(ModBlocks.emptySocket),3,30000,40,10,false); - AltarRecipeRegistry.registerAltarRecipe(new ItemStack(ModItems.earthScribeTool), new ItemStack(Blocks.obsidian),3,1000,5,5,false); - AltarRecipeRegistry.registerAltarRecipe(new ItemStack(ModItems.waterScribeTool), new ItemStack(Blocks.lapis_block),3,1000,5,5,false); - AltarRecipeRegistry.registerAltarRecipe(new ItemStack(ModItems.blankSpell), new ItemStack(Blocks.glass),2,1000,5,5,false); - AltarRecipeRegistry.registerAltarRecipe(new ItemStack(ModItems.blankSlate), new ItemStack(Blocks.stone),1,1000,5,5,false); - AltarRecipeRegistry.registerAltarRecipe(new ItemStack(ModItems.activationCrystal), new ItemStack(ModItems.lavaCrystal),3,10000,20,10,false); - AltarRecipeRegistry.registerAltarRecipe(new ItemStack(ModItems.fireScribeTool), new ItemStack(Items.magma_cream),3,1000,5,5,false); - AltarRecipeRegistry.registerAltarRecipe(new ItemStack(ModItems.airScribeTool), new ItemStack(Items.ghast_tear),3,1000,5,5,false); - AltarRecipeRegistry.registerAltarRecipe(new ItemStack(ModItems.imbuedSlate), new ItemStack(ModItems.reinforcedSlate),3,5000,15,10,false); - AltarRecipeRegistry.registerAltarRecipe(new ItemStack(ModItems.daggerOfSacrifice), new ItemStack(Items.iron_sword),2,3000,5,5,false); - AltarRecipeRegistry.registerAltarRecipe(new ItemStack(ModItems.alchemyFlask), new ItemStack(Items.glass_bottle),2,2000,5,5,false); - AltarRecipeRegistry.registerAltarRecipe(new ItemStack(ModItems.reinforcedSlate), new ItemStack(ModItems.blankSlate),2,2000,5,5,false); - AltarRecipeRegistry.registerAltarRecipe(new ItemStack(ModItems.bucketLife), new ItemStack(Items.bucket),1,1000,5,0,false); - } - - public static void initRituals() - { - 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("AW024Harvest", 1, 20000, new RitualEffectHarvest(), "Reap of the Harvest Moon"); - Rituals.registerRitual("AW025Conduit", 2, 2000000, new RitualEffectLifeConduit(), "Cry of the Eternal Soul"); - //Rituals.registerRitual(1,100,new RitualEffectApiaryOverclock(),"Apiary Overclock")); - } - - public static void initBindingRecipes() - { - BindingRegistry.registerRecipe(new ItemStack(ModItems.boundPickaxe), new ItemStack(Items.diamond_pickaxe)); - BindingRegistry.registerRecipe(new ItemStack(ModItems.boundAxe), new ItemStack(Items.diamond_axe)); - BindingRegistry.registerRecipe(new ItemStack(ModItems.boundShovel), new ItemStack(Items.diamond_shovel)); - BindingRegistry.registerRecipe(new ItemStack(ModItems.energySword), new ItemStack(Items.diamond_sword)); - BindingRegistry.registerRecipe(new ItemStack(ModItems.energyBlaster), new ItemStack(ModItems.apprenticeBloodOrb)); - } - - public static void initHarvestRegistry() - { - HarvestRegistry.registerHarvestHandler(new BloodMagicHarvestHandler()); - HarvestRegistry.registerHarvestHandler(new GourdHarvestHandler()); - } -} diff --git a/1.7.2/main/java/WayofTime/alchemicalWizardry/BloodMagicConfiguration.java b/1.7.2/main/java/WayofTime/alchemicalWizardry/BloodMagicConfiguration.java deleted file mode 100644 index 8048f16c..00000000 --- a/1.7.2/main/java/WayofTime/alchemicalWizardry/BloodMagicConfiguration.java +++ /dev/null @@ -1,95 +0,0 @@ -package WayofTime.alchemicalWizardry; - -import java.io.File; - -import net.minecraftforge.common.config.Configuration; -import WayofTime.alchemicalWizardry.common.summoning.meteor.MeteorParadigm; - -/** - * Created with IntelliJ IDEA. - * User: Pokefenn - * Date: 17/01/14 - * Time: 19:50 - */ -public class BloodMagicConfiguration -{ - - - public static Configuration config; - public static final String CATEGORY_GAMEPLAY = "gameplay"; - - - public static void init(File configFile) - { - - config = new Configuration(configFile); - - try - { - - config.load(); - - AlchemicalWizardry.standardBindingAgentDungeonChance = config.get("Dungeon Loot Chances", "standardBindingAgent", 30).getInt(); - AlchemicalWizardry.mundanePowerCatalystDungeonChance = config.get("Dungeon Loot Chances", "mundanePowerCatalyst", 20).getInt(); - AlchemicalWizardry.averagePowerCatalystDungeonChance = config.get("Dungeon Loot Chances", "averagePowerCatalyst", 10).getInt(); - AlchemicalWizardry.greaterPowerCatalystDungeonChance = config.get("Dungeon Loot Chances", "greaterPowerCatalyst", 05).getInt(); - AlchemicalWizardry.mundaneLengtheningCatalystDungeonChance = config.get("Dungeon Loot Chances", "mundaneLengtheningCatalyst", 20).getInt(); - AlchemicalWizardry.averageLengtheningCatalystDungeonChance = config.get("Dungeon Loot Chances", "averageLengtheningCatalyst", 10).getInt(); - AlchemicalWizardry.greaterLengtheningCatalystDungeonChance = config.get("Dungeon Loot Chances", "greaterLengtheningCatalyst", 05).getInt(); - AlchemicalWizardry.customPotionDrowningID = config.get("Potion ID", "Drowning", 100).getInt(); - AlchemicalWizardry.customPotionBoostID = config.get("Potion ID", "Boost", 101).getInt(); - AlchemicalWizardry.customPotionProjProtID = config.get("Potion ID", "ProjProt", 102).getInt(); - AlchemicalWizardry.customPotionInhibitID = config.get("Potion ID", "Inhibit", 103).getInt(); - AlchemicalWizardry.customPotionFlightID = config.get("Potion ID", "Flight", 104).getInt(); - AlchemicalWizardry.customPotionReciprocationID = config.get("Potion ID", "Reciprocation", 105).getInt(); - AlchemicalWizardry.customPotionFlameCloakID = config.get("Potion ID","FlameCloak",106).getInt(); - AlchemicalWizardry.customPotionIceCloakID = config.get("Potion ID","IceCloak",107).getInt(); - AlchemicalWizardry.customPotionHeavyHeartID = config.get("Potion ID","HeavyHeart",108).getInt(); - AlchemicalWizardry.customPotionFireFuseID = config.get("Potion ID","FireFuse",109).getInt(); - AlchemicalWizardry.customPotionPlanarBindingID = config.get("Potion ID","PlanarBinding",110).getInt(); - - MeteorParadigm.maxChance = config.get("meteor", "maxChance", 1000).getInt(); - AlchemicalWizardry.doMeteorsDestroyBlocks = config.get("meteor", "doMeteorsDestroyBlocks", true).getBoolean(true); - AlchemicalWizardry.diamondMeteorArray = config.get("meteor", "diamondMeteor", new String[]{"oreDiamond", "100", "oreEmerald", "75", "oreCinnabar", "200", "oreAmber", "200"}).getStringList(); - AlchemicalWizardry.diamondMeteorRadius = config.get("meteor", "diamondMeteorRadius", 5).getInt(); - AlchemicalWizardry.stoneMeteorArray = config.get("meteor", "stoneBlockMeteor", new String[]{"oreCoal", "150", "oreApatite", "50", "oreIron", "50"}).getStringList(); - AlchemicalWizardry.stoneMeteorRadius = config.get("meteor", "stoneMeteorRadius", 16).getInt(); - AlchemicalWizardry.ironBlockMeteorArray = config.get("meteor", "ironBlockMeteor", new String[]{"oreIron", "400", "oreGold", "30", "oreCopper", "200", "oreTin", "140", "oreSilver", "70", "oreLead", "80", "oreLapis", "60", "oreRedstone", "100"}).getStringList(); - AlchemicalWizardry.ironBlockMeteorRadius = config.get("meteor", "ironBlockMeteorRadius", 7).getInt(); - AlchemicalWizardry.netherStarMeteorArray = config.get("meteor", "netherStarMeteor", new String[]{"oreDiamond", "150", "oreEmerald", "100", "oreQuartz", "250", "oreSunstone", "5", "oreMoonstone", "50", "oreIridium", "5", "oreCertusQuartz", "150"}).getStringList(); - AlchemicalWizardry.netherStarMeteorRadius = config.get("meteor", "netherStarMeteorRadius", 3).getInt(); - - AlchemicalWizardry.allowedCrushedOresArray = config.get("oreCrushing", "allowedOres", new String[]{"iron","gold","copper","tin","lead","silver","osmium"}).getStringList(); - - AlchemicalWizardry.wimpySettings = config.get("WimpySettings","IDontLikeFun",false).getBoolean(false); - AlchemicalWizardry.respawnWithLowerHealth = config.get("WimpySettings", "RespawnWithLowerHealth", true).getBoolean(true); - - } catch (Exception e) - { - - //TODO Log - //FMLLog.log(Level.SEVERE, e, "Blood Magic" + " has had a problem loading its configuration, go ask on the forums :p"); - - } finally - { - config.save(); - } - } - - public static void set(String categoryName, String propertyName, String newValue) - { - - config.load(); - if (config.getCategoryNames().contains(categoryName)) - { - if (config.getCategory(categoryName).containsKey(propertyName)) - { - config.getCategory(categoryName).get(propertyName).set(newValue); - } - } - config.save(); - - - } - -} diff --git a/1.7.2/main/java/WayofTime/alchemicalWizardry/ModBlocks.java b/1.7.2/main/java/WayofTime/alchemicalWizardry/ModBlocks.java deleted file mode 100644 index bb5625a4..00000000 --- a/1.7.2/main/java/WayofTime/alchemicalWizardry/ModBlocks.java +++ /dev/null @@ -1,162 +0,0 @@ -package WayofTime.alchemicalWizardry; - -import net.minecraft.block.Block; -import WayofTime.alchemicalWizardry.common.block.ArmourForge; -import WayofTime.alchemicalWizardry.common.block.BlockAltar; -import WayofTime.alchemicalWizardry.common.block.BlockBloodLightSource; -import WayofTime.alchemicalWizardry.common.block.BlockConduit; -import WayofTime.alchemicalWizardry.common.block.BlockDemonPortal; -import WayofTime.alchemicalWizardry.common.block.BlockHomHeart; -import WayofTime.alchemicalWizardry.common.block.BlockMasterStone; -import WayofTime.alchemicalWizardry.common.block.BlockPedestal; -import WayofTime.alchemicalWizardry.common.block.BlockPlinth; -import WayofTime.alchemicalWizardry.common.block.BlockSchematicSaver; -import WayofTime.alchemicalWizardry.common.block.BlockSocket; -import WayofTime.alchemicalWizardry.common.block.BlockSpectralContainer; -import WayofTime.alchemicalWizardry.common.block.BlockSpellEffect; -import WayofTime.alchemicalWizardry.common.block.BlockSpellEnhancement; -import WayofTime.alchemicalWizardry.common.block.BlockSpellModifier; -import WayofTime.alchemicalWizardry.common.block.BlockSpellParadigm; -import WayofTime.alchemicalWizardry.common.block.BlockTeleposer; -import WayofTime.alchemicalWizardry.common.block.BlockWritingTable; -import WayofTime.alchemicalWizardry.common.block.BloodRune; -import WayofTime.alchemicalWizardry.common.block.BloodStoneBrick; -import WayofTime.alchemicalWizardry.common.block.EfficiencyRune; -import WayofTime.alchemicalWizardry.common.block.EmptySocket; -import WayofTime.alchemicalWizardry.common.block.ImperfectRitualStone; -import WayofTime.alchemicalWizardry.common.block.LargeBloodStoneBrick; -import WayofTime.alchemicalWizardry.common.block.LifeEssenceBlock; -import WayofTime.alchemicalWizardry.common.block.RitualStone; -import WayofTime.alchemicalWizardry.common.block.RuneOfSacrifice; -import WayofTime.alchemicalWizardry.common.block.RuneOfSelfSacrifice; -import WayofTime.alchemicalWizardry.common.block.SpectralBlock; -import WayofTime.alchemicalWizardry.common.block.SpeedRune; -import WayofTime.alchemicalWizardry.common.items.ItemBloodRuneBlock; -import WayofTime.alchemicalWizardry.common.items.ItemSpellEffectBlock; -import WayofTime.alchemicalWizardry.common.items.ItemSpellEnhancementBlock; -import WayofTime.alchemicalWizardry.common.items.ItemSpellModifierBlock; -import WayofTime.alchemicalWizardry.common.items.ItemSpellParadigmBlock; -import cpw.mods.fml.common.registry.GameRegistry; - -/** - * Created with IntelliJ IDEA. - * User: Pokefenn - * Date: 17/01/14 - * Time: 19:48 - */ -public class ModBlocks -{ - - public static Block testingBlock; - public static Block bloodStoneBrick; - public static Block largeBloodStoneBrick; - // public static Block lifeEssenceStill; -// public static Block lifeEssenceFlowing; - public static BlockAltar blockAltar; - public static BloodRune bloodRune; - public static SpeedRune speedRune; - public static EfficiencyRune efficiencyRune; - public static RuneOfSacrifice runeOfSacrifice; - public static RuneOfSelfSacrifice runeOfSelfSacrifice; - public static Block blockMasterStone; - public static Block ritualStone; - public static Block imperfectRitualStone; - public static Block bloodSocket; - public static Block emptySocket; - public static Block armourForge; - public static Block blockWritingTable; - public static Block blockHomHeart; - public static Block blockPedestal; - public static Block blockPlinth; - public static Block blockLifeEssence; - public static Block blockTeleposer; - public static Block spectralBlock; - public static Block blockConduit; - public static Block blockBloodLight; - public static Block blockSpellEffect; - public static Block blockSpellParadigm; - public static Block blockSpellModifier; - public static Block blockSpellEnhancement; - public static Block blockSpectralContainer; - public static Block blockBuildingSchematicSaver; - public static Block blockDemonPortal; - - public static void init() - { - blockAltar = new BlockAltar(); - bloodRune = new BloodRune(); - speedRune = new SpeedRune(); - efficiencyRune = new EfficiencyRune(); - runeOfSacrifice = new RuneOfSacrifice(); - runeOfSelfSacrifice = new RuneOfSelfSacrifice(); - - blockTeleposer = new BlockTeleposer(); - spectralBlock = new SpectralBlock(); - ritualStone = new RitualStone(); - blockMasterStone = new BlockMasterStone(); - imperfectRitualStone = new ImperfectRitualStone(); - bloodSocket = new BlockSocket(); - armourForge = new ArmourForge(); - emptySocket = new EmptySocket(); - largeBloodStoneBrick = new LargeBloodStoneBrick(); - bloodStoneBrick = new BloodStoneBrick(); - blockWritingTable = new BlockWritingTable(); - blockHomHeart = new BlockHomHeart(); - blockPedestal = new BlockPedestal(); - blockPlinth = new BlockPlinth(); - blockConduit = new BlockConduit(); - blockBloodLight = new BlockBloodLightSource(); - blockSpellEffect = new BlockSpellEffect(); - blockSpellParadigm = new BlockSpellParadigm(); - blockSpellModifier = new BlockSpellModifier(); - blockSpellEnhancement = new BlockSpellEnhancement(); - blockSpectralContainer = new BlockSpectralContainer(); - blockDemonPortal = new BlockDemonPortal(); - blockBuildingSchematicSaver = new BlockSchematicSaver(); - - blockLifeEssence = new LifeEssenceBlock(); - } - - public static void registerBlocksInPre() - { - GameRegistry.registerBlock(ModBlocks.blockAltar, "Altar"); - GameRegistry.registerBlock(ModBlocks.bloodRune, ItemBloodRuneBlock.class, "AlchemicalWizardry" + (ModBlocks.bloodRune.getUnlocalizedName().substring(5))); - GameRegistry.registerBlock(ModBlocks.blockLifeEssence, "lifeEssence"); - GameRegistry.registerBlock(ModBlocks.speedRune, "speedRune"); - GameRegistry.registerBlock(ModBlocks.efficiencyRune, "efficiencyRune"); - GameRegistry.registerBlock(ModBlocks.runeOfSacrifice, "runeOfSacrifice"); - GameRegistry.registerBlock(ModBlocks.runeOfSelfSacrifice, "runeOfSelfSacrifice"); - GameRegistry.registerBlock(ModBlocks.ritualStone, "ritualStone"); - GameRegistry.registerBlock(ModBlocks.blockMasterStone, "masterStone"); - GameRegistry.registerBlock(ModBlocks.bloodSocket, "bloodSocket"); - GameRegistry.registerBlock(ModBlocks.imperfectRitualStone, "imperfectRitualStone"); - - GameRegistry.registerBlock(ModBlocks.armourForge, "armourForge"); - GameRegistry.registerBlock(ModBlocks.emptySocket, "emptySocket"); - GameRegistry.registerBlock(ModBlocks.bloodStoneBrick, "bloodStoneBrick"); - GameRegistry.registerBlock(ModBlocks.largeBloodStoneBrick, "largeBloodStoneBrick"); - GameRegistry.registerBlock(ModBlocks.blockWritingTable, "blockWritingTable"); - GameRegistry.registerBlock(ModBlocks.blockHomHeart, "blockHomHeart"); - GameRegistry.registerBlock(ModBlocks.blockPedestal, "blockPedestal"); - GameRegistry.registerBlock(ModBlocks.blockPlinth, "blockPlinth"); - GameRegistry.registerBlock(ModBlocks.blockTeleposer, "blockTeleposer"); - GameRegistry.registerBlock(ModBlocks.spectralBlock, "spectralBlock"); - GameRegistry.registerBlock(ModBlocks.blockBloodLight, "bloodLight"); - - GameRegistry.registerBlock(ModBlocks.blockConduit,"blockConduit"); - GameRegistry.registerBlock(ModBlocks.blockSpellParadigm, ItemSpellParadigmBlock.class, "AlchemicalWizardry" + (ModBlocks.blockSpellParadigm.getUnlocalizedName())); - GameRegistry.registerBlock(ModBlocks.blockSpellEnhancement, ItemSpellEnhancementBlock.class,"AlchemicalWizardry" + (ModBlocks.blockSpellEnhancement.getUnlocalizedName())); - GameRegistry.registerBlock(ModBlocks.blockSpellModifier, ItemSpellModifierBlock.class,"AlchemicalWizardry" + (ModBlocks.blockSpellModifier.getUnlocalizedName())); - GameRegistry.registerBlock(ModBlocks.blockSpellEffect, ItemSpellEffectBlock.class,"AlchemicalWizardry" + (ModBlocks.blockSpellEffect.getUnlocalizedName())); - - GameRegistry.registerBlock(ModBlocks.blockSpectralContainer, "spectralContainer"); - GameRegistry.registerBlock(ModBlocks.blockDemonPortal, "demonPortalMain"); - GameRegistry.registerBlock(ModBlocks.blockBuildingSchematicSaver, "blockSchemSaver"); - - } - - public static void registerBlocksInInit() - { - //GameRegistry.registerBlock(ModBlocks.blockLifeEssence, "lifeEssence"); - } -} diff --git a/1.7.2/main/java/WayofTime/alchemicalWizardry/ModItems.java b/1.7.2/main/java/WayofTime/alchemicalWizardry/ModItems.java deleted file mode 100644 index e1cc8f3a..00000000 --- a/1.7.2/main/java/WayofTime/alchemicalWizardry/ModItems.java +++ /dev/null @@ -1,366 +0,0 @@ -package WayofTime.alchemicalWizardry; - -import net.minecraft.creativetab.CreativeTabs; -import net.minecraft.init.Items; -import net.minecraft.item.Item; -import WayofTime.alchemicalWizardry.common.items.AWBaseItems; -import WayofTime.alchemicalWizardry.common.items.ActivationCrystal; -import WayofTime.alchemicalWizardry.common.items.AirScribeTool; -import WayofTime.alchemicalWizardry.common.items.ApprenticeBloodOrb; -import WayofTime.alchemicalWizardry.common.items.ArchmageBloodOrb; -import WayofTime.alchemicalWizardry.common.items.ArmourInhibitor; -import WayofTime.alchemicalWizardry.common.items.BlankSpell; -import WayofTime.alchemicalWizardry.common.items.BloodShard; -import WayofTime.alchemicalWizardry.common.items.BoundArmour; -import WayofTime.alchemicalWizardry.common.items.BoundAxe; -import WayofTime.alchemicalWizardry.common.items.BoundPickaxe; -import WayofTime.alchemicalWizardry.common.items.BoundShovel; -import WayofTime.alchemicalWizardry.common.items.CheatyItem; -import WayofTime.alchemicalWizardry.common.items.DaggerOfSacrifice; -import WayofTime.alchemicalWizardry.common.items.DemonPlacer; -import WayofTime.alchemicalWizardry.common.items.DemonicTelepositionFocus; -import WayofTime.alchemicalWizardry.common.items.DuskScribeTool; -import WayofTime.alchemicalWizardry.common.items.EarthScribeTool; -import WayofTime.alchemicalWizardry.common.items.EnergyBattery; -import WayofTime.alchemicalWizardry.common.items.EnergyBazooka; -import WayofTime.alchemicalWizardry.common.items.EnergyBlast; -import WayofTime.alchemicalWizardry.common.items.EnergySword; -import WayofTime.alchemicalWizardry.common.items.EnhancedTelepositionFocus; -import WayofTime.alchemicalWizardry.common.items.FireScribeTool; -import WayofTime.alchemicalWizardry.common.items.ItemAlchemyBase; -import WayofTime.alchemicalWizardry.common.items.ItemComplexSpellCrystal; -import WayofTime.alchemicalWizardry.common.items.ItemComponents; -import WayofTime.alchemicalWizardry.common.items.ItemDiabloKey; -import WayofTime.alchemicalWizardry.common.items.ItemRitualDiviner; -import WayofTime.alchemicalWizardry.common.items.LavaCrystal; -import WayofTime.alchemicalWizardry.common.items.LifeBucket; -import WayofTime.alchemicalWizardry.common.items.MagicianBloodOrb; -import WayofTime.alchemicalWizardry.common.items.MasterBloodOrb; -import WayofTime.alchemicalWizardry.common.items.ReinforcedTelepositionFocus; -import WayofTime.alchemicalWizardry.common.items.SacrificialDagger; -import WayofTime.alchemicalWizardry.common.items.TelepositionFocus; -import WayofTime.alchemicalWizardry.common.items.WaterScribeTool; -import WayofTime.alchemicalWizardry.common.items.potion.AlchemyFlask; -import WayofTime.alchemicalWizardry.common.items.potion.AlchemyReagent; -import WayofTime.alchemicalWizardry.common.items.potion.AverageLengtheningCatalyst; -import WayofTime.alchemicalWizardry.common.items.potion.AveragePowerCatalyst; -import WayofTime.alchemicalWizardry.common.items.potion.EnhancedFillingAgent; -import WayofTime.alchemicalWizardry.common.items.potion.GreaterLengtheningCatalyst; -import WayofTime.alchemicalWizardry.common.items.potion.GreaterPowerCatalyst; -import WayofTime.alchemicalWizardry.common.items.potion.MundaneLengtheningCatalyst; -import WayofTime.alchemicalWizardry.common.items.potion.MundanePowerCatalyst; -import WayofTime.alchemicalWizardry.common.items.potion.StandardBindingAgent; -import WayofTime.alchemicalWizardry.common.items.potion.StandardFillingAgent; -import WayofTime.alchemicalWizardry.common.items.potion.WeakBindingAgent; -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; -import WayofTime.alchemicalWizardry.common.items.sigil.SigilOfElementalAffinity; -import WayofTime.alchemicalWizardry.common.items.sigil.SigilOfGrowth; -import WayofTime.alchemicalWizardry.common.items.sigil.SigilOfHaste; -import WayofTime.alchemicalWizardry.common.items.sigil.SigilOfHolding; -import WayofTime.alchemicalWizardry.common.items.sigil.SigilOfMagnetism; -import WayofTime.alchemicalWizardry.common.items.sigil.SigilOfTheBridge; -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; - -/** - * Created with IntelliJ IDEA. - * User: Pokefenn - * Date: 17/01/14 - * Time: 19:48 - */ -public class ModItems -{ - public static Item weakBloodOrb; - public static Item apprenticeBloodOrb; - public static Item magicianBloodOrb; - public static Item energyBlaster; - public static Item energySword; - public static Item lavaCrystal; - public static Item waterSigil; - public static Item lavaSigil; - public static Item voidSigil; - public static Item blankSlate; - public static Item reinforcedSlate; - public static Item sacrificialDagger; - public static Item daggerOfSacrifice; - public static Item airSigil; - public static Item sigilOfTheFastMiner; - public static Item sigilOfElementalAffinity; - public static Item sigilOfHaste; - public static Item sigilOfHolding; - public static Item divinationSigil; - public static Item waterScribeTool; - public static Item fireScribeTool; - public static Item earthScribeTool; - public static Item airScribeTool; - public static Item activationCrystal; - public static Item boundPickaxe; - public static Item boundAxe; - public static Item boundShovel; - public static Item boundHelmet; - public static Item boundPlate; - public static Item boundLeggings; - public static Item boundBoots; - public static Item weakBloodShard; - public static Item growthSigil; - public static Item blankSpell; - public static Item masterBloodOrb; - public static Item alchemyFlask; - public static Item standardBindingAgent; - public static Item mundanePowerCatalyst; - public static Item averagePowerCatalyst; - public static Item greaterPowerCatalyst; - public static Item mundaneLengtheningCatalyst; - public static Item averageLengtheningCatalyst; - public static Item greaterLengtheningCatalyst; - public static Item incendium; - public static Item magicales; - public static Item sanctus; - public static Item aether; - public static Item simpleCatalyst; - public static Item crepitous; - public static Item crystallos; - public static Item terrae; - public static Item aquasalus; - public static Item tennebrae; - public static Item demonBloodShard; - public static Item archmageBloodOrb; - public static Item sigilOfWind; - public static Item telepositionFocus; - public static Item enhancedTelepositionFocus; - public static Item reinforcedTelepositionFocus; - public static Item demonicTelepositionFocus; - public static Item imbuedSlate; - public static Item demonicSlate; - public static Item duskScribeTool; - public static Item sigilOfTheBridge; - public static Item armourInhibitor; - public static Item creativeFiller; - public static Item demonPlacer; - - public static Item baseItems; - public static Item baseAlchemyItems; - - public static Item weakFillingAgent; - public static Item standardFillingAgent; - public static Item enhancedFillingAgent; - public static Item weakBindingAgent; - public static Item itemRitualDiviner; - public static Item sanguineHelmet; - public static Item focusBloodBlast; - public static Item focusGravityWell; - public static Item sigilOfMagnetism; - public static Item itemKeyOfDiablo; - public static Item energyBazooka; - public static Item itemBloodLightSigil; - public static Item itemComplexSpellCrystal; - public static Item itemBloodFrame; - - public static Item itemSigilOfEnderSeverance; - public static Item itemSigilOfSupression; - public static Item itemFluidSigil; - public static Item itemSeerSigil; - - public static Item customTool; - - public static Item bucketLife; - - public static void init() - { - weakBloodOrb = new EnergyBattery(5000).setUnlocalizedName("weakBloodOrb"); - apprenticeBloodOrb = new ApprenticeBloodOrb(25000).setUnlocalizedName("apprenticeBloodOrb"); - magicianBloodOrb = new MagicianBloodOrb(150000).setUnlocalizedName("magicianBloodOrb"); - masterBloodOrb = new MasterBloodOrb(1000000).setUnlocalizedName("masterBloodOrb"); - archmageBloodOrb = new ArchmageBloodOrb(10000000).setUnlocalizedName("archmageBloodOrb"); - energyBlaster = new EnergyBlast().setUnlocalizedName("energyBlast"); - energySword = new EnergySword().setUnlocalizedName("energySword"); - lavaCrystal = new LavaCrystal().setUnlocalizedName("lavaCrystal"); - waterSigil = new WaterSigil().setUnlocalizedName("waterSigil"); - lavaSigil = new LavaSigil().setUnlocalizedName("lavaSigil"); - voidSigil = new VoidSigil().setUnlocalizedName("voidSigil"); - blankSlate = new AWBaseItems().setUnlocalizedName("blankSlate"); - reinforcedSlate = new AWBaseItems().setUnlocalizedName("reinforcedSlate"); - sacrificialDagger = new SacrificialDagger().setUnlocalizedName("sacrificialDagger"); - daggerOfSacrifice = new DaggerOfSacrifice().setUnlocalizedName("daggerOfSacrifice"); - airSigil = new AirSigil().setUnlocalizedName("airSigil"); - sigilOfTheFastMiner = new SigilOfTheFastMiner().setUnlocalizedName("sigilOfTheFastMiner"); - sigilOfElementalAffinity = new SigilOfElementalAffinity().setUnlocalizedName("sigilOfElementalAffinity"); - sigilOfHaste = new SigilOfHaste().setUnlocalizedName("sigilOfHaste"); - sigilOfHolding = new SigilOfHolding().setUnlocalizedName("sigilOfHolding"); - divinationSigil = new DivinationSigil().setUnlocalizedName("divinationSigil"); - waterScribeTool = new WaterScribeTool().setUnlocalizedName("waterScribeTool"); - fireScribeTool = new FireScribeTool().setUnlocalizedName("fireScribeTool"); - earthScribeTool = new EarthScribeTool().setUnlocalizedName("earthScribeTool"); - airScribeTool = new AirScribeTool().setUnlocalizedName("airScribeTool"); - activationCrystal = new ActivationCrystal(); - boundPickaxe = new BoundPickaxe().setUnlocalizedName("boundPickaxe"); - boundAxe = new BoundAxe().setUnlocalizedName("boundAxe"); - boundShovel = new BoundShovel().setUnlocalizedName("boundShovel"); - boundHelmet = new BoundArmour(0).setUnlocalizedName("boundHelmet"); - boundPlate = new BoundArmour(1).setUnlocalizedName("boundPlate"); - boundLeggings = new BoundArmour(2).setUnlocalizedName("boundLeggings"); - boundBoots = new BoundArmour(3).setUnlocalizedName("boundBoots"); - weakBloodShard = new BloodShard().setUnlocalizedName("weakBloodShard"); - growthSigil = new SigilOfGrowth().setUnlocalizedName("growthSigil"); - blankSpell = new BlankSpell().setUnlocalizedName("blankSpell"); - alchemyFlask = new AlchemyFlask().setUnlocalizedName("alchemyFlask"); - standardBindingAgent = new StandardBindingAgent().setUnlocalizedName("standardBindingAgent"); - mundanePowerCatalyst = new MundanePowerCatalyst().setUnlocalizedName("mundanePowerCatalyst"); - averagePowerCatalyst = new AveragePowerCatalyst().setUnlocalizedName("averagePowerCatalyst"); - greaterPowerCatalyst = new GreaterPowerCatalyst().setUnlocalizedName("greaterPowerCatalyst"); - mundaneLengtheningCatalyst = new MundaneLengtheningCatalyst().setUnlocalizedName("mundaneLengtheningCatalyst"); - averageLengtheningCatalyst = new AverageLengtheningCatalyst().setUnlocalizedName("averageLengtheningCatalyst"); - greaterLengtheningCatalyst = new GreaterLengtheningCatalyst().setUnlocalizedName("greaterLengtheningCatalyst"); - incendium = new AlchemyReagent().setUnlocalizedName("incendium"); - magicales = new AlchemyReagent().setUnlocalizedName("magicales"); - sanctus = new AlchemyReagent().setUnlocalizedName("sanctus"); - aether = new AlchemyReagent().setUnlocalizedName("aether"); - simpleCatalyst = new AlchemyReagent().setUnlocalizedName("simpleCatalyst"); - crepitous = new AlchemyReagent().setUnlocalizedName("crepitous"); - crystallos = new AlchemyReagent().setUnlocalizedName("crystallos"); - terrae = new AlchemyReagent().setUnlocalizedName("terrae"); - aquasalus = new AlchemyReagent().setUnlocalizedName("aquasalus"); - tennebrae = new AlchemyReagent().setUnlocalizedName("tennebrae"); - demonBloodShard = new BloodShard().setUnlocalizedName("demonBloodShard"); - sigilOfWind = new SigilOfWind().setUnlocalizedName("sigilOfWind"); - telepositionFocus = new TelepositionFocus(1).setUnlocalizedName("telepositionFocus"); - enhancedTelepositionFocus = new EnhancedTelepositionFocus().setUnlocalizedName("enhancedTelepositionFocus"); - reinforcedTelepositionFocus = new ReinforcedTelepositionFocus().setUnlocalizedName("reinforcedTelepositionFocus"); - demonicTelepositionFocus = new DemonicTelepositionFocus().setUnlocalizedName("demonicTelepositionFocus"); - imbuedSlate = new AWBaseItems().setUnlocalizedName("imbuedSlate"); - demonicSlate = new AWBaseItems().setUnlocalizedName("demonicSlate"); - duskScribeTool = new DuskScribeTool().setUnlocalizedName("duskScribeTool"); - sigilOfTheBridge = new SigilOfTheBridge().setUnlocalizedName("sigilOfTheBridge"); - armourInhibitor = new ArmourInhibitor().setUnlocalizedName("armourInhibitor"); - creativeFiller = new CheatyItem().setUnlocalizedName("cheatyItem"); - demonPlacer = new DemonPlacer().setUnlocalizedName("demonPlacer"); - weakFillingAgent = new WeakFillingAgent().setUnlocalizedName("weakFillingAgent"); - standardFillingAgent = new StandardFillingAgent().setUnlocalizedName("standardFillingAgent"); - enhancedFillingAgent = new EnhancedFillingAgent().setUnlocalizedName("enhancedFillingAgent"); - weakBindingAgent = new WeakBindingAgent().setUnlocalizedName("weakBindingAgent"); - itemRitualDiviner = new ItemRitualDiviner().setUnlocalizedName("ritualDiviner"); - sigilOfMagnetism = new SigilOfMagnetism().setUnlocalizedName("sigilOfMagnetism"); - itemKeyOfDiablo = new ItemDiabloKey().setUnlocalizedName("itemDiabloKey"); - energyBazooka = new EnergyBazooka().setUnlocalizedName("energyBazooka"); - itemBloodLightSigil = new ItemBloodLightSigil().setUnlocalizedName("bloodLightSigil"); - itemComplexSpellCrystal = new ItemComplexSpellCrystal().setUnlocalizedName("itemComplexSpellCrystal"); - bucketLife = (new LifeBucket(ModBlocks.blockLifeEssence)).setUnlocalizedName("bucketLife").setContainerItem(Items.bucket).setCreativeTab(CreativeTabs.tabMisc); - itemSigilOfEnderSeverance = (new ItemSigilOfEnderSeverance()).setUnlocalizedName("itemSigilOfEnderSeverance"); - 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() - { - GameRegistry.registerItem(ModItems.weakBloodOrb, "weakBloodOrb"); - GameRegistry.registerItem(ModItems.apprenticeBloodOrb, "apprenticeBloodOrb"); - GameRegistry.registerItem(ModItems.magicianBloodOrb, "magicianBloodOrb"); - GameRegistry.registerItem(ModItems.energyBlaster, "energyBlaster"); - - GameRegistry.registerItem(ModItems.energySword, "energySword"); - GameRegistry.registerItem(ModItems.lavaCrystal, "lavaCrystal"); - GameRegistry.registerItem(ModItems.waterSigil, "waterSigil"); - GameRegistry.registerItem(ModItems.lavaSigil, "lavaSigil"); - GameRegistry.registerItem(ModItems.voidSigil, "voidSigil"); - GameRegistry.registerItem(ModItems.blankSlate, "blankSlate"); - GameRegistry.registerItem(ModItems.reinforcedSlate, "reinforcedSlate"); - GameRegistry.registerItem(ModItems.sacrificialDagger, "sacrificialKnife"); - GameRegistry.registerItem(ModItems.daggerOfSacrifice, "daggerOfSacrifice"); - GameRegistry.registerItem(ModItems.airSigil, "airSigil"); - GameRegistry.registerItem(ModItems.sigilOfTheFastMiner, "sigilOfTheFastMiner"); - GameRegistry.registerItem(ModItems.sigilOfElementalAffinity, "sigilOfElementalAffinity"); - GameRegistry.registerItem(ModItems.sigilOfHaste, "sigilOfHaste"); - GameRegistry.registerItem(ModItems.sigilOfHolding, "sigilOfHolding"); - GameRegistry.registerItem(ModItems.divinationSigil, "divinationSigil"); - GameRegistry.registerItem(ModItems.waterScribeTool, "waterScribeTool"); - GameRegistry.registerItem(ModItems.fireScribeTool, "fireScribeTool"); - GameRegistry.registerItem(ModItems.earthScribeTool, "earthScribeTool"); - GameRegistry.registerItem(ModItems.airScribeTool, "airScribeTool"); - GameRegistry.registerItem(ModItems.activationCrystal, "activationCrystal"); - GameRegistry.registerItem(ModItems.boundPickaxe, "boundPickaxe"); - GameRegistry.registerItem(ModItems.boundAxe, "boundAxe"); - GameRegistry.registerItem(ModItems.boundShovel, "boundShovel"); - GameRegistry.registerItem(ModItems.boundHelmet, "boundHelmet"); - GameRegistry.registerItem(ModItems.boundPlate, "boundPlate"); - GameRegistry.registerItem(ModItems.boundLeggings, "boundLeggings"); - GameRegistry.registerItem(ModItems.boundBoots, "boundBoots"); - GameRegistry.registerItem(ModItems.weakBloodShard, "weakBloodShard"); - GameRegistry.registerItem(ModItems.growthSigil, "growthSigil"); - GameRegistry.registerItem(ModItems.blankSpell, "blankSpell"); - GameRegistry.registerItem(ModItems.masterBloodOrb, "masterBloodOrb"); - GameRegistry.registerItem(ModItems.alchemyFlask, "alchemyFlask"); - GameRegistry.registerItem(ModItems.standardBindingAgent, "standardBindingAgent"); - GameRegistry.registerItem(ModItems.mundanePowerCatalyst, "mundanePowerCatalyst"); - GameRegistry.registerItem(ModItems.averagePowerCatalyst, "averagePowerCatalyst"); - GameRegistry.registerItem(ModItems.greaterPowerCatalyst, "greaterPowerCatalyst"); - GameRegistry.registerItem(ModItems.mundaneLengtheningCatalyst, "mundaneLengtheningCatalyst"); - GameRegistry.registerItem(ModItems.averageLengtheningCatalyst, "averageLengtheningCatalyst"); - GameRegistry.registerItem(ModItems.greaterLengtheningCatalyst, "greaterLengtheningCatalyst"); - GameRegistry.registerItem(ModItems.incendium, "incendium"); - GameRegistry.registerItem(ModItems.magicales, "magicales"); - GameRegistry.registerItem(ModItems.sanctus, "sanctus"); - GameRegistry.registerItem(ModItems.aether, "aether"); - GameRegistry.registerItem(ModItems.simpleCatalyst, "simpleCatalyst"); - GameRegistry.registerItem(ModItems.crepitous, "crepitous"); - GameRegistry.registerItem(ModItems.crystallos, "crystallos"); - GameRegistry.registerItem(ModItems.terrae, "terrae"); - GameRegistry.registerItem(ModItems.aquasalus, "aquasalus"); - GameRegistry.registerItem(ModItems.tennebrae, "tennebrae"); - GameRegistry.registerItem(ModItems.demonBloodShard, "demonBloodShard"); - GameRegistry.registerItem(ModItems.archmageBloodOrb, "archmageBloodOrb"); - GameRegistry.registerItem(ModItems.sigilOfWind, "sigilOfWind"); - GameRegistry.registerItem(ModItems.telepositionFocus, "telepositionFocus"); - GameRegistry.registerItem(ModItems.enhancedTelepositionFocus, "enhancedTelepositionFocus"); - GameRegistry.registerItem(ModItems.reinforcedTelepositionFocus, "reinforcedTelepositionFocus"); - GameRegistry.registerItem(ModItems.demonicTelepositionFocus, "demonicTelepositionFocus"); - GameRegistry.registerItem(ModItems.imbuedSlate, "imbuedSlate"); - GameRegistry.registerItem(ModItems.demonicSlate, "demonicSlate"); - GameRegistry.registerItem(ModItems.duskScribeTool, "duskScribeTool"); - GameRegistry.registerItem(ModItems.sigilOfTheBridge, "sigilOfTheBridge"); - GameRegistry.registerItem(ModItems.armourInhibitor, "armourInhibitor"); - GameRegistry.registerItem(ModItems.creativeFiller, "creativeFiller"); - GameRegistry.registerItem(ModItems.demonPlacer, "demonPlacer"); - - GameRegistry.registerItem(ModItems.weakFillingAgent, "weakFillingAgent"); - GameRegistry.registerItem(ModItems.standardFillingAgent, "standardFillingAgent"); - GameRegistry.registerItem(ModItems.enhancedFillingAgent, "enhancedFillingAgent"); - GameRegistry.registerItem(ModItems.weakBindingAgent, "weakBindingAgent"); - GameRegistry.registerItem(ModItems.itemRitualDiviner, "itemRitualDiviner"); - //GameRegistry.registerItem(ModItems.sanguineHelmet, "sanguineHelmet"); - //GameRegistry.registerItem(ModItems.focusBloodBlast, "focusBloodBlast"); - //GameRegistry.registerItem(ModItems.focusGravityWell, "focusGravityWell"); - GameRegistry.registerItem(ModItems.sigilOfMagnetism, "sigilOfMagnetism"); - GameRegistry.registerItem(ModItems.itemKeyOfDiablo, "itemKeyOfDiablo"); - GameRegistry.registerItem(ModItems.energyBazooka, "energyBazooka"); - GameRegistry.registerItem(ModItems.itemBloodLightSigil, "itemBloodLightSigil"); - 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"); - - GameRegistry.registerItem(ModItems.baseItems, "bloodMagicBaseItems"); - GameRegistry.registerItem(ModItems.baseAlchemyItems, "bloodMagicBaseAlchemyItems"); - //GameRegistry.registerItem(ModItems.itemBloodFrame, "itemBloodFrame"); - } -} diff --git a/1.7.2/main/java/WayofTime/alchemicalWizardry/api/alchemy/AlchemicalPotionCreationHandler.java b/1.7.2/main/java/WayofTime/alchemicalWizardry/api/alchemy/AlchemicalPotionCreationHandler.java deleted file mode 100644 index 4a4b40e0..00000000 --- a/1.7.2/main/java/WayofTime/alchemicalWizardry/api/alchemy/AlchemicalPotionCreationHandler.java +++ /dev/null @@ -1,79 +0,0 @@ -package WayofTime.alchemicalWizardry.api.alchemy; - -import java.util.ArrayList; - -import net.minecraft.item.ItemStack; - -public class AlchemicalPotionCreationHandler -{ - public static ArrayList registeredPotionEffects = new ArrayList(); - - public static void addPotion(ItemStack itemStack, int potionID, int tickDuration) - { - registeredPotionEffects.add(new AlchemyPotionHandlerComponent(itemStack, potionID, tickDuration)); - } - - public static int getPotionIDForStack(ItemStack itemStack) - { - for (AlchemyPotionHandlerComponent aphc : registeredPotionEffects) - { - if (aphc.compareItemStack(itemStack)) - { - return aphc.getPotionID(); - } - } - - return -1; - } - - public static int getPotionTickDurationForStack(ItemStack itemStack) - { - { - for (AlchemyPotionHandlerComponent aphc : registeredPotionEffects) - { - if (aphc.compareItemStack(itemStack)) - { - return aphc.getTickDuration(); - } - } - - return -1; - } - } - - public static boolean containsRegisteredPotionIngredient(ItemStack[] stackList) - { - for (ItemStack is : stackList) - { - for (AlchemyPotionHandlerComponent aphc : registeredPotionEffects) - { - if (aphc.compareItemStack(is)) - { - return true; - } - } - } - - return false; - } - - public static int getRegisteredPotionIngredientPosition(ItemStack[] stackList) - { - int i = 0; - - for (ItemStack is : stackList) - { - for (AlchemyPotionHandlerComponent aphc : registeredPotionEffects) - { - if (aphc.compareItemStack(is)) - { - return i; - } - } - - i++; - } - - return -1; - } -} diff --git a/1.7.2/main/java/WayofTime/alchemicalWizardry/api/alchemy/AlchemyPotionHandlerComponent.java b/1.7.2/main/java/WayofTime/alchemicalWizardry/api/alchemy/AlchemyPotionHandlerComponent.java deleted file mode 100644 index 6f0d461d..00000000 --- a/1.7.2/main/java/WayofTime/alchemicalWizardry/api/alchemy/AlchemyPotionHandlerComponent.java +++ /dev/null @@ -1,52 +0,0 @@ -package WayofTime.alchemicalWizardry.api.alchemy; - -import net.minecraft.item.ItemBlock; -import net.minecraft.item.ItemStack; - -public class AlchemyPotionHandlerComponent -{ - private ItemStack itemStack; - private int potionID; - private int tickDuration; - - public AlchemyPotionHandlerComponent(ItemStack itemStack, int potionID, int tickDuration) - { - this.itemStack = itemStack; - this.potionID = potionID; - this.tickDuration = tickDuration; - } - - public boolean compareItemStack(ItemStack comparedStack) - { - if (comparedStack != null && itemStack != null) - { - if (comparedStack.getItem() instanceof ItemBlock) - { - if (itemStack.getItem() instanceof ItemBlock) - { - return comparedStack.getItem().equals(itemStack.getItem()) && comparedStack.getItemDamage() == itemStack.getItemDamage(); - } - } else if (!(itemStack.getItem() instanceof ItemBlock)) - { - return comparedStack.getItem().equals(itemStack.getItem()) && comparedStack.getItemDamage() == itemStack.getItemDamage(); - } - } - - return false; - } - - public ItemStack getItemStack() - { - return itemStack; - } - - public int getPotionID() - { - return this.potionID; - } - - public int getTickDuration() - { - return this.tickDuration; - } -} diff --git a/1.7.2/main/java/WayofTime/alchemicalWizardry/api/alchemy/AlchemyPotionHelper.java b/1.7.2/main/java/WayofTime/alchemicalWizardry/api/alchemy/AlchemyPotionHelper.java deleted file mode 100644 index d3462552..00000000 --- a/1.7.2/main/java/WayofTime/alchemicalWizardry/api/alchemy/AlchemyPotionHelper.java +++ /dev/null @@ -1,76 +0,0 @@ -package WayofTime.alchemicalWizardry.api.alchemy; - -import net.minecraft.nbt.NBTTagCompound; -import net.minecraft.potion.Potion; -import net.minecraft.potion.PotionEffect; - -public class AlchemyPotionHelper -{ - private int potionID; - private int tickDuration; - private int concentration; - private int durationFactor; - - public AlchemyPotionHelper(int potionID, int tickDuration, int concentration, int durationFactor) - { - this.potionID = potionID; - this.tickDuration = tickDuration; - this.concentration = concentration; - this.durationFactor = durationFactor; - } - - public void setConcentration(int concentration) - { - this.concentration = concentration; - } - - public void setDurationFactor(int durationFactor) - { - this.durationFactor = durationFactor; - } - - public int getPotionID() - { - return this.potionID; - } - - public int getTickDuration() - { - return this.tickDuration; - } - - public int getConcentration() - { - return this.concentration; - } - - public int getdurationFactor() - { - return this.durationFactor; - } - - public PotionEffect getPotionEffect() - { - if (potionID == Potion.heal.id || potionID == Potion.harm.id) - { - return (new PotionEffect(potionID, 1, concentration)); - } - - return (new PotionEffect(potionID, (int) (tickDuration * Math.pow(0.5f, concentration) * Math.pow(8.0f / 3.0f, durationFactor)), concentration)); - } - - public static AlchemyPotionHelper readEffectFromNBT(NBTTagCompound tagCompound) - { - return new AlchemyPotionHelper(tagCompound.getInteger("potionID"), tagCompound.getInteger("tickDuration"), tagCompound.getInteger("concentration"), tagCompound.getInteger("durationFactor")); - } - - public static NBTTagCompound setEffectToNBT(AlchemyPotionHelper aph) - { - NBTTagCompound tagCompound = new NBTTagCompound(); - tagCompound.setInteger("potionID", aph.getPotionID()); - tagCompound.setInteger("tickDuration", aph.getTickDuration()); - tagCompound.setInteger("concentration", aph.getConcentration()); - tagCompound.setInteger("durationFactor", aph.getdurationFactor()); - return tagCompound; - } -} diff --git a/1.7.2/main/java/WayofTime/alchemicalWizardry/api/alchemy/AlchemyRecipe.java b/1.7.2/main/java/WayofTime/alchemicalWizardry/api/alchemy/AlchemyRecipe.java deleted file mode 100644 index f773d063..00000000 --- a/1.7.2/main/java/WayofTime/alchemicalWizardry/api/alchemy/AlchemyRecipe.java +++ /dev/null @@ -1,143 +0,0 @@ -package WayofTime.alchemicalWizardry.api.alchemy; - -import net.minecraft.item.ItemBlock; -import net.minecraft.item.ItemStack; -import net.minecraftforge.oredict.OreDictionary; - -public class AlchemyRecipe -{ - private ItemStack output; - private ItemStack[] recipe; - private int bloodOrbLevel; - private int amountNeeded; - - public AlchemyRecipe(ItemStack output, int amountNeeded, ItemStack[] recipe, int bloodOrbLevel) - { - this.output = output; - this.recipe = recipe; - this.amountNeeded = amountNeeded; - this.bloodOrbLevel = bloodOrbLevel; - } - - public boolean doesRecipeMatch(ItemStack[] items, int slottedBloodOrbLevel) - { - if (slottedBloodOrbLevel < bloodOrbLevel) - { - return false; - } - - ItemStack[] recipe = new ItemStack[5]; - - if (items.length < 5) - { - return false; - } - - if (this.recipe.length != 5) - { - ItemStack[] newRecipe = new ItemStack[5]; - - for (int i = 0; i < 5; i++) - { - if (i + 1 > this.recipe.length) - { - newRecipe[i] = null; - } else - { - newRecipe[i] = this.recipe[i]; - } - } - - recipe = newRecipe; - } else - { - recipe = this.recipe; - } - - boolean[] checkList = new boolean[5]; - - for (int i = 0; i < 5; i++) - { - checkList[i] = false; - } - - for (int i = 0; i < 5; i++) - { - ItemStack recipeItemStack = recipe[i]; - - if (recipeItemStack == null) - { - continue; - } - - boolean test = false; - - for (int j = 0; j < 5; j++) - { - if (checkList[j]) - { - continue; - } - - ItemStack checkedItemStack = items[j]; - - if (checkedItemStack == null) - { - continue; - } - - boolean quickTest = false; - - if (recipeItemStack.getItem() instanceof ItemBlock) - { - if (checkedItemStack.getItem() instanceof ItemBlock) - { - quickTest = true; - } - } else if (!(checkedItemStack.getItem() instanceof ItemBlock)) - { - quickTest = true; - } - - if (!quickTest) - { - continue; - } - - if ((checkedItemStack.getItemDamage() == recipeItemStack.getItemDamage() || OreDictionary.WILDCARD_VALUE == recipeItemStack.getItemDamage()) && checkedItemStack.getItem()==recipeItemStack.getItem()) - { - test = true; - checkList[j] = true; - break; - } - } - - if (!test) - { - return false; - } - } - - return true; - } - - public ItemStack getResult() - { - return output.copy(); - } - - public int getAmountNeeded() - { - return this.amountNeeded; - } - - public ItemStack[] getRecipe() - { - return this.recipe; - } - - public int getOrbLevel() - { - return this.bloodOrbLevel; - } -} diff --git a/1.7.2/main/java/WayofTime/alchemicalWizardry/api/alchemy/AlchemyRecipeRegistry.java b/1.7.2/main/java/WayofTime/alchemicalWizardry/api/alchemy/AlchemyRecipeRegistry.java deleted file mode 100644 index 5753cff2..00000000 --- a/1.7.2/main/java/WayofTime/alchemicalWizardry/api/alchemy/AlchemyRecipeRegistry.java +++ /dev/null @@ -1,85 +0,0 @@ -package WayofTime.alchemicalWizardry.api.alchemy; - -import java.util.ArrayList; -import java.util.List; - -import net.minecraft.item.ItemStack; -import WayofTime.alchemicalWizardry.api.items.interfaces.IBloodOrb; - -public class AlchemyRecipeRegistry -{ - public static List recipes = new ArrayList(); - - public static void registerRecipe(ItemStack output, int amountNeeded, ItemStack[] recipe, int bloodOrbLevel) - { - recipes.add(new AlchemyRecipe(output, amountNeeded, recipe, bloodOrbLevel)); - } - - public static ItemStack getResult(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 : recipes) - { - if (ar.doesRecipeMatch(recipe, bloodOrbLevel)) - { - return (ar.getResult()); - } - } - - return null; - } - - public static int getAmountNeeded(ItemStack[] recipe, ItemStack bloodOrb) - { - if (bloodOrb == null) - { - return 0; - } - - if (!(bloodOrb.getItem() instanceof IBloodOrb)) - { - return 0; - } - - int bloodOrbLevel = ((IBloodOrb) bloodOrb.getItem()).getOrbLevel(); - - for (AlchemyRecipe ar : recipes) - { - if (ar.doesRecipeMatch(recipe, bloodOrbLevel)) - { - return (ar.getAmountNeeded()); - } - } - - return 0; - } - - public static ItemStack[] getRecipeForItemStack(ItemStack itemStack) - { - for (AlchemyRecipe ar : recipes) - { - ItemStack result = ar.getResult(); - - if (result != null) - { - if (result.isItemEqual(itemStack)) - { - return ar.getRecipe(); - } - } - } - - return null; - } -} diff --git a/1.7.2/main/java/WayofTime/alchemicalWizardry/api/altarRecipeRegistry/AltarRecipe.java b/1.7.2/main/java/WayofTime/alchemicalWizardry/api/altarRecipeRegistry/AltarRecipe.java deleted file mode 100644 index 624f219b..00000000 --- a/1.7.2/main/java/WayofTime/alchemicalWizardry/api/altarRecipeRegistry/AltarRecipe.java +++ /dev/null @@ -1,70 +0,0 @@ -package WayofTime.alchemicalWizardry.api.altarRecipeRegistry; - -import net.minecraft.item.ItemStack; - -public class AltarRecipe -{ - public int minTier; - public int liquidRequired; - public boolean canBeFilled; //Tells the system that the item is an orb - public int consumptionRate; - public int drainRate; - public ItemStack requiredItem; - public ItemStack result; - - public AltarRecipe(ItemStack result, ItemStack requiredItem, int minTier, int liquidRequired, int consumptionRate, int drainRate, boolean canBeFilled) - { - this.result = result; - this.requiredItem = requiredItem; - this.minTier = minTier; - this.liquidRequired = liquidRequired; - this.consumptionRate = consumptionRate; - this.drainRate = drainRate; - this.canBeFilled = canBeFilled; - } - - public ItemStack getResult() - { - return this.result; - } - - public ItemStack getRequiredItem() - { - return this.requiredItem; - } - - public boolean doesRequiredItemMatch(ItemStack comparedStack, int tierCheck) - { - if(comparedStack == null || this.requiredItem == null) - { - return false; - } - - return tierCheck>=minTier && this.requiredItem.isItemEqual(comparedStack); - } - - public int getMinTier() - { - return this.minTier; - } - - public int getLiquidRequired() - { - return this.liquidRequired; - } - - public int getConsumptionRate() - { - return this.consumptionRate; - } - - public int getDrainRate() - { - return this.drainRate; - } - - public boolean getCanBeFilled() - { - return this.canBeFilled; - } -} diff --git a/1.7.2/main/java/WayofTime/alchemicalWizardry/api/altarRecipeRegistry/AltarRecipeRegistry.java b/1.7.2/main/java/WayofTime/alchemicalWizardry/api/altarRecipeRegistry/AltarRecipeRegistry.java deleted file mode 100644 index 89c0be46..00000000 --- a/1.7.2/main/java/WayofTime/alchemicalWizardry/api/altarRecipeRegistry/AltarRecipeRegistry.java +++ /dev/null @@ -1,60 +0,0 @@ -package WayofTime.alchemicalWizardry.api.altarRecipeRegistry; - -import java.util.LinkedList; -import java.util.List; - -import net.minecraft.item.ItemStack; - -public class AltarRecipeRegistry -{ - public static List altarRecipes = new LinkedList(); - - public static void registerAltarRecipe(ItemStack result, ItemStack requiredItem, int minTier, int liquidRequired, int consumptionRate, int drainRate, boolean canBeFilled) - { - altarRecipes.add(new AltarRecipe(result, requiredItem, minTier, liquidRequired, consumptionRate, drainRate, canBeFilled)); - } - - public static void registerAltarOrbRecipe(ItemStack orbStack, int minTier, int consumptionRate) - { - registerAltarRecipe(null, orbStack, minTier, 0, consumptionRate, 0, true); - } - - public static boolean isRequiredItemValid(ItemStack testItem, int currentTierAltar) - { - for(AltarRecipe recipe : altarRecipes) - { - if(recipe.doesRequiredItemMatch(testItem, currentTierAltar)) - { - return true; - } - } - - return false; - } - - public static ItemStack getItemForItemAndTier(ItemStack testItem, int currentTierAltar) - { - for(AltarRecipe recipe : altarRecipes) - { - if(recipe.doesRequiredItemMatch(testItem, currentTierAltar)) - { - return ItemStack.copyItemStack(recipe.getResult()); - } - } - - return null; - } - - public static AltarRecipe getAltarRecipeForItemAndTier(ItemStack testItem, int currentTierAltar) - { - for(AltarRecipe recipe : altarRecipes) - { - if(recipe.doesRequiredItemMatch(testItem, currentTierAltar)) - { - return recipe; - } - } - - return null; - } -} diff --git a/1.7.2/main/java/WayofTime/alchemicalWizardry/api/bindingRegistry/BindingRecipe.java b/1.7.2/main/java/WayofTime/alchemicalWizardry/api/bindingRegistry/BindingRecipe.java deleted file mode 100644 index f8d63855..00000000 --- a/1.7.2/main/java/WayofTime/alchemicalWizardry/api/bindingRegistry/BindingRecipe.java +++ /dev/null @@ -1,30 +0,0 @@ -package WayofTime.alchemicalWizardry.api.bindingRegistry; - -import net.minecraft.item.ItemStack; - -public class BindingRecipe -{ - public ItemStack requiredItem; - public ItemStack outputItem; - - public BindingRecipe(ItemStack outputItem, ItemStack requiredItem) - { - this.requiredItem = requiredItem; - this.outputItem = outputItem; - } - - public boolean doesRequiredItemMatch(ItemStack testStack) - { - if(testStack == null || this.requiredItem == null) - { - return false; - } - - return this.requiredItem.isItemEqual(testStack); - } - - public ItemStack getResult() - { - return this.outputItem; - } -} diff --git a/1.7.2/main/java/WayofTime/alchemicalWizardry/api/bindingRegistry/BindingRegistry.java b/1.7.2/main/java/WayofTime/alchemicalWizardry/api/bindingRegistry/BindingRegistry.java deleted file mode 100644 index 68f34e4c..00000000 --- a/1.7.2/main/java/WayofTime/alchemicalWizardry/api/bindingRegistry/BindingRegistry.java +++ /dev/null @@ -1,67 +0,0 @@ -package WayofTime.alchemicalWizardry.api.bindingRegistry; - -import java.util.LinkedList; -import java.util.List; - -import net.minecraft.item.ItemStack; - -public class BindingRegistry -{ - public static List bindingRecipes = new LinkedList(); - - public static void registerRecipe(ItemStack output, ItemStack input) - { - bindingRecipes.add(new BindingRecipe(output, input)); - } - - public static boolean isRequiredItemValid(ItemStack testItem) - { - for(BindingRecipe recipe : bindingRecipes) - { - if(recipe.doesRequiredItemMatch(testItem)) - { - return true; - } - } - - return false; - } - - public static ItemStack getItemForItemAndTier(ItemStack testItem) - { - for(BindingRecipe recipe : bindingRecipes) - { - if(recipe.doesRequiredItemMatch(testItem)) - { - return recipe.getResult().copy(); - } - } - - return null; - } - - public static int getIndexForItem(ItemStack testItem) - { - int i=0; - for(BindingRecipe recipe : bindingRecipes) - { - if(recipe.doesRequiredItemMatch(testItem)) - { - return i; - } - i++; - } - - return -1; - } - - public static ItemStack getOutputForIndex(int index) - { - if(bindingRecipes.size()<=index) - { - return null; - } - - return bindingRecipes.get(index).getResult(); - } -} diff --git a/1.7.2/main/java/WayofTime/alchemicalWizardry/api/harvest/HarvestRegistry.java b/1.7.2/main/java/WayofTime/alchemicalWizardry/api/harvest/HarvestRegistry.java deleted file mode 100644 index 0d91715d..00000000 --- a/1.7.2/main/java/WayofTime/alchemicalWizardry/api/harvest/HarvestRegistry.java +++ /dev/null @@ -1,34 +0,0 @@ -package WayofTime.alchemicalWizardry.api.harvest; - -import java.util.ArrayList; -import java.util.List; - -import net.minecraft.block.Block; -import net.minecraft.world.World; - -public class HarvestRegistry -{ - public static List handlerList = new ArrayList(); - - public static void registerHarvestHandler(IHarvestHandler handler) - { - System.out.println("Heeeeelllooooo"); - handlerList.add(handler); - } - - public static boolean harvestBlock(World world, int xCoord, int yCoord, int zCoord) - { - Block block = world.getBlock(xCoord, yCoord, zCoord); - int meta = world.getBlockMetadata(xCoord, yCoord, zCoord); - - for(IHarvestHandler handler : handlerList) - { - if(handler.harvestAndPlant(world, xCoord, yCoord, zCoord, block, meta)) - { - return true; - } - } - - return false; - } -} diff --git a/1.7.2/main/java/WayofTime/alchemicalWizardry/api/harvest/IHarvestHandler.java b/1.7.2/main/java/WayofTime/alchemicalWizardry/api/harvest/IHarvestHandler.java deleted file mode 100644 index 8e8d6ae5..00000000 --- a/1.7.2/main/java/WayofTime/alchemicalWizardry/api/harvest/IHarvestHandler.java +++ /dev/null @@ -1,21 +0,0 @@ -package WayofTime.alchemicalWizardry.api.harvest; - -import net.minecraft.block.Block; -import net.minecraft.world.World; -import net.minecraftforge.common.IPlantable; - -public interface IHarvestHandler -{ - /** - * A handler that is used to harvest and replant the block at the specified location - * - * @param world - * @param xCoord - * @param yCoord - * @param zCoord - * @param block block at this given location - * @param meta meta at this given location - * @return true if successfully harvested, false if not - */ - public boolean harvestAndPlant(World world, int xCoord, int yCoord, int zCoord, Block block, int meta); -} diff --git a/1.7.2/main/java/WayofTime/alchemicalWizardry/api/items/ShapedBloodOrbRecipe.java b/1.7.2/main/java/WayofTime/alchemicalWizardry/api/items/ShapedBloodOrbRecipe.java deleted file mode 100644 index cdf82e6e..00000000 --- a/1.7.2/main/java/WayofTime/alchemicalWizardry/api/items/ShapedBloodOrbRecipe.java +++ /dev/null @@ -1,227 +0,0 @@ -package WayofTime.alchemicalWizardry.api.items; - -import java.util.ArrayList; -import java.util.HashMap; -import java.util.Iterator; -import java.util.Map; -import java.util.Map.Entry; - -import net.minecraft.block.Block; -import net.minecraft.inventory.InventoryCrafting; -import net.minecraft.item.Item; -import net.minecraft.item.ItemStack; -import net.minecraft.item.crafting.IRecipe; -import net.minecraft.item.crafting.ShapedRecipes; -import net.minecraft.world.World; -import net.minecraftforge.oredict.OreDictionary; -import WayofTime.alchemicalWizardry.api.items.interfaces.IBloodOrb; - -/** Shaped Blood Orb Recipe Handler by joshie **/ -public class ShapedBloodOrbRecipe implements IRecipe { - private static final int MAX_CRAFT_GRID_WIDTH = 3; - private static final int MAX_CRAFT_GRID_HEIGHT = 3; - - private ItemStack output = null; - private Object[] input = null; - public int width = 0; - public int height = 0; - private boolean mirrored = true; - - public ShapedBloodOrbRecipe(Block result, Object... recipe) { - this(new ItemStack(result), recipe); - } - - public ShapedBloodOrbRecipe(Item result, Object... recipe) { - this(new ItemStack(result), recipe); - } - - public ShapedBloodOrbRecipe(ItemStack result, Object... recipe) { - output = result.copy(); - - 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 IBloodOrb || (in instanceof ItemStack && ((ItemStack)in).getItem() instanceof IBloodOrb)) { //If the item is an instanceof IBloodOrb then save the level of the orb - if(in instanceof ItemStack) itemMap.put(chr, (Integer)(((IBloodOrb)((ItemStack)in).getItem()).getOrbLevel())); - else itemMap.put(chr, (Integer)(((IBloodOrb)in).getOrbLevel())); - } else 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); - } - } - - ShapedBloodOrbRecipe(ShapedRecipes recipe, Map replacements) { - output = recipe.getRecipeOutput(); - width = recipe.recipeWidth; - height = recipe.recipeHeight; - - input = new Object[recipe.recipeItems.length]; - - for (int i = 0; i < input.length; i++) { - ItemStack ingred = recipe.recipeItems[i]; - - if (ingred == null) - continue; - - input[i] = recipe.recipeItems[i]; - - for (Entry replace : replacements.entrySet()) { - if (OreDictionary.itemMatches(replace.getKey(), ingred, true)) { - input[i] = OreDictionary.getOres(replace.getValue()); - break; - } - } - } - } - - @Override - public ItemStack getCraftingResult(InventoryCrafting var1) { - return output.copy(); - } - - @Override - public int getRecipeSize() { - return input.length; - } - - @Override - public ItemStack getRecipeOutput() { - return output; - } - - @Override - public boolean matches(InventoryCrafting inv, World world) { - 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; - } - - @SuppressWarnings("unchecked") - private boolean checkMatch(InventoryCrafting 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 = inv.getStackInRowAndColumn(x, y); - //If target is integer, then we should be check the blood orb value of the item instead - if(target instanceof Integer) { - if(slot != null && slot.getItem() instanceof IBloodOrb) { - IBloodOrb orb = (IBloodOrb) slot.getItem(); - if(orb.getOrbLevel() < (Integer)target) { - return false; - } - } else return false; - } else if (target instanceof ItemStack) { - if (!OreDictionary.itemMatches((ItemStack) target, slot, false)) { - return false; - } - } else if (target instanceof ArrayList) { - boolean matched = false; - - Iterator itr = ((ArrayList) target).iterator(); - while (itr.hasNext() && !matched) { - matched = OreDictionary.itemMatches(itr.next(), slot, false); - } - - if (!matched) { - return false; - } - } else if (target == null && slot != null) { - return false; - } - } - } - - return true; - } - - public ShapedBloodOrbRecipe setMirrored(boolean mirror) { - mirrored = mirror; - return this; - } - - public Object[] getInput() { - return this.input; - } -} \ No newline at end of file diff --git a/1.7.2/main/java/WayofTime/alchemicalWizardry/api/items/ShapelessBloodOrbRecipe.java b/1.7.2/main/java/WayofTime/alchemicalWizardry/api/items/ShapelessBloodOrbRecipe.java deleted file mode 100644 index fbf28a45..00000000 --- a/1.7.2/main/java/WayofTime/alchemicalWizardry/api/items/ShapelessBloodOrbRecipe.java +++ /dev/null @@ -1,140 +0,0 @@ -package WayofTime.alchemicalWizardry.api.items; - -import java.util.ArrayList; -import java.util.Iterator; -import java.util.List; -import java.util.Map; -import java.util.Map.Entry; - -import net.minecraft.block.Block; -import net.minecraft.inventory.InventoryCrafting; -import net.minecraft.item.Item; -import net.minecraft.item.ItemStack; -import net.minecraft.item.crafting.IRecipe; -import net.minecraft.item.crafting.ShapelessRecipes; -import net.minecraft.world.World; -import net.minecraftforge.oredict.OreDictionary; -import WayofTime.alchemicalWizardry.api.items.interfaces.IBloodOrb; - -/** Shapeless Blood Orb Recipe Handler by joshie **/ -public class ShapelessBloodOrbRecipe implements IRecipe { - private ItemStack output = null; - private ArrayList input = new ArrayList(); - - public ShapelessBloodOrbRecipe(Block result, Object... recipe) { - this(new ItemStack(result), recipe); - } - - public ShapelessBloodOrbRecipe(Item result, Object... recipe) { - this(new ItemStack(result), recipe); - } - - public ShapelessBloodOrbRecipe(ItemStack result, Object... recipe) { - output = result.copy(); - for (Object in : recipe) { - if (in instanceof ItemStack) { - input.add(((ItemStack) in).copy()); - } else if (in instanceof IBloodOrb) { //If the item is an instanceof IBloodOrb then save the level of the orb - input.add((Integer)(((IBloodOrb)in).getOrbLevel())); - } 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); - } - } - } - - @SuppressWarnings("unchecked") - ShapelessBloodOrbRecipe(ShapelessRecipes recipe, Map replacements) { - output = recipe.getRecipeOutput(); - - for (ItemStack ingred : ((List) recipe.recipeItems)) { - Object finalObj = ingred; - for (Entry replace : replacements.entrySet()) { - if (OreDictionary.itemMatches(replace.getKey(), ingred, false)) { - finalObj = OreDictionary.getOres(replace.getValue()); - break; - } - } - input.add(finalObj); - } - } - - @Override - public int getRecipeSize() { - return input.size(); - } - - @Override - public ItemStack getRecipeOutput() { - return output; - } - - @Override - public ItemStack getCraftingResult(InventoryCrafting var1) { - return output.copy(); - } - - @SuppressWarnings("unchecked") - @Override - public boolean matches(InventoryCrafting var1, World world) { - ArrayList required = new ArrayList(input); - - for (int x = 0; x < var1.getSizeInventory(); 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 target is integer, then we should be check the blood orb value of the item instead - if(next instanceof Integer) { - if(slot != null && slot.getItem() instanceof IBloodOrb) { - IBloodOrb orb = (IBloodOrb) slot.getItem(); - if(orb.getOrbLevel() < (Integer)next) { - return false; - } - } else return false; - } else if (next instanceof ItemStack) { - match = OreDictionary.itemMatches((ItemStack) next, slot, false); - } else if (next instanceof ArrayList) { - Iterator itr = ((ArrayList) next).iterator(); - while (itr.hasNext() && !match) { - match = OreDictionary.itemMatches(itr.next(), slot, false); - } - } - - if (match) { - inRecipe = true; - required.remove(next); - break; - } - } - - if (!inRecipe) { - return false; - } - } - } - - return required.isEmpty(); - } - - public ArrayList getInput() { - return this.input; - } -} \ No newline at end of file diff --git a/1.7.2/main/java/WayofTime/alchemicalWizardry/api/items/interfaces/ArmourUpgrade.java b/1.7.2/main/java/WayofTime/alchemicalWizardry/api/items/interfaces/ArmourUpgrade.java deleted file mode 100644 index 7fce7cd0..00000000 --- a/1.7.2/main/java/WayofTime/alchemicalWizardry/api/items/interfaces/ArmourUpgrade.java +++ /dev/null @@ -1,15 +0,0 @@ -package WayofTime.alchemicalWizardry.api.items.interfaces; - -import net.minecraft.entity.player.EntityPlayer; -import net.minecraft.item.ItemStack; -import net.minecraft.world.World; - -public interface ArmourUpgrade -{ - //Called when the armour ticks - public void onArmourUpdate(World world, EntityPlayer player, ItemStack thisItemStack); - - public boolean isUpgrade(); - - public int getEnergyForTenSeconds(); -} diff --git a/1.7.2/main/java/WayofTime/alchemicalWizardry/api/items/interfaces/IBindable.java b/1.7.2/main/java/WayofTime/alchemicalWizardry/api/items/interfaces/IBindable.java deleted file mode 100644 index 46a79939..00000000 --- a/1.7.2/main/java/WayofTime/alchemicalWizardry/api/items/interfaces/IBindable.java +++ /dev/null @@ -1,5 +0,0 @@ -package WayofTime.alchemicalWizardry.api.items.interfaces; - -public interface IBindable -{ -} diff --git a/1.7.2/main/java/WayofTime/alchemicalWizardry/api/items/interfaces/IBloodOrb.java b/1.7.2/main/java/WayofTime/alchemicalWizardry/api/items/interfaces/IBloodOrb.java deleted file mode 100644 index 794172cc..00000000 --- a/1.7.2/main/java/WayofTime/alchemicalWizardry/api/items/interfaces/IBloodOrb.java +++ /dev/null @@ -1,8 +0,0 @@ -package WayofTime.alchemicalWizardry.api.items.interfaces; - -public interface IBloodOrb -{ - public int getMaxEssence(); - - public int getOrbLevel(); -} diff --git a/1.7.2/main/java/WayofTime/alchemicalWizardry/api/items/interfaces/IHolding.java b/1.7.2/main/java/WayofTime/alchemicalWizardry/api/items/interfaces/IHolding.java deleted file mode 100644 index cb07b998..00000000 --- a/1.7.2/main/java/WayofTime/alchemicalWizardry/api/items/interfaces/IHolding.java +++ /dev/null @@ -1,6 +0,0 @@ -package WayofTime.alchemicalWizardry.api.items.interfaces; - -public interface IHolding -{ - -} diff --git a/1.7.2/main/java/WayofTime/alchemicalWizardry/api/rituals/IMasterRitualStone.java b/1.7.2/main/java/WayofTime/alchemicalWizardry/api/rituals/IMasterRitualStone.java deleted file mode 100644 index 9777093f..00000000 --- a/1.7.2/main/java/WayofTime/alchemicalWizardry/api/rituals/IMasterRitualStone.java +++ /dev/null @@ -1,30 +0,0 @@ -package WayofTime.alchemicalWizardry.api.rituals; - -import net.minecraft.world.World; - -public interface IMasterRitualStone -{ - public void performRitual(World world, int x, int y, int z, String ritualID); - - public String getOwner(); - - public void setCooldown(int newCooldown); - - public int getCooldown(); - - public void setVar1(int newVar1); - - public int getVar1(); - - public void setActive(boolean active); - - public int getDirection(); - - public World getWorld(); - - public int getXCoord(); - - public int getYCoord(); - - public int getZCoord(); -} diff --git a/1.7.2/main/java/WayofTime/alchemicalWizardry/api/rituals/IRitualStone.java b/1.7.2/main/java/WayofTime/alchemicalWizardry/api/rituals/IRitualStone.java deleted file mode 100644 index 078cfd40..00000000 --- a/1.7.2/main/java/WayofTime/alchemicalWizardry/api/rituals/IRitualStone.java +++ /dev/null @@ -1,6 +0,0 @@ -package WayofTime.alchemicalWizardry.api.rituals; - -public interface IRitualStone -{ - -} diff --git a/1.7.2/main/java/WayofTime/alchemicalWizardry/api/rituals/RitualComponent.java b/1.7.2/main/java/WayofTime/alchemicalWizardry/api/rituals/RitualComponent.java deleted file mode 100644 index b7149858..00000000 --- a/1.7.2/main/java/WayofTime/alchemicalWizardry/api/rituals/RitualComponent.java +++ /dev/null @@ -1,43 +0,0 @@ -package WayofTime.alchemicalWizardry.api.rituals; - -public class RitualComponent -{ - private int x; - private int y; - private int z; - private int stoneType; - public static final int BLANK = 0; - public static final int WATER = 1; - public static final int FIRE = 2; - public static final int EARTH = 3; - public static final int AIR = 4; - public static final int DUSK = 5; - - public RitualComponent(int x, int y, int z, int stoneType) - { - this.x = x; - this.y = y; - this.z = z; - this.stoneType = stoneType; - } - - public int getX() - { - return this.x; - } - - public int getY() - { - return this.y; - } - - public int getZ() - { - return this.z; - } - - public int getStoneType() - { - return this.stoneType; - } -} diff --git a/1.7.2/main/java/WayofTime/alchemicalWizardry/api/rituals/RitualEffect.java b/1.7.2/main/java/WayofTime/alchemicalWizardry/api/rituals/RitualEffect.java deleted file mode 100644 index 70f89f59..00000000 --- a/1.7.2/main/java/WayofTime/alchemicalWizardry/api/rituals/RitualEffect.java +++ /dev/null @@ -1,17 +0,0 @@ -package WayofTime.alchemicalWizardry.api.rituals; - -import java.util.List; - -public abstract class RitualEffect -{ - public abstract void performEffect(IMasterRitualStone ritualStone); - - public abstract int getCostPerRefresh(); - - public int getInitialCooldown() - { - return 0; - } - - public abstract List getRitualComponentList(); -} diff --git a/1.7.2/main/java/WayofTime/alchemicalWizardry/api/rituals/Rituals.java b/1.7.2/main/java/WayofTime/alchemicalWizardry/api/rituals/Rituals.java deleted file mode 100644 index 7eca627a..00000000 --- a/1.7.2/main/java/WayofTime/alchemicalWizardry/api/rituals/Rituals.java +++ /dev/null @@ -1,333 +0,0 @@ -package WayofTime.alchemicalWizardry.api.rituals; - -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; - -public class Rituals -{ - private int crystalLevel; - private int actCost; - private RitualEffect effect; - private String name; - - 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) - { - this.crystalLevel = crystalLevel; //For a test commit - this.actCost = actCost; - this.effect = effect; - this.name = name; - keyList.add(name); - ritualMap.put(name, this); - } - - /** - * 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) - { - 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 void removeRitualFromList() - { - if(ritualMap.containsValue(this)) - { - ritualMap.remove(ritualMap.remove(this.name)); - } - if(keyList.contains(this.name)) - { - keyList.remove(this.name); - } - } - - 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); - - if (direction != -1) - { - return true; - } - - return false; - } - - /** - * 1 - NORTH - * 2 - EAST - * 3 - SOUTH - * 4 - WEST - */ - public static boolean checkDirectionOfRitualValid(World world, int x, int y, int z, String ritualID, int direction) - { - List ritual = Rituals.getRitualList(ritualID); - - if (ritual == null) - { - return false; - } - - Block test = null; - - switch (direction) - { - case 1: - for (RitualComponent rc : ritual) - { - test = world.getBlock(x + rc.getX(), y + rc.getY(), z + rc.getZ()); - - if (!(test instanceof IRitualStone)) - { - return false; - } - - if (world.getBlockMetadata(x + rc.getX(), y + rc.getY(), z + rc.getZ()) != rc.getStoneType()) - { - return false; - } - } - - return true; - - case 2: - for (RitualComponent rc : ritual) - { - test = world.getBlock(x - rc.getZ(), y + rc.getY(), z + rc.getX()); - - if (!(test instanceof IRitualStone)) - { - return false; - } - - if (world.getBlockMetadata(x - rc.getZ(), y + rc.getY(), z + rc.getX()) != rc.getStoneType()) - { - return false; - } - } - - return true; - - case 3: - for (RitualComponent rc : ritual) - { - test = world.getBlock(x - rc.getX(), y + rc.getY(), z - rc.getZ()); - - if (!(test instanceof IRitualStone)) - { - return false; - } - - if (world.getBlockMetadata(x - rc.getX(), y + rc.getY(), z - rc.getZ()) != rc.getStoneType()) - { - return false; - } - } - - return true; - - case 4: - for (RitualComponent rc : ritual) - { - test = world.getBlock(x + rc.getZ(), y + rc.getY(), z - rc.getX()); - - if (!(test instanceof IRitualStone)) - { - return false; - } - - if (world.getBlockMetadata(x + rc.getZ(), y + rc.getY(), z - rc.getX()) != rc.getStoneType()) - { - return false; - } - } - - return true; - } - - return false; - } - - public static int getDirectionOfRitual(World world, int x, int y, int z, String ritualID) - { - for (int i = 1; i <= 4; i++) - { - if (Rituals.checkDirectionOfRitualValid(world, x, y, z, ritualID, i)) - { - return i; - } - } - - return -1; - } - - public static int getCostForActivation(String ritualID) - { - if(ritualMap.containsKey(ritualID)) - { - Rituals ritual = ritualMap.get(ritualID); - if(ritual != null) - { - return ritual.actCost; - } - } - - return 0; - } - - public static int getInitialCooldown(String ritualID) - { - 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(String ritualID) - { - if(ritualMap.containsKey(ritualID)) - { - Rituals ritual = ritualMap.get(ritualID); - if(ritual != null) - { - return ritual.obtainComponents(); - }else - { - return null; - } - }else - { - return null; - } - } - - private List obtainComponents() - { - return this.effect.getRitualComponentList(); - } - - private int getCrystalLevel() - { - return this.crystalLevel; - } - - public static void performEffect(IMasterRitualStone ritualStone, String ritualID) - { - if(ritualMap.containsKey(ritualID)) - { - Rituals ritual = ritualMap.get(ritualID); - if(ritual != null && ritual.effect != null) - { - ritual.effect.performEffect(ritualStone); - } - } - } - - public static int getNumberOfRituals() - { - return ritualMap.size(); - } - - public String getRitualName() - { - return this.name; - } - - public static String getNameOfRitual(String id) - { - 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/main/java/WayofTime/alchemicalWizardry/api/soulNetwork/LifeEssenceNetwork.java b/1.7.2/main/java/WayofTime/alchemicalWizardry/api/soulNetwork/LifeEssenceNetwork.java deleted file mode 100644 index 61d24eee..00000000 --- a/1.7.2/main/java/WayofTime/alchemicalWizardry/api/soulNetwork/LifeEssenceNetwork.java +++ /dev/null @@ -1,26 +0,0 @@ -package WayofTime.alchemicalWizardry.api.soulNetwork; - -import net.minecraft.nbt.NBTTagCompound; - -public class LifeEssenceNetwork extends net.minecraft.world.WorldSavedData -{ - public int currentEssence; - - public LifeEssenceNetwork(String par1Str) - { - super(par1Str); - currentEssence = 0; - } - - @Override - public void readFromNBT(NBTTagCompound nbttagcompound) - { - currentEssence = nbttagcompound.getInteger("currentEssence"); - } - - @Override - public void writeToNBT(NBTTagCompound nbttagcompound) - { - nbttagcompound.setInteger("currentEssence", currentEssence); - } -} diff --git a/1.7.2/main/java/WayofTime/alchemicalWizardry/api/soulNetwork/SoulNetworkHandler.java b/1.7.2/main/java/WayofTime/alchemicalWizardry/api/soulNetwork/SoulNetworkHandler.java deleted file mode 100644 index a4d68583..00000000 --- a/1.7.2/main/java/WayofTime/alchemicalWizardry/api/soulNetwork/SoulNetworkHandler.java +++ /dev/null @@ -1,228 +0,0 @@ -package WayofTime.alchemicalWizardry.api.soulNetwork; - -import net.minecraft.entity.player.EntityPlayer; -import net.minecraft.item.ItemStack; -import net.minecraft.nbt.NBTTagCompound; -import net.minecraft.server.MinecraftServer; -import net.minecraft.util.DamageSource; -import net.minecraft.world.World; - -public class SoulNetworkHandler -{ - public static int syphonFromNetwork(ItemStack ist, int damageToBeDone) - { - if (ist.getTagCompound() != null && !(ist.getTagCompound().getString("ownerName").equals(""))) - { - String ownerName = ist.getTagCompound().getString("ownerName"); - - if (MinecraftServer.getServer() == null) - { - return 0; - } - - World world = MinecraftServer.getServer().worldServers[0]; - LifeEssenceNetwork data = (LifeEssenceNetwork) world.loadItemData(LifeEssenceNetwork.class, ownerName); - - if (data == null) - { - data = new LifeEssenceNetwork(ownerName); - world.setItemData(ownerName, data); - } - - if (data.currentEssence >= damageToBeDone) - { - data.currentEssence -= damageToBeDone; - data.markDirty(); - return damageToBeDone; - } - } - return 0; - } - - /** - * Master method used to syphon from the player's network, and will damage them accordingly if they do not have enough LP. - * Does not drain on the client side. - * - * @param ist Owned itemStack - * @param player Player using the item - * @param damageToBeDone - * @return True if server-sided, false if client-sided - */ - public static boolean syphonAndDamageFromNetwork(ItemStack ist, EntityPlayer player, int damageToBeDone) - { - if(player.worldObj.isRemote) - { - return false; - } - - int amount = SoulNetworkHandler.syphonFromNetwork(ist, damageToBeDone); - - hurtPlayer(player, damageToBeDone-amount); - - return true; - } - - public static boolean canSyphonFromOnlyNetwork(ItemStack ist, int damageToBeDone) - { - if (ist.getTagCompound() != null && !(ist.getTagCompound().getString("ownerName").equals(""))) - { - String ownerName = ist.getTagCompound().getString("ownerName"); - - if (MinecraftServer.getServer() == null) - { - return false; - } - - World world = MinecraftServer.getServer().worldServers[0]; - LifeEssenceNetwork data = (LifeEssenceNetwork) world.loadItemData(LifeEssenceNetwork.class, ownerName); - - if (data == null) - { - data = new LifeEssenceNetwork(ownerName); - world.setItemData(ownerName, data); - } - - return data.currentEssence >= damageToBeDone; - } - - return false; - } - - public static int getCurrentEssence(String ownerName) - { - if (MinecraftServer.getServer() == null) - { - return 0; - } - - World world = MinecraftServer.getServer().worldServers[0]; - LifeEssenceNetwork data = (LifeEssenceNetwork) world.loadItemData(LifeEssenceNetwork.class, ownerName); - - if (data == null) - { - data = new LifeEssenceNetwork(ownerName); - world.setItemData(ownerName, data); - } - - return data.currentEssence; - } - - public static void setCurrentEssence(String ownerName, int essence) - { - if (MinecraftServer.getServer() == null) - { - return; - } - - World world = MinecraftServer.getServer().worldServers[0]; - LifeEssenceNetwork data = (LifeEssenceNetwork) world.loadItemData(LifeEssenceNetwork.class, ownerName); - - if (data == null) - { - data = new LifeEssenceNetwork(ownerName); - world.setItemData(ownerName, data); - } - - data.currentEssence = essence; - data.markDirty(); - } - - /** - * A method to add to an owner's network up to a maximum value. - * - * @param ownerName - * @param addedEssence - * @param maximum - * @return amount added to the network - */ - public static int addCurrentEssenceToMaximum(String ownerName, int addedEssence, int maximum) - { - if (MinecraftServer.getServer() == null) - { - return 0; - } - - World world = MinecraftServer.getServer().worldServers[0]; - LifeEssenceNetwork data = (LifeEssenceNetwork) world.loadItemData(LifeEssenceNetwork.class, ownerName); - - if (data == null) - { - data = new LifeEssenceNetwork(ownerName); - world.setItemData(ownerName, data); - } - - int currEss = data.currentEssence; - - if(currEss>=maximum) - { - return 0; - } - - int newEss = Math.min(maximum, currEss+addedEssence); - data.currentEssence = newEss; - - return newEss-currEss; - } - - public static void hurtPlayer(EntityPlayer user, int energySyphoned) - { - if (energySyphoned < 100 && energySyphoned > 0) - { - if (!user.capabilities.isCreativeMode) - { - user.setHealth((user.getHealth() - 1)); - - if (user.getHealth() <= 0.0005f) - { - user.onDeath(DamageSource.generic); - } - } - } else if (energySyphoned >= 100) - { - if (!user.capabilities.isCreativeMode) - { - for (int i = 0; i < ((energySyphoned + 99) / 100); i++) - { - user.setHealth((user.getHealth() - 1)); - - if (user.getHealth() <= 0.0005f) - { - user.onDeath(DamageSource.generic); - break; - } - } - } - } - } - - public static void checkAndSetItemOwner(ItemStack item, EntityPlayer player) - { - if (item.stackTagCompound == null) - { - item.setTagCompound(new NBTTagCompound()); - } - - if (item.stackTagCompound.getString("ownerName").equals("")) - { - item.stackTagCompound.setString("ownerName", SoulNetworkHandler.getUsername(player)); - } - } - - public static void checkAndSetItemOwner(ItemStack item, String ownerName) - { - if (item.stackTagCompound == null) - { - item.setTagCompound(new NBTTagCompound()); - } - - if (item.stackTagCompound.getString("ownerName").equals("")) - { - item.stackTagCompound.setString("ownerName", ownerName); - } - } - - public static String getUsername(EntityPlayer player) - { - return player.getDisplayName(); - } -} diff --git a/1.7.2/main/java/WayofTime/alchemicalWizardry/api/summoningRegistry/SummoningHelper.java b/1.7.2/main/java/WayofTime/alchemicalWizardry/api/summoningRegistry/SummoningHelper.java deleted file mode 100644 index cccfe3f4..00000000 --- a/1.7.2/main/java/WayofTime/alchemicalWizardry/api/summoningRegistry/SummoningHelper.java +++ /dev/null @@ -1,21 +0,0 @@ -package WayofTime.alchemicalWizardry.api.summoningRegistry; - -import net.minecraft.entity.EntityLivingBase; -import net.minecraft.world.World; - -public abstract class SummoningHelper -{ - protected int id; - - public SummoningHelper(int id) - { - this.id = id; - } - - public abstract EntityLivingBase getEntity(World worldObj); - - public int getSummoningHelperID() - { - return id; - } -} diff --git a/1.7.2/main/java/WayofTime/alchemicalWizardry/api/summoningRegistry/SummoningRegistry.java b/1.7.2/main/java/WayofTime/alchemicalWizardry/api/summoningRegistry/SummoningRegistry.java deleted file mode 100644 index 9fda5822..00000000 --- a/1.7.2/main/java/WayofTime/alchemicalWizardry/api/summoningRegistry/SummoningRegistry.java +++ /dev/null @@ -1,70 +0,0 @@ -package WayofTime.alchemicalWizardry.api.summoningRegistry; - -import net.minecraft.entity.EntityLivingBase; -import net.minecraft.item.ItemStack; -import net.minecraft.world.World; - -import java.util.ArrayList; -import java.util.List; - -public class SummoningRegistry -{ - public static List summoningList = new ArrayList(); - - public static void registerSummon(SummoningHelper s, ItemStack[] ring1, ItemStack[] ring2, ItemStack[] ring3, int amountUsed, int bloodOrbLevel) - { - summoningList.add(new SummoningRegistryComponent(s, ring1, ring2, ring3, amountUsed, bloodOrbLevel)); - } - - public static boolean isRecipeValid(int bloodOrbLevel, ItemStack[] test1, ItemStack[] test2, ItemStack[] test3) - { - for (SummoningRegistryComponent src : summoningList) - { - if (src.getBloodOrbLevel() <= bloodOrbLevel && src.compareRing(1, test1) && src.compareRing(2, test2) && src.compareRing(3, test3)) - { - return true; - } - } - - return false; - } - - public static SummoningRegistryComponent getRegistryComponent(int bloodOrbLevel, ItemStack[] test1, ItemStack[] test2, ItemStack[] test3) - { - for (SummoningRegistryComponent src : summoningList) - { - if (src.getBloodOrbLevel() <= bloodOrbLevel && src.compareRing(1, test1) && src.compareRing(2, test2) && src.compareRing(3, test3)) - { - return src; - } - } - - return null; - } - - public static EntityLivingBase getEntity(World worldObj, int bloodOrbLevel, ItemStack[] test1, ItemStack[] test2, ItemStack[] test3) - { - for (SummoningRegistryComponent src : summoningList) - { - if (src.getBloodOrbLevel() <= bloodOrbLevel && src.compareRing(1, test1) && src.compareRing(2, test2) && src.compareRing(3, test3)) - { - return src.getEntity(worldObj); - } - } - - return null; - } - - public static EntityLivingBase getEntityWithID(World worldObj, int id) - { - for (SummoningRegistryComponent src : summoningList) - { - if (src.getSummoningHelperID() == id) - { - return src.getEntity(worldObj); - } - } - - return null; - } -} diff --git a/1.7.2/main/java/WayofTime/alchemicalWizardry/api/summoningRegistry/SummoningRegistryComponent.java b/1.7.2/main/java/WayofTime/alchemicalWizardry/api/summoningRegistry/SummoningRegistryComponent.java deleted file mode 100644 index 8496b0f2..00000000 --- a/1.7.2/main/java/WayofTime/alchemicalWizardry/api/summoningRegistry/SummoningRegistryComponent.java +++ /dev/null @@ -1,231 +0,0 @@ -package WayofTime.alchemicalWizardry.api.summoningRegistry; - -import net.minecraft.entity.EntityLivingBase; -import net.minecraft.item.ItemBlock; -import net.minecraft.item.ItemStack; -import net.minecraft.world.World; -import net.minecraftforge.oredict.OreDictionary; - -public class SummoningRegistryComponent -{ - public ItemStack[] ring1 = new ItemStack[6]; - public ItemStack[] ring2 = new ItemStack[6]; - public ItemStack[] ring3 = new ItemStack[6]; - public SummoningHelper summoningHelper; - public int summoningCost; - public int bloodOrbLevel; - - public SummoningRegistryComponent(SummoningHelper s, ItemStack[] newRing1, ItemStack[] newRing2, ItemStack[] newRing3, int amount, int bloodOrbLevel) - { - this.summoningHelper = s; - this.ring1 = newRing1; - this.ring2 = newRing2; - this.ring3 = newRing3; - this.summoningCost = amount; - this.bloodOrbLevel = bloodOrbLevel; - - if (this.ring1.length != 6) - { - ItemStack[] newRecipe = new ItemStack[6]; - - for (int i = 0; i < 6; i++) - { - if (i + 1 > this.ring1.length) - { - newRecipe[i] = null; - } else - { - newRecipe[i] = this.ring1[i]; - } - } - - this.ring1 = newRecipe; - } - - if (this.ring2.length != 6) - { - ItemStack[] newRecipe = new ItemStack[6]; - - for (int i = 0; i < 6; i++) - { - if (i + 1 > this.ring2.length) - { - newRecipe[i] = null; - } else - { - newRecipe[i] = this.ring2[i]; - } - } - - this.ring2 = newRecipe; - } - - if (this.ring3.length != 6) - { - ItemStack[] newRecipe = new ItemStack[6]; - - for (int i = 0; i < 6; i++) - { - if (i + 1 > this.ring3.length) - { - newRecipe[i] = null; - } else - { - newRecipe[i] = this.ring3[i]; - } - } - - this.ring3 = newRecipe; - } - } - - public boolean compareRing(int ring, ItemStack[] checkedRingRecipe) - { - ItemStack[] recipe; - - if (checkedRingRecipe.length < 6) - { - return false; - } - - switch (ring) - { - case 1: - recipe = ring1; - break; - - case 2: - recipe = ring2; - break; - - case 3: - recipe = ring3; - break; - - default: - recipe = ring1; - } - - if (recipe.length != 6) - { - ItemStack[] newRecipe = new ItemStack[6]; - - for (int i = 0; i < 6; i++) - { - if (i + 1 > recipe.length) - { - newRecipe[i] = null; - } else - { - newRecipe[i] = recipe[i]; - } - } - - recipe = newRecipe; - } - - boolean[] checkList = new boolean[6]; - - for (int i = 0; i < 6; i++) - { - checkList[i] = false; - } - - for (int i = 0; i < 6; i++) - { - ItemStack recipeItemStack = recipe[i]; - - if (recipeItemStack == null) - { - continue; - } - - boolean test = false; - - for (int j = 0; j < 6; j++) - { - if (checkList[j]) - { - continue; - } - - ItemStack checkedItemStack = checkedRingRecipe[j]; - - if (checkedItemStack == null) - { - continue; - } - - boolean quickTest = false; - - if (recipeItemStack.getItem() instanceof ItemBlock) - { - if (checkedItemStack.getItem() instanceof ItemBlock) - { - quickTest = true; - } - } else if (!(checkedItemStack.getItem() instanceof ItemBlock)) - { - quickTest = true; - } - - if (!quickTest) - { - continue; - } - - if ((checkedItemStack.getItemDamage() == recipeItemStack.getItemDamage() || OreDictionary.WILDCARD_VALUE == recipeItemStack.getItemDamage()) && checkedItemStack.getItem() == recipeItemStack.getItem()) - { - test = true; - checkList[j] = true; - break; - } - } - - if (!test) - { - return false; - } - } - - return true; - } - - public int getSummoningCost() - { - return summoningCost; - } - - public EntityLivingBase getEntity(World world) - { - return this.summoningHelper.getEntity(world); - } - - public int getBloodOrbLevel() - { - return this.bloodOrbLevel; - } - - public ItemStack[] getRingRecipeForRing(int ring) - { - switch (ring) - { - case 1: - return ring1; - - case 2: - return ring2; - - case 3: - return ring3; - - default: - return null; - } - } - - public int getSummoningHelperID() - { - return this.summoningHelper.getSummoningHelperID(); - } -} diff --git a/1.7.2/main/java/WayofTime/alchemicalWizardry/api/tile/IBloodAltar.java b/1.7.2/main/java/WayofTime/alchemicalWizardry/api/tile/IBloodAltar.java deleted file mode 100644 index c70d6188..00000000 --- a/1.7.2/main/java/WayofTime/alchemicalWizardry/api/tile/IBloodAltar.java +++ /dev/null @@ -1,26 +0,0 @@ -package WayofTime.alchemicalWizardry.api.tile; - -/** - * Created by Pokefenn. - */ -public interface IBloodAltar -{ - - public int getCapacity(); - - public int getCurrentBlood(); - - public int getTier(); - - public int getProgress(); - - public float getSacrificeMultiplier(); - - public float getSelfSacrificeMultiplier(); - - public float getOrbMultiplier(); - - public float getDislocationMultiplier(); - - public int getBufferCapacity(); -} diff --git a/1.7.2/main/java/WayofTime/alchemicalWizardry/client/ClientProxy.java b/1.7.2/main/java/WayofTime/alchemicalWizardry/client/ClientProxy.java deleted file mode 100644 index c60e734d..00000000 --- a/1.7.2/main/java/WayofTime/alchemicalWizardry/client/ClientProxy.java +++ /dev/null @@ -1,150 +0,0 @@ -package WayofTime.alchemicalWizardry.client; - -import net.minecraft.item.ItemBlock; -import net.minecraft.world.World; -import net.minecraftforge.client.MinecraftForgeClient; -import WayofTime.alchemicalWizardry.ModBlocks; -import WayofTime.alchemicalWizardry.common.CommonProxy; -import WayofTime.alchemicalWizardry.common.EntityAirElemental; -import WayofTime.alchemicalWizardry.common.entity.mob.EntityBileDemon; -import WayofTime.alchemicalWizardry.common.entity.mob.EntityBoulderFist; -import WayofTime.alchemicalWizardry.common.entity.mob.EntityEarthElemental; -import WayofTime.alchemicalWizardry.common.entity.mob.EntityFallenAngel; -import WayofTime.alchemicalWizardry.common.entity.mob.EntityFireElemental; -import WayofTime.alchemicalWizardry.common.entity.mob.EntityHolyElemental; -import WayofTime.alchemicalWizardry.common.entity.mob.EntityIceDemon; -import WayofTime.alchemicalWizardry.common.entity.mob.EntityLowerGuardian; -import WayofTime.alchemicalWizardry.common.entity.mob.EntityShade; -import WayofTime.alchemicalWizardry.common.entity.mob.EntityShadeElemental; -import WayofTime.alchemicalWizardry.common.entity.mob.EntitySmallEarthGolem; -import WayofTime.alchemicalWizardry.common.entity.mob.EntityWaterElemental; -import WayofTime.alchemicalWizardry.common.entity.mob.EntityWingedFireDemon; -import WayofTime.alchemicalWizardry.common.entity.projectile.EnergyBlastProjectile; -import WayofTime.alchemicalWizardry.common.entity.projectile.EntityEnergyBazookaMainProjectile; -import WayofTime.alchemicalWizardry.common.entity.projectile.EntityMeteor; -import WayofTime.alchemicalWizardry.common.renderer.block.RenderConduit; -import WayofTime.alchemicalWizardry.common.renderer.block.RenderPedestal; -import WayofTime.alchemicalWizardry.common.renderer.block.RenderPlinth; -import WayofTime.alchemicalWizardry.common.renderer.block.RenderSpellEffectBlock; -import WayofTime.alchemicalWizardry.common.renderer.block.RenderSpellEnhancementBlock; -import WayofTime.alchemicalWizardry.common.renderer.block.RenderSpellModifierBlock; -import WayofTime.alchemicalWizardry.common.renderer.block.RenderSpellParadigmBlock; -import WayofTime.alchemicalWizardry.common.renderer.block.RenderWritingTable; -import WayofTime.alchemicalWizardry.common.renderer.block.TEAltarRenderer; -import WayofTime.alchemicalWizardry.common.renderer.block.itemRender.TEAltarItemRenderer; -import WayofTime.alchemicalWizardry.common.renderer.block.itemRender.TEConduitItemRenderer; -import WayofTime.alchemicalWizardry.common.renderer.block.itemRender.TESpellEffectBlockItemRenderer; -import WayofTime.alchemicalWizardry.common.renderer.block.itemRender.TESpellEnhancementBlockItemRenderer; -import WayofTime.alchemicalWizardry.common.renderer.block.itemRender.TESpellModifierBlockItemRenderer; -import WayofTime.alchemicalWizardry.common.renderer.block.itemRender.TESpellParadigmBlockItemRenderer; -import WayofTime.alchemicalWizardry.common.renderer.mob.RenderBileDemon; -import WayofTime.alchemicalWizardry.common.renderer.mob.RenderBoulderFist; -import WayofTime.alchemicalWizardry.common.renderer.mob.RenderElemental; -import WayofTime.alchemicalWizardry.common.renderer.mob.RenderFallenAngel; -import WayofTime.alchemicalWizardry.common.renderer.mob.RenderIceDemon; -import WayofTime.alchemicalWizardry.common.renderer.mob.RenderLowerGuardian; -import WayofTime.alchemicalWizardry.common.renderer.mob.RenderShade; -import WayofTime.alchemicalWizardry.common.renderer.mob.RenderSmallEarthGolem; -import WayofTime.alchemicalWizardry.common.renderer.mob.RenderWingedFireDemon; -import WayofTime.alchemicalWizardry.common.renderer.model.ModelBileDemon; -import WayofTime.alchemicalWizardry.common.renderer.model.ModelBoulderFist; -import WayofTime.alchemicalWizardry.common.renderer.model.ModelElemental; -import WayofTime.alchemicalWizardry.common.renderer.model.ModelFallenAngel; -import WayofTime.alchemicalWizardry.common.renderer.model.ModelIceDemon; -import WayofTime.alchemicalWizardry.common.renderer.model.ModelLowerGuardian; -import WayofTime.alchemicalWizardry.common.renderer.model.ModelShade; -import WayofTime.alchemicalWizardry.common.renderer.model.ModelSmallEarthGolem; -import WayofTime.alchemicalWizardry.common.renderer.model.ModelWingedFireDemon; -import WayofTime.alchemicalWizardry.common.renderer.projectile.RenderEnergyBazookaMainProjectile; -import WayofTime.alchemicalWizardry.common.renderer.projectile.RenderEnergyBlastProjectile; -import WayofTime.alchemicalWizardry.common.renderer.projectile.RenderMeteor; -import WayofTime.alchemicalWizardry.common.spell.complex.EntitySpellProjectile; -import WayofTime.alchemicalWizardry.common.tileEntity.TEAltar; -import WayofTime.alchemicalWizardry.common.tileEntity.TEConduit; -import WayofTime.alchemicalWizardry.common.tileEntity.TEPedestal; -import WayofTime.alchemicalWizardry.common.tileEntity.TEPlinth; -import WayofTime.alchemicalWizardry.common.tileEntity.TESpellEffectBlock; -import WayofTime.alchemicalWizardry.common.tileEntity.TESpellEnhancementBlock; -import WayofTime.alchemicalWizardry.common.tileEntity.TESpellModifierBlock; -import WayofTime.alchemicalWizardry.common.tileEntity.TESpellParadigmBlock; -import WayofTime.alchemicalWizardry.common.tileEntity.TEWritingTable; -import cpw.mods.fml.client.FMLClientHandler; -import cpw.mods.fml.client.registry.ClientRegistry; -import cpw.mods.fml.client.registry.RenderingRegistry; - -public class ClientProxy extends CommonProxy -{ - public static int renderPass; - public static int altarRenderType; - - @Override - public void registerRenderers() - { - //altarRenderType = RenderingRegistry.getNextAvailableRenderId(); - RenderingRegistry.registerEntityRenderingHandler(EnergyBlastProjectile.class, new RenderEnergyBlastProjectile()); - RenderingRegistry.registerEntityRenderingHandler(EntityEnergyBazookaMainProjectile.class, new RenderEnergyBazookaMainProjectile()); - RenderingRegistry.registerEntityRenderingHandler(EntitySpellProjectile.class, new RenderEnergyBlastProjectile()); - RenderingRegistry.registerEntityRenderingHandler(EntityMeteor.class, new RenderMeteor()); - //EntityRegistry.registerGlobalEntityID(EntityFallenAngel.class, "AlchemicalWizardry.FallenAngel", EntityRegistry.findGlobalUniqueEntityId(),0x40FF00, 0x0B610B); - RenderingRegistry.registerEntityRenderingHandler(EntityFallenAngel.class, new RenderFallenAngel(new ModelFallenAngel(), 0.5F)); - //EntityRegistry.registerGlobalEntityID(EntityLowerGuardian.class, "AlchemicalWizardry.LowerGuardian", EntityRegistry.findGlobalUniqueEntityId(),0x40FF00, 0x0B610B); - RenderingRegistry.registerEntityRenderingHandler(EntityLowerGuardian.class, new RenderLowerGuardian(new ModelLowerGuardian(), 0.5F)); - //EntityRegistry.registerGlobalEntityID(EntityBileDemon.class, "AlchemicalWizardry.BileDemon", EntityRegistry.findGlobalUniqueEntityId(),0x40FF00, 0x0B610B); - RenderingRegistry.registerEntityRenderingHandler(EntityBileDemon.class, new RenderBileDemon(new ModelBileDemon(), 1.5F)); - //EntityRegistry.registerGlobalEntityID(EntityWingedFireDemon.class, "AlchemicalWizardry.WingedFireDemon", EntityRegistry.findGlobalUniqueEntityId(),0x40FF00, 0x0B610B); - RenderingRegistry.registerEntityRenderingHandler(EntityWingedFireDemon.class, new RenderWingedFireDemon(new ModelWingedFireDemon(), 1.0F)); - //EntityRegistry.registerGlobalEntityID(EntitySmallEarthGolem.class, "AlchemicalWizardry.SmallEarthGolem", EntityRegistry.findGlobalUniqueEntityId(),0x40FF00, 0x0B610B); - RenderingRegistry.registerEntityRenderingHandler(EntitySmallEarthGolem.class, new RenderSmallEarthGolem(new ModelSmallEarthGolem(), 0.5F)); - //EntityRegistry.registerGlobalEntityID(EntityIceDemon.class, "AlchemicalWizardry.IceDemon", EntityRegistry.findGlobalUniqueEntityId(),0x40FF00, 0x0B610B); - RenderingRegistry.registerEntityRenderingHandler(EntityIceDemon.class, new RenderIceDemon(new ModelIceDemon(), 0.5F)); - // EntityRegistry.registerGlobalEntityID(EntityBoulderFist.class, "AlchemicalWizardry.BoulderFist", EntityRegistry.findGlobalUniqueEntityId(),0x40FF00, 0x0B610B); - RenderingRegistry.registerEntityRenderingHandler(EntityBoulderFist.class, new RenderBoulderFist(new ModelBoulderFist(), 0.5F)); - //EntityRegistry.registerGlobalEntityID(EntityShade.class, "AlchemicalWizardry.Shade", EntityRegistry.findGlobalUniqueEntityId(),0x40FF00, 0x0B610B); - RenderingRegistry.registerEntityRenderingHandler(EntityShade.class, new RenderShade(new ModelShade(), 0.5F)); - //EntityRegistry.registerGlobalEntityID(EntityAirElemental.class, "AlchemicalWizardry.AirElemental", EntityRegistry.findGlobalUniqueEntityId(),0x40FF00, 0x0B610B); - RenderingRegistry.registerEntityRenderingHandler(EntityAirElemental.class, new RenderElemental(new ModelElemental(), 0.5F)); - //EntityRegistry.registerGlobalEntityID(EntityWaterElemental.class, "AlchemicalWizardry.WaterElemental", EntityRegistry.findGlobalUniqueEntityId(),0x40FF00, 0x0B610B); - RenderingRegistry.registerEntityRenderingHandler(EntityWaterElemental.class, new RenderElemental(new ModelElemental(), 0.5F)); - //EntityRegistry.registerGlobalEntityID(EntityEarthElemental.class, "AlchemicalWizardry.EarthElemental", EntityRegistry.findGlobalUniqueEntityId(),0x40FF00, 0x0B610B); - RenderingRegistry.registerEntityRenderingHandler(EntityEarthElemental.class, new RenderElemental(new ModelElemental(), 0.5F)); - //EntityRegistry.registerGlobalEntityID(EntityFireElemental.class, "AlchemicalWizardry.FireElemental", EntityRegistry.findGlobalUniqueEntityId(),0x40FF00, 0x0B610B); - RenderingRegistry.registerEntityRenderingHandler(EntityFireElemental.class, new RenderElemental(new ModelElemental(), 0.5F)); - //EntityRegistry.registerGlobalEntityID(EntityShadeElemental.class, "AlchemicalWizardry.ShadeElemental", EntityRegistry.findGlobalUniqueEntityId(),0x40FF00, 0x0B610B); - RenderingRegistry.registerEntityRenderingHandler(EntityShadeElemental.class, new RenderElemental(new ModelElemental(), 0.5F)); - //EntityRegistry.registerGlobalEntityID(EntityHolyElemental.class, "AlchemicalWizardry.HolyElemental", EntityRegistry.findGlobalUniqueEntityId(),0x40FF00, 0x0B610B); - RenderingRegistry.registerEntityRenderingHandler(EntityHolyElemental.class, new RenderElemental(new ModelElemental(), 0.5F)); - ClientRegistry.bindTileEntitySpecialRenderer(TEAltar.class, new TEAltarRenderer()); - ClientRegistry.bindTileEntitySpecialRenderer(TEPedestal.class, new RenderPedestal()); - ClientRegistry.bindTileEntitySpecialRenderer(TEPlinth.class, new RenderPlinth()); - ClientRegistry.bindTileEntitySpecialRenderer(TEWritingTable.class, new RenderWritingTable()); - ClientRegistry.bindTileEntitySpecialRenderer(TEConduit.class, new RenderConduit()); - ClientRegistry.bindTileEntitySpecialRenderer(TESpellEffectBlock.class, new RenderSpellEffectBlock()); - ClientRegistry.bindTileEntitySpecialRenderer(TESpellEnhancementBlock.class, new RenderSpellEnhancementBlock()); - ClientRegistry.bindTileEntitySpecialRenderer(TESpellParadigmBlock.class, new RenderSpellParadigmBlock()); - ClientRegistry.bindTileEntitySpecialRenderer(TESpellModifierBlock.class, new RenderSpellModifierBlock()); - - //Item Renderer stuff - MinecraftForgeClient.registerItemRenderer(ItemBlock.getItemFromBlock(ModBlocks.blockConduit), new TEConduitItemRenderer()); - MinecraftForgeClient.registerItemRenderer(ItemBlock.getItemFromBlock(ModBlocks.blockSpellEffect), new TESpellEffectBlockItemRenderer()); - MinecraftForgeClient.registerItemRenderer(ItemBlock.getItemFromBlock(ModBlocks.blockSpellEnhancement), new TESpellEnhancementBlockItemRenderer()); - MinecraftForgeClient.registerItemRenderer(ItemBlock.getItemFromBlock(ModBlocks.blockSpellParadigm), new TESpellParadigmBlockItemRenderer()); - MinecraftForgeClient.registerItemRenderer(ItemBlock.getItemFromBlock(ModBlocks.blockSpellModifier), new TESpellModifierBlockItemRenderer()); - - //RenderingRegistry.registerEntityRenderingHandler(FireProjectile.class, new RenderFireProjectile()); - //RenderingRegistry.registerBlockHandler(new AltarRenderer()); - } - - @Override - public World getClientWorld() - { - return FMLClientHandler.instance().getClient().theWorld; - } - - @Override - public void InitRendering() - { - - MinecraftForgeClient.registerItemRenderer(ItemBlock.getItemFromBlock(ModBlocks.blockAltar), new TEAltarItemRenderer()); - //MinecraftForgeClient.registerItemRenderer(AlchemicalWizardry.blockWritingTable.blockID, new TEWritingTableItemRenderer()); - } -} diff --git a/1.7.2/main/java/WayofTime/alchemicalWizardry/common/AlchemicalWizardryEventHooks.java b/1.7.2/main/java/WayofTime/alchemicalWizardry/common/AlchemicalWizardryEventHooks.java deleted file mode 100644 index 2dc42974..00000000 --- a/1.7.2/main/java/WayofTime/alchemicalWizardry/common/AlchemicalWizardryEventHooks.java +++ /dev/null @@ -1,347 +0,0 @@ -package WayofTime.alchemicalWizardry.common; - -import java.util.ArrayList; -import java.util.HashMap; -import java.util.Iterator; -import java.util.List; -import java.util.Map; - -import net.minecraft.entity.Entity; -import net.minecraft.entity.EntityLivingBase; -import net.minecraft.entity.IProjectile; -import net.minecraft.entity.player.EntityPlayer; -import net.minecraft.entity.player.PlayerCapabilities; -import net.minecraft.entity.projectile.EntityArrow; -import net.minecraft.potion.Potion; -import net.minecraft.util.AxisAlignedBB; -import net.minecraft.util.DamageSource; -import net.minecraft.util.Vec3; -import net.minecraftforge.event.entity.living.EnderTeleportEvent; -import net.minecraftforge.event.entity.living.LivingAttackEvent; -import net.minecraftforge.event.entity.living.LivingEvent.LivingJumpEvent; -import net.minecraftforge.event.entity.living.LivingEvent.LivingUpdateEvent; -import WayofTime.alchemicalWizardry.AlchemicalWizardry; -import WayofTime.alchemicalWizardry.common.entity.projectile.EnergyBlastProjectile; -import WayofTime.alchemicalWizardry.common.spell.complex.effect.SpellHelper; -import cpw.mods.fml.common.ObfuscationReflectionHelper; -import cpw.mods.fml.common.eventhandler.SubscribeEvent; -import cpw.mods.fml.common.gameevent.PlayerEvent.PlayerRespawnEvent; - -public class AlchemicalWizardryEventHooks -{ - public static Map playerFlightBuff = new HashMap(); - public static Map playerBoostStepHeight = new HashMap(); - public static List playersWith1Step = new ArrayList(); - - @SubscribeEvent - public void onPlayerRespawnEvent(PlayerRespawnEvent event) - { - if(AlchemicalWizardry.respawnWithLowerHealth) - { - event.player.setHealth(6); - } - } - - @SubscribeEvent - public void onLivingJumpEvent(LivingJumpEvent event) - { - if (event.entityLiving.isPotionActive(AlchemicalWizardry.customPotionBoost)) - { - int i = event.entityLiving.getActivePotionEffect(AlchemicalWizardry.customPotionBoost).getAmplifier(); - event.entityLiving.motionY += (0.1f) * (2 + i); - } - - if(event.entityLiving.isPotionActive(AlchemicalWizardry.customPotionHeavyHeart)) - { - event.entityLiving.motionY = 0; - } - } - - @SubscribeEvent - public void onEndermanTeleportEvent(EnderTeleportEvent event) - { - if(event.entityLiving.isPotionActive(AlchemicalWizardry.customPotionPlanarBinding) && event.isCancelable()) - { - event.setCanceled(true); - } - } - - @SubscribeEvent - public void onEntityDamaged(LivingAttackEvent event) - { - EntityLivingBase entityAttacked = event.entityLiving; - - if (entityAttacked.isPotionActive(AlchemicalWizardry.customPotionReciprocation)) - { - Entity entityAttacking = event.source.getSourceOfDamage(); - - if (entityAttacking != null && entityAttacking instanceof EntityLivingBase) - { - int i = event.entityLiving.getActivePotionEffect(AlchemicalWizardry.customPotionReciprocation).getAmplifier(); - float damageRecieve = event.ammount / 2 * (i + 1); - ((EntityLivingBase) entityAttacking).attackEntityFrom(DamageSource.generic, damageRecieve); - } - } - - if(entityAttacked.isPotionActive(AlchemicalWizardry.customPotionFlameCloak)) - { - int i = event.entityLiving.getActivePotionEffect(AlchemicalWizardry.customPotionFlameCloak).getAmplifier(); - - Entity entityAttacking = event.source.getSourceOfDamage(); - - if(entityAttacking != null && entityAttacking instanceof EntityLivingBase && !entityAttacking.isImmuneToFire() && !((EntityLivingBase)entityAttacking).isPotionActive(Potion.fireResistance)) - { - entityAttacking.attackEntityFrom(DamageSource.inFire, 2*i+2); - entityAttacking.setFire(3); - } - } - } - -// @ForgeSubscribe -// public void onFOVUpdate(FOVUpdateEvent event) -// { -// event.setResult(Result.DEFAULT); -// } - -// @SubscribeEvent -// public void onPlayerTickEnd(PlayerTickEvent event) -// { -// if(event.type.equals(Type.PLAYER) && event.phase.equals(TickEvent.Phase.END)) -// { -// ObfuscationReflectionHelper.setPrivateValue(PlayerCapabilities.class, event.player.capabilities, Float.valueOf(0.1f), new String[]{"walkSpeed", "g", "field_75097_g"}); -// } -// } - - @SubscribeEvent - public void onEntityUpdate(LivingUpdateEvent event) - { - EntityLivingBase entityLiving = event.entityLiving; - double x = entityLiving.posX; - double y = entityLiving.posY; - double z = entityLiving.posZ; - - Vec3 blockVector = SpellHelper.getEntityBlockVector(entityLiving); - int xPos = (int)(blockVector.xCoord); - int yPos = (int)(blockVector.yCoord); - int zPos = (int)(blockVector.zCoord); - - if(entityLiving instanceof EntityPlayer) - { - ObfuscationReflectionHelper.setPrivateValue(PlayerCapabilities.class, ((EntityPlayer)event.entityLiving).capabilities, Float.valueOf(0.1f), new String[]{"walkSpeed", "g", "field_75097_g"}); - } - - if (entityLiving instanceof EntityPlayer && entityLiving.worldObj.isRemote) - { - EntityPlayer entityPlayer = (EntityPlayer) entityLiving; - boolean highStepListed = playersWith1Step.contains(entityPlayer.getDisplayName()); - boolean hasHighStep = entityPlayer.isPotionActive(AlchemicalWizardry.customPotionBoost); - - if (hasHighStep && !highStepListed) - { - playersWith1Step.add(SpellHelper.getUsername(entityPlayer)); - } - - if (!hasHighStep && highStepListed) - { - playersWith1Step.remove(SpellHelper.getUsername(entityPlayer)); - entityPlayer.stepHeight = 0.5F; - } - } - - if (event.entityLiving.isPotionActive(AlchemicalWizardry.customPotionDrowning)) - { - int i = event.entityLiving.getActivePotionEffect(AlchemicalWizardry.customPotionDrowning).getAmplifier(); - - if (event.entityLiving.worldObj.getWorldTime() % ((int) (20 / (i + 1))) == 0) - { - event.entityLiving.attackEntityFrom(DamageSource.drown, 2); - event.entityLiving.hurtResistantTime = Math.min(event.entityLiving.hurtResistantTime, 20 / (i + 1)); - } - } - - if (event.entityLiving.isPotionActive(AlchemicalWizardry.customPotionBoost)) - { - int i = event.entityLiving.getActivePotionEffect(AlchemicalWizardry.customPotionBoost).getAmplifier(); - EntityLivingBase entity = event.entityLiving; - //if(!entity.isSneaking()) - { - float percentIncrease = (i + 1) * 0.05f; - - if (event.entityLiving instanceof EntityPlayer) - { - EntityPlayer entityPlayer = (EntityPlayer) event.entityLiving; - entityPlayer.stepHeight = 1.0f; - - if((entityPlayer.onGround || entityPlayer.capabilities.isFlying) && entityPlayer.moveForward > 0F) - entityPlayer.moveFlying(0F, 1F, entityPlayer.capabilities.isFlying ? (percentIncrease/2.0f) : percentIncrease); - } - } - } - - if (event.entityLiving.isPotionActive(AlchemicalWizardry.customPotionProjProt)) - { - int i = event.entityLiving.getActivePotionEffect(AlchemicalWizardry.customPotionProjProt).getAmplifier(); - EntityLivingBase entity = event.entityLiving; - int posX = (int) Math.round(entity.posX - 0.5f); - int posY = (int) Math.round(entity.posY); - int posZ = (int) Math.round(entity.posZ - 0.5f); - int d0 = i; - AxisAlignedBB axisalignedbb = AxisAlignedBB.getAABBPool().getAABB(posX - 0.5, posY - 0.5, posZ - 0.5, posX + 0.5, posY + 0.5, posZ + 0.5).expand(d0, d0, d0); - List list = event.entityLiving.worldObj.getEntitiesWithinAABB(Entity.class, axisalignedbb); - Iterator iterator = list.iterator(); - EntityLivingBase livingEntity; - - while (iterator.hasNext()) - { - Entity projectile = (Entity) iterator.next(); - - if (projectile == null) - { - continue; - } - - if (!(projectile instanceof IProjectile)) - { - continue; - } - - if (projectile instanceof EntityArrow) - { - if (((EntityArrow) projectile).shootingEntity == null) - { - } else if (!(((EntityArrow) projectile).shootingEntity == null) && ((EntityArrow) projectile).shootingEntity.equals(entity)) - { - break; - } - } else if (projectile instanceof EnergyBlastProjectile) - { - if (!(((EnergyBlastProjectile) projectile).shootingEntity == null) && ((EnergyBlastProjectile) projectile).shootingEntity.equals(entity)) - { - break; - } - } - - double delX = projectile.posX - entity.posX; - double delY = projectile.posY - entity.posY; - double delZ = projectile.posZ - entity.posZ; - double curVel = Math.sqrt(delX * delX + delY * delY + delZ * delZ); - //NOTE: It appears that it constantly reverses the direction. - //Any way to do it only once? Or find the shooting entity? - delX /= curVel; - delY /= curVel; - delZ /= curVel; - double newVel = Math.sqrt(projectile.motionX * projectile.motionX + projectile.motionY * projectile.motionY + projectile.motionZ * projectile.motionZ); - projectile.motionX = newVel * delX; - projectile.motionY = newVel * delY; - projectile.motionZ = newVel * delZ; - //TODO make this not affect player's projectiles - } - } - - if (event.entityLiving.isPotionActive(AlchemicalWizardry.customPotionFlight)) - { - if (event.entityLiving instanceof EntityPlayer) - { - EntityPlayer entityPlayer = (EntityPlayer) event.entityLiving; - String ownerName = SpellHelper.getUsername(entityPlayer); - playerFlightBuff.put(ownerName, true); - entityPlayer.capabilities.allowFlying = true; - //entityPlayer.sendPlayerAbilities(); - } - } else - { - if (event.entityLiving instanceof EntityPlayer) - { - EntityPlayer entityPlayer = (EntityPlayer) event.entityLiving; - String ownerName = SpellHelper.getUsername(entityPlayer); - - if (!playerFlightBuff.containsKey(ownerName)) - { - playerFlightBuff.put(ownerName, false); - } - - if (playerFlightBuff.get(ownerName)) - { - playerFlightBuff.put(ownerName, false); - - if (!entityPlayer.capabilities.isCreativeMode) - { - entityPlayer.capabilities.allowFlying = false; - entityPlayer.capabilities.isFlying = false; - entityPlayer.sendPlayerAbilities(); - } - } - } - } - - if(entityLiving.isPotionActive(AlchemicalWizardry.customPotionFlameCloak)) - { - entityLiving.worldObj.spawnParticle("flame", x+SpellHelper.gaussian(1),y-1.3+SpellHelper.gaussian(0.3),z+SpellHelper.gaussian(1), 0, 0.06d, 0); - - int i = event.entityLiving.getActivePotionEffect(AlchemicalWizardry.customPotionFlameCloak).getAmplifier(); - double range = i*0.5; - - List entities = SpellHelper.getEntitiesInRange(entityLiving.worldObj, x, y, z, range, range); - if(entities!=null) - { - for(Entity entity : entities) - { - if(!entity.equals(entityLiving)&&!entity.isImmuneToFire()&&!(entity instanceof EntityLivingBase && ((EntityLivingBase)entity).isPotionActive(Potion.fireResistance))) - { - entity.setFire(3); - } - } - } - } - - if(entityLiving.isPotionActive(AlchemicalWizardry.customPotionIceCloak)) - { - if(entityLiving.worldObj.getWorldTime()%2==0) - entityLiving.worldObj.spawnParticle("reddust", x+SpellHelper.gaussian(1),y-1.3+SpellHelper.gaussian(0.3),z+SpellHelper.gaussian(1), 0x74,0xbb,0xfb); - - int r = event.entityLiving.getActivePotionEffect(AlchemicalWizardry.customPotionIceCloak).getAmplifier(); - int horizRange = r+1; - int vertRange = 1; - - if(!entityLiving.worldObj.isRemote) - { - for(int i=-horizRange; i<=horizRange;i++) - { - for(int k=-horizRange; k<=horizRange;k++) - { - for(int j=-vertRange-1; j<=vertRange-1; j++) - { - SpellHelper.freezeWaterBlock(entityLiving.worldObj, xPos+i, yPos+j, zPos+k); - } - } - } - } - } - - if(entityLiving.isPotionActive(AlchemicalWizardry.customPotionHeavyHeart)) - { - entityLiving.worldObj.spawnParticle("flame", x+SpellHelper.gaussian(1),y-1.3+SpellHelper.gaussian(0.3),z+SpellHelper.gaussian(1), 0, 0.06d, 0); - - int i = event.entityLiving.getActivePotionEffect(AlchemicalWizardry.customPotionHeavyHeart).getAmplifier(); - double decrease = 0.025*(i+1); - - if(entityLiving.motionY>-0.9) - { - entityLiving.motionY-=decrease; - } - } - - if(entityLiving.isPotionActive(AlchemicalWizardry.customPotionFireFuse)) - { - entityLiving.worldObj.spawnParticle("flame", x+SpellHelper.gaussian(1),y-1.3+SpellHelper.gaussian(0.3),z+SpellHelper.gaussian(1), 0, 0.06d, 0); - - int r = event.entityLiving.getActivePotionEffect(AlchemicalWizardry.customPotionFireFuse).getAmplifier(); - int radius = r+1; - - if(entityLiving.getActivePotionEffect(AlchemicalWizardry.customPotionFireFuse).getDuration()<=2) - { - entityLiving.worldObj.createExplosion(null, x, y, z, radius, false); - } - } - } -} diff --git a/1.7.2/main/java/WayofTime/alchemicalWizardry/common/AlchemicalWizardryFuelHandler.java b/1.7.2/main/java/WayofTime/alchemicalWizardry/common/AlchemicalWizardryFuelHandler.java deleted file mode 100644 index ab5ddad9..00000000 --- a/1.7.2/main/java/WayofTime/alchemicalWizardry/common/AlchemicalWizardryFuelHandler.java +++ /dev/null @@ -1,71 +0,0 @@ -package WayofTime.alchemicalWizardry.common; - -import net.minecraft.entity.player.EntityPlayer; -import net.minecraft.item.Item; -import net.minecraft.item.ItemStack; -import net.minecraft.nbt.NBTTagCompound; -import net.minecraft.potion.Potion; -import net.minecraft.potion.PotionEffect; -import net.minecraft.server.MinecraftServer; -import WayofTime.alchemicalWizardry.ModItems; -import WayofTime.alchemicalWizardry.common.items.LavaCrystal; -import cpw.mods.fml.common.IFuelHandler; - -public class AlchemicalWizardryFuelHandler implements IFuelHandler -{ - @Override - public int getBurnTime(ItemStack fuel) - { - ItemStack itemStack = fuel; - if(itemStack == null) - { - return 0; - } - - Item fuelItem = itemStack.getItem(); - - if (fuelItem.equals(ModItems.lavaCrystal)) - { - /*ItemStack newItem = new ItemStack(AlchemicalWizardry.lavaCrystal); - newItem.getItem().setDamage(newItem, 50); - fuel.getItem().setContainerItem(((LavaCrystal)newItem.getItem()).change()); - */ - LavaCrystal item = (LavaCrystal) fuel.getItem(); - - if (item.hasEnoughEssence(fuel)) - { - return 200; - } else - { - NBTTagCompound tag = itemStack.stackTagCompound; - - if (tag == null) - { - return 0; - } - - if (MinecraftServer.getServer() == null) - { - return 0; - } - - if (MinecraftServer.getServer().getConfigurationManager() == null) - { - return 0; - } - - EntityPlayer owner = MinecraftServer.getServer().getConfigurationManager().getPlayerForUsername(tag.getString("ownerName")); - - if (owner == null) - { - return 0; - } - - owner.addPotionEffect(new PotionEffect(Potion.confusion.id, 80)); - return 0; - } - } - - return 0; - } -} diff --git a/1.7.2/main/java/WayofTime/alchemicalWizardry/common/AlchemicalWizardryTickHandler.java b/1.7.2/main/java/WayofTime/alchemicalWizardry/common/AlchemicalWizardryTickHandler.java deleted file mode 100644 index 40eaf0f1..00000000 --- a/1.7.2/main/java/WayofTime/alchemicalWizardry/common/AlchemicalWizardryTickHandler.java +++ /dev/null @@ -1,47 +0,0 @@ -package WayofTime.alchemicalWizardry.common; - -import java.util.EnumSet; - -import net.minecraft.entity.player.EntityPlayer; -import net.minecraft.entity.player.PlayerCapabilities; -import net.minecraft.server.MinecraftServer; -import cpw.mods.fml.common.ObfuscationReflectionHelper; - -@Deprecated -public class AlchemicalWizardryTickHandler //implements ITickHandler -{ -// public void tickStart(EnumSet type, Object... tickData) -// { -// } -// -// public EnumSet ticks() -// { -// return EnumSet.of(TickType.PLAYER); -// } -// -// public String getLabel() -// { -// return "BloodMagic"; -// } -// -// public void tickEnd(EnumSet type, Object... tickData) -// { -// String[] usernames = MinecraftServer.getServer().getAllUsernames(); -// -// if (usernames == null) -// { -// return; -// } -// -// for (String userName : usernames) -// { -// EntityPlayer entityPlayer = MinecraftServer.getServer().getConfigurationManager().getPlayerForUsername(userName); -// -// if (entityPlayer != null) -// { -// ObfuscationReflectionHelper.setPrivateValue(PlayerCapabilities.class, entityPlayer.capabilities, Float.valueOf(0.1f), new String[]{"walkSpeed", "g", "field_75097_g"}); -// //entityPlayer.sendPlayerAbilities(); -// } -// } -// } -} diff --git a/1.7.2/main/java/WayofTime/alchemicalWizardry/common/ArmourComponent.java b/1.7.2/main/java/WayofTime/alchemicalWizardry/common/ArmourComponent.java deleted file mode 100644 index fb4f155b..00000000 --- a/1.7.2/main/java/WayofTime/alchemicalWizardry/common/ArmourComponent.java +++ /dev/null @@ -1,23 +0,0 @@ -package WayofTime.alchemicalWizardry.common; - -public class ArmourComponent -{ - private int xOff; - private int zOff; - - public ArmourComponent(int xOff, int zOff) - { - this.xOff = xOff; - this.zOff = zOff; - } - - public int getXOff() - { - return xOff; - } - - public int getZOff() - { - return zOff; - } -} diff --git a/1.7.2/main/java/WayofTime/alchemicalWizardry/common/CommonProxy.java b/1.7.2/main/java/WayofTime/alchemicalWizardry/common/CommonProxy.java deleted file mode 100644 index d4c1198e..00000000 --- a/1.7.2/main/java/WayofTime/alchemicalWizardry/common/CommonProxy.java +++ /dev/null @@ -1,91 +0,0 @@ -package WayofTime.alchemicalWizardry.common; - -import net.minecraft.world.World; -import WayofTime.alchemicalWizardry.AlchemicalWizardry; -import WayofTime.alchemicalWizardry.common.entity.projectile.EnergyBlastProjectile; -import WayofTime.alchemicalWizardry.common.entity.projectile.EntityBloodLightProjectile; -import WayofTime.alchemicalWizardry.common.entity.projectile.EntityEnergyBazookaMainProjectile; -import WayofTime.alchemicalWizardry.common.entity.projectile.EntityEnergyBazookaSecondaryProjectile; -import WayofTime.alchemicalWizardry.common.entity.projectile.EntityMeteor; -import WayofTime.alchemicalWizardry.common.entity.projectile.ExplosionProjectile; -import WayofTime.alchemicalWizardry.common.entity.projectile.FireProjectile; -import WayofTime.alchemicalWizardry.common.entity.projectile.HolyProjectile; -import WayofTime.alchemicalWizardry.common.entity.projectile.IceProjectile; -import WayofTime.alchemicalWizardry.common.entity.projectile.LightningBoltProjectile; -import WayofTime.alchemicalWizardry.common.entity.projectile.MudProjectile; -import WayofTime.alchemicalWizardry.common.entity.projectile.TeleportProjectile; -import WayofTime.alchemicalWizardry.common.entity.projectile.WaterProjectile; -import WayofTime.alchemicalWizardry.common.entity.projectile.WindGustProjectile; -import WayofTime.alchemicalWizardry.common.spell.complex.EntitySpellProjectile; -import WayofTime.alchemicalWizardry.common.tileEntity.TEAltar; -import WayofTime.alchemicalWizardry.common.tileEntity.TEMasterStone; -import cpw.mods.fml.common.registry.EntityRegistry; -import cpw.mods.fml.common.registry.GameRegistry; - -public class CommonProxy -{ - public static String ITEMS_PNG = "/WayofTime/alchemicalWizardry/items.png"; - public static String BLOCK_PNG = "/WayofTime/alchemicalWizardry/block.png"; - - // Client stuff - public void registerRenderers() - { - // Nothing here as the server doesn't render graphics! - } - - public void registerEntities() - { - } - - public World getClientWorld() - { - return null; - } - - public void registerActions() - { - } - - public void registerEvents() - { - } - - public void registerSoundHandler() - { - // Nothing here as this is a server side proxy - } - - public void registerTileEntities() - { - GameRegistry.registerTileEntity(TEAltar.class, "containerAltar"); - GameRegistry.registerTileEntity(TEMasterStone.class, "containerMasterStone"); - } - - public void registerEntityTrackers() - { - EntityRegistry.registerModEntity(EnergyBlastProjectile.class, "energyBlastProjectile", 0, AlchemicalWizardry.instance, 128, 5, true); - EntityRegistry.registerModEntity(FireProjectile.class, "fireProjectile", 1, AlchemicalWizardry.instance, 128, 5, true); - EntityRegistry.registerModEntity(IceProjectile.class, "iceProjectile", 2, AlchemicalWizardry.instance, 128, 5, true); - EntityRegistry.registerModEntity(ExplosionProjectile.class, "explosionProjectile", 3, AlchemicalWizardry.instance, 128, 5, true); - EntityRegistry.registerModEntity(HolyProjectile.class, "holyProjectile", 4, AlchemicalWizardry.instance, 128, 5, true); - EntityRegistry.registerModEntity(WindGustProjectile.class, "windGustProjectile", 5, AlchemicalWizardry.instance, 128, 5, true); - EntityRegistry.registerModEntity(LightningBoltProjectile.class, "lightningBoltProjectile", 6, AlchemicalWizardry.instance, 128, 5, true); - EntityRegistry.registerModEntity(WaterProjectile.class, "waterProjectile", 7, AlchemicalWizardry.instance, 128, 5, true); - EntityRegistry.registerModEntity(MudProjectile.class, "mudProjectile", 8, AlchemicalWizardry.instance, 128, 5, true); - EntityRegistry.registerModEntity(TeleportProjectile.class, "teleportProjectile", 9, AlchemicalWizardry.instance, 128, 5, true); - EntityRegistry.registerModEntity(EntityEnergyBazookaMainProjectile.class, "energyBazookaMain", 10, AlchemicalWizardry.instance, 128, 3, true); - EntityRegistry.registerModEntity(EntityEnergyBazookaSecondaryProjectile.class, "energyBazookaSecondary", 11, AlchemicalWizardry.instance, 128, 3, true); - EntityRegistry.registerModEntity(EntityBloodLightProjectile.class, "bloodLightProjectile", 12, AlchemicalWizardry.instance, 128, 3, true); - EntityRegistry.registerModEntity(EntityMeteor.class, "meteor", 13, AlchemicalWizardry.instance, 120, 3, true); - EntityRegistry.registerModEntity(EntitySpellProjectile.class, "spellProjectile", 14, AlchemicalWizardry.instance, 128, 3, true); - } - - public void registerTickHandlers() - { - } - - public void InitRendering() - { - // TODO Auto-generated method stub - } -} diff --git a/1.7.2/main/java/WayofTime/alchemicalWizardry/common/EntityAIFly.java b/1.7.2/main/java/WayofTime/alchemicalWizardry/common/EntityAIFly.java deleted file mode 100644 index dffc65cf..00000000 --- a/1.7.2/main/java/WayofTime/alchemicalWizardry/common/EntityAIFly.java +++ /dev/null @@ -1,5 +0,0 @@ -package WayofTime.alchemicalWizardry.common; - -public class EntityAIFly -{ -} diff --git a/1.7.2/main/java/WayofTime/alchemicalWizardry/common/EntityAITargetAggro.java b/1.7.2/main/java/WayofTime/alchemicalWizardry/common/EntityAITargetAggro.java deleted file mode 100644 index 2b6fb25a..00000000 --- a/1.7.2/main/java/WayofTime/alchemicalWizardry/common/EntityAITargetAggro.java +++ /dev/null @@ -1,24 +0,0 @@ -package WayofTime.alchemicalWizardry.common; - -import WayofTime.alchemicalWizardry.common.entity.mob.EntityDemon; -import net.minecraft.entity.ai.EntityAINearestAttackableTarget; - -public class EntityAITargetAggro extends EntityAINearestAttackableTarget -{ - private EntityDemon theCreature; - - public EntityAITargetAggro(EntityDemon par1EntityDemon, Class par2Class, int par3, boolean par4) - { - super(par1EntityDemon, par2Class, par3, par4); - this.theCreature = par1EntityDemon; - } - - /** - * Returns whether the EntityAIBase should begin execution. - */ - @Override - public boolean shouldExecute() - { - return theCreature.isAggro() && super.shouldExecute(); - } -} diff --git a/1.7.2/main/java/WayofTime/alchemicalWizardry/common/EntityAirElemental.java b/1.7.2/main/java/WayofTime/alchemicalWizardry/common/EntityAirElemental.java deleted file mode 100644 index cc5ab8ed..00000000 --- a/1.7.2/main/java/WayofTime/alchemicalWizardry/common/EntityAirElemental.java +++ /dev/null @@ -1,33 +0,0 @@ -package WayofTime.alchemicalWizardry.common; - -import ibxm.Player; -import net.minecraft.entity.Entity; -import net.minecraft.entity.EntityLivingBase; -import net.minecraft.entity.monster.IMob; -import net.minecraft.entity.player.EntityPlayer; -import net.minecraft.potion.PotionEffect; -import net.minecraft.world.World; -import WayofTime.alchemicalWizardry.AlchemicalWizardry; -import WayofTime.alchemicalWizardry.common.entity.mob.EntityElemental; -import WayofTime.alchemicalWizardry.common.spell.complex.effect.SpellHelper; - -public class EntityAirElemental extends EntityElemental implements IMob -{ - public EntityAirElemental(World world) - { - super(world, AlchemicalWizardry.entityAirElementalID); - } - - public void inflictEffectOnEntity(Entity target) - { - if (target instanceof EntityPlayer) - { - SpellHelper.setPlayerSpeedFromServer((EntityPlayer)target, target.motionX, target.motionY + 3, target.motionZ); - ((EntityLivingBase) target).addPotionEffect(new PotionEffect(AlchemicalWizardry.customPotionInhibit.id, 150, 0)); - } else if (target instanceof EntityLivingBase) - { - ((EntityLivingBase) target).motionY += 3.0D; - ((EntityLivingBase) target).addPotionEffect(new PotionEffect(AlchemicalWizardry.customPotionInhibit.id, 150, 0)); - } - } -} diff --git a/1.7.2/main/java/WayofTime/alchemicalWizardry/common/IBindingAgent.java b/1.7.2/main/java/WayofTime/alchemicalWizardry/common/IBindingAgent.java deleted file mode 100644 index 534d4b68..00000000 --- a/1.7.2/main/java/WayofTime/alchemicalWizardry/common/IBindingAgent.java +++ /dev/null @@ -1,6 +0,0 @@ -package WayofTime.alchemicalWizardry.common; - -public interface IBindingAgent -{ - public abstract float getSuccessRateForPotionNumber(int potionEffects); -} diff --git a/1.7.2/main/java/WayofTime/alchemicalWizardry/common/ICatalyst.java b/1.7.2/main/java/WayofTime/alchemicalWizardry/common/ICatalyst.java deleted file mode 100644 index 230cd51c..00000000 --- a/1.7.2/main/java/WayofTime/alchemicalWizardry/common/ICatalyst.java +++ /dev/null @@ -1,8 +0,0 @@ -package WayofTime.alchemicalWizardry.common; - -public interface ICatalyst -{ - public abstract int getCatalystLevel(); - - public abstract boolean isConcentration(); -} diff --git a/1.7.2/main/java/WayofTime/alchemicalWizardry/common/IDemon.java b/1.7.2/main/java/WayofTime/alchemicalWizardry/common/IDemon.java deleted file mode 100644 index eab1d15e..00000000 --- a/1.7.2/main/java/WayofTime/alchemicalWizardry/common/IDemon.java +++ /dev/null @@ -1,10 +0,0 @@ -package WayofTime.alchemicalWizardry.common; - -public interface IDemon -{ - public abstract void setSummonedConditions(); - - public boolean isAggro(); - - public void setAggro(boolean aggro); -} diff --git a/1.7.2/main/java/WayofTime/alchemicalWizardry/common/IFillingAgent.java b/1.7.2/main/java/WayofTime/alchemicalWizardry/common/IFillingAgent.java deleted file mode 100644 index 2202a20d..00000000 --- a/1.7.2/main/java/WayofTime/alchemicalWizardry/common/IFillingAgent.java +++ /dev/null @@ -1,6 +0,0 @@ -package WayofTime.alchemicalWizardry.common; - -public interface IFillingAgent -{ - public abstract int getFilledAmountForPotionNumber(int potionEffects); -} diff --git a/1.7.2/main/java/WayofTime/alchemicalWizardry/common/Int3.java b/1.7.2/main/java/WayofTime/alchemicalWizardry/common/Int3.java deleted file mode 100644 index e1d8d5b4..00000000 --- a/1.7.2/main/java/WayofTime/alchemicalWizardry/common/Int3.java +++ /dev/null @@ -1,16 +0,0 @@ -package WayofTime.alchemicalWizardry.common; - - -public class Int3 -{ - public int xCoord; - public int yCoord; - public int zCoord; - - public Int3(int xCoord, int yCoord, int zCoord) - { - this.xCoord = xCoord; - this.yCoord = yCoord; - this.zCoord = zCoord; - } -} diff --git a/1.7.2/main/java/WayofTime/alchemicalWizardry/common/LifeBucketHandler.java b/1.7.2/main/java/WayofTime/alchemicalWizardry/common/LifeBucketHandler.java deleted file mode 100644 index a7739d1b..00000000 --- a/1.7.2/main/java/WayofTime/alchemicalWizardry/common/LifeBucketHandler.java +++ /dev/null @@ -1,42 +0,0 @@ -package WayofTime.alchemicalWizardry.common; - -import net.minecraft.block.Block; -import net.minecraft.item.ItemStack; -import net.minecraft.util.MovingObjectPosition; -import net.minecraft.world.World; -import net.minecraftforge.event.entity.player.FillBucketEvent; -import WayofTime.alchemicalWizardry.ModBlocks; -import WayofTime.alchemicalWizardry.ModItems; -import cpw.mods.fml.common.eventhandler.Event.Result; -import cpw.mods.fml.common.eventhandler.SubscribeEvent; - -public class LifeBucketHandler -{ - @SubscribeEvent - public void onBucketFill(FillBucketEvent event) - { - ItemStack result = fillCustomBucket(event.world, event.target); - - if (result == null) - { - return; - } - - event.result = result; - event.setResult(Result.ALLOW); - } - - public ItemStack fillCustomBucket(World world, MovingObjectPosition pos) - { - Block block = world.getBlock(pos.blockX, pos.blockY, pos.blockZ); - - if (block!=null && (block.equals(ModBlocks.blockLifeEssence)) && world.getBlockMetadata(pos.blockX, pos.blockY, pos.blockZ) == 0) - { - world.setBlockToAir(pos.blockX, pos.blockY, pos.blockZ); - return new ItemStack(ModItems.bucketLife); - } else - { - return null; - } - } -} \ No newline at end of file diff --git a/1.7.2/main/java/WayofTime/alchemicalWizardry/common/LifeEssence.java b/1.7.2/main/java/WayofTime/alchemicalWizardry/common/LifeEssence.java deleted file mode 100644 index 22ede879..00000000 --- a/1.7.2/main/java/WayofTime/alchemicalWizardry/common/LifeEssence.java +++ /dev/null @@ -1,28 +0,0 @@ -package WayofTime.alchemicalWizardry.common; - -import net.minecraftforge.fluids.Fluid; - -public class LifeEssence extends Fluid -{ - public LifeEssence(String fluidName) - { - super(fluidName); - //setUnlocalizedName("lifeEssence"); - //setBlockID(id); - this.setDensity(2000); - this.setViscosity(2000); - //this.setFlowingIcon(flowingIcon) - } - - @Override - public int getColor() - { - return 0xEEEEEE; - } - - @Override - public String getLocalizedName() - { - return "Life Essence"; - } -} diff --git a/1.7.2/main/java/WayofTime/alchemicalWizardry/common/ModLivingDropsEvent.java b/1.7.2/main/java/WayofTime/alchemicalWizardry/common/ModLivingDropsEvent.java deleted file mode 100644 index 3659dbfe..00000000 --- a/1.7.2/main/java/WayofTime/alchemicalWizardry/common/ModLivingDropsEvent.java +++ /dev/null @@ -1,36 +0,0 @@ -package WayofTime.alchemicalWizardry.common; - -import net.minecraft.entity.passive.EntityAnimal; -import net.minecraft.potion.Potion; -import net.minecraft.potion.PotionEffect; -import net.minecraftforge.event.entity.living.LivingDropsEvent; -import WayofTime.alchemicalWizardry.ModItems; -import cpw.mods.fml.common.eventhandler.SubscribeEvent; - -public class ModLivingDropsEvent -{ - public static double rand; - - @SubscribeEvent - public void onEntityDrop(LivingDropsEvent event) - { - if (event.source.getDamageType().equals("player")) - { - rand = Math.random(); - - if (!(event.entityLiving instanceof EntityAnimal)) - { - PotionEffect effect = event.entityLiving.getActivePotionEffect(Potion.weakness); - - if (effect != null) - { - if (effect.getAmplifier() >= 2) - if (rand < 0.50d) - { - event.entityLiving.dropItem(ModItems.weakBloodShard, 1); - } - } - } - } - } -} \ No newline at end of file diff --git a/1.7.2/main/java/WayofTime/alchemicalWizardry/common/NewPacketHandler.java b/1.7.2/main/java/WayofTime/alchemicalWizardry/common/NewPacketHandler.java deleted file mode 100644 index 8e55d286..00000000 --- a/1.7.2/main/java/WayofTime/alchemicalWizardry/common/NewPacketHandler.java +++ /dev/null @@ -1,809 +0,0 @@ -package WayofTime.alchemicalWizardry.common; - -import io.netty.buffer.ByteBuf; -import io.netty.channel.ChannelHandlerContext; -import io.netty.channel.SimpleChannelInboundHandler; - -import java.util.EnumMap; - -import net.minecraft.client.Minecraft; -import net.minecraft.entity.player.EntityPlayer; -import net.minecraft.entity.player.EntityPlayerMP; -import net.minecraft.network.Packet; -import net.minecraft.tileentity.TileEntity; -import net.minecraft.world.World; -import net.minecraftforge.common.util.ForgeDirection; -import WayofTime.alchemicalWizardry.AlchemicalWizardry; -import WayofTime.alchemicalWizardry.common.tileEntity.TEAltar; -import WayofTime.alchemicalWizardry.common.tileEntity.TEOrientable; -import WayofTime.alchemicalWizardry.common.tileEntity.TEPedestal; -import WayofTime.alchemicalWizardry.common.tileEntity.TEPlinth; -import WayofTime.alchemicalWizardry.common.tileEntity.TESocket; -import WayofTime.alchemicalWizardry.common.tileEntity.TETeleposer; -import WayofTime.alchemicalWizardry.common.tileEntity.TEWritingTable; -import cpw.mods.fml.common.FMLCommonHandler; -import cpw.mods.fml.common.network.FMLEmbeddedChannel; -import cpw.mods.fml.common.network.FMLIndexedMessageToMessageCodec; -import cpw.mods.fml.common.network.FMLOutboundHandler; -import cpw.mods.fml.common.network.NetworkRegistry; -import cpw.mods.fml.relauncher.Side; -import cpw.mods.fml.relauncher.SideOnly; - -/** -* Handles the packet wrangling for IronChest -* @author cpw -* -*/ -public enum NewPacketHandler -{ - INSTANCE; - - /** - * Our channel "pair" from {@link NetworkRegistry} - */ - private EnumMap channels; - - - /** - * Make our packet handler, and add an {@link IronChestCodec} always - */ - private NewPacketHandler() - { - // request a channel pair for IronChest from the network registry - // Add the IronChestCodec as a member of both channel pipelines - this.channels = NetworkRegistry.INSTANCE.newChannel("BloodMagic", new TEAltarCodec()); - if (FMLCommonHandler.instance().getSide() == Side.CLIENT) - { - addClientHandler(); - } - } - - - /** - * This is only called on the client side - it adds an - * {@link IronChestMessageHandler} to the client side pipeline, since the - * only place we expect to handle messages is on the client. - */ - @SideOnly(Side.CLIENT) - private void addClientHandler() - { - FMLEmbeddedChannel clientChannel = this.channels.get(Side.CLIENT); - - String tileAltarCodec = clientChannel.findChannelHandlerNameForType(TEAltarCodec.class); - clientChannel.pipeline().addAfter(tileAltarCodec, "TEAltarHandler", new TEAltarMessageHandler()); - clientChannel.pipeline().addAfter(tileAltarCodec, "TEOrientableHandler", new TEOrientableMessageHandler()); - clientChannel.pipeline().addAfter(tileAltarCodec, "TEPedestalHandler", new TEPedestalMessageHandler()); - clientChannel.pipeline().addAfter(tileAltarCodec, "TEPlinthHandler", new TEPlinthMessageHandler()); - clientChannel.pipeline().addAfter(tileAltarCodec, "TESocketHandler", new TESocketMessageHandler()); - clientChannel.pipeline().addAfter(tileAltarCodec, "TETeleposerHandler", new TETeleposerMessageHandler()); - clientChannel.pipeline().addAfter(tileAltarCodec, "TEWritingTableHandler", new TEWritingTableMessageHandler()); - clientChannel.pipeline().addAfter(tileAltarCodec, "ParticleHandler", new ParticleMessageHandler()); - clientChannel.pipeline().addAfter(tileAltarCodec, "VelocityHandler", new VelocityMessageHandler()); - } - - - /** - * This class simply handles the {@link IronChestMessage} when it's received - * at the client side It can contain client only code, because it's only run - * on the client. - * - * @author cpw - * - */ - private static class TEAltarMessageHandler extends SimpleChannelInboundHandler - { - @Override - protected void channelRead0(ChannelHandlerContext ctx, TEAltarMessage msg) throws Exception - { - World world = AlchemicalWizardry.proxy.getClientWorld(); - TileEntity te = world.getTileEntity(msg.x, msg.y, msg.z); - if (te instanceof TEAltar) - { - TEAltar altar = (TEAltar) te; - - altar.handlePacketData(msg.items, msg.fluids, msg.capacity); - } - } - } - - private static class TEOrientableMessageHandler extends SimpleChannelInboundHandler - { - @Override - protected void channelRead0(ChannelHandlerContext ctx, TEOrientableMessage msg) throws Exception - { - World world = AlchemicalWizardry.proxy.getClientWorld(); - TileEntity te = world.getTileEntity(msg.x, msg.y, msg.z); - if (te instanceof TEOrientable) - { - TEOrientable tile = (TEOrientable)te; - - ((TEOrientable) te).setInputDirection(ForgeDirection.getOrientation(msg.input)); - ((TEOrientable) te).setOutputDirection(ForgeDirection.getOrientation(msg.output)); - } - } - } - - private static class TEPedestalMessageHandler extends SimpleChannelInboundHandler - { - @Override - protected void channelRead0(ChannelHandlerContext ctx, TEPedestalMessage msg) throws Exception - { - World world = AlchemicalWizardry.proxy.getClientWorld(); - TileEntity te = world.getTileEntity(msg.x, msg.y, msg.z); - if (te instanceof TEPedestal) - { - TEPedestal pedestal = (TEPedestal) te; - - pedestal.handlePacketData(msg.items); - } - } - } - - private static class TEPlinthMessageHandler extends SimpleChannelInboundHandler - { - @Override - protected void channelRead0(ChannelHandlerContext ctx, TEPlinthMessage msg) throws Exception - { - World world = AlchemicalWizardry.proxy.getClientWorld(); - TileEntity te = world.getTileEntity(msg.x, msg.y, msg.z); - if (te instanceof TEPlinth) - { - TEPlinth Plinth = (TEPlinth) te; - - Plinth.handlePacketData(msg.items); - } - } - } - - private static class TESocketMessageHandler extends SimpleChannelInboundHandler - { - @Override - protected void channelRead0(ChannelHandlerContext ctx, TESocketMessage msg) throws Exception - { - World world = AlchemicalWizardry.proxy.getClientWorld(); - TileEntity te = world.getTileEntity(msg.x, msg.y, msg.z); - if (te instanceof TESocket) - { - TESocket Socket = (TESocket) te; - - Socket.handlePacketData(msg.items); - } - } - } - - private static class TETeleposerMessageHandler extends SimpleChannelInboundHandler - { - @Override - protected void channelRead0(ChannelHandlerContext ctx, TETeleposerMessage msg) throws Exception - { - World world = AlchemicalWizardry.proxy.getClientWorld(); - TileEntity te = world.getTileEntity(msg.x, msg.y, msg.z); - if (te instanceof TETeleposer) - { - TETeleposer Teleposer = (TETeleposer) te; - - Teleposer.handlePacketData(msg.items); - } - } - } - - private static class TEWritingTableMessageHandler extends SimpleChannelInboundHandler - { - @Override - protected void channelRead0(ChannelHandlerContext ctx, TEWritingTableMessage msg) throws Exception - { - World world = AlchemicalWizardry.proxy.getClientWorld(); - TileEntity te = world.getTileEntity(msg.x, msg.y, msg.z); - if (te instanceof TEWritingTable) - { - TEWritingTable WritingTable = (TEWritingTable) te; - - WritingTable.handlePacketData(msg.items); - } - } - } - - private static class ParticleMessageHandler extends SimpleChannelInboundHandler - { - @Override - protected void channelRead0(ChannelHandlerContext ctx, ParticleMessage msg) throws Exception - { - World world = AlchemicalWizardry.proxy.getClientWorld(); - - world.spawnParticle(msg.particle, msg.xCoord, msg.yCoord, msg.zCoord, msg.xVel, msg.yVel, msg.zVel); - } - } - - private static class VelocityMessageHandler extends SimpleChannelInboundHandler - { - @Override - protected void channelRead0(ChannelHandlerContext ctx, VelocityMessage msg) throws Exception - { - EntityPlayer player = Minecraft.getMinecraft().thePlayer; - - if(player!=null) - { - player.motionX = msg.xVel; - player.motionY = msg.yVel; - player.motionZ = msg.zVel; - } - } - } - - public static class BMMessage - { - int index; - } - - public static class TEAltarMessage extends BMMessage - { - int x; - int y; - int z; - - int[] items; - int[] fluids; - int capacity; - } - - public static class TEOrientableMessage extends BMMessage - { - int x; - int y; - int z; - - int input; - int output; - } - - public static class TEPedestalMessage extends BMMessage - { - int x; - int y; - int z; - - int[] items; - } - - public static class TEPlinthMessage extends BMMessage - { - int x; - int y; - int z; - - int[] items; - } - - public static class TESocketMessage extends BMMessage - { - int x; - int y; - int z; - - int[] items; - } - - public static class TETeleposerMessage extends BMMessage - { - int x; - int y; - int z; - - int[] items; - } - - public static class TEWritingTableMessage extends BMMessage - { - int x; - int y; - int z; - - int[] items; - } - - public static class ParticleMessage extends BMMessage - { - String particle; - - double xCoord; - double yCoord; - double zCoord; - - double xVel; - double yVel; - double zVel; - } - - public static class VelocityMessage extends BMMessage - { - double xVel; - double yVel; - double zVel; - } - - private class TEAltarCodec extends FMLIndexedMessageToMessageCodec - { - public TEAltarCodec() - { - addDiscriminator(0, TEAltarMessage.class); - addDiscriminator(1, TEOrientableMessage.class); - addDiscriminator(2, TEPedestalMessage.class); - addDiscriminator(3, TEPlinthMessage.class); - addDiscriminator(4, TESocketMessage.class); - addDiscriminator(5, TETeleposerMessage.class); - addDiscriminator(6, TEWritingTableMessage.class); - addDiscriminator(7, ParticleMessage.class); - addDiscriminator(8, VelocityMessage.class); - } - - @Override - public void encodeInto(ChannelHandlerContext ctx, BMMessage msg, ByteBuf target) throws Exception - { - target.writeInt(msg.index); - - switch(msg.index) - { - case 0: - target.writeInt(((TEAltarMessage)msg).x); - target.writeInt(((TEAltarMessage)msg).y); - target.writeInt(((TEAltarMessage)msg).z); - - target.writeBoolean(((TEAltarMessage)msg).items != null); - if (((TEAltarMessage)msg).items != null) - { - int[] items = ((TEAltarMessage)msg).items; - for (int j = 0; j < items.length; j++) - { - int i = items[j]; - target.writeInt(i); - } - } - - target.writeBoolean(((TEAltarMessage)msg).fluids != null); - if(((TEAltarMessage)msg).fluids != null) - { - int[] fluids = ((TEAltarMessage)msg).fluids; - for (int j = 0; j < fluids.length; j++) - { - int i = fluids[j]; - target.writeInt(i); - } - } - - target.writeInt(((TEAltarMessage)msg).capacity); - - break; - - case 1: - target.writeInt(((TEOrientableMessage)msg).x); - target.writeInt(((TEOrientableMessage)msg).y); - target.writeInt(((TEOrientableMessage)msg).z); - - target.writeInt(((TEOrientableMessage)msg).input); - target.writeInt(((TEOrientableMessage)msg).output); - - break; - - case 2: - target.writeInt(((TEPedestalMessage)msg).x); - target.writeInt(((TEPedestalMessage)msg).y); - target.writeInt(((TEPedestalMessage)msg).z); - - target.writeBoolean(((TEPedestalMessage)msg).items != null); - if (((TEPedestalMessage)msg).items != null) - { - int[] items = ((TEPedestalMessage)msg).items; - for (int j = 0; j < items.length; j++) - { - int i = items[j]; - target.writeInt(i); - } - } - - break; - - case 3: - target.writeInt(((TEPlinthMessage)msg).x); - target.writeInt(((TEPlinthMessage)msg).y); - target.writeInt(((TEPlinthMessage)msg).z); - - target.writeBoolean(((TEPlinthMessage)msg).items != null); - if (((TEPlinthMessage)msg).items != null) - { - int[] items = ((TEPlinthMessage)msg).items; - for (int j = 0; j < items.length; j++) - { - int i = items[j]; - target.writeInt(i); - } - } - - break; - - case 4: - target.writeInt(((TESocketMessage)msg).x); - target.writeInt(((TESocketMessage)msg).y); - target.writeInt(((TESocketMessage)msg).z); - - target.writeBoolean(((TESocketMessage)msg).items != null); - if (((TESocketMessage)msg).items != null) - { - int[] items = ((TESocketMessage)msg).items; - for (int j = 0; j < items.length; j++) - { - int i = items[j]; - target.writeInt(i); - } - } - - break; - - case 5: - target.writeInt(((TETeleposerMessage)msg).x); - target.writeInt(((TETeleposerMessage)msg).y); - target.writeInt(((TETeleposerMessage)msg).z); - - target.writeBoolean(((TETeleposerMessage)msg).items != null); - if (((TETeleposerMessage)msg).items != null) - { - int[] items = ((TETeleposerMessage)msg).items; - for (int j = 0; j < items.length; j++) - { - int i = items[j]; - target.writeInt(i); - } - } - - break; - - case 6: - target.writeInt(((TEWritingTableMessage)msg).x); - target.writeInt(((TEWritingTableMessage)msg).y); - target.writeInt(((TEWritingTableMessage)msg).z); - - target.writeBoolean(((TEWritingTableMessage)msg).items != null); - if (((TEWritingTableMessage)msg).items != null) - { - int[] items = ((TEWritingTableMessage)msg).items; - for (int j = 0; j < items.length; j++) - { - int i = items[j]; - target.writeInt(i); - } - } - - break; - - case 7: - String str = ((ParticleMessage)msg).particle; - target.writeInt(str.length()); - for(int i=0; i 0) -// { -// if (data.currentEssence < maxEssence) -// { -// data.currentEssence = Math.min(maxEssence, data.currentEssence + addedEssence); -// data.markDirty(); -// } -// -// if (!user.capabilities.isCreativeMode) -// { -// for (int i = 0; i < ((addedEssence + 99) / 100); i++) -// { -// //player.setEntityHealth((player.getHealth()-1)); -// user.setHealth((user.getHealth() - 1)); -// -// if (user.getHealth() <= 0.5f) -// { -// //user.inventory.dropAllItems(); -// user.onDeath(DamageSource.generic); -// return; -// } -// } -// } -// } else -// { -// int removedEssence = -addedEssence; -// -// if ((data.currentEssence - removedEssence) >= 0) -// { -// data.currentEssence -= removedEssence; -// data.markDirty(); -// } else -// { -// if (removedEssence >= 100) -// { -// for (int i = 0; i < ((removedEssence + 99) / 100); i++) -// { -// //player.setEntityHealth((player.getHealth()-1)); -// user.setHealth((user.getHealth() - 1)); -// -// if (user.getHealth() <= 0.5f) -// { -// //user.inventory.dropAllItems(); -// user.onDeath(DamageSource.generic); -// return; -// } -// } -// } else -// { -// if (user.worldObj.rand.nextInt(100) <= removedEssence) -// { -// user.setHealth((user.getHealth() - 1)); -// -// if (user.getHealth() <= 0.5f) -// { -// //user.inventory.dropAllItems(); -// user.onDeath(DamageSource.generic); -// return; -// } -// } -// } -// } -// } -// -// //PacketDispatcher.sendPacketToPlayer(PacketHandler.getPacket(ownerName), (Player)user); -//// data.currentEssence = addedEssence; -//// data.markDirty(); -// } catch (IOException e) -// { -// e.printStackTrace(); -// } -// } else if (packet.channel.equals("InfiniteLPPath")) -// { -// ByteArrayInputStream bin = new ByteArrayInputStream(packet.data); -// DataInputStream din = new DataInputStream(bin); -// -// try -// { -// EntityPlayer user = (EntityPlayer) player; -// int length = din.readInt(); -// String ownerName = ""; -// -// for (int i = 0; i < length; i++) -// { -// ownerName = ownerName + din.readChar(); -// } -// -// boolean fill = din.readBoolean(); -// World world = MinecraftServer.getServer().worldServers[0]; -// LifeEssenceNetwork data = (LifeEssenceNetwork) world.loadItemData(LifeEssenceNetwork.class, ownerName); -// -// if (data == null) -// { -// data = new LifeEssenceNetwork(ownerName); -// world.setItemData(ownerName, data); -// } -// -// if (fill) -// { -// data.currentEssence += 1000000; -// data.markDirty(); -// } else -// { -// data.currentEssence = 0; -// data.markDirty(); -// } -// -// //PacketDispatcher.sendPacketToPlayer(PacketHandler.getPacket(ownerName), (Player)user); -//// data.currentEssence = addedEssence; -//// data.markDirty(); -// } catch (IOException e) -// { -// e.printStackTrace(); -// } -// } else if (packet.channel.equals("GetLifeEssence")) -// { -// ByteArrayInputStream bin = new ByteArrayInputStream(packet.data); -// DataInputStream din = new DataInputStream(bin); -// -// try -// { -// int length = din.readInt(); -// String ownerName = ""; -// -// for (int i = 0; i < length; i++) -// { -// ownerName = ownerName + din.readChar(); -// } -// -// World world = MinecraftServer.getServer().worldServers[0]; -// LifeEssenceNetwork data = (LifeEssenceNetwork) world.loadItemData(LifeEssenceNetwork.class, ownerName); -// -// if (data == null) -// { -// data = new LifeEssenceNetwork(ownerName); -// world.setItemData(ownerName, data); -// } -// -// if (player instanceof EntityPlayer) -// { -// EntityPlayer owner = (EntityPlayer) player; -// ChatMessageComponent chatmessagecomponent = new ChatMessageComponent(); -// //chatmessagecomponent.func_111072_b("Current Essence: " + data.currentEssence + "LP"); -// chatmessagecomponent.addText("Current Essence: " + data.currentEssence + "LP"); -// owner.sendChatToPlayer(chatmessagecomponent); -// } -// } catch (IOException e) -// { -// e.printStackTrace(); -// } -// } else if (packet.channel.equals("GetAltarEssence")) -// { -// ByteArrayInputStream bin = new ByteArrayInputStream(packet.data); -// DataInputStream din = new DataInputStream(bin); -// -// try -// { -// int x = din.readInt(); -// int y = din.readInt(); -// int z = din.readInt(); -// -// if (player instanceof EntityPlayer) -// { -// EntityPlayer owner = (EntityPlayer) player; -// World world = owner.worldObj; -// TEAltar tileEntity = (TEAltar) world.getBlockTileEntity(x, y, z); -// -// if (tileEntity != null) -// { -// int level = UpgradedAltars.isAltarValid(world, x, y, z); -// ChatMessageComponent chatmessagecomponent = new ChatMessageComponent(); -// chatmessagecomponent.addText("Altar's Current Essence: " + tileEntity.getFluidAmount() + "LP" + "\n" + "Altar's Current Tier: " + level + "\nCapacity: " + tileEntity.getCapacity() + "LP"); -// //chatmessagecomponent.addText(); -// owner.sendChatToPlayer(chatmessagecomponent); -// } -// } -// } catch (IOException e) -// { -// e.printStackTrace(); -// } -// } else if (packet.channel.equals("TESocket")) -// { -// ByteArrayDataInput dat = ByteStreams.newDataInput(packet.data); -// int x = dat.readInt(); -// int y = dat.readInt(); -// int z = dat.readInt(); -// boolean hasStacks = dat.readByte() != 0; -// int[] items = new int[0]; -// -// if (hasStacks) -// { -// items = new int[1 * 3]; -// -// for (int i = 0; i < items.length; i++) -// { -// items[i] = dat.readInt(); -// } -// } -// -// World world = AlchemicalWizardry.proxy.getClientWorld(); -// TileEntity tileEntity = world.getBlockTileEntity(x, y, z); -// -// if (tileEntity instanceof TESocket) -// { -// TESocket tileEntityAltar = (TESocket) tileEntity; -// tileEntityAltar.handlePacketData(items); -// } -// } else if (packet.channel.equals("TEWritingTable")) -// { -// ByteArrayDataInput dat = ByteStreams.newDataInput(packet.data); -// int x = dat.readInt(); -// int y = dat.readInt(); -// int z = dat.readInt(); -// boolean hasStacks = dat.readByte() != 0; -// int[] items = new int[0]; -// -// if (hasStacks) -// { -// items = new int[7 * 3]; -// -// for (int i = 0; i < items.length; i++) -// { -// items[i] = dat.readInt(); -// } -// } -// -// World world = AlchemicalWizardry.proxy.getClientWorld(); -// TileEntity tileEntity = world.getBlockTileEntity(x, y, z); -// -// if (tileEntity instanceof TEWritingTable) -// { -// TEWritingTable tileEntityAltar = (TEWritingTable) tileEntity; -// tileEntityAltar.handlePacketData(items); -// } -// } else if (packet.channel.equals("TEOrientor")) -// { -// ByteArrayDataInput dat = ByteStreams.newDataInput(packet.data); -// int x = dat.readInt(); -// int y = dat.readInt(); -// int z = dat.readInt(); -// World world = AlchemicalWizardry.proxy.getClientWorld(); -// TileEntity tileEntity = world.getBlockTileEntity(x, y, z); -// -// if (tileEntity instanceof TEOrientable) -// { -// TEOrientable tileEntityOrientable = (TEOrientable) tileEntity; -// tileEntityOrientable.setInputDirection(ForgeDirection.getOrientation(dat.readInt())); -// tileEntityOrientable.setOutputDirection(ForgeDirection.getOrientation(dat.readInt())); -// world.markBlockForRenderUpdate(x, y, z); -// } -// } else if (packet.channel.equals("TEPedestal")) -// { -// ByteArrayDataInput dat = ByteStreams.newDataInput(packet.data); -// int x = dat.readInt(); -// int y = dat.readInt(); -// int z = dat.readInt(); -// boolean hasStacks = dat.readByte() != 0; -// int[] items = new int[0]; -// -// if (hasStacks) -// { -// items = new int[1 * 3]; -// -// for (int i = 0; i < items.length; i++) -// { -// items[i] = dat.readInt(); -// } -// } -// -// World world = AlchemicalWizardry.proxy.getClientWorld(); -// TileEntity tileEntity = world.getBlockTileEntity(x, y, z); -// -// if (tileEntity instanceof TEPedestal) -// { -// TEPedestal tileEntityAltar = (TEPedestal) tileEntity; -// tileEntityAltar.handlePacketData(items); -// } -// } else if (packet.channel.equals("TEPlinth")) -// { -// ByteArrayDataInput dat = ByteStreams.newDataInput(packet.data); -// int x = dat.readInt(); -// int y = dat.readInt(); -// int z = dat.readInt(); -// boolean hasStacks = dat.readByte() != 0; -// int[] items = new int[0]; -// -// if (hasStacks) -// { -// items = new int[1 * 3]; -// -// for (int i = 0; i < items.length; i++) -// { -// items[i] = dat.readInt(); -// } -// } -// -// World world = AlchemicalWizardry.proxy.getClientWorld(); -// TileEntity tileEntity = world.getBlockTileEntity(x, y, z); -// -// if (tileEntity instanceof TEPlinth) -// { -// TEPlinth tileEntityAltar = (TEPlinth) tileEntity; -// tileEntityAltar.handlePacketData(items); -// } -// } else if (packet.channel.equals("TETeleposer")) -// { -// ByteArrayDataInput dat = ByteStreams.newDataInput(packet.data); -// int x = dat.readInt(); -// int y = dat.readInt(); -// int z = dat.readInt(); -// boolean hasStacks = dat.readByte() != 0; -// int[] items = new int[0]; -// -// if (hasStacks) -// { -// items = new int[1 * 3]; -// -// for (int i = 0; i < items.length; i++) -// { -// items[i] = dat.readInt(); -// } -// } -// -// World world = AlchemicalWizardry.proxy.getClientWorld(); -// TileEntity tileEntity = world.getBlockTileEntity(x, y, z); -// -// if (tileEntity instanceof TETeleposer) -// { -// TETeleposer tileEntityAltar = (TETeleposer) tileEntity; -// tileEntityAltar.handlePacketData(items); -// } -// } else if (packet.channel.equals("SetPlayerVel")) -// { -// ByteArrayDataInput dat = ByteStreams.newDataInput(packet.data); -// double xVel = dat.readDouble(); -// double yVel = dat.readDouble(); -// double zVel = dat.readDouble(); -// ((EntityPlayer) player).setVelocity(xVel, yVel, zVel); -// } else if (packet.channel.equals("SetPlayerPos")) -// { -// ByteArrayDataInput dat = ByteStreams.newDataInput(packet.data); -// double xVel = dat.readDouble(); -// double yVel = dat.readDouble(); -// double zVel = dat.readDouble(); -// ((EntityPlayer) player).setPosition(xVel, yVel, zVel); -// } -// } -// -// public static Packet getPacket(TEAltar tileEntity) -// { -// ByteArrayOutputStream bos = new ByteArrayOutputStream(140); -// DataOutputStream dos = new DataOutputStream(bos); -// int[] items = tileEntity.buildIntDataList(); -// boolean hasStacks = (items != null); -// -// try -// { -// dos.writeInt(tileEntity.xCoord); -// dos.writeInt(tileEntity.yCoord); -// dos.writeInt(tileEntity.zCoord); -// dos.writeByte(hasStacks ? 1 : 0); -// -// if (hasStacks) -// { -// for (int i = 0; i < 3; i++) -// { -// dos.writeInt(items[i]); -// } -// } -// -// FluidStack flMain = tileEntity.getFluid(); -// -// if (flMain == null) -// { -// dos.writeInt(AlchemicalWizardry.lifeEssenceFluid.getBlockID()); -// dos.writeInt(0); -// } else -// { -// dos.writeInt(flMain.fluidID); -// dos.writeInt(flMain.amount); -// } -// -// FluidStack flOut = tileEntity.getOutputFluid(); -// -// if (flOut == null) -// { -// dos.writeInt(AlchemicalWizardry.lifeEssenceFluid.getBlockID()); -// dos.writeInt(0); -// } else -// { -// dos.writeInt(flOut.fluidID); -// dos.writeInt(flOut.amount); -// } -// -// FluidStack flIn = tileEntity.getInputFluid(); -// -// if (flIn == null) -// { -// dos.writeInt(AlchemicalWizardry.lifeEssenceFluid.getBlockID()); -// dos.writeInt(0); -// } else -// { -// dos.writeInt(flIn.fluidID); -// dos.writeInt(flIn.amount); -// } -// -// dos.writeInt(tileEntity.capacity); -// } catch (IOException e) -// { -// e.printStackTrace(); -// } -// -// Packet250CustomPayload pkt = new Packet250CustomPayload(); -// pkt.channel = "BloodAltar"; -// pkt.data = bos.toByteArray(); -// pkt.length = bos.size(); -// pkt.isChunkDataPacket = true; -// return pkt; -// } -// -// public static Packet getPacket(TESocket tileEntity) -// { -// ByteArrayOutputStream bos = new ByteArrayOutputStream(140); -// DataOutputStream dos = new DataOutputStream(bos); -// int[] items = tileEntity.buildIntDataList(); -// boolean hasStacks = (items != null); -// -// try -// { -// dos.writeInt(tileEntity.xCoord); -// dos.writeInt(tileEntity.yCoord); -// dos.writeInt(tileEntity.zCoord); -// dos.writeByte(hasStacks ? 1 : 0); -// -// if (hasStacks) -// { -// for (int i = 0; i < 3; i++) -// { -// dos.writeInt(items[i]); -// } -// } -// } catch (IOException e) -// { -// e.printStackTrace(); -// } -// -// Packet250CustomPayload pkt = new Packet250CustomPayload(); -// pkt.channel = "TESocket"; -// pkt.data = bos.toByteArray(); -// pkt.length = bos.size(); -// pkt.isChunkDataPacket = true; -// return pkt; -// } -// -// public static Packet getPacket(String ownerName, int addedEssence, int maxEssence) -// //Packet to be sent to server to change essence -// { -// ByteArrayOutputStream bos = new ByteArrayOutputStream(140); -// DataOutputStream dos = new DataOutputStream(bos); -// -// try -// { -// dos.writeInt(ownerName.length()); -// dos.writeChars(ownerName); -// dos.writeInt(addedEssence); -// dos.writeInt(maxEssence); //Used for Blood Orbs, but does nothing for other items -// } catch (IOException e) -// { -// e.printStackTrace(); -// } -// -// Packet250CustomPayload pkt = new Packet250CustomPayload(); -// pkt.channel = "SetLifeEssence"; -// pkt.data = bos.toByteArray(); -// pkt.length = bos.size(); -// //pkt.isChunkDataPacket = true; -// return pkt; -// } -// -// public static Packet getPacket(String ownerName) //stores the current essence in the player's NBT -// { -// ByteArrayOutputStream bos = new ByteArrayOutputStream(140); -// DataOutputStream dos = new DataOutputStream(bos); -// -// try -// { -// dos.writeInt(ownerName.length()); -// dos.writeChars(ownerName); -// } catch (IOException e) -// { -// e.printStackTrace(); -// } -// -// Packet250CustomPayload pkt = new Packet250CustomPayload(); -// pkt.channel = "GetLifeEssence"; -// pkt.data = bos.toByteArray(); -// pkt.length = bos.size(); -// //pkt.isChunkDataPacket = true; -// return pkt; -// } -// -// public static Packet getAltarPacket(int x, int y, int z) -// { -// ByteArrayOutputStream bos = new ByteArrayOutputStream(140); -// DataOutputStream dos = new DataOutputStream(bos); -// -// try -// { -// dos.writeInt(x); -// dos.writeInt(y); -// dos.writeInt(z); -// } catch (IOException e) -// { -// e.printStackTrace(); -// } -// -// Packet250CustomPayload pkt = new Packet250CustomPayload(); -// pkt.channel = "GetAltarEssence"; -// pkt.data = bos.toByteArray(); -// pkt.length = bos.size(); -// //pkt.isChunkDataPacket = true; -// return pkt; -// } -// -// public static Packet getPacket(TEWritingTable tileEntity) -// { -// // TODO Auto-generated method stub -// ByteArrayOutputStream bos = new ByteArrayOutputStream(140); -// DataOutputStream dos = new DataOutputStream(bos); -// int[] items = tileEntity.buildIntDataList(); -// boolean hasStacks = (items != null); -// -// try -// { -// dos.writeInt(tileEntity.xCoord); -// dos.writeInt(tileEntity.yCoord); -// dos.writeInt(tileEntity.zCoord); -// dos.writeByte(hasStacks ? 1 : 0); -// -// if (hasStacks) -// { -// for (int i = 0; i < 3 * 7; i++) -// { -// dos.writeInt(items[i]); -// } -// } -// } catch (IOException e) -// { -// e.printStackTrace(); -// } -// -// Packet250CustomPayload pkt = new Packet250CustomPayload(); -// pkt.channel = "TEWritingTable"; -// pkt.data = bos.toByteArray(); -// pkt.length = bos.size(); -// pkt.isChunkDataPacket = true; -// return pkt; -// } -// -// public static Packet getPacket(TEPedestal tileEntity) -// { -// // TODO Auto-generated method stub -// ByteArrayOutputStream bos = new ByteArrayOutputStream(140); -// DataOutputStream dos = new DataOutputStream(bos); -// int[] items = tileEntity.buildIntDataList(); -// boolean hasStacks = (items != null); -// -// try -// { -// dos.writeInt(tileEntity.xCoord); -// dos.writeInt(tileEntity.yCoord); -// dos.writeInt(tileEntity.zCoord); -// dos.writeByte(hasStacks ? 1 : 0); -// -// if (hasStacks) -// { -// for (int i = 0; i < 3 * 1; i++) -// { -// dos.writeInt(items[i]); -// } -// } -// } catch (IOException e) -// { -// e.printStackTrace(); -// } -// -// Packet250CustomPayload pkt = new Packet250CustomPayload(); -// pkt.channel = "TEPedestal"; -// pkt.data = bos.toByteArray(); -// pkt.length = bos.size(); -// pkt.isChunkDataPacket = true; -// return pkt; -// } -// -// public static Packet getPacket(TEPlinth tileEntity) -// { -// // TODO Auto-generated method stub -// ByteArrayOutputStream bos = new ByteArrayOutputStream(140); -// DataOutputStream dos = new DataOutputStream(bos); -// int[] items = tileEntity.buildIntDataList(); -// boolean hasStacks = (items != null); -// -// try -// { -// dos.writeInt(tileEntity.xCoord); -// dos.writeInt(tileEntity.yCoord); -// dos.writeInt(tileEntity.zCoord); -// dos.writeByte(hasStacks ? 1 : 0); -// -// if (hasStacks) -// { -// for (int i = 0; i < 3 * 1; i++) -// { -// dos.writeInt(items[i]); -// } -// } -// } catch (IOException e) -// { -// e.printStackTrace(); -// } -// -// Packet250CustomPayload pkt = new Packet250CustomPayload(); -// pkt.channel = "TEPlinth"; -// pkt.data = bos.toByteArray(); -// pkt.length = bos.size(); -// pkt.isChunkDataPacket = true; -// return pkt; -// } -// -// public static Packet getPacket(TETeleposer tileEntity) -// { -// // TODO Auto-generated method stub -// ByteArrayOutputStream bos = new ByteArrayOutputStream(140); -// DataOutputStream dos = new DataOutputStream(bos); -// int[] items = tileEntity.buildIntDataList(); -// boolean hasStacks = (items != null); -// -// try -// { -// dos.writeInt(tileEntity.xCoord); -// dos.writeInt(tileEntity.yCoord); -// dos.writeInt(tileEntity.zCoord); -// dos.writeByte(hasStacks ? 1 : 0); -// -// if (hasStacks) -// { -// for (int i = 0; i < 3 * 1; i++) -// { -// dos.writeInt(items[i]); -// } -// } -// } catch (IOException e) -// { -// e.printStackTrace(); -// } -// -// Packet250CustomPayload pkt = new Packet250CustomPayload(); -// pkt.channel = "TETeleposer"; -// pkt.data = bos.toByteArray(); -// pkt.length = bos.size(); -// pkt.isChunkDataPacket = true; -// return pkt; -// } -// -// public static Packet getCustomParticlePacket(String str, double x, double y, double z, double xVel, double yVel, double zVel) -// { -// ByteArrayOutputStream bos = new ByteArrayOutputStream(140); -// DataOutputStream dos = new DataOutputStream(bos); -// -// try -// { -// dos.writeInt(str.length()); -// dos.writeChars(str); -// dos.writeDouble(x); -// dos.writeDouble(y); -// dos.writeDouble(z); -// dos.writeDouble(xVel); -// dos.writeDouble(yVel); -// dos.writeDouble(zVel); -// } catch (IOException e) -// { -// e.printStackTrace(); -// } -// -// Packet250CustomPayload pkt = new Packet250CustomPayload(); -// pkt.channel = "CustomParticle"; -// pkt.data = bos.toByteArray(); -// pkt.length = bos.size(); -// pkt.isChunkDataPacket = false; -// return pkt; -// } -// -// public static Packet getPlayerVelocitySettingPacket(double xVel, double yVel, double zVel) -// { -// ByteArrayOutputStream bos = new ByteArrayOutputStream(140); -// DataOutputStream dos = new DataOutputStream(bos); -// -// try -// { -// dos.writeDouble(xVel); -// dos.writeDouble(yVel); -// dos.writeDouble(zVel); -// } catch (IOException e) -// { -// e.printStackTrace(); -// } -// -// Packet250CustomPayload pkt = new Packet250CustomPayload(); -// pkt.channel = "SetPlayerVel"; -// pkt.data = bos.toByteArray(); -// pkt.length = bos.size(); -// pkt.isChunkDataPacket = false; -// return pkt; -// } -// -// public static Packet getPlayerPositionSettingPacket(double xVel, double yVel, double zVel) -// { -// ByteArrayOutputStream bos = new ByteArrayOutputStream(140); -// DataOutputStream dos = new DataOutputStream(bos); -// -// try -// { -// dos.writeDouble(xVel); -// dos.writeDouble(yVel); -// dos.writeDouble(zVel); -// } catch (IOException e) -// { -// e.printStackTrace(); -// } -// -// Packet250CustomPayload pkt = new Packet250CustomPayload(); -// pkt.channel = "SetPlayerPos"; -// pkt.data = bos.toByteArray(); -// pkt.length = bos.size(); -// pkt.isChunkDataPacket = false; -// return pkt; -// } -// -// public static Packet getCreativeCheatPacket(String ownerName, boolean isFill) -// { -// ByteArrayOutputStream bos = new ByteArrayOutputStream(140); -// DataOutputStream dos = new DataOutputStream(bos); -// -// try -// { -// dos.writeInt(ownerName.length()); -// dos.writeChars(ownerName); -// dos.writeBoolean(isFill); -// } catch (IOException e) -// { -// e.printStackTrace(); -// } -// -// Packet250CustomPayload pkt = new Packet250CustomPayload(); -// pkt.channel = "InfiniteLPPath"; -// pkt.data = bos.toByteArray(); -// pkt.length = bos.size(); -// pkt.isChunkDataPacket = false; -// return pkt; -// } -// -// public static Packet getBlockOrientationPacket(TEOrientable tileEntity) -// { -// ByteArrayOutputStream bos = new ByteArrayOutputStream(140); -// DataOutputStream dos = new DataOutputStream(bos); -// -// try -// { -// dos.writeInt(tileEntity.xCoord); -// dos.writeInt(tileEntity.yCoord); -// dos.writeInt(tileEntity.zCoord); -// dos.writeInt(tileEntity.getIntForForgeDirection(tileEntity.getInputDirection())); -// dos.writeInt(tileEntity.getIntForForgeDirection(tileEntity.getOutputDirection())); -// } catch (IOException e) -// { -// e.printStackTrace(); -// } -// -// Packet250CustomPayload pkt = new Packet250CustomPayload(); -// pkt.channel = "TEOrientor"; -// pkt.data = bos.toByteArray(); -// pkt.length = bos.size(); -// pkt.isChunkDataPacket = true; -// return pkt; -// } -} diff --git a/1.7.2/main/java/WayofTime/alchemicalWizardry/common/PlinthComponent.java b/1.7.2/main/java/WayofTime/alchemicalWizardry/common/PlinthComponent.java deleted file mode 100644 index 6232828a..00000000 --- a/1.7.2/main/java/WayofTime/alchemicalWizardry/common/PlinthComponent.java +++ /dev/null @@ -1,37 +0,0 @@ -package WayofTime.alchemicalWizardry.common; - -public class PlinthComponent -{ - public int xOffset; - public int yOffset; - public int zOffset; - public int ring; - - public PlinthComponent(int xOffset, int yOffset, int zOffset, int ring) - { - this.xOffset = xOffset; - this.yOffset = yOffset; - this.zOffset = zOffset; - this.ring = ring; - } - - public int getXOffset() - { - return xOffset; - } - - public int getYOffset() - { - return yOffset; - } - - public int getZOffset() - { - return zOffset; - } - - public int getRing() - { - return ring; - } -} diff --git a/1.7.2/main/java/WayofTime/alchemicalWizardry/common/block/ArmourForge.java b/1.7.2/main/java/WayofTime/alchemicalWizardry/common/block/ArmourForge.java deleted file mode 100644 index d1bc6a1d..00000000 --- a/1.7.2/main/java/WayofTime/alchemicalWizardry/common/block/ArmourForge.java +++ /dev/null @@ -1,336 +0,0 @@ -package WayofTime.alchemicalWizardry.common.block; - -import java.util.ArrayList; -import java.util.List; - -import net.minecraft.block.Block; -import net.minecraft.block.material.Material; -import net.minecraft.client.renderer.texture.IIconRegister; -import net.minecraft.entity.effect.EntityLightningBolt; -import net.minecraft.entity.item.EntityItem; -import net.minecraft.entity.player.EntityPlayer; -import net.minecraft.item.Item; -import net.minecraft.item.ItemStack; -import net.minecraft.nbt.NBTTagCompound; -import net.minecraft.tileentity.TileEntity; -import net.minecraft.world.World; -import WayofTime.alchemicalWizardry.AlchemicalWizardry; -import WayofTime.alchemicalWizardry.ModItems; -import WayofTime.alchemicalWizardry.api.items.interfaces.ArmourUpgrade; -import WayofTime.alchemicalWizardry.common.ArmourComponent; -import WayofTime.alchemicalWizardry.common.items.BoundArmour; -import WayofTime.alchemicalWizardry.common.spell.complex.effect.SpellHelper; -import WayofTime.alchemicalWizardry.common.tileEntity.TEAltar; -import WayofTime.alchemicalWizardry.common.tileEntity.TESocket; -import cpw.mods.fml.relauncher.Side; -import cpw.mods.fml.relauncher.SideOnly; - -public class ArmourForge extends Block -{ - public static List helmetList = new ArrayList(); - public static List plateList = new ArrayList(); - public static List leggingsList = new ArrayList(); - public static List bootsList = new ArrayList(); - - public ArmourForge() - { - super(Material.iron); - setHardness(2.0F); - setResistance(5.0F); - setCreativeTab(AlchemicalWizardry.tabBloodMagic); - this.setBlockName("armourForge"); - //setUnlocalizedName("armourForge"); - // TODO Auto-generated constructor stub - } - - @Override - @SideOnly(Side.CLIENT) - public void registerBlockIcons(IIconRegister iconRegister) - { - this.blockIcon = iconRegister.registerIcon("AlchemicalWizardry:SoulForge"); - } - - @Override - public boolean onBlockActivated(World world, int x, int y, int z, EntityPlayer player, int idk, float what, float these, float are) - { - if (world.isRemote) - { - return false; - } - - int armourType = getArmourType(world, x, y, z); - - if (armourType == -1) - { - return false; - } - - int direction = getDirectionForArmourType(world, x, y, z, armourType); - - if (!isParadigmValid(armourType, direction, world, x, y, z)) - { - return false; - } - - List list = null; - ItemStack armourPiece = null; - - switch (armourType) - { - case 0: - list = plateList; - armourPiece = new ItemStack(ModItems.boundPlate, 1, 0); - break; - - case 1: - list = leggingsList; - armourPiece = new ItemStack(ModItems.boundLeggings, 1, 0); - break; - - case 2: - list = helmetList; - armourPiece = new ItemStack(ModItems.boundHelmet, 1, 0); - break; - - case 3: - list = bootsList; - armourPiece = new ItemStack(ModItems.boundBoots, 1, 0); - break; - } - - if (list == null) - { - return false; - } - - if (armourPiece == null) - { - return false; - } - - if (armourPiece.stackTagCompound == null) - { - armourPiece.setTagCompound(new NBTTagCompound()); - } - - for (ArmourComponent ac : list) - { - int xOff = ac.getXOff(); - int zOff = ac.getZOff(); - TileEntity tileEntity; - - switch (direction) - { - case 1: - tileEntity = world.getTileEntity(x + xOff, y, z - zOff); - break; - - case 2: - tileEntity = world.getTileEntity(x + zOff, y, z + xOff); - break; - - case 3: - tileEntity = world.getTileEntity(x - xOff, y, z + zOff); - break; - - case 4: - tileEntity = world.getTileEntity(x - zOff, y, z - xOff); - break; - - case 5: - tileEntity = world.getTileEntity(x + xOff, y + zOff, z); - break; - - case 6: - tileEntity = world.getTileEntity(x, y + zOff, z + xOff); - break; - - default: - tileEntity = null; - } - - if (tileEntity instanceof TESocket) - { - ItemStack itemStack = ((TESocket) tileEntity).getStackInSlot(0); - int xCoord = tileEntity.xCoord; - int yCoord = tileEntity.yCoord; - int zCoord = tileEntity.zCoord; - ((TESocket) tileEntity).setInventorySlotContents(0, null); - world.setBlockToAir(tileEntity.xCoord, tileEntity.yCoord, tileEntity.zCoord); - - for (int i = 0; i < 8; i++) - { - //PacketDispatcher.sendPacketToAllAround(xCoord, yCoord, zCoord, 20, world.provider.dimensionId, TEAltar.getParticlePacket(xCoord, yCoord, zCoord, (short) 1)); - SpellHelper.sendIndexedParticleToAllAround(world, xCoord, yCoord, zCoord, 20, world.provider.dimensionId, 1, xCoord, yCoord, zCoord); - } - - if (itemStack != null) - { - Item item = itemStack.getItem(); - - if (item instanceof ArmourUpgrade) - { - ((BoundArmour) armourPiece.getItem()).hasAddedToInventory(armourPiece, itemStack.copy()); - ((TESocket) tileEntity).setInventorySlotContents(0, null); - } - } - } - } - - if (armourPiece != null) - { - int xOff = (world.rand.nextInt(11) - 5); - int zOff = (int) (Math.sqrt(25 - xOff * xOff) * (world.rand.nextInt(2) - 0.5) * 2); - world.addWeatherEffect(new EntityLightningBolt(world, x + xOff, y + 5, z + zOff)); - world.spawnEntityInWorld(new EntityItem(world, x, y + 1, z, armourPiece)); - } - - return true; - } - - //0 for plate, 1 for leggings, 2 for helmet, 3 for boots - public int getArmourType(World world, int x, int y, int z) - { - for (int i = 0; i <= 3; i++) - { - if (getDirectionForArmourType(world, x, y, z, i) != -1) - { - return i; - } - } - - return -1; - } - - public int getDirectionForArmourType(World world, int x, int y, int z, int armourType) - { - for (int i = 1; i <= 6; i++) - { - if (isParadigmValid(armourType, i, world, x, y, z)) - { - return i; - } - } - - return -1; - } - - public boolean isParadigmValid(int armourType, int direction, World world, int x, int y, int z) - { - List list = null; - - switch (armourType) - { - case 0: - list = plateList; - break; - - case 1: - list = leggingsList; - break; - - case 2: - list = helmetList; - break; - - case 3: - list = bootsList; - break; - } - - if (list == null) - { - return false; - } - - for (ArmourComponent ac : list) - { - int xOff = ac.getXOff(); - int zOff = ac.getZOff(); - - switch (direction) - { - case 1: - if (!(world.getTileEntity(x + xOff, y, z - zOff) instanceof TESocket)) - { - return false; - } - - break; - - case 2: - if (!(world.getTileEntity(x + zOff, y, z + xOff) instanceof TESocket)) - { - return false; - } - - break; - - case 3: - if (!(world.getTileEntity(x - xOff, y, z + zOff) instanceof TESocket)) - { - return false; - } - - break; - - case 4: - if (!(world.getTileEntity(x - zOff, y, z - xOff) instanceof TESocket)) - { - return false; - } - - break; - - case 5: - if (!(world.getTileEntity(x + xOff, y + zOff, z) instanceof TESocket)) - { - return false; - } - - break; - - case 6: - if (!(world.getTileEntity(x, y + zOff, z + xOff) instanceof TESocket)) - { - return false; - } - - break; - - default: - return false; - } - } - - return true; - } - - public static void initializeRecipes() - { - helmetList.add(new ArmourComponent(-1, 1)); - helmetList.add(new ArmourComponent(0, 1)); - helmetList.add(new ArmourComponent(1, 1)); - helmetList.add(new ArmourComponent(-1, 0)); - helmetList.add(new ArmourComponent(1, 0)); - bootsList.add(new ArmourComponent(-1, 1)); - bootsList.add(new ArmourComponent(1, 1)); - bootsList.add(new ArmourComponent(-1, 0)); - bootsList.add(new ArmourComponent(1, 0)); - plateList.add(new ArmourComponent(-1, 0)); - plateList.add(new ArmourComponent(1, 0)); - plateList.add(new ArmourComponent(-1, -1)); - plateList.add(new ArmourComponent(0, -1)); - plateList.add(new ArmourComponent(1, -1)); - plateList.add(new ArmourComponent(-1, -2)); - plateList.add(new ArmourComponent(0, -2)); - plateList.add(new ArmourComponent(1, -2)); - leggingsList.add(new ArmourComponent(-1, 1)); - leggingsList.add(new ArmourComponent(0, 1)); - leggingsList.add(new ArmourComponent(1, 1)); - leggingsList.add(new ArmourComponent(-1, 0)); - leggingsList.add(new ArmourComponent(1, 0)); - leggingsList.add(new ArmourComponent(-1, -1)); - leggingsList.add(new ArmourComponent(1, -1)); - } -} diff --git a/1.7.2/main/java/WayofTime/alchemicalWizardry/common/block/BlockAltar.java b/1.7.2/main/java/WayofTime/alchemicalWizardry/common/block/BlockAltar.java deleted file mode 100644 index 0cdb4272..00000000 --- a/1.7.2/main/java/WayofTime/alchemicalWizardry/common/block/BlockAltar.java +++ /dev/null @@ -1,311 +0,0 @@ -package WayofTime.alchemicalWizardry.common.block; - -import java.util.Random; - -import javax.swing.Icon; - -import net.minecraft.block.Block; -import net.minecraft.block.BlockContainer; -import net.minecraft.block.material.Material; -import net.minecraft.client.renderer.texture.IIconRegister; -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.nbt.NBTTagCompound; -import net.minecraft.tileentity.TileEntity; -import net.minecraft.util.IIcon; -import net.minecraft.world.IBlockAccess; -import net.minecraft.world.World; -import WayofTime.alchemicalWizardry.AlchemicalWizardry; -import WayofTime.alchemicalWizardry.ModItems; -import WayofTime.alchemicalWizardry.common.PacketHandler; -import WayofTime.alchemicalWizardry.common.items.EnergyBattery; -import WayofTime.alchemicalWizardry.common.items.sigil.SigilOfHolding; -import WayofTime.alchemicalWizardry.common.tileEntity.TEAltar; -import cpw.mods.fml.relauncher.Side; -import cpw.mods.fml.relauncher.SideOnly; - -public class BlockAltar extends BlockContainer -{ - @SideOnly(Side.CLIENT) - private static IIcon topIcon; - @SideOnly(Side.CLIENT) - private static IIcon sideIcon1; - @SideOnly(Side.CLIENT) - private static IIcon sideIcon2; - @SideOnly(Side.CLIENT) - private static IIcon bottomIcon; - - public BlockAltar() - { - super(Material.rock); - setHardness(2.0F); - setResistance(5.0F); - setCreativeTab(AlchemicalWizardry.tabBloodMagic); - this.setBlockName("bloodAltar"); - //setUnlocalizedName("blockAltar"); - //func_111022_d("AlchemicalWizardry:blocks"); - } - - @Override - @SideOnly(Side.CLIENT) - public void registerBlockIcons(IIconRegister iconRegister) - { - this.topIcon = iconRegister.registerIcon("AlchemicalWizardry:BloodAltar_Top"); - this.sideIcon1 = iconRegister.registerIcon("AlchemicalWizardry:BloodAltar_SideType1"); - this.sideIcon2 = iconRegister.registerIcon("AlchemicalWizardry:BloodAltar_SideType2"); - this.bottomIcon = iconRegister.registerIcon("AlchemicalWizardry:BloodAltar_Bottom"); - } - - @Override - @SideOnly(Side.CLIENT) - public IIcon getIcon(int side, int meta) - { - switch (side) - { - case 0: - return bottomIcon; - - case 1: - return topIcon; - - //case 2: return sideIcon1; - //case 3: return sideIcon1; - //case 4: return sideIcon2; - //case 5: return sideIcon2; - default: - return sideIcon2; - } - } - - @Override - public boolean onBlockActivated(World world, int x, int y, int z, EntityPlayer player, int idk, float what, float these, float are) - { - TEAltar tileEntity = (TEAltar) world.getTileEntity(x, y, z); - -// world.scheduleBlockUpdate(x, y, z, this.blockID, 0); - - if (tileEntity == null || player.isSneaking()) - { - return false; - } - - ItemStack playerItem = player.getCurrentEquippedItem(); - - if (playerItem != null) - { - if (playerItem.getItem().equals(ModItems.divinationSigil)) - { - if (player.worldObj.isRemote) - { - world.markBlockForUpdate(x, y, z); - }else - { - tileEntity.sendChatInfoToPlayer(player); - } - - return true; - } - 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); - - if (item != null && item.getItem().equals(ModItems.divinationSigil)) - { - if (player.worldObj.isRemote) - { - world.markBlockForUpdate(x, y, z); - }else - { - 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; - } - } - } - - if (tileEntity.getStackInSlot(0) == null && playerItem != null) - { - ItemStack newItem = playerItem.copy(); - newItem.stackSize = 1; -// if(newItem.getMaxDamage()==0) -// { -// newItem.setItemDamage(0); -// } - --playerItem.stackSize; - tileEntity.setInventorySlotContents(0, newItem); - tileEntity.startCycle(); - } else if (tileEntity.getStackInSlot(0) != null && playerItem == null) - { - /**stub method - * Add the item that is in the slot to the player's inventory, and - * then set the slot to null. - */ - player.inventory.addItemStackToInventory(tileEntity.getStackInSlot(0)); - tileEntity.setInventorySlotContents(0, null); - tileEntity.setActive(); - } - - world.markBlockForUpdate(x, y, z); - //player.openGui(AlchemicalWizardry.instance, 0, world, x, y, z); - //PacketDispatcher.sendPacketToServer(tileEntity.getDescriptionPacket()); - return true; - } - - @Override - public void breakBlock(World world, int x, int y, int z, Block par5, int par6) - { - dropItems(world, x, y, z); - super.breakBlock(world, x, y, z, par5, par6); - } - - private void dropItems(World world, int x, int y, int z) - { - Random rand = new Random(); - TileEntity tileEntity = world.getTileEntity(x, y, z); - - if (!(tileEntity instanceof IInventory)) - { - return; - } - - IInventory inventory = (IInventory) tileEntity; - - for (int i = 0; i < inventory.getSizeInventory(); i++) - { - ItemStack item = inventory.getStackInSlot(i); - - if (item != null && item.stackSize > 0) - { - float rx = rand.nextFloat() * 0.8F + 0.1F; - float ry = rand.nextFloat() * 0.8F + 0.1F; - float rz = rand.nextFloat() * 0.8F + 0.1F; - EntityItem entityItem = new EntityItem(world, - x + rx, y + ry, z + rz, - new ItemStack(item.getItem(), item.stackSize, item.getItemDamage())); - - if (item.hasTagCompound()) - { - entityItem.getEntityItem().setTagCompound((NBTTagCompound) item.getTagCompound().copy()); - } - - float factor = 0.05F; - entityItem.motionX = rand.nextGaussian() * factor; - entityItem.motionY = rand.nextGaussian() * factor + 0.2F; - entityItem.motionZ = rand.nextGaussian() * factor; - world.spawnEntityInWorld(entityItem); - item.stackSize = 0; - } - } - } - - @Override - public boolean renderAsNormalBlock() - { - return false; - } - - @Override - public int getRenderType() - { - return -1; - } - - @Override - public boolean isOpaqueCube() - { - return false; - } - - @Override - public boolean hasTileEntity() - { - return true; - } - - @Override - public void randomDisplayTick(World world, int x, int y, int z, Random rand) - { - TEAltar tileEntity = (TEAltar) world.getTileEntity(x, y, z); - - if (!tileEntity.isActive()) - { - return; - } - - if (rand.nextInt(3) != 0) - { - return; - } - } - -// @Override -// public int isProvidingStrongPower(IBlockAccess par1IBlockAccess, int par2, int par3, int par4, int par5) -// { -// return 1; -// } - - @Override - public boolean canProvidePower() - { - return true; - } - - @Override - public int isProvidingWeakPower(IBlockAccess par1IBlockAccess, int par2, int par3, int par4, int par5) - { - TileEntity tile = par1IBlockAccess.getTileEntity(par2, par3, par4); - - if (tile instanceof TEAltar) - { -// if(tile.worldObj.isRemote) -// { -// return 0; -// } - ItemStack stack = ((TEAltar) tile).getStackInSlot(0); - - if (stack != null && stack.getItem() instanceof EnergyBattery) - { - EnergyBattery bloodOrb = (EnergyBattery) stack.getItem(); - int maxEssence = bloodOrb.getMaxEssence(); - int currentEssence = bloodOrb.getCurrentEssence(stack); - int level = currentEssence * 15 / maxEssence; - return ((int) (Math.min(15, level))) % 16; - } - } - - return 0; - } - - @Override - public TileEntity createNewTileEntity(World var1, int var2) - { - return new TEAltar(); - } -} diff --git a/1.7.2/main/java/WayofTime/alchemicalWizardry/common/block/BlockBloodLightSource.java b/1.7.2/main/java/WayofTime/alchemicalWizardry/common/block/BlockBloodLightSource.java deleted file mode 100644 index 2ffc83e6..00000000 --- a/1.7.2/main/java/WayofTime/alchemicalWizardry/common/block/BlockBloodLightSource.java +++ /dev/null @@ -1,75 +0,0 @@ -package WayofTime.alchemicalWizardry.common.block; - -import java.util.List; -import java.util.Random; - -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.util.AxisAlignedBB; -import net.minecraft.world.IBlockAccess; -import net.minecraft.world.World; -import cpw.mods.fml.relauncher.Side; -import cpw.mods.fml.relauncher.SideOnly; - -public class BlockBloodLightSource extends Block -{ - public BlockBloodLightSource() - { - super(Material.cloth); - //setCreativeTab(AlchemicalWizardry.tabBloodMagic); - this.setBlockName("blockBloodLightSource"); - } - - @Override - @SideOnly(Side.CLIENT) - public void registerBlockIcons(IIconRegister iconRegister) - { - this.blockIcon = iconRegister.registerIcon("AlchemicalWizardry:BlockBloodLight"); - } - - @Override - public int getLightValue(IBlockAccess world, int x, int y, int z) - { - return 15; - } - - @Override - public boolean isOpaqueCube() - { - return false; - } - - @Override - public boolean renderAsNormalBlock() - { - return false; - } - - @Override - public void randomDisplayTick(World world, int x, int y, int z, Random rand) - { - if (rand.nextInt(3) != 0) - { - 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; - world.spawnParticle("reddust", x + 0.5D + rand.nextGaussian() / 8, y + 0.5D, z + 0.5D + rand.nextGaussian() / 8, f1, f2, f3); - } - } - - @Override - - public void addCollisionBoxesToList(World par1World, int par2, int par3, int par4, AxisAlignedBB par5AxisAlignedBB, List par6List, Entity par7Entity) - { - this.setBlockBounds(0.40F, 0.40F, 0.40F, 0.60F, 0.60F, 0.60F); - //super.addCollisionBoxesToList(par1World, par2, par3, par4, par5AxisAlignedBB, par6List, par7Entity); - } - - public int quantityDropped(Random par1Random) - { - return 0; - } -} diff --git a/1.7.2/main/java/WayofTime/alchemicalWizardry/common/block/BlockConduit.java b/1.7.2/main/java/WayofTime/alchemicalWizardry/common/block/BlockConduit.java deleted file mode 100644 index c92daea7..00000000 --- a/1.7.2/main/java/WayofTime/alchemicalWizardry/common/block/BlockConduit.java +++ /dev/null @@ -1,101 +0,0 @@ -package WayofTime.alchemicalWizardry.common.block; - -import net.minecraft.block.Block; -import net.minecraft.client.renderer.texture.IIconRegister; -import net.minecraft.tileentity.TileEntity; -import net.minecraft.util.IIcon; -import net.minecraft.world.World; -import WayofTime.alchemicalWizardry.AlchemicalWizardry; -import WayofTime.alchemicalWizardry.common.tileEntity.TEConduit; -import cpw.mods.fml.relauncher.Side; -import cpw.mods.fml.relauncher.SideOnly; - -public class BlockConduit extends BlockOrientable -{ - @SideOnly(Side.CLIENT) - private static IIcon topIcon; - @SideOnly(Side.CLIENT) - private static IIcon sideIcon1; - @SideOnly(Side.CLIENT) - private static IIcon sideIcon2; - @SideOnly(Side.CLIENT) - private static IIcon bottomIcon; - - public BlockConduit() - { - super(); - setHardness(2.0F); - setResistance(5.0F); - setCreativeTab(AlchemicalWizardry.tabBloodMagic); - this.setBlockName("blockConduit"); - //func_111022_d("AlchemicalWizardry:blocks"); - } - - @Override - @SideOnly(Side.CLIENT) - public void registerBlockIcons(IIconRegister iconRegister) - { - this.topIcon = iconRegister.registerIcon("AlchemicalWizardry:BloodAltar_Top"); - this.sideIcon1 = iconRegister.registerIcon("AlchemicalWizardry:BloodAltar_SideType1"); - this.sideIcon2 = iconRegister.registerIcon("AlchemicalWizardry:BloodAltar_SideType2"); - this.bottomIcon = iconRegister.registerIcon("AlchemicalWizardry:BloodAltar_Bottom"); - } - - @Override - @SideOnly(Side.CLIENT) - public IIcon getIcon(int side, int meta) - { - switch (side) - { - case 0: - return bottomIcon; - - case 1: - return topIcon; - - //case 2: return sideIcon1; - //case 3: return sideIcon1; - //case 4: return sideIcon2; - //case 5: return sideIcon2; - default: - return sideIcon2; - } - } - - @Override - public void breakBlock(World world, int x, int y, int z, Block par5, int par6) - { - //dropItems(world, x, y, z); - super.breakBlock(world, x, y, z, par5, par6); - } - - @Override - public TileEntity createNewTileEntity(World world, int noClue) - { - return new TEConduit(); - } - - @Override - public boolean renderAsNormalBlock() - { - return false; - } - - @Override - public int getRenderType() - { - return -1; - } - - @Override - public boolean isOpaqueCube() - { - return false; - } - - @Override - public boolean hasTileEntity() - { - return true; - } -} diff --git a/1.7.2/main/java/WayofTime/alchemicalWizardry/common/block/BlockDemonPortal.java b/1.7.2/main/java/WayofTime/alchemicalWizardry/common/block/BlockDemonPortal.java deleted file mode 100644 index c9d74de3..00000000 --- a/1.7.2/main/java/WayofTime/alchemicalWizardry/common/block/BlockDemonPortal.java +++ /dev/null @@ -1,43 +0,0 @@ -package WayofTime.alchemicalWizardry.common.block; - -import net.minecraft.block.BlockContainer; -import net.minecraft.block.material.Material; -import net.minecraft.entity.player.EntityPlayer; -import net.minecraft.tileentity.TileEntity; -import net.minecraft.world.World; -import WayofTime.alchemicalWizardry.AlchemicalWizardry; -import WayofTime.alchemicalWizardry.common.tileEntity.TEAltar; -import WayofTime.alchemicalWizardry.common.tileEntity.TEDemonPortal; - -public class BlockDemonPortal extends BlockContainer -{ - public BlockDemonPortal() - { - super(Material.rock); - setHardness(2.0F); - setResistance(5.0F); - setCreativeTab(AlchemicalWizardry.tabBloodMagic); - this.setBlockName("demonPortal"); - } - - @Override - public TileEntity createNewTileEntity(World var1, int var2) - { - return new TEDemonPortal(); - } - - @Override - public boolean onBlockActivated(World world, int x, int y, int z, EntityPlayer player, int side, float what, float these, float are) - { - if(world.isRemote) - { - return false; - } - - TEDemonPortal tileEntity = (TEDemonPortal) world.getTileEntity(x, y, z); - - tileEntity.rightClickBlock(player, side); - - return false; - } -} diff --git a/1.7.2/main/java/WayofTime/alchemicalWizardry/common/block/BlockHomHeart.java b/1.7.2/main/java/WayofTime/alchemicalWizardry/common/block/BlockHomHeart.java deleted file mode 100644 index 730b31f3..00000000 --- a/1.7.2/main/java/WayofTime/alchemicalWizardry/common/block/BlockHomHeart.java +++ /dev/null @@ -1,101 +0,0 @@ -package WayofTime.alchemicalWizardry.common.block; - -import net.minecraft.block.BlockContainer; -import net.minecraft.block.material.Material; -import net.minecraft.client.renderer.texture.IIconRegister; -import net.minecraft.entity.player.EntityPlayer; -import net.minecraft.item.ItemStack; -import net.minecraft.nbt.NBTTagCompound; -import net.minecraft.tileentity.TileEntity; -import net.minecraft.util.IIcon; -import net.minecraft.world.World; -import WayofTime.alchemicalWizardry.AlchemicalWizardry; -import WayofTime.alchemicalWizardry.common.items.BlankSpell; -import WayofTime.alchemicalWizardry.common.tileEntity.TEHomHeart; -import cpw.mods.fml.relauncher.Side; -import cpw.mods.fml.relauncher.SideOnly; - -public class BlockHomHeart extends BlockContainer -{ - public IIcon bottomIcon; - public IIcon topIcon; - public IIcon sideIcon; - - public BlockHomHeart() - { - super(Material.rock); - setHardness(2.0F); - setResistance(5.0F); - setCreativeTab(AlchemicalWizardry.tabBloodMagic); - this.setBlockName("blockHomHeart"); - } - - @Override - @SideOnly(Side.CLIENT) - public void registerBlockIcons(IIconRegister iconRegister) - { - this.topIcon = iconRegister.registerIcon("AlchemicalWizardry:HomHeart_top"); - this.bottomIcon = iconRegister.registerIcon("AlchemicalWizardry:HomHeart_bottom"); - this.sideIcon = iconRegister.registerIcon("AlchemicalWizardry:HomHeart_side"); - } - - @Override - @SideOnly(Side.CLIENT) - public IIcon getIcon(int side, int meta) - { - switch (side) - { - case 0: - return bottomIcon; - - case 1: - return topIcon; - - //case 2: return sideIcon1; - //case 3: return sideIcon1; - //case 4: return sideIcon2; - //case 5: return sideIcon2; - default: - return sideIcon; - } - } - - @Override - public boolean onBlockActivated(World world, int x, int y, int z, EntityPlayer player, int idk, float what, float these, float are) - { - TEHomHeart tileEntity = (TEHomHeart) world.getTileEntity(x, y, z); - - if (tileEntity == null || player.isSneaking()) - { - return false; - } - - ItemStack playerItem = player.getCurrentEquippedItem(); - - if (playerItem != null) - { - if (playerItem.getItem() instanceof BlankSpell) - { - if (playerItem.stackTagCompound == null) - { - playerItem.setTagCompound(new NBTTagCompound()); - } - - NBTTagCompound itemTag = playerItem.stackTagCompound; - itemTag.setInteger("xCoord", x); - itemTag.setInteger("yCoord", y); - itemTag.setInteger("zCoord", z); - itemTag.setInteger("dimensionId", world.provider.dimensionId); - return true; - } - } - - return false; - } - - @Override - public TileEntity createNewTileEntity(World world, int metaMaybe) - { - return new TEHomHeart(); - } -} diff --git a/1.7.2/main/java/WayofTime/alchemicalWizardry/common/block/BlockMasterStone.java b/1.7.2/main/java/WayofTime/alchemicalWizardry/common/block/BlockMasterStone.java deleted file mode 100644 index da201c0c..00000000 --- a/1.7.2/main/java/WayofTime/alchemicalWizardry/common/block/BlockMasterStone.java +++ /dev/null @@ -1,72 +0,0 @@ -package WayofTime.alchemicalWizardry.common.block; - -import net.minecraft.block.BlockContainer; -import net.minecraft.block.material.Material; -import net.minecraft.client.renderer.texture.IIconRegister; -import net.minecraft.entity.player.EntityPlayer; -import net.minecraft.item.Item; -import net.minecraft.item.ItemStack; -import net.minecraft.tileentity.TileEntity; -import net.minecraft.world.World; -import WayofTime.alchemicalWizardry.AlchemicalWizardry; -import WayofTime.alchemicalWizardry.common.items.ActivationCrystal; -import WayofTime.alchemicalWizardry.common.tileEntity.TEMasterStone; -import cpw.mods.fml.relauncher.Side; -import cpw.mods.fml.relauncher.SideOnly; - -public class BlockMasterStone extends BlockContainer -{ - public BlockMasterStone() - { - super(Material.iron); - setHardness(2.0F); - setResistance(5.0F); - setCreativeTab(AlchemicalWizardry.tabBloodMagic); - this.setBlockName("blockMasterStone"); - // TODO Auto-generated constructor stub - } - - @Override - @SideOnly(Side.CLIENT) - public void registerBlockIcons(IIconRegister iconRegister) - { - this.blockIcon = iconRegister.registerIcon("AlchemicalWizardry:MasterStone"); - } - - @Override - public boolean onBlockActivated(World world, int x, int y, int z, EntityPlayer player, int idk, float what, float these, float are) - { - TEMasterStone tileEntity = (TEMasterStone) world.getTileEntity(x, y, z); - - if (tileEntity == null || player.isSneaking()) - { - return false; - } - - ItemStack playerItem = player.getCurrentEquippedItem(); - - if (playerItem == null) - { - return false; - } - - Item item = playerItem.getItem(); - - if (!(item instanceof ActivationCrystal)) - { - return false; - } - - ActivationCrystal acItem = (ActivationCrystal) item; - tileEntity.setOwner(acItem.getOwnerName(playerItem)); - tileEntity.activateRitual(world, acItem.getCrystalLevel(playerItem), player); - world.markBlockForUpdate(x, y, z); - return true; - } - - @Override - public TileEntity createNewTileEntity(World world, int meta) - { - return new TEMasterStone(); - } -} diff --git a/1.7.2/main/java/WayofTime/alchemicalWizardry/common/block/BlockOrientable.java b/1.7.2/main/java/WayofTime/alchemicalWizardry/common/block/BlockOrientable.java deleted file mode 100644 index 10da3ed7..00000000 --- a/1.7.2/main/java/WayofTime/alchemicalWizardry/common/block/BlockOrientable.java +++ /dev/null @@ -1,254 +0,0 @@ -package WayofTime.alchemicalWizardry.common.block; - -import javax.swing.Icon; - -import net.minecraft.block.BlockContainer; -import net.minecraft.block.material.Material; -import net.minecraft.client.renderer.texture.IIconRegister; -import net.minecraft.entity.player.EntityPlayer; -import net.minecraft.tileentity.TileEntity; -import net.minecraft.util.IIcon; -import net.minecraft.world.IBlockAccess; -import net.minecraft.world.World; -import net.minecraftforge.common.util.ForgeDirection; -import WayofTime.alchemicalWizardry.AlchemicalWizardry; -import WayofTime.alchemicalWizardry.common.tileEntity.TEOrientable; -import cpw.mods.fml.relauncher.Side; -import cpw.mods.fml.relauncher.SideOnly; - -public class BlockOrientable extends BlockContainer -{ - @SideOnly(Side.CLIENT) - private static IIcon[] fireIcons; - - public BlockOrientable() - { - super(Material.rock); - setHardness(2.0F); - setResistance(5.0F); - setCreativeTab(AlchemicalWizardry.tabBloodMagic); - //setUnlocalizedName("bloodSocket"); - //func_111022_d("AlchemicalWizardry:blocks"); - } - - @Override - @SideOnly(Side.CLIENT) - public void registerBlockIcons(IIconRegister iconRegister) - { - this.fireIcons = this.registerIconsWithString(iconRegister, "fireEffectBlock"); - } - - @SideOnly(Side.CLIENT) - public static IIcon[] registerIconsWithString(IIconRegister iconRegister, String blockString) - { - IIcon[] icons = new IIcon[7]; - - icons[0] = iconRegister.registerIcon("AlchemicalWizardry:" + blockString + "_input"); - icons[1] = iconRegister.registerIcon("AlchemicalWizardry:" + blockString + "_output"); - icons[2] = iconRegister.registerIcon("AlchemicalWizardry:" + blockString + "_upArrow"); - icons[3] = iconRegister.registerIcon("AlchemicalWizardry:" + blockString + "_downArrow"); - icons[4] = iconRegister.registerIcon("AlchemicalWizardry:" + blockString + "_leftArrow"); - icons[5] = iconRegister.registerIcon("AlchemicalWizardry:" + blockString + "_rightArrow"); - icons[6] = iconRegister.registerIcon("AlchemicalWizardry:" + blockString + "_blank"); - - return icons; - } - - @Override - @SideOnly(Side.CLIENT) - public IIcon getIcon(int side, int meta) - { - IIcon[] icons = this.getIconsForMeta(meta); - switch (side) - { - case 4: return icons[1]; - default: return icons[6]; - } - } - -// @Override -// public boolean onBlockActivated(World world, int x, int y, int z, EntityPlayer player, int idk, float what, float these, float are) -// { -// return false; -// } - - @SideOnly(Side.CLIENT) - - /** - * Retrieves the block texture to use based on the display side. Args: iBlockAccess, x, y, z, side - */ - public IIcon getBlockTexture(IBlockAccess par1IBlockAccess, int x, int y, int z, int side) - { - TileEntity tile = par1IBlockAccess.getTileEntity(x, y, z); - int meta = par1IBlockAccess.getBlockMetadata(x, y, z); - - if(tile instanceof TEOrientable) - { - ForgeDirection input = ((TEOrientable)tile).getInputDirection(); - ForgeDirection output = ((TEOrientable)tile).getOutputDirection(); - - return this.getIconsForMeta(meta)[this.getTextureIndexForSideAndOrientation(side, input, output)]; - } - - return this.getIcon(side, meta); - } - - @Override - public TileEntity createNewTileEntity(World world, int dunno) - { - return new TEOrientable(); - } - - public IIcon[] getIconsForMeta(int metadata) - { - return this.fireIcons; - } - - @Override - public boolean onBlockActivated(World world, int x, int y, int z, EntityPlayer player, int side, float what, float these, float are) - { - //Right-click orients the output face. Shift-right-click orients the input face. - if (world.isRemote) - { - return false; - } - - ForgeDirection sideClicked = ForgeDirection.getOrientation(side); - TileEntity tile = world.getTileEntity(x, y, z); - - if (tile instanceof TEOrientable) - { - TEOrientable newTile = (TEOrientable)tile; - if(player.isSneaking()) - { - int nextSide = TEOrientable.getIntForForgeDirection(newTile.getInputDirection())+1; - - if(nextSide>5) - { - nextSide = 0; - } - if(ForgeDirection.getOrientation(nextSide)==newTile.getOutputDirection()) - { - nextSide++; - if(nextSide>5) - { - nextSide = 0; - } - } - - newTile.setInputDirection(ForgeDirection.getOrientation(nextSide)); - }else - { - int nextSide = TEOrientable.getIntForForgeDirection(newTile.getOutputDirection())+1; - - if(nextSide>5) - { - nextSide = 0; - } - if(ForgeDirection.getOrientation(nextSide)==newTile.getInputDirection()) - { - nextSide++; - if(nextSide>5) - { - nextSide = 0; - } - } - - newTile.setOutputDirection(ForgeDirection.getOrientation(nextSide)); - } - } - - world.markBlockForUpdate(x, y, z); - return true; - } - - public int getTextureIndexForSideAndOrientation(int side, ForgeDirection input, ForgeDirection output) - { - if(ForgeDirection.getOrientation(side) == input) - { - return 0; - } - if(ForgeDirection.getOrientation(side) == output) - { - return 1; - } - if(ForgeDirection.getOrientation(side) == output.getOpposite()) - { - return 6; - } - - switch(side) - { - case 0: //BOTTOM - switch(output) - { - case NORTH: return 2; //UP - case SOUTH: return 3; //DOWN - case EAST: return 4; //LEFT - case WEST: return 5; //RIGHT - default: break; - } - break; - case 1: //TOP - switch(output) - { - case NORTH: return 2; //UP - case SOUTH: return 3; //DOWN - case EAST: return 5; - case WEST: return 4; - default: break; - } - break; - case 2: //NORTH - switch(output) - { - case DOWN: return 3; - case UP: return 2; - case EAST: return 4; - case WEST: return 5; - default: break; - } - break; - case 3: //SOUTH - switch(output) - { - case DOWN: return 3; - case UP: return 2; - case EAST: return 5; - case WEST: return 4; - default: break; - } - break; - case 4: //WEST - switch(output) - { - case DOWN: return 3; - case UP: return 2; - case NORTH: return 5; - case SOUTH: return 4; - default: break; - } - break; - case 5: //EAST - switch(output) - { - case DOWN: return 3; - case UP: return 2; - case NORTH: return 4; - case SOUTH: return 5; - default: break; - } - break; - } - - return 0; - } - - @Override - public int damageDropped(int metadata) - { - return metadata; - } - - -} diff --git a/1.7.2/main/java/WayofTime/alchemicalWizardry/common/block/BlockPedestal.java b/1.7.2/main/java/WayofTime/alchemicalWizardry/common/block/BlockPedestal.java deleted file mode 100644 index 85dc2d68..00000000 --- a/1.7.2/main/java/WayofTime/alchemicalWizardry/common/block/BlockPedestal.java +++ /dev/null @@ -1,193 +0,0 @@ -package WayofTime.alchemicalWizardry.common.block; - -import java.util.Random; - -import net.minecraft.block.Block; -import net.minecraft.block.BlockContainer; -import net.minecraft.block.material.Material; -import net.minecraft.client.renderer.texture.IIconRegister; -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.nbt.NBTTagCompound; -import net.minecraft.tileentity.TileEntity; -import net.minecraft.util.IIcon; -import net.minecraft.util.MovingObjectPosition; -import net.minecraft.util.Vec3; -import net.minecraft.world.World; -import WayofTime.alchemicalWizardry.AlchemicalWizardry; -import WayofTime.alchemicalWizardry.common.tileEntity.TEPedestal; -import cpw.mods.fml.relauncher.Side; -import cpw.mods.fml.relauncher.SideOnly; - -public class BlockPedestal extends BlockContainer -{ - @SideOnly(Side.CLIENT) - private static IIcon topIcon; - @SideOnly(Side.CLIENT) - private static IIcon sideIcon1; - @SideOnly(Side.CLIENT) - private static IIcon sideIcon2; - @SideOnly(Side.CLIENT) - private static IIcon bottomIcon; - - public BlockPedestal() - { - super(Material.rock); - setHardness(2.0F); - setResistance(5.0F); - setCreativeTab(AlchemicalWizardry.tabBloodMagic); - this.setBlockName("bloodPedestal"); - //func_111022_d("AlchemicalWizardry:blocks"); - } - - @Override - @SideOnly(Side.CLIENT) - public void registerBlockIcons(IIconRegister iconRegister) - { - this.topIcon = iconRegister.registerIcon("AlchemicalWizardry:ArcanePedestal"); - this.sideIcon1 = iconRegister.registerIcon("AlchemicalWizardry:BloodSocket"); - this.sideIcon2 = iconRegister.registerIcon("AlchemicalWizardry:BloodSocket"); - this.bottomIcon = iconRegister.registerIcon("AlchemicalWizardry:BloodSocket"); - } - - @Override - @SideOnly(Side.CLIENT) - public IIcon getIcon(int side, int meta) - { - switch (side) - { - case 0: - return bottomIcon; - - case 1: - return topIcon; - - //case 2: return sideIcon1; - //case 3: return sideIcon1; - //case 4: return sideIcon2; - //case 5: return sideIcon2; - default: - return sideIcon2; - } - } - - @Override - public boolean onBlockActivated(World world, int x, int y, int z, EntityPlayer player, int idk, float what, float these, float are) - { - TEPedestal tileEntity = (TEPedestal) world.getTileEntity(x, y, z); - - if (tileEntity == null || player.isSneaking()) - { - return false; - } - - ItemStack playerItem = player.getCurrentEquippedItem(); - - if (tileEntity.getStackInSlot(0) == null && playerItem != null) - { - ItemStack newItem = playerItem.copy(); - newItem.stackSize = 1; - --playerItem.stackSize; - tileEntity.setInventorySlotContents(0, newItem); - } else if (tileEntity.getStackInSlot(0) != null && playerItem == null) - { - /**stub method - * Add the item that is in the slot to the player's inventory, and - * then set the slot to null. - */ - player.inventory.addItemStackToInventory(tileEntity.getStackInSlot(0)); - tileEntity.setInventorySlotContents(0, null); - tileEntity.setActive(); - } - - world.markBlockForUpdate(x, y, z); - //player.openGui(AlchemicalWizardry.instance, 0, world, x, y, z); - //PacketDispatcher.sendPacketToServer(tileEntity.getDescriptionPacket()); - return true; - } - - @Override - public void breakBlock(World world, int x, int y, int z, Block par5, int par6) - { - dropItems(world, x, y, z); - super.breakBlock(world, x, y, z, par5, par6); - } - - private void dropItems(World world, int x, int y, int z) - { - Random rand = new Random(); - TileEntity tileEntity = world.getTileEntity(x, y, z); - - if (!(tileEntity instanceof IInventory)) - { - return; - } - - IInventory inventory = (IInventory) tileEntity; - - for (int i = 0; i < inventory.getSizeInventory(); i++) - { - ItemStack item = inventory.getStackInSlot(i); - - if (item != null && item.stackSize > 0) - { - float rx = rand.nextFloat() * 0.8F + 0.1F; - float ry = rand.nextFloat() * 0.8F + 0.1F; - float rz = rand.nextFloat() * 0.8F + 0.1F; - EntityItem entityItem = new EntityItem(world, x + rx, y + ry, z + rz, new ItemStack(item.getItem(), item.stackSize, item.getItemDamage())); - - if (item.hasTagCompound()) - { - entityItem.getEntityItem().setTagCompound((NBTTagCompound) item.getTagCompound().copy()); - } - - float factor = 0.05F; - entityItem.motionX = rand.nextGaussian() * factor; - entityItem.motionY = rand.nextGaussian() * factor + 0.2F; - entityItem.motionZ = rand.nextGaussian() * factor; - world.spawnEntityInWorld(entityItem); - item.stackSize = 0; - } - } - } - - @Override - public TileEntity createNewTileEntity(World world, int meta) - { - return new TEPedestal(); - } - - @Override - public boolean renderAsNormalBlock() - { - return false; - } - - @Override - public int getRenderType() - { - return -1; - } - - @Override - public boolean isOpaqueCube() - { - return false; - } - - @Override - public boolean hasTileEntity() - { - return true; - } - - @Override - public MovingObjectPosition collisionRayTrace(World par1World, int par2, int par3, int par4, Vec3 par5Vec3, Vec3 par6Vec3) - { - float f = 0.3125F; - this.setBlockBounds(0.5F - f, 0.0F, 0.5F - f, 0.5F + f, 0.6F, 0.5F + f); - return super.collisionRayTrace(par1World, par2, par3, par4, par5Vec3, par6Vec3); - } -} \ No newline at end of file diff --git a/1.7.2/main/java/WayofTime/alchemicalWizardry/common/block/BlockPlinth.java b/1.7.2/main/java/WayofTime/alchemicalWizardry/common/block/BlockPlinth.java deleted file mode 100644 index 619f61f1..00000000 --- a/1.7.2/main/java/WayofTime/alchemicalWizardry/common/block/BlockPlinth.java +++ /dev/null @@ -1,193 +0,0 @@ -package WayofTime.alchemicalWizardry.common.block; - -import java.util.Random; - -import net.minecraft.block.Block; -import net.minecraft.block.BlockContainer; -import net.minecraft.block.material.Material; -import net.minecraft.client.renderer.texture.IIconRegister; -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.nbt.NBTTagCompound; -import net.minecraft.tileentity.TileEntity; -import net.minecraft.util.IIcon; -import net.minecraft.util.MovingObjectPosition; -import net.minecraft.util.Vec3; -import net.minecraft.world.World; -import WayofTime.alchemicalWizardry.AlchemicalWizardry; -import WayofTime.alchemicalWizardry.common.tileEntity.TEPlinth; -import cpw.mods.fml.relauncher.Side; -import cpw.mods.fml.relauncher.SideOnly; - -public class BlockPlinth extends BlockContainer -{ - @SideOnly(Side.CLIENT) - private static IIcon topIcon; - @SideOnly(Side.CLIENT) - private static IIcon sideIcon1; - @SideOnly(Side.CLIENT) - private static IIcon sideIcon2; - @SideOnly(Side.CLIENT) - private static IIcon bottomIcon; - - public BlockPlinth() - { - super(Material.rock); - setHardness(2.0F); - setResistance(5.0F); - setCreativeTab(AlchemicalWizardry.tabBloodMagic); - this.setBlockName("bloodPlinth"); - //func_111022_d("AlchemicalWizardry:blocks"); - } - - @Override - @SideOnly(Side.CLIENT) - public void registerBlockIcons(IIconRegister iconRegister) - { - this.topIcon = iconRegister.registerIcon("AlchemicalWizardry:ArcanePlinth"); - this.sideIcon1 = iconRegister.registerIcon("AlchemicalWizardry:BloodSocket"); - this.sideIcon2 = iconRegister.registerIcon("AlchemicalWizardry:BloodSocket"); - this.bottomIcon = iconRegister.registerIcon("AlchemicalWizardry:BloodSocket"); - } - - @Override - @SideOnly(Side.CLIENT) - public IIcon getIcon(int side, int meta) - { - switch (side) - { - case 0: - return bottomIcon; - - case 1: - return topIcon; - - //case 2: return sideIcon1; - //case 3: return sideIcon1; - //case 4: return sideIcon2; - //case 5: return sideIcon2; - default: - return sideIcon2; - } - } - - @Override - public boolean onBlockActivated(World world, int x, int y, int z, EntityPlayer player, int idk, float what, float these, float are) - { - TEPlinth tileEntity = (TEPlinth) world.getTileEntity(x, y, z); - - if (tileEntity == null || player.isSneaking()) - { - return false; - } - - ItemStack playerItem = player.getCurrentEquippedItem(); - - if (tileEntity.getStackInSlot(0) == null && playerItem != null) - { - ItemStack newItem = playerItem.copy(); - newItem.stackSize = 1; - --playerItem.stackSize; - tileEntity.setInventorySlotContents(0, newItem); - } else if (tileEntity.getStackInSlot(0) != null && playerItem == null) - { - /**stub method - * Add the item that is in the slot to the player's inventory, and - * then set the slot to null. - */ - player.inventory.addItemStackToInventory(tileEntity.getStackInSlot(0)); - tileEntity.setInventorySlotContents(0, null); - tileEntity.setActive(); - } - - world.markBlockForUpdate(x, y, z); - //player.openGui(AlchemicalWizardry.instance, 0, world, x, y, z); - //PacketDispatcher.sendPacketToServer(tileEntity.getDescriptionPacket()); - return true; - } - - @Override - public void breakBlock(World world, int x, int y, int z, Block par5, int par6) - { - dropItems(world, x, y, z); - super.breakBlock(world, x, y, z, par5, par6); - } - - private void dropItems(World world, int x, int y, int z) - { - Random rand = new Random(); - TileEntity tileEntity = world.getTileEntity(x, y, z); - - if (!(tileEntity instanceof IInventory)) - { - return; - } - - IInventory inventory = (IInventory) tileEntity; - - for (int i = 0; i < inventory.getSizeInventory(); i++) - { - ItemStack item = inventory.getStackInSlot(i); - - if (item != null && item.stackSize > 0) - { - float rx = rand.nextFloat() * 0.8F + 0.1F; - float ry = rand.nextFloat() * 0.8F + 0.1F; - float rz = rand.nextFloat() * 0.8F + 0.1F; - EntityItem entityItem = new EntityItem(world, x + rx, y + ry, z + rz, new ItemStack(item.getItem(), item.stackSize, item.getItemDamage())); - - if (item.hasTagCompound()) - { - entityItem.getEntityItem().setTagCompound((NBTTagCompound) item.getTagCompound().copy()); - } - - float factor = 0.05F; - entityItem.motionX = rand.nextGaussian() * factor; - entityItem.motionY = rand.nextGaussian() * factor + 0.2F; - entityItem.motionZ = rand.nextGaussian() * factor; - world.spawnEntityInWorld(entityItem); - item.stackSize = 0; - } - } - } - - @Override - public TileEntity createNewTileEntity(World world, int meta) - { - return new TEPlinth(); - } - - @Override - public boolean renderAsNormalBlock() - { - return false; - } - - @Override - public int getRenderType() - { - return -1; - } - - @Override - public boolean isOpaqueCube() - { - return false; - } - - @Override - public boolean hasTileEntity() - { - return true; - } - - @Override - public MovingObjectPosition collisionRayTrace(World par1World, int par2, int par3, int par4, Vec3 par5Vec3, Vec3 par6Vec3) - { - float f = 0.0625F; - this.setBlockBounds(f, 0.0F, f, 1.0f - f, 0.875f, 1.0f - f); - return super.collisionRayTrace(par1World, par2, par3, par4, par5Vec3, par6Vec3); - } -} \ No newline at end of file diff --git a/1.7.2/main/java/WayofTime/alchemicalWizardry/common/block/BlockSchematicSaver.java b/1.7.2/main/java/WayofTime/alchemicalWizardry/common/block/BlockSchematicSaver.java deleted file mode 100644 index 9c85e4fa..00000000 --- a/1.7.2/main/java/WayofTime/alchemicalWizardry/common/block/BlockSchematicSaver.java +++ /dev/null @@ -1,43 +0,0 @@ -package WayofTime.alchemicalWizardry.common.block; - -import net.minecraft.block.BlockContainer; -import net.minecraft.block.material.Material; -import net.minecraft.entity.player.EntityPlayer; -import net.minecraft.tileentity.TileEntity; -import net.minecraft.world.World; -import WayofTime.alchemicalWizardry.AlchemicalWizardry; -import WayofTime.alchemicalWizardry.common.tileEntity.TEDemonPortal; -import WayofTime.alchemicalWizardry.common.tileEntity.TESchematicSaver; - -public class BlockSchematicSaver extends BlockContainer -{ - public BlockSchematicSaver() - { - super(Material.rock); - setHardness(2.0F); - setResistance(5.0F); - setCreativeTab(AlchemicalWizardry.tabBloodMagic); - this.setBlockName("schematicSaver"); - } - - @Override - public TileEntity createNewTileEntity(World var1, int var2) - { - return new TESchematicSaver(); - } - - @Override - public boolean onBlockActivated(World world, int x, int y, int z, EntityPlayer player, int side, float what, float these, float are) - { - if(world.isRemote) - { - return false; - } - - TESchematicSaver tileEntity = (TESchematicSaver) world.getTileEntity(x, y, z); - - tileEntity.rightClickBlock(player, side); - - return false; - } -} diff --git a/1.7.2/main/java/WayofTime/alchemicalWizardry/common/block/BlockSocket.java b/1.7.2/main/java/WayofTime/alchemicalWizardry/common/block/BlockSocket.java deleted file mode 100644 index e4e53890..00000000 --- a/1.7.2/main/java/WayofTime/alchemicalWizardry/common/block/BlockSocket.java +++ /dev/null @@ -1,163 +0,0 @@ -package WayofTime.alchemicalWizardry.common.block; - -import java.util.Random; - -import net.minecraft.block.Block; -import net.minecraft.block.BlockContainer; -import net.minecraft.block.material.Material; -import net.minecraft.client.renderer.texture.IIconRegister; -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.nbt.NBTTagCompound; -import net.minecraft.tileentity.TileEntity; -import net.minecraft.util.IIcon; -import net.minecraft.world.World; -import WayofTime.alchemicalWizardry.AlchemicalWizardry; -import WayofTime.alchemicalWizardry.api.items.interfaces.ArmourUpgrade; -import WayofTime.alchemicalWizardry.common.tileEntity.TESocket; -import cpw.mods.fml.relauncher.Side; -import cpw.mods.fml.relauncher.SideOnly; - -public class BlockSocket extends BlockContainer -{ - @SideOnly(Side.CLIENT) - private static IIcon topIcon; - @SideOnly(Side.CLIENT) - private static IIcon sideIcon1; - @SideOnly(Side.CLIENT) - private static IIcon sideIcon2; - @SideOnly(Side.CLIENT) - private static IIcon bottomIcon; - - public BlockSocket() - { - super(Material.rock); - setHardness(2.0F); - setResistance(5.0F); - setCreativeTab(AlchemicalWizardry.tabBloodMagic); - this.setBlockName("bloodSocket"); - //func_111022_d("AlchemicalWizardry:blocks"); - } - - @Override - @SideOnly(Side.CLIENT) - public void registerBlockIcons(IIconRegister iconRegister) - { - this.topIcon = iconRegister.registerIcon("AlchemicalWizardry:BloodSocket"); - this.sideIcon1 = iconRegister.registerIcon("AlchemicalWizardry:BloodSocket"); - this.sideIcon2 = iconRegister.registerIcon("AlchemicalWizardry:BloodSocket"); - this.bottomIcon = iconRegister.registerIcon("AlchemicalWizardry:BloodSocket"); - } - - @Override - @SideOnly(Side.CLIENT) - public IIcon getIcon(int side, int meta) - { - switch (side) - { - case 0: - return bottomIcon; - - case 1: - return topIcon; - - //case 2: return sideIcon1; - //case 3: return sideIcon1; - //case 4: return sideIcon2; - //case 5: return sideIcon2; - default: - return sideIcon2; - } - } - - @Override - public boolean onBlockActivated(World world, int x, int y, int z, EntityPlayer player, int idk, float what, float these, float are) - { - TESocket tileEntity = (TESocket) world.getTileEntity(x, y, z); - - if (tileEntity == null || player.isSneaking()) - { - return false; - } - - ItemStack playerItem = player.getCurrentEquippedItem(); - - if (tileEntity.getStackInSlot(0) == null && playerItem != null) - { - if (playerItem.getItem() instanceof ArmourUpgrade) - { - ItemStack newItem = playerItem.copy(); - newItem.stackSize = 1; - --playerItem.stackSize; - tileEntity.setInventorySlotContents(0, newItem); - } - } else if (tileEntity.getStackInSlot(0) != null && playerItem == null) - { - /**stub method - * Add the item that is in the slot to the player's inventory, and - * then set the slot to null. - */ - player.inventory.addItemStackToInventory(tileEntity.getStackInSlot(0)); - tileEntity.setInventorySlotContents(0, null); - tileEntity.setActive(); - } - - world.markBlockForUpdate(x, y, z); - //player.openGui(AlchemicalWizardry.instance, 0, world, x, y, z); - //PacketDispatcher.sendPacketToServer(tileEntity.getDescriptionPacket()); - return true; - } - - @Override - public void breakBlock(World world, int x, int y, int z, Block par5, int par6) - { - dropItems(world, x, y, z); - super.breakBlock(world, x, y, z, par5, par6); - } - - private void dropItems(World world, int x, int y, int z) - { - Random rand = new Random(); - TileEntity tileEntity = world.getTileEntity(x, y, z); - - if (!(tileEntity instanceof IInventory)) - { - return; - } - - IInventory inventory = (IInventory) tileEntity; - - for (int i = 0; i < inventory.getSizeInventory(); i++) - { - ItemStack item = inventory.getStackInSlot(i); - - if (item != null && item.stackSize > 0) - { - float rx = rand.nextFloat() * 0.8F + 0.1F; - float ry = rand.nextFloat() * 0.8F + 0.1F; - float rz = rand.nextFloat() * 0.8F + 0.1F; - EntityItem entityItem = new EntityItem(world, x + rx, y + ry, z + rz, new ItemStack(item.getItem(), item.stackSize, item.getItemDamage())); - - if (item.hasTagCompound()) - { - entityItem.getEntityItem().setTagCompound((NBTTagCompound) item.getTagCompound().copy()); - } - - float factor = 0.05F; - entityItem.motionX = rand.nextGaussian() * factor; - entityItem.motionY = rand.nextGaussian() * factor + 0.2F; - entityItem.motionZ = rand.nextGaussian() * factor; - world.spawnEntityInWorld(entityItem); - item.stackSize = 0; - } - } - } - - @Override - public TileEntity createNewTileEntity(World world, int meta) - { - return new TESocket(); - } -} diff --git a/1.7.2/main/java/WayofTime/alchemicalWizardry/common/block/BlockSpectralContainer.java b/1.7.2/main/java/WayofTime/alchemicalWizardry/common/block/BlockSpectralContainer.java deleted file mode 100644 index 95a48ce3..00000000 --- a/1.7.2/main/java/WayofTime/alchemicalWizardry/common/block/BlockSpectralContainer.java +++ /dev/null @@ -1,75 +0,0 @@ -package WayofTime.alchemicalWizardry.common.block; - -import java.util.List; -import java.util.Random; - -import net.minecraft.block.BlockContainer; -import net.minecraft.block.material.Material; -import net.minecraft.client.renderer.texture.IIconRegister; -import net.minecraft.entity.Entity; -import net.minecraft.tileentity.TileEntity; -import net.minecraft.util.AxisAlignedBB; -import net.minecraft.world.IBlockAccess; -import net.minecraft.world.World; -import WayofTime.alchemicalWizardry.common.tileEntity.TESpectralContainer; -import cpw.mods.fml.relauncher.Side; -import cpw.mods.fml.relauncher.SideOnly; - -public class BlockSpectralContainer extends BlockContainer -{ - public BlockSpectralContainer() - { - super(Material.cloth); - //setCreativeTab(AlchemicalWizardry.tabBloodMagic); - this.setBlockName("blockSpectralContainer"); - this.setBlockBounds(0,0,0,0,0,0); - } - - @Override - @SideOnly(Side.CLIENT) - public void registerBlockIcons(IIconRegister iconRegister) - { - this.blockIcon = iconRegister.registerIcon("AlchemicalWizardry:BlockBloodLight"); - } - - @Override - public boolean isOpaqueCube() - { - return false; - } - - @Override - public boolean renderAsNormalBlock() - { - return false; - } - - @Override - public void addCollisionBoxesToList(World par1World, int par2, int par3, int par4, AxisAlignedBB par5AxisAlignedBB, List par6List, Entity par7Entity) - { - - } - - public int quantityDropped(Random par1Random) - { - return 0; - } - - @Override - public boolean isReplaceable(IBlockAccess world, int x, int y, int z) - { - return true; - } - - @Override - public boolean isAir(IBlockAccess world, int x, int y, int z) - { - return true; - } - - @Override - public TileEntity createNewTileEntity(World var1, int var2) - { - return new TESpectralContainer(); - } -} diff --git a/1.7.2/main/java/WayofTime/alchemicalWizardry/common/block/BlockSpellEffect.java b/1.7.2/main/java/WayofTime/alchemicalWizardry/common/block/BlockSpellEffect.java deleted file mode 100644 index 14846d23..00000000 --- a/1.7.2/main/java/WayofTime/alchemicalWizardry/common/block/BlockSpellEffect.java +++ /dev/null @@ -1,62 +0,0 @@ -package WayofTime.alchemicalWizardry.common.block; - -import java.util.List; - -import cpw.mods.fml.relauncher.Side; -import cpw.mods.fml.relauncher.SideOnly; -import net.minecraft.creativetab.CreativeTabs; -import net.minecraft.item.Item; -import net.minecraft.item.ItemStack; -import net.minecraft.tileentity.TileEntity; -import net.minecraft.world.World; -import WayofTime.alchemicalWizardry.ModBlocks; -import WayofTime.alchemicalWizardry.common.tileEntity.TESpellEffectBlock; - - -public class BlockSpellEffect extends BlockOrientable -{ - public BlockSpellEffect() - { - super(); - this.setBlockName("blockSpellEffect"); - } - - @Override - public TileEntity createNewTileEntity(World world, int meta) - { - return new TESpellEffectBlock(); - } - - @Override - public boolean renderAsNormalBlock() - { - return false; - } - - @Override - public int getRenderType() - { - return -1; - } - - @Override - public boolean isOpaqueCube() - { - return false; - } - - @SideOnly(Side.CLIENT) - public void getSubBlocks(Item par1, CreativeTabs par2CreativeTabs, List par3List) - { - if (this.equals(ModBlocks.blockSpellEffect)) - { - for(int i=0; i<4; i++) - { - par3List.add(new ItemStack(par1, 1, i)); - } - } else - { - super.getSubBlocks(par1, par2CreativeTabs, par3List); - } - } -} diff --git a/1.7.2/main/java/WayofTime/alchemicalWizardry/common/block/BlockSpellEnhancement.java b/1.7.2/main/java/WayofTime/alchemicalWizardry/common/block/BlockSpellEnhancement.java deleted file mode 100644 index 14dc4af5..00000000 --- a/1.7.2/main/java/WayofTime/alchemicalWizardry/common/block/BlockSpellEnhancement.java +++ /dev/null @@ -1,64 +0,0 @@ -package WayofTime.alchemicalWizardry.common.block; - -import java.util.List; - -import cpw.mods.fml.relauncher.Side; -import cpw.mods.fml.relauncher.SideOnly; -import net.minecraft.creativetab.CreativeTabs; -import net.minecraft.item.Item; -import net.minecraft.item.ItemStack; -import net.minecraft.tileentity.TileEntity; -import net.minecraft.world.World; -import WayofTime.alchemicalWizardry.ModBlocks; -import WayofTime.alchemicalWizardry.common.tileEntity.TESpellEffectBlock; -import WayofTime.alchemicalWizardry.common.tileEntity.TESpellEnhancementBlock; -import WayofTime.alchemicalWizardry.common.tileEntity.TESpellModifierBlock; - - -public class BlockSpellEnhancement extends BlockOrientable -{ - public BlockSpellEnhancement() - { - super(); - this.setBlockName("blockSpellEnhancement"); - } - - @Override - public TileEntity createNewTileEntity(World world, int meta) - { - return new TESpellEnhancementBlock(); - } - - @Override - public boolean renderAsNormalBlock() - { - return false; - } - - @Override - public int getRenderType() - { - return -1; - } - - @Override - public boolean isOpaqueCube() - { - return false; - } - - @SideOnly(Side.CLIENT) - public void getSubBlocks(Item par1, CreativeTabs par2CreativeTabs, List par3List) - { - if (this.equals(ModBlocks.blockSpellEnhancement)) - { - for(int i=0; i<15; i++) - { - par3List.add(new ItemStack(par1, 1, i)); - } - } else - { - super.getSubBlocks(par1, par2CreativeTabs, par3List); - } - } -} diff --git a/1.7.2/main/java/WayofTime/alchemicalWizardry/common/block/BlockSpellModifier.java b/1.7.2/main/java/WayofTime/alchemicalWizardry/common/block/BlockSpellModifier.java deleted file mode 100644 index ae4e028f..00000000 --- a/1.7.2/main/java/WayofTime/alchemicalWizardry/common/block/BlockSpellModifier.java +++ /dev/null @@ -1,63 +0,0 @@ -package WayofTime.alchemicalWizardry.common.block; - -import java.util.List; - -import cpw.mods.fml.relauncher.Side; -import cpw.mods.fml.relauncher.SideOnly; -import net.minecraft.creativetab.CreativeTabs; -import net.minecraft.item.Item; -import net.minecraft.item.ItemStack; -import net.minecraft.tileentity.TileEntity; -import net.minecraft.world.World; -import WayofTime.alchemicalWizardry.ModBlocks; -import WayofTime.alchemicalWizardry.common.tileEntity.TESpellEffectBlock; -import WayofTime.alchemicalWizardry.common.tileEntity.TESpellModifierBlock; - - -public class BlockSpellModifier extends BlockOrientable -{ - public BlockSpellModifier() - { - super(); - this.setBlockName("blockSpellModifier"); - } - - @Override - public TileEntity createNewTileEntity(World world, int meta) - { - return new TESpellModifierBlock(); - } - - @SideOnly(Side.CLIENT) - public void getSubBlocks(Item par1, CreativeTabs par2CreativeTabs, List par3List) - { - if (this.equals(ModBlocks.blockSpellModifier)) - { - for(int i=0; i<4; i++) - { - par3List.add(new ItemStack(par1, 1, i)); - } - } else - { - super.getSubBlocks(par1, par2CreativeTabs, par3List); - } - } - - @Override - public boolean isOpaqueCube() - { - return false; - } - - @Override - public boolean renderAsNormalBlock() - { - return false; - } - - @Override - public int getRenderType() - { - return -1; - } -} diff --git a/1.7.2/main/java/WayofTime/alchemicalWizardry/common/block/BlockSpellParadigm.java b/1.7.2/main/java/WayofTime/alchemicalWizardry/common/block/BlockSpellParadigm.java deleted file mode 100644 index faadb7e8..00000000 --- a/1.7.2/main/java/WayofTime/alchemicalWizardry/common/block/BlockSpellParadigm.java +++ /dev/null @@ -1,212 +0,0 @@ -package WayofTime.alchemicalWizardry.common.block; - -import java.util.List; - -import net.minecraft.client.renderer.texture.IIconRegister; -import net.minecraft.creativetab.CreativeTabs; -import net.minecraft.entity.player.EntityPlayer; -import net.minecraft.item.Item; -import net.minecraft.item.ItemStack; -import net.minecraft.nbt.NBTTagCompound; -import net.minecraft.tileentity.TileEntity; -import net.minecraft.util.IIcon; -import net.minecraft.world.World; -import WayofTime.alchemicalWizardry.ModBlocks; -import WayofTime.alchemicalWizardry.common.items.ItemComplexSpellCrystal; -import WayofTime.alchemicalWizardry.common.tileEntity.TESpellParadigmBlock; -import cpw.mods.fml.relauncher.Side; -import cpw.mods.fml.relauncher.SideOnly; - -public class BlockSpellParadigm extends BlockOrientable -{ - public static final float minPos = (3f/16f); - public static final float maxPos = (13f/16f); - - IIcon[] projectileIcons = new IIcon[7]; - - public BlockSpellParadigm() - { - super(); - this.setBlockName("blockSpellParadigm"); - //setBlockBounds(minPos, minPos, minPos, maxPos, maxPos, maxPos); - } - - @Override - @SideOnly(Side.CLIENT) - public void registerBlockIcons(IIconRegister iconRegister) - { - this.projectileIcons = this.registerIconsWithString(iconRegister, "projectileParadigmBlock"); - } - -// @Override -// public Icon[] getIconsForMeta(int metadata) -// { -// return this.projectileIcons; -// } - - @Override - public TileEntity createNewTileEntity(World world, int meta) - { - return new TESpellParadigmBlock(); - } - - @SideOnly(Side.CLIENT) - - /** - * returns a list of items with the same ID, but different meta (eg: dye returns 16 items) - */ - public void getSubBlocks(Item par1, CreativeTabs par2CreativeTabs, List par3List) - { - if (this.equals(ModBlocks.blockSpellParadigm)) - { - 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); - } - } - - @Override - public boolean onBlockActivated(World world, int x, int y, int z, EntityPlayer player, int side, float what, float these, float are) - { - ItemStack stack = player.getCurrentEquippedItem(); - - if(stack != null && stack.getItem() instanceof ItemComplexSpellCrystal) - { - if (stack.stackTagCompound == null) - { - stack.setTagCompound(new NBTTagCompound()); - } - - NBTTagCompound itemTag = stack.stackTagCompound; - itemTag.setInteger("xCoord", x); - itemTag.setInteger("yCoord", y); - itemTag.setInteger("zCoord", z); - itemTag.setInteger("dimensionId", world.provider.dimensionId); - return true; - } - - return super.onBlockActivated(world, x, y, z, player, side, what, these, are); - } - - @Override - public boolean isOpaqueCube() - { - return false; - } - - @Override - public boolean renderAsNormalBlock() - { - return false; - } - - @Override - public int getRenderType() - { - return -1; - } - - //TODO Need to make a renderer for the paradigm blocks and other spell blocks. - /* - @Override - public void addCollisionBoxesToList(World world, int i, int j, int k, AxisAlignedBB axisalignedbb, List arraylist, Entity par7Entity) - { - - setBlockBounds(minPos, minPos, minPos, maxPos, maxPos, maxPos); - super.addCollisionBoxesToList(world, i, j, k, axisalignedbb, arraylist, par7Entity); - - - TileEntity tile1 = world.getBlockTileEntity(i, j, k); - if (tile1 instanceof TESpellParadigmBlock) - { - TESpellParadigmBlock tileG = (TESpellParadigmBlock) tile1; - - - if (tileG.isSideRendered(ForgeDirection.WEST)) - { - setBlockBounds(0.0F, minPos, minPos, maxPos, maxPos, maxPos); - super.addCollisionBoxesToList(world, i, j, k, axisalignedbb, arraylist, par7Entity); - } - - - if (tileG.isSideRendered(ForgeDirection.EAST)) - { - setBlockBounds(minPos, minPos, minPos, 1.0F, maxPos, maxPos); - super.addCollisionBoxesToList(world, i, j, k, axisalignedbb, arraylist, par7Entity); - } - - - if (tileG.isSideRendered(ForgeDirection.DOWN)) - { - setBlockBounds(minPos, 0.0F, minPos, maxPos, maxPos, maxPos); - super.addCollisionBoxesToList(world, i, j, k, axisalignedbb, arraylist, par7Entity); - } - - - if (tileG.isSideRendered(ForgeDirection.UP)) - { - setBlockBounds(minPos, minPos, minPos, maxPos, 1.0F, maxPos); - super.addCollisionBoxesToList(world, i, j, k, axisalignedbb, arraylist, par7Entity); - } - - - if (tileG.isSideRendered(ForgeDirection.NORTH)) - { - setBlockBounds(minPos, minPos, 0.0F, maxPos, maxPos, maxPos); - super.addCollisionBoxesToList(world, i, j, k, axisalignedbb, arraylist, par7Entity); - } - - - if (tileG.isSideRendered(ForgeDirection.SOUTH)) - { - setBlockBounds(minPos, minPos, minPos, maxPos, maxPos, 1.0F); - super.addCollisionBoxesToList(world, i, j, k, axisalignedbb, arraylist, par7Entity); - } - - -// float facadeThickness = TransportConstants.FACADE_THICKNESS; -// -// -// if (tileG.hasFacade(ForgeDirection.EAST)) { -// setBlockBounds(1 - facadeThickness, 0.0F, 0.0F, 1.0F, 1.0F, 1.0F); -// super.addCollisionBoxesToList(world, i, j, k, axisalignedbb, arraylist, par7Entity); -// } -// -// -// if (tileG.hasFacade(ForgeDirection.WEST)) { -// setBlockBounds(0.0F, 0.0F, 0.0F, facadeThickness, 1.0F, 1.0F); -// super.addCollisionBoxesToList(world, i, j, k, axisalignedbb, arraylist, par7Entity); -// } -// -// -// if (tileG.hasFacade(ForgeDirection.UP)) { -// setBlockBounds(0.0F, 1 - facadeThickness, 0.0F, 1.0F, 1.0F, 1.0F); -// super.addCollisionBoxesToList(world, i, j, k, axisalignedbb, arraylist, par7Entity); -// } -// -// -// if (tileG.hasFacade(ForgeDirection.DOWN)) { -// setBlockBounds(0.0F, 0.0F, 0.0F, 1.0F, facadeThickness, 1.0F); -// super.addCollisionBoxesToList(world, i, j, k, axisalignedbb, arraylist, par7Entity); -// } -// -// -// if (tileG.hasFacade(ForgeDirection.SOUTH)) { -// setBlockBounds(0.0F, 0.0F, 1 - facadeThickness, 1.0F, 1.0F, 1.0F); -// super.addCollisionBoxesToList(world, i, j, k, axisalignedbb, arraylist, par7Entity); -// } -// -// -// if (tileG.hasFacade(ForgeDirection.NORTH)) { -// setBlockBounds(0.0F, 0.0F, 0.0F, 1.0F, 1.0F, facadeThickness); -// super.addCollisionBoxesToList(world, i, j, k, axisalignedbb, arraylist, par7Entity); -// } - } - setBlockBounds(0.0F, 0.0F, 0.0F, 1.0F, 1.0F, 1.0F); - } - */ -} diff --git a/1.7.2/main/java/WayofTime/alchemicalWizardry/common/block/BlockTeleposer.java b/1.7.2/main/java/WayofTime/alchemicalWizardry/common/block/BlockTeleposer.java deleted file mode 100644 index 3580220b..00000000 --- a/1.7.2/main/java/WayofTime/alchemicalWizardry/common/block/BlockTeleposer.java +++ /dev/null @@ -1,321 +0,0 @@ -package WayofTime.alchemicalWizardry.common.block; - -import java.util.Random; - -import javax.swing.Icon; - -import net.minecraft.block.Block; -import net.minecraft.block.BlockContainer; -import net.minecraft.block.BlockMobSpawner; -import net.minecraft.block.material.Material; -import net.minecraft.client.renderer.texture.IIconRegister; -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.nbt.NBTTagCompound; -import net.minecraft.tileentity.TileEntity; -import net.minecraft.util.IIcon; -import net.minecraft.world.World; -import WayofTime.alchemicalWizardry.AlchemicalWizardry; -import WayofTime.alchemicalWizardry.common.items.TelepositionFocus; -import WayofTime.alchemicalWizardry.common.tileEntity.TETeleposer; -import cpw.mods.fml.relauncher.Side; -import cpw.mods.fml.relauncher.SideOnly; - -public class BlockTeleposer extends BlockContainer -{ - @SideOnly(Side.CLIENT) - private static IIcon topIcon; - @SideOnly(Side.CLIENT) - private static IIcon sideIcon1; - @SideOnly(Side.CLIENT) - private static IIcon sideIcon2; - @SideOnly(Side.CLIENT) - private static IIcon bottomIcon; - - public BlockTeleposer() - { - super(Material.rock); - setHardness(2.0F); - setResistance(5.0F); - setCreativeTab(AlchemicalWizardry.tabBloodMagic); - this.setBlockName("bloodTeleposer"); - //func_111022_d("AlchemicalWizardry:blocks"); - } - - @Override - @SideOnly(Side.CLIENT) - public void registerBlockIcons(IIconRegister iconRegister) - { - this.topIcon = iconRegister.registerIcon("AlchemicalWizardry:Teleposer_Top"); - this.sideIcon1 = iconRegister.registerIcon("AlchemicalWizardry:Teleposer_Side"); - this.sideIcon2 = iconRegister.registerIcon("AlchemicalWizardry:Teleposer_Side"); - this.bottomIcon = iconRegister.registerIcon("AlchemicalWizardry:Teleposer_Side"); - } - - @Override - @SideOnly(Side.CLIENT) - public IIcon getIcon(int side, int meta) - { - switch (side) - { - case 0: - return bottomIcon; - - case 1: - return topIcon; - - //case 2: return sideIcon1; - //case 3: return sideIcon1; - //case 4: return sideIcon2; - //case 5: return sideIcon2; - default: - return sideIcon2; - } - } - - @Override - public boolean onBlockActivated(World world, int x, int y, int z, EntityPlayer player, int idk, float what, float these, float are) - { - TETeleposer tileEntity = (TETeleposer) world.getTileEntity(x, y, z); - ItemStack playerItem = player.getCurrentEquippedItem(); - - if (playerItem != null) - { - if (playerItem.getItem() instanceof TelepositionFocus) - { - if (playerItem.stackTagCompound == null) - { - playerItem.setTagCompound(new NBTTagCompound()); - } - - NBTTagCompound itemTag = playerItem.stackTagCompound; - itemTag.setInteger("xCoord", x); - itemTag.setInteger("yCoord", y); - itemTag.setInteger("zCoord", z); - itemTag.setInteger("dimensionId", world.provider.dimensionId); - return true; - } - } - - player.openGui(AlchemicalWizardry.instance, 1, world, x, y, z); -// this.swapBlocks(world, x, y+1, z, x, y+2, z); -// -// world.markBlockForUpdate(x, y, z); - //player.openGui(AlchemicalWizardry.instance, 0, world, x, y, z); - //PacketDispatcher.sendPacketToServer(tileEntity.getDescriptionPacket()); - return true; - } - - @Override - public void breakBlock(World world, int x, int y, int z, Block par5, int par6) - { - dropItems(world, x, y, z); - super.breakBlock(world, x, y, z, par5, par6); - } - - private void dropItems(World world, int x, int y, int z) - { - Random rand = new Random(); - TileEntity tileEntity = world.getTileEntity(x, y, z); - - if (!(tileEntity instanceof IInventory)) - { - return; - } - - IInventory inventory = (IInventory) tileEntity; - - for (int i = 0; i < inventory.getSizeInventory(); i++) - { - ItemStack item = inventory.getStackInSlot(i); - - if (item != null && item.stackSize > 0) - { - float rx = rand.nextFloat() * 0.8F + 0.1F; - float ry = rand.nextFloat() * 0.8F + 0.1F; - float rz = rand.nextFloat() * 0.8F + 0.1F; - EntityItem entityItem = new EntityItem(world, x + rx, y + ry, z + rz, new ItemStack(item.getItem(), item.stackSize, item.getItemDamage())); - - if (item.hasTagCompound()) - { - entityItem.getEntityItem().setTagCompound((NBTTagCompound) item.getTagCompound().copy()); - } - - float factor = 0.05F; - entityItem.motionX = rand.nextGaussian() * factor; - entityItem.motionY = rand.nextGaussian() * factor + 0.2F; - entityItem.motionZ = rand.nextGaussian() * factor; - world.spawnEntityInWorld(entityItem); - item.stackSize = 0; - } - } - } - - @Override - public TileEntity createNewTileEntity(World world, int meta) - { - return new TETeleposer(); - } - - public static boolean swapBlocks(World worldI, World worldF, int xi, int yi, int zi, int xf, int yf, int zf) - { - //TODO Fix sapling duplication glitch - TileEntity tileEntityI = worldI.getTileEntity(xi, yi, zi); - TileEntity tileEntityF = worldF.getTileEntity(xf, yf, zf); - TileEntity tileI; - TileEntity tileF; -// ItemStack[] inv1 = new ItemStack[0]; -// ItemStack[] inv2 = new ItemStack[0]; - NBTTagCompound nbttag1 = new NBTTagCompound(); - NBTTagCompound nbttag2 = new NBTTagCompound(); - - if (tileEntityI != null) - { - //NBTTagCompound nbttag1 = new NBTTagCompound(); -// tileEntityI.xCoord=xf; -// tileEntityI.yCoord=yf; -// tileEntityI.zCoord=zf; - tileEntityI.writeToNBT(nbttag1); - //tileEntityI.readFromNBT(new NBTTagCompound()); - } - -// if(tileEntityI instanceof IInventory) -// { -// int size = ((IInventory)tileEntityI).getSizeInventory(); -// inv1 = new ItemStack[size]; -// for(int i=0; i0) -// { -// for(int i=0;i<((IInventory)tileI).getSizeInventory();i++) -// { -// ((IInventory)tileI).setInventorySlotContents(i, inv2[i]); -// } -// } -// -// if(tileF instanceof IInventory && inv1.length>0) -// { -// for(int i=0;i<((IInventory)tileF).getSizeInventory();i++) -// { -// ((IInventory)tileF).setInventorySlotContents(i, inv1[i]); -// } -// } -// worldI.markBlockForUpdate(xi, yi, zi); -// worldF.markBlockForUpdate(xf, yf, zf); - return true; - } -} diff --git a/1.7.2/main/java/WayofTime/alchemicalWizardry/common/block/BlockWritingTable.java b/1.7.2/main/java/WayofTime/alchemicalWizardry/common/block/BlockWritingTable.java deleted file mode 100644 index e7890015..00000000 --- a/1.7.2/main/java/WayofTime/alchemicalWizardry/common/block/BlockWritingTable.java +++ /dev/null @@ -1,181 +0,0 @@ -package WayofTime.alchemicalWizardry.common.block; - -import java.util.List; -import java.util.Random; - -import net.minecraft.block.Block; -import net.minecraft.block.BlockContainer; -import net.minecraft.block.material.Material; -import net.minecraft.client.renderer.texture.IIconRegister; -import net.minecraft.entity.Entity; -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.nbt.NBTTagCompound; -import net.minecraft.tileentity.TileEntity; -import net.minecraft.util.AxisAlignedBB; -import net.minecraft.util.IIcon; -import net.minecraft.world.World; -import WayofTime.alchemicalWizardry.AlchemicalWizardry; -import WayofTime.alchemicalWizardry.common.tileEntity.TEWritingTable; -import cpw.mods.fml.relauncher.Side; -import cpw.mods.fml.relauncher.SideOnly; - -public class BlockWritingTable extends BlockContainer -{ - @SideOnly(Side.CLIENT) - private static IIcon topIcon; - @SideOnly(Side.CLIENT) - private static IIcon sideIcon1; - @SideOnly(Side.CLIENT) - private static IIcon sideIcon2; - @SideOnly(Side.CLIENT) - private static IIcon bottomIcon; - - public BlockWritingTable() - { - super(Material.wood); - setHardness(2.0F); - setResistance(5.0F); - this.setBlockName("blockWritingTable"); - setCreativeTab(AlchemicalWizardry.tabBloodMagic); - } - - @Override - @SideOnly(Side.CLIENT) - public void registerBlockIcons(IIconRegister iconRegister) - { - this.topIcon = iconRegister.registerIcon("AlchemicalWizardry:AlchemicChemistrySet"); - this.sideIcon1 = iconRegister.registerIcon("AlchemicalWizardry:BloodAltar_SideType1"); - this.sideIcon2 = iconRegister.registerIcon("AlchemicalWizardry:BloodAltar_SideType2"); - this.bottomIcon = iconRegister.registerIcon("AlchemicalWizardry:BloodAltar_Bottom"); - } - - @Override - @SideOnly(Side.CLIENT) - public IIcon getIcon(int side, int meta) - { - switch (side) - { - case 0: - return bottomIcon; - - case 1: - return topIcon; - - //case 2: return sideIcon1; - //case 3: return sideIcon1; - //case 4: return sideIcon2; - //case 5: return sideIcon2; - default: - return sideIcon2; - } - } - - @Override - public boolean onBlockActivated(World world, int x, int y, int z, EntityPlayer player, int metadata, float what, float these, float are) - { - TileEntity tileEntity = world.getTileEntity(x, y, z); - - if (tileEntity == null || player.isSneaking()) - { - return false; - } - - //code to open gui explained later - player.openGui(AlchemicalWizardry.instance, 0, world, x, y, z); - return true; - } - - @Override - public void breakBlock(World world, int x, int y, int z, Block par5, int par6) - { - dropItems(world, x, y, z); - super.breakBlock(world, x, y, z, par5, par6); - } - - private void dropItems(World world, int x, int y, int z) - { - Random rand = new Random(); - TileEntity tileEntity = world.getTileEntity(x, y, z); - - if (!(tileEntity instanceof IInventory)) - { - return; - } - - IInventory inventory = (IInventory) tileEntity; - - for (int i = 0; i < inventory.getSizeInventory(); i++) - { - ItemStack item = inventory.getStackInSlot(i); - - if (item != null && item.stackSize > 0) - { - float rx = rand.nextFloat() * 0.8F + 0.1F; - float ry = rand.nextFloat() * 0.8F + 0.1F; - float rz = rand.nextFloat() * 0.8F + 0.1F; - EntityItem entityItem = new EntityItem(world, - x + rx, y + ry, z + rz, - new ItemStack(item.getItem(), item.stackSize, item.getItemDamage())); - - if (item.hasTagCompound()) - { - entityItem.getEntityItem().setTagCompound((NBTTagCompound) item.getTagCompound().copy()); - } - - float factor = 0.05F; - entityItem.motionX = rand.nextGaussian() * factor; - entityItem.motionY = rand.nextGaussian() * factor + 0.2F; - entityItem.motionZ = rand.nextGaussian() * factor; - world.spawnEntityInWorld(entityItem); - item.stackSize = 0; - } - } - } - - @Override - public TileEntity createNewTileEntity(World world, int meta) - { - return new TEWritingTable(); - } - - @Override - public boolean renderAsNormalBlock() - { - return false; - } - - @Override - public int getRenderType() - { - return -1; - } - - @Override - public boolean isOpaqueCube() - { - return false; - } - - @Override - public boolean hasTileEntity() - { - return true; - } - - @Override - public void addCollisionBoxesToList(World par1World, int par2, int par3, int par4, AxisAlignedBB par5AxisAlignedBB, List par6List, Entity par7Entity) - { - this.setBlockBounds(0.4375F, 0.0F, 0.4375F, 0.5625F, 0.9375F, 0.5625F); - super.addCollisionBoxesToList(par1World, par2, par3, par4, par5AxisAlignedBB, par6List, par7Entity); - this.setBlockBoundsForItemRender(); - super.addCollisionBoxesToList(par1World, par2, par3, par4, par5AxisAlignedBB, par6List, par7Entity); - } - - public void setBlockBoundsForItemRender() - { - this.setBlockBounds(0.0F, 0.0F, 0.0F, 1.0F, 0.125F, 1.0F); - } -} \ No newline at end of file diff --git a/1.7.2/main/java/WayofTime/alchemicalWizardry/common/block/BloodRune.java b/1.7.2/main/java/WayofTime/alchemicalWizardry/common/block/BloodRune.java deleted file mode 100644 index b5df0d22..00000000 --- a/1.7.2/main/java/WayofTime/alchemicalWizardry/common/block/BloodRune.java +++ /dev/null @@ -1,121 +0,0 @@ -package WayofTime.alchemicalWizardry.common.block; - -import java.util.List; - -import javax.swing.Icon; - -import net.minecraft.block.Block; -import net.minecraft.block.material.Material; -import net.minecraft.client.renderer.texture.IIconRegister; -import net.minecraft.creativetab.CreativeTabs; -import net.minecraft.item.Item; -import net.minecraft.item.ItemStack; -import net.minecraft.util.IIcon; -import WayofTime.alchemicalWizardry.AlchemicalWizardry; -import WayofTime.alchemicalWizardry.ModBlocks; -import cpw.mods.fml.relauncher.Side; -import cpw.mods.fml.relauncher.SideOnly; - -public class BloodRune extends Block -{ - //private Icon bloodRuneIcon; - private IIcon altarCapacityRuneIcon; - private IIcon dislocationRuneIcon; - private IIcon orbCapacityRuneIcon; - private IIcon betterCapacityRuneIcon; - - public BloodRune() - { - super(Material.iron); - this.setBlockName("bloodRune"); - setCreativeTab(AlchemicalWizardry.tabBloodMagic); - setHardness(2.0F); - setResistance(5.0F); - } - - @Override - @SideOnly(Side.CLIENT) - public void registerBlockIcons(IIconRegister iconRegister) - { - this.blockIcon = iconRegister.registerIcon("AlchemicalWizardry:BlankRune"); - this.altarCapacityRuneIcon = iconRegister.registerIcon("AlchemicalWizardry:AltarCapacityRune"); - this.dislocationRuneIcon = iconRegister.registerIcon("AlchemicalWizardry:DislocationRune"); - this.orbCapacityRuneIcon = iconRegister.registerIcon("AlchemicalWizardry:OrbCapacityRune"); - this.betterCapacityRuneIcon = iconRegister.registerIcon("AlchemicalWizardry:BetterCapacityRune"); - } - - public int getRuneEffect(int metaData) - { - switch (metaData) - { - case 0: - return 0; - - case 1: //Altar Capacity rune - return 5; - - case 2: //Filling/emptying rune - return 6; - - case 3: //Orb Capacity rune - return 7; - - case 4: //Better Capacity rune - return 8; - } - - return 0; - } - - @SideOnly(Side.CLIENT) - - /** - * returns a list of items with the same ID, but different meta (eg: dye returns 16 items) - */ - public void getSubBlocks(Item par1, CreativeTabs par2CreativeTabs, List par3List) - { - if (this.equals(ModBlocks.bloodRune)) - { - 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)); - par3List.add(new ItemStack(par1, 1, 4)); - } else - { - super.getSubBlocks(par1, par2CreativeTabs, par3List); - } - } - - @Override - @SideOnly(Side.CLIENT) - public IIcon getIcon(int side, int meta) - { - switch (meta) - { - case 0: - return blockIcon; - - case 1: - return altarCapacityRuneIcon; - - case 2: - return dislocationRuneIcon; - - case 3: - return this.orbCapacityRuneIcon; - - case 4: - return this.betterCapacityRuneIcon; - - default: - return blockIcon; - } - } - - @Override - public int damageDropped(int metadata) - { - return metadata; - } -} diff --git a/1.7.2/main/java/WayofTime/alchemicalWizardry/common/block/BloodStoneBrick.java b/1.7.2/main/java/WayofTime/alchemicalWizardry/common/block/BloodStoneBrick.java deleted file mode 100644 index 0e33c138..00000000 --- a/1.7.2/main/java/WayofTime/alchemicalWizardry/common/block/BloodStoneBrick.java +++ /dev/null @@ -1,27 +0,0 @@ -package WayofTime.alchemicalWizardry.common.block; - -import net.minecraft.block.Block; -import net.minecraft.block.material.Material; -import net.minecraft.client.renderer.texture.IIconRegister; -import WayofTime.alchemicalWizardry.AlchemicalWizardry; -import cpw.mods.fml.relauncher.Side; -import cpw.mods.fml.relauncher.SideOnly; - -public class BloodStoneBrick extends Block -{ - public BloodStoneBrick() - { - super(Material.iron); - setHardness(2.0F); - setResistance(5.0F); - setCreativeTab(AlchemicalWizardry.tabBloodMagic); - this.setBlockName("bloodStoneBrick"); - } - - @Override - @SideOnly(Side.CLIENT) - public void registerBlockIcons(IIconRegister iconRegister) - { - this.blockIcon = iconRegister.registerIcon("AlchemicalWizardry:BloodStoneBrick"); - } -} diff --git a/1.7.2/main/java/WayofTime/alchemicalWizardry/common/block/EfficiencyRune.java b/1.7.2/main/java/WayofTime/alchemicalWizardry/common/block/EfficiencyRune.java deleted file mode 100644 index 337b3e90..00000000 --- a/1.7.2/main/java/WayofTime/alchemicalWizardry/common/block/EfficiencyRune.java +++ /dev/null @@ -1,31 +0,0 @@ -package WayofTime.alchemicalWizardry.common.block; - -import net.minecraft.client.renderer.texture.IIconRegister; -import WayofTime.alchemicalWizardry.AlchemicalWizardry; -import cpw.mods.fml.relauncher.Side; -import cpw.mods.fml.relauncher.SideOnly; - -public class EfficiencyRune extends BloodRune -{ - public EfficiencyRune() - { - super(); - this.setBlockName("efficiencyRune"); - setCreativeTab(AlchemicalWizardry.tabBloodMagic); - setHardness(2.0F); - setResistance(5.0F); - } - - @Override - @SideOnly(Side.CLIENT) - public void registerBlockIcons(IIconRegister iconRegister) - { - this.blockIcon = iconRegister.registerIcon("AlchemicalWizardry:EfficiencyRune"); - } - - @Override - public int getRuneEffect(int metaData) - { - return 2; - } -} diff --git a/1.7.2/main/java/WayofTime/alchemicalWizardry/common/block/EmptySocket.java b/1.7.2/main/java/WayofTime/alchemicalWizardry/common/block/EmptySocket.java deleted file mode 100644 index ec78e760..00000000 --- a/1.7.2/main/java/WayofTime/alchemicalWizardry/common/block/EmptySocket.java +++ /dev/null @@ -1,34 +0,0 @@ -package WayofTime.alchemicalWizardry.common.block; - -import net.minecraft.block.Block; -import net.minecraft.block.material.Material; -import net.minecraft.client.renderer.texture.IIconRegister; -import WayofTime.alchemicalWizardry.AlchemicalWizardry; -import cpw.mods.fml.relauncher.Side; -import cpw.mods.fml.relauncher.SideOnly; - -public class EmptySocket extends Block -{ - public EmptySocket() - { - super(Material.iron); - setHardness(2.0F); - setResistance(5.0F); - setCreativeTab(AlchemicalWizardry.tabBloodMagic); - this.setBlockName("emptySocket"); - // TODO Auto-generated constructor stub - } - - @Override - public boolean isOpaqueCube() - { - return false; - } - - @Override - @SideOnly(Side.CLIENT) - public void registerBlockIcons(IIconRegister iconRegister) - { - this.blockIcon = iconRegister.registerIcon("AlchemicalWizardry:EmptySocket"); - } -} diff --git a/1.7.2/main/java/WayofTime/alchemicalWizardry/common/block/IOrientable.java b/1.7.2/main/java/WayofTime/alchemicalWizardry/common/block/IOrientable.java deleted file mode 100644 index 93b170b0..00000000 --- a/1.7.2/main/java/WayofTime/alchemicalWizardry/common/block/IOrientable.java +++ /dev/null @@ -1,14 +0,0 @@ -package WayofTime.alchemicalWizardry.common.block; - -import net.minecraftforge.common.util.ForgeDirection; - -public interface IOrientable -{ - public ForgeDirection getInputDirection(); - - public ForgeDirection getOutputDirection(); - - public void setInputDirection(ForgeDirection direction); - - public void setOutputDirection(ForgeDirection direction); -} diff --git a/1.7.2/main/java/WayofTime/alchemicalWizardry/common/block/ImperfectRitualStone.java b/1.7.2/main/java/WayofTime/alchemicalWizardry/common/block/ImperfectRitualStone.java deleted file mode 100644 index c3467192..00000000 --- a/1.7.2/main/java/WayofTime/alchemicalWizardry/common/block/ImperfectRitualStone.java +++ /dev/null @@ -1,143 +0,0 @@ -package WayofTime.alchemicalWizardry.common.block; - -import net.minecraft.block.Block; -import net.minecraft.block.material.Material; -import net.minecraft.client.renderer.texture.IIconRegister; -import net.minecraft.entity.effect.EntityLightningBolt; -import net.minecraft.entity.monster.EntityZombie; -import net.minecraft.entity.player.EntityPlayer; -import net.minecraft.init.Blocks; -import net.minecraft.potion.Potion; -import net.minecraft.potion.PotionEffect; -import net.minecraft.world.World; -import WayofTime.alchemicalWizardry.AlchemicalWizardry; -import WayofTime.alchemicalWizardry.common.PacketHandler; -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 ImperfectRitualStone extends Block -{ - public ImperfectRitualStone() - { - super(Material.iron); - setHardness(2.0F); - setResistance(5.0F); - setCreativeTab(AlchemicalWizardry.tabBloodMagic); - this.setBlockName("imperfectRitualStone"); - // TODO Auto-generated constructor stub - } - - @Override - @SideOnly(Side.CLIENT) - public void registerBlockIcons(IIconRegister iconRegister) - { - this.blockIcon = iconRegister.registerIcon("AlchemicalWizardry:ImperfectRitualStone"); - } - - @Override - public boolean onBlockActivated(World world, int x, int y, int z, EntityPlayer player, int side, float xOff, float yOff, float zOff) - { - //ItemStack ist = player.getItemInUse(); - //if (!world.isRemote) - { - Block block = world.getBlock(x, y + 1, z); - - if (block == Blocks.water) - { - if (!player.capabilities.isCreativeMode && world.isRemote) - { - - //PacketDispatcher.sendPacketToServer(PacketHandler.getPacket(SpellHelper.getUsername(player) , -5000, 0)); - } - - if (!world.isRemote) - { - world.addWeatherEffect(new EntityLightningBolt(world, x, y + 2, z)); -// if (!player.capabilities.isCreativeMode) -// { -// PacketDispatcher.sendPacketToServer(PacketHandler.getPacket(player.getEntityName(), -5000, 0)); -// } - } - - world.getWorldInfo().setRaining(true); - - if (world.isRemote) - { - world.setRainStrength(1.0F); - } - - world.setThunderStrength(1.0f); - world.getWorldInfo().setThunderTime(0); - world.getWorldInfo().setThundering(true); - return true; - } else if (block == Blocks.coal_block) - { - if (!player.capabilities.isCreativeMode && world.isRemote) - { - EnergyItems.drainPlayerNetwork(player, 5000); - } - - //EntityFallenAngel zomb = new EntityFallenAngel(world); - EntityZombie zomb = new EntityZombie(world); - zomb.setPosition(x + 0.5, y + 2, z + 0.5); - // zomb.setCurrentItemOrArmor(4, new ItemStack(Item.helmetIron.itemID,1,0)); - // zomb.setCurrentItemOrArmor(3, new ItemStack(Item.plateIron.itemID,1,0)); - // zomb.setCurrentItemOrArmor(2, new ItemStack(Item.legsIron.itemID,1,0)); - // zomb.setCurrentItemOrArmor(1, new ItemStack(Item.bootsIron.itemID,1,0)); - //zomb.setCurrentItemOrArmor(0, new ItemStack(AlchemicalWizardry.energySword.itemID,1,0)); - zomb.addPotionEffect(new PotionEffect(Potion.fireResistance.id, 2000)); - zomb.addPotionEffect(new PotionEffect(Potion.damageBoost.id, 20000, 7)); - zomb.addPotionEffect(new PotionEffect(Potion.resistance.id, 20000, 3)); - - if (!world.isRemote) - { - world.spawnEntityInWorld(zomb); - world.addWeatherEffect(new EntityLightningBolt(world, x, y + 2, z)); -// if (!player.capabilities.isCreativeMode) -// { -// PacketDispatcher.sendPacketToServer(PacketHandler.getPacket(player.getEntityName(), -5000, 0)); -// } - } - - return true; - } else if (block== Blocks.lapis_block) - { - if (!player.capabilities.isCreativeMode && world.isRemote) - { - EnergyItems.drainPlayerNetwork(player, 5000); - } - - if (!world.isRemote) - { - world.addWeatherEffect(new EntityLightningBolt(world, x, y + 2, z)); - world.setWorldTime((world.getWorldTime() / 24000) * 24000 + 13800); -// if (!player.capabilities.isCreativeMode) -// { -// PacketDispatcher.sendPacketToServer(PacketHandler.getPacket(player.getEntityName(), -5000, 0)); -// } - } - } else if (block == Blocks.bedrock) - { - if (!player.capabilities.isCreativeMode && world.isRemote) - { - EnergyItems.drainPlayerNetwork(player, 5000); - } - - if (!world.isRemote) - { - world.addWeatherEffect(new EntityLightningBolt(world, x, y + 2, z)); - //world.setWorldTime((world.getWorldTime()/24000)*24000+13800); -// if (!player.capabilities.isCreativeMode) -// { -// PacketDispatcher.sendPacketToServer(PacketHandler.getPacket(player.getEntityName(), -5000, 0)); -// } - } - - player.addPotionEffect(new PotionEffect(Potion.resistance.id, 60 * 20, 1)); - } - } - return false; - } -} diff --git a/1.7.2/main/java/WayofTime/alchemicalWizardry/common/block/LargeBloodStoneBrick.java b/1.7.2/main/java/WayofTime/alchemicalWizardry/common/block/LargeBloodStoneBrick.java deleted file mode 100644 index 1969c452..00000000 --- a/1.7.2/main/java/WayofTime/alchemicalWizardry/common/block/LargeBloodStoneBrick.java +++ /dev/null @@ -1,27 +0,0 @@ -package WayofTime.alchemicalWizardry.common.block; - -import net.minecraft.block.Block; -import net.minecraft.block.material.Material; -import net.minecraft.client.renderer.texture.IIconRegister; -import WayofTime.alchemicalWizardry.AlchemicalWizardry; -import cpw.mods.fml.relauncher.Side; -import cpw.mods.fml.relauncher.SideOnly; - -public class LargeBloodStoneBrick extends Block -{ - public LargeBloodStoneBrick() - { - super(Material.iron); - setHardness(2.0F); - setResistance(5.0F); - setCreativeTab(AlchemicalWizardry.tabBloodMagic); - this.setBlockName("largeBloodStoneBrick"); - } - - @Override - @SideOnly(Side.CLIENT) - public void registerBlockIcons(IIconRegister iconRegister) - { - this.blockIcon = iconRegister.registerIcon("AlchemicalWizardry:LargeBloodStoneBrick"); - } -} diff --git a/1.7.2/main/java/WayofTime/alchemicalWizardry/common/block/LifeEssenceBlock.java b/1.7.2/main/java/WayofTime/alchemicalWizardry/common/block/LifeEssenceBlock.java deleted file mode 100644 index 34676410..00000000 --- a/1.7.2/main/java/WayofTime/alchemicalWizardry/common/block/LifeEssenceBlock.java +++ /dev/null @@ -1,62 +0,0 @@ -package WayofTime.alchemicalWizardry.common.block; - -import net.minecraft.block.material.Material; -import net.minecraft.client.renderer.texture.IIconRegister; -import net.minecraft.util.IIcon; -import net.minecraft.world.IBlockAccess; -import net.minecraft.world.World; -import net.minecraftforge.fluids.BlockFluidClassic; -import WayofTime.alchemicalWizardry.AlchemicalWizardry; -import cpw.mods.fml.relauncher.Side; -import cpw.mods.fml.relauncher.SideOnly; - -public class LifeEssenceBlock extends BlockFluidClassic -{ - public LifeEssenceBlock() - { - super(AlchemicalWizardry.lifeEssenceFluid, Material.water); - AlchemicalWizardry.lifeEssenceFluid.setBlock(this); - - //setCreativeTab(AlchemicalWizardry.tabBloodMagic); - this.setBlockName("lifeEssenceFluidBlock"); - } - - @Override - @SideOnly(Side.CLIENT) - public IIcon getIcon(int side, int meta) - { - return this.blockIcon; - } - - @Override - @SideOnly(Side.CLIENT) - public void registerBlockIcons(IIconRegister iconRegister) - { - this.blockIcon = iconRegister.registerIcon("AlchemicalWizardry:lifeEssenceStill"); - AlchemicalWizardry.lifeEssenceFluid.setFlowingIcon(blockIcon); - AlchemicalWizardry.lifeEssenceFluid.setStillIcon(blockIcon); - //this.getFluid().setIcons(blockIcon); - } - - @Override - public boolean canDisplace(IBlockAccess world, int x, int y, int z) - { - if (world.getBlock(x, y, z).getMaterial().isLiquid()) - { - return false; - } - - return super.canDisplace(world, x, y, z); - } - - @Override - public boolean displaceIfPossible(World world, int x, int y, int z) - { - if (world.getBlock(x, y, z).getMaterial().isLiquid()) - { - return false; - } - - return super.displaceIfPossible(world, x, y, z); - } -} diff --git a/1.7.2/main/java/WayofTime/alchemicalWizardry/common/block/RitualStone.java b/1.7.2/main/java/WayofTime/alchemicalWizardry/common/block/RitualStone.java deleted file mode 100644 index a847c360..00000000 --- a/1.7.2/main/java/WayofTime/alchemicalWizardry/common/block/RitualStone.java +++ /dev/null @@ -1,121 +0,0 @@ -package WayofTime.alchemicalWizardry.common.block; - -import net.minecraft.block.Block; -import net.minecraft.block.material.Material; -import net.minecraft.client.renderer.texture.IIconRegister; -import net.minecraft.entity.player.EntityPlayer; -import net.minecraft.item.Item; -import net.minecraft.item.ItemStack; -import net.minecraft.util.IIcon; -import net.minecraft.world.World; -import WayofTime.alchemicalWizardry.AlchemicalWizardry; -import WayofTime.alchemicalWizardry.api.rituals.IRitualStone; -import WayofTime.alchemicalWizardry.common.items.ScribeTool; -import cpw.mods.fml.relauncher.Side; -import cpw.mods.fml.relauncher.SideOnly; - -public class RitualStone extends Block implements IRitualStone -{ - @SideOnly(Side.CLIENT) - private static IIcon blankIcon; - @SideOnly(Side.CLIENT) - private static IIcon waterStoneIcon; - @SideOnly(Side.CLIENT) - private static IIcon fireStoneIcon; - @SideOnly(Side.CLIENT) - private static IIcon earthStoneIcon; - @SideOnly(Side.CLIENT) - private static IIcon airStoneIcon; - @SideOnly(Side.CLIENT) - private static IIcon duskStoneIcon; - - public RitualStone() - { - super(Material.iron); - setHardness(2.0F); - setResistance(5.0F); - this.setBlockName("ritualStone"); - setCreativeTab(AlchemicalWizardry.tabBloodMagic); - } - - @Override - @SideOnly(Side.CLIENT) - public void registerBlockIcons(IIconRegister iconRegister) - { - this.blankIcon = iconRegister.registerIcon("AlchemicalWizardry:RitualStone"); - this.waterStoneIcon = iconRegister.registerIcon("AlchemicalWizardry:WaterRitualStone"); - this.fireStoneIcon = iconRegister.registerIcon("AlchemicalWizardry:FireRitualStone"); - this.earthStoneIcon = iconRegister.registerIcon("AlchemicalWizardry:EarthRitualStone"); - this.airStoneIcon = iconRegister.registerIcon("AlchemicalWizardry:AirRitualStone"); - this.duskStoneIcon = iconRegister.registerIcon("AlchemicalWizardry:DuskRitualStone"); - } - - @Override - public int damageDropped(int metadata) - { - return 0; - } - - @Override - public boolean onBlockActivated(World world, int x, int y, int z, EntityPlayer player, int idk, float what, float these, float are) - { - ItemStack playerItem = player.getCurrentEquippedItem(); - - if (playerItem == null) - { - return false; - } - - Item item = playerItem.getItem(); - - if (!(item instanceof ScribeTool)) - { - return false; - } - - if (playerItem.getMaxDamage() <= playerItem.getItemDamage() && !(playerItem.getMaxDamage() == 0)) - { - return false; - } - - ScribeTool scribeTool = (ScribeTool) item; - - if (!player.capabilities.isCreativeMode) - { - playerItem.setItemDamage(playerItem.getItemDamage() + 1); - } - - world.setBlockMetadataWithNotify(x, y, z, scribeTool.getType(), 3); - world.markBlockForUpdate(x, y, z); - return true; - } - - @Override - @SideOnly(Side.CLIENT) - public IIcon getIcon(int side, int metadata) - { - switch (metadata) - { - case 0: - return blankIcon; - - case 1: - return waterStoneIcon; - - case 2: - return fireStoneIcon; - - case 3: - return earthStoneIcon; - - case 4: - return airStoneIcon; - - case 5: - return duskStoneIcon; - - default: - return blankIcon; - } - } -} diff --git a/1.7.2/main/java/WayofTime/alchemicalWizardry/common/block/RuneOfSacrifice.java b/1.7.2/main/java/WayofTime/alchemicalWizardry/common/block/RuneOfSacrifice.java deleted file mode 100644 index d06ec80f..00000000 --- a/1.7.2/main/java/WayofTime/alchemicalWizardry/common/block/RuneOfSacrifice.java +++ /dev/null @@ -1,31 +0,0 @@ -package WayofTime.alchemicalWizardry.common.block; - -import net.minecraft.client.renderer.texture.IIconRegister; -import WayofTime.alchemicalWizardry.AlchemicalWizardry; -import cpw.mods.fml.relauncher.Side; -import cpw.mods.fml.relauncher.SideOnly; - -public class RuneOfSacrifice extends BloodRune -{ - public RuneOfSacrifice() - { - super(); - this.setBlockName("runeOfSacrifice"); - setCreativeTab(AlchemicalWizardry.tabBloodMagic); - setHardness(2.0F); - setResistance(5.0F); - } - - @Override - @SideOnly(Side.CLIENT) - public void registerBlockIcons(IIconRegister iconRegister) - { - this.blockIcon = iconRegister.registerIcon("AlchemicalWizardry:RuneOfSacrifice"); - } - - @Override - public int getRuneEffect(int metaData) - { - return 3; - } -} diff --git a/1.7.2/main/java/WayofTime/alchemicalWizardry/common/block/RuneOfSelfSacrifice.java b/1.7.2/main/java/WayofTime/alchemicalWizardry/common/block/RuneOfSelfSacrifice.java deleted file mode 100644 index 4032044d..00000000 --- a/1.7.2/main/java/WayofTime/alchemicalWizardry/common/block/RuneOfSelfSacrifice.java +++ /dev/null @@ -1,31 +0,0 @@ -package WayofTime.alchemicalWizardry.common.block; - -import net.minecraft.client.renderer.texture.IIconRegister; -import WayofTime.alchemicalWizardry.AlchemicalWizardry; -import cpw.mods.fml.relauncher.Side; -import cpw.mods.fml.relauncher.SideOnly; - -public class RuneOfSelfSacrifice extends BloodRune -{ - public RuneOfSelfSacrifice() - { - super(); - this.setBlockName("runeOfSelfSacrifice"); - setCreativeTab(AlchemicalWizardry.tabBloodMagic); - setHardness(2.0F); - setResistance(5.0F); - } - - @Override - @SideOnly(Side.CLIENT) - public void registerBlockIcons(IIconRegister iconRegister) - { - this.blockIcon = iconRegister.registerIcon("AlchemicalWizardry:RuneOfSelfSacrifice"); - } - - @Override - public int getRuneEffect(int metaData) - { - return 4; - } -} diff --git a/1.7.2/main/java/WayofTime/alchemicalWizardry/common/block/SpectralBlock.java b/1.7.2/main/java/WayofTime/alchemicalWizardry/common/block/SpectralBlock.java deleted file mode 100644 index 44b283c0..00000000 --- a/1.7.2/main/java/WayofTime/alchemicalWizardry/common/block/SpectralBlock.java +++ /dev/null @@ -1,104 +0,0 @@ -package WayofTime.alchemicalWizardry.common.block; - -import java.util.Random; - -import net.minecraft.block.Block; -import net.minecraft.block.material.Material; -import net.minecraft.client.renderer.texture.IIconRegister; -import net.minecraft.entity.player.EntityPlayer; -import net.minecraft.item.ItemBlock; -import net.minecraft.item.ItemStack; -import net.minecraft.world.World; -import cpw.mods.fml.relauncher.Side; -import cpw.mods.fml.relauncher.SideOnly; - -public class SpectralBlock extends Block -{ - public SpectralBlock() - { - super(Material.rock); - this.setBlockName("spectralBlock"); - } - -// @Override -// public int tickRate(World par1World) -// { -// return 10; -// } - - /** - * Ticks the block if it's been scheduled - */ - @Override - public void updateTick(World par1World, int par2, int par3, int par4, Random par5Random) - { - //if(!par1World.isRemote) - par1World.setBlockToAir(par2, par3, par4); - } - - @Override - @SideOnly(Side.CLIENT) - public void registerBlockIcons(IIconRegister iconRegister) - { - this.blockIcon = iconRegister.registerIcon("AlchemicalWizardry:SpectralBlock"); - } - - @Override - public boolean isOpaqueCube() - { - return false; - } - - @Override - public int quantityDropped(Random par1Random) - { - return 0; - } - - @SideOnly(Side.CLIENT) - /** - * Returns which pass should this block be rendered on. 0 for solids and 1 for alpha - */ - public int getRenderBlockPass() - { - return 1; - } - - @Override - public boolean onBlockActivated(World world, int x, int y, int z, EntityPlayer player, int idk, float what, float these, float are) - { - //TEAltar tileEntity = (TEAltar)world.getBlockTileEntity(x, y, z); - if (player.isSneaking()) - { - return false; - } - - ItemStack playerItem = player.getCurrentEquippedItem(); - - if (playerItem != null) - { - if (playerItem.getItem() instanceof ItemBlock) - { - world.setBlock(x, y, z, ((ItemBlock)(playerItem.getItem())).field_150939_a, playerItem.getItemDamage(), 3); - - if (!player.capabilities.isCreativeMode) - { - playerItem.stackSize--; - } - - return true; - } else - { - return false; - } - } - - return true; - } - - @Override - public void onBlockAdded(World par1World, int par2, int par3, int par4) - { - par1World.scheduleBlockUpdate(par2, par3, par4, this, 100); - } -} diff --git a/1.7.2/main/java/WayofTime/alchemicalWizardry/common/block/SpeedRune.java b/1.7.2/main/java/WayofTime/alchemicalWizardry/common/block/SpeedRune.java deleted file mode 100644 index 0680b066..00000000 --- a/1.7.2/main/java/WayofTime/alchemicalWizardry/common/block/SpeedRune.java +++ /dev/null @@ -1,31 +0,0 @@ -package WayofTime.alchemicalWizardry.common.block; - -import net.minecraft.client.renderer.texture.IIconRegister; -import WayofTime.alchemicalWizardry.AlchemicalWizardry; -import cpw.mods.fml.relauncher.Side; -import cpw.mods.fml.relauncher.SideOnly; - -public class SpeedRune extends BloodRune -{ - public SpeedRune() - { - super(); - this.setBlockName("speedRune"); - setCreativeTab(AlchemicalWizardry.tabBloodMagic); - setHardness(2.0F); - setResistance(5.0F); - } - - @Override - @SideOnly(Side.CLIENT) - public void registerBlockIcons(IIconRegister iconRegister) - { - this.blockIcon = iconRegister.registerIcon("AlchemicalWizardry:SpeedRune"); - } - - @Override - public int getRuneEffect(int metaData) - { - return 1; - } -} diff --git a/1.7.2/main/java/WayofTime/alchemicalWizardry/common/bloodAltarUpgrade/AltarComponent.java b/1.7.2/main/java/WayofTime/alchemicalWizardry/common/bloodAltarUpgrade/AltarComponent.java deleted file mode 100644 index 4aeb4e75..00000000 --- a/1.7.2/main/java/WayofTime/alchemicalWizardry/common/bloodAltarUpgrade/AltarComponent.java +++ /dev/null @@ -1,60 +0,0 @@ -package WayofTime.alchemicalWizardry.common.bloodAltarUpgrade; - -import net.minecraft.block.Block; - -public class AltarComponent -{ - private int x; - private int y; - private int z; - private Block block; - private int metadata; - private boolean isBloodRune; - private boolean isUpgradeSlot; - - public AltarComponent(int x, int y, int z, Block block, int metadata, boolean isBloodRune, boolean isUpgradeSlot) - { - this.x = x; - this.y = y; - this.z = z; - this.block = block; - this.metadata = metadata; - this.isBloodRune = isBloodRune; - this.isUpgradeSlot = isUpgradeSlot; - } - - public int getX() - { - return x; - } - - public int getY() - { - return y; - } - - public int getZ() - { - return z; - } - - public Block getBlock() - { - return block; - } - - public int getMetadata() - { - return metadata; - } - - public boolean isBloodRune() - { - return isBloodRune; - } - - public boolean isUpgradeSlot() - { - return isUpgradeSlot; - } -} diff --git a/1.7.2/main/java/WayofTime/alchemicalWizardry/common/bloodAltarUpgrade/AltarUpgradeComponent.java b/1.7.2/main/java/WayofTime/alchemicalWizardry/common/bloodAltarUpgrade/AltarUpgradeComponent.java deleted file mode 100644 index f6e231c2..00000000 --- a/1.7.2/main/java/WayofTime/alchemicalWizardry/common/bloodAltarUpgrade/AltarUpgradeComponent.java +++ /dev/null @@ -1,105 +0,0 @@ -package WayofTime.alchemicalWizardry.common.bloodAltarUpgrade; - -public class AltarUpgradeComponent -{ - private int speedUpgrades; - private int efficiencyUpgrades; - private int sacrificeUpgrades; - private int selfSacrificeUpgrades; - private int displacementUpgrades; - private int altarCapacitiveUpgrades; - private int orbCapacitiveUpgrades; - private int betterCapacitiveUpgrades; - - public AltarUpgradeComponent() - { - speedUpgrades = 0; - efficiencyUpgrades = 0; - sacrificeUpgrades = 0; - selfSacrificeUpgrades = 0; - displacementUpgrades = 0; - altarCapacitiveUpgrades = 0; - orbCapacitiveUpgrades = 0; - betterCapacitiveUpgrades = 0; - } - - public void addSpeedUpgrade() - { - speedUpgrades++; - } - - public void addEfficiencyUpgrade() - { - efficiencyUpgrades++; - } - - public void addSacrificeUpgrade() - { - sacrificeUpgrades++; - } - - public void addSelfSacrificeUpgrade() - { - selfSacrificeUpgrades++; - } - - public void addDisplacementUpgrade() - { - displacementUpgrades++; - } - - public void addaltarCapacitiveUpgrade() - { - altarCapacitiveUpgrades++; - } - - public void addorbCapacitiveUpgrade() - { - orbCapacitiveUpgrades++; - } - - public void addBetterCapacitiveUpgrade() - { - betterCapacitiveUpgrades++; - } - - public int getSpeedUpgrades() - { - return speedUpgrades; - } - - public int getEfficiencyUpgrades() - { - return efficiencyUpgrades; - } - - public int getSacrificeUpgrades() - { - return sacrificeUpgrades; - } - - public int getSelfSacrificeUpgrades() - { - return selfSacrificeUpgrades; - } - - public int getDisplacementUpgrades() - { - return displacementUpgrades; - } - - public int getAltarCapacitiveUpgrades() - { - return this.altarCapacitiveUpgrades; - } - - public int getOrbCapacitiveUpgrades() - { - return this.orbCapacitiveUpgrades; - } - - public int getBetterCapacitiveUpgrades() - { - return this.betterCapacitiveUpgrades; - } -} diff --git a/1.7.2/main/java/WayofTime/alchemicalWizardry/common/bloodAltarUpgrade/UpgradedAltars.java b/1.7.2/main/java/WayofTime/alchemicalWizardry/common/bloodAltarUpgrade/UpgradedAltars.java deleted file mode 100644 index 4c5ea30d..00000000 --- a/1.7.2/main/java/WayofTime/alchemicalWizardry/common/bloodAltarUpgrade/UpgradedAltars.java +++ /dev/null @@ -1,300 +0,0 @@ -package WayofTime.alchemicalWizardry.common.bloodAltarUpgrade; - -import java.util.ArrayList; -import java.util.List; - -import net.minecraft.block.Block; -import net.minecraft.init.Blocks; -import net.minecraft.world.World; -import WayofTime.alchemicalWizardry.AlchemicalWizardry; -import WayofTime.alchemicalWizardry.ModBlocks; -import WayofTime.alchemicalWizardry.common.block.BloodRune; - -public class UpgradedAltars -{ - public static List secondTierAltar = new ArrayList(); - public static List thirdTierAltar = new ArrayList(); - public static List fourthTierAltar = new ArrayList(); - public static List fifthTierAltar = new ArrayList(); - public static int highestAltar = 5; - - public static int isAltarValid(World world, int x, int y, int z) - { - for (int i = highestAltar; i >= 2; i--) - { - if (checkAltarIsValid(world, x, y, z, i)) - { - return i; - } - } - - return 1; - } - - public static boolean checkAltarIsValid(World world, int x, int y, int z, int altarTier) - { - switch (altarTier) - { - case 1: - return true; - - case 2: - for (AltarComponent ac : secondTierAltar) - { - if (ac.isBloodRune()) - { - Block testBlock = world.getBlock(x + ac.getX(), y + ac.getY(), z + ac.getZ()); - - if (!(testBlock instanceof BloodRune)) - { - return false; - } - } else - { - Block block = world.getBlock(x + ac.getX(), y + ac.getY(), z + ac.getZ()); - int metadata = world.getBlockMetadata(x + ac.getX(), y + ac.getY(), z + ac.getZ()); - - if (((ac.getBlock() != block) || (ac.getMetadata() != metadata)) && !(ac.getBlock() == Blocks.stonebrick && !world.isAirBlock(x + ac.getX(), y + ac.getY(), z + ac.getZ()))) - { - return false; - } - } - } - - return true; - - case 3: - for (AltarComponent ac : thirdTierAltar) - { - if (ac.isBloodRune()) - { - Block testBlock = world.getBlock(x + ac.getX(), y + ac.getY(), z + ac.getZ()); - - if (!(testBlock instanceof BloodRune)) - { - return false; - } - } else - { - Block block = world.getBlock(x + ac.getX(), y + ac.getY(), z + ac.getZ()); - int metadata = world.getBlockMetadata(x + ac.getX(), y + ac.getY(), z + ac.getZ()); - - if (((ac.getBlock() != block) || (ac.getMetadata() != metadata)) && !(ac.getBlock() == Blocks.stonebrick && !world.isAirBlock(x + ac.getX(), y + ac.getY(), z + ac.getZ()))) - { - return false; - } - } - } - - return true; - - case 4: - for (AltarComponent ac : fourthTierAltar) - { - if (ac.isBloodRune()) - { - Block testBlock = world.getBlock(x + ac.getX(), y + ac.getY(), z + ac.getZ()); - - if (!(testBlock instanceof BloodRune)) - { - return false; - } - } else - { - Block block = world.getBlock(x + ac.getX(), y + ac.getY(), z + ac.getZ()); - int metadata = world.getBlockMetadata(x + ac.getX(), y + ac.getY(), z + ac.getZ()); - - if (((ac.getBlock() != block) || (ac.getMetadata() != metadata)) && !(ac.getBlock() == Blocks.stonebrick && !world.isAirBlock(x + ac.getX(), y + ac.getY(), z + ac.getZ()))) - { - return false; - } - } - } - - return true; - - case 5: - for (AltarComponent ac : fifthTierAltar) - { - if (ac.isBloodRune()) - { - Block testBlock = world.getBlock(x + ac.getX(), y + ac.getY(), z + ac.getZ()); - - if (!(testBlock instanceof BloodRune)) - { - return false; - } - } else - { - Block block = world.getBlock(x + ac.getX(), y + ac.getY(), z + ac.getZ()); - int metadata = world.getBlockMetadata(x + ac.getX(), y + ac.getY(), z + ac.getZ()); - - if (((ac.getBlock() != block) || (ac.getMetadata() != metadata)) && !(ac.getBlock() == Blocks.stonebrick && !world.isAirBlock(x + ac.getX(), y + ac.getY(), z + ac.getZ()))) - { - return false; - } - } - } - - return true; - - default: - return false; - } - } - - public static AltarUpgradeComponent getUpgrades(World world, int x, int y, int z, int altarTier) - { - AltarUpgradeComponent upgrades = new AltarUpgradeComponent(); - List list = UpgradedAltars.getAltarUpgradeListForTier(altarTier); - - for (AltarComponent ac : list) - { - if (ac.isUpgradeSlot()) - { - //Currently checks the getRuneEffect. - //TODO Change so that it uses the metadata instead, with the BlockID. - Block testBlock = world.getBlock(x + ac.getX(), y + ac.getY(), z + ac.getZ()); - - if (testBlock instanceof BloodRune) - { - if (!world.isRemote) - { - switch (((BloodRune) testBlock).getRuneEffect(world.getBlockMetadata(x + ac.getX(), y + ac.getY(), z + ac.getZ()))) - { - case 1: - upgrades.addSpeedUpgrade(); - break; - - case 2: - upgrades.addEfficiencyUpgrade(); - break; - - case 3: - upgrades.addSacrificeUpgrade(); - break; - - case 4: - upgrades.addSelfSacrificeUpgrade(); - break; - - case 5: - upgrades.addaltarCapacitiveUpgrade(); - break; - - case 6: - upgrades.addDisplacementUpgrade(); - break; - - case 7: - upgrades.addorbCapacitiveUpgrade(); - break; - - case 8: - upgrades.addBetterCapacitiveUpgrade(); - break; - } - } - } - } - } - - return upgrades; - } - - public static void loadAltars() - { - secondTierAltar.add(new AltarComponent(-1, -1, -1, ModBlocks.bloodRune, 0, true, false)); - secondTierAltar.add(new AltarComponent(0, -1, -1, ModBlocks.bloodRune, 0, true, true)); - secondTierAltar.add(new AltarComponent(1, -1, -1, ModBlocks.bloodRune, 0, true, false)); - secondTierAltar.add(new AltarComponent(-1, -1, 0, ModBlocks.bloodRune, 0, true, true)); - secondTierAltar.add(new AltarComponent(1, -1, 0, ModBlocks.bloodRune, 0, true, true)); - secondTierAltar.add(new AltarComponent(-1, -1, 1, ModBlocks.bloodRune, 0, true, false)); - secondTierAltar.add(new AltarComponent(0, -1, 1, ModBlocks.bloodRune, 0, true, true)); - secondTierAltar.add(new AltarComponent(1, -1, 1, ModBlocks.bloodRune, 0, true, false)); - thirdTierAltar.add(new AltarComponent(-1, -1, -1, ModBlocks.bloodRune, 0, true, true)); - thirdTierAltar.add(new AltarComponent(0, -1, -1, ModBlocks.bloodRune, 0, true, true)); - thirdTierAltar.add(new AltarComponent(1, -1, -1, ModBlocks.bloodRune, 0, true, true)); - thirdTierAltar.add(new AltarComponent(-1, -1, 0, ModBlocks.bloodRune, 0, true, true)); - thirdTierAltar.add(new AltarComponent(1, -1, 0, ModBlocks.bloodRune, 0, true, true)); - thirdTierAltar.add(new AltarComponent(-1, -1, 1, ModBlocks.bloodRune, 0, true, true)); - thirdTierAltar.add(new AltarComponent(0, -1, 1, ModBlocks.bloodRune, 0, true, true)); - thirdTierAltar.add(new AltarComponent(1, -1, 1, ModBlocks.bloodRune, 0, true, true)); - thirdTierAltar.add(new AltarComponent(-3, -1, -3, Blocks.stonebrick, 0, false, false)); - thirdTierAltar.add(new AltarComponent(-3, 0, -3, Blocks.stonebrick, 0, false, false)); - thirdTierAltar.add(new AltarComponent(3, -1, -3, Blocks.stonebrick, 0, false, false)); - thirdTierAltar.add(new AltarComponent(3, 0, -3, Blocks.stonebrick, 0, false, false)); - thirdTierAltar.add(new AltarComponent(-3, -1, 3, Blocks.stonebrick, 0, false, false)); - thirdTierAltar.add(new AltarComponent(-3, 0, 3, Blocks.stonebrick, 0, false, false)); - thirdTierAltar.add(new AltarComponent(3, -1, 3, Blocks.stonebrick, 0, false, false)); - thirdTierAltar.add(new AltarComponent(3, 0, 3, Blocks.stonebrick, 0, false, false)); - thirdTierAltar.add(new AltarComponent(-3, 1, -3, Blocks.glowstone, 0, false, false)); - thirdTierAltar.add(new AltarComponent(3, 1, -3, Blocks.glowstone, 0, false, false)); - thirdTierAltar.add(new AltarComponent(-3, 1, 3, Blocks.glowstone, 0, false, false)); - thirdTierAltar.add(new AltarComponent(3, 1, 3, Blocks.glowstone, 0, false, false)); - - for (int i = -2; i <= 2; i++) - { - thirdTierAltar.add(new AltarComponent(3, -2, i, ModBlocks.bloodRune, 0, true, true)); - thirdTierAltar.add(new AltarComponent(-3, -2, i, ModBlocks.bloodRune, 0, true, true)); - thirdTierAltar.add(new AltarComponent(i, -2, 3, ModBlocks.bloodRune, 0, true, true)); - thirdTierAltar.add(new AltarComponent(i, -2, -3, ModBlocks.bloodRune, 0, true, true)); - } - - fourthTierAltar.addAll(thirdTierAltar); - - for (int i = -3; i <= 3; i++) - { - fourthTierAltar.add(new AltarComponent(5, -3, i, ModBlocks.bloodRune, 0, true, true)); - fourthTierAltar.add(new AltarComponent(-5, -3, i, ModBlocks.bloodRune, 0, true, true)); - fourthTierAltar.add(new AltarComponent(i, -3, 5, ModBlocks.bloodRune, 0, true, true)); - fourthTierAltar.add(new AltarComponent(i, -3, -5, ModBlocks.bloodRune, 0, true, true)); - } - - for (int i = -2; i <= 1; i++) - { - fourthTierAltar.add(new AltarComponent(5, i, 5, Blocks.stonebrick, 0, false, false)); - fourthTierAltar.add(new AltarComponent(5, i, -5, Blocks.stonebrick, 0, false, false)); - fourthTierAltar.add(new AltarComponent(-5, i, -5, Blocks.stonebrick, 0, false, false)); - fourthTierAltar.add(new AltarComponent(-5, i, 5, Blocks.stonebrick, 0, false, false)); - } - - fourthTierAltar.add(new AltarComponent(5, 2, 5, ModBlocks.largeBloodStoneBrick, 0, false, false)); - fourthTierAltar.add(new AltarComponent(5, 2, -5, ModBlocks.largeBloodStoneBrick, 0, false, false)); - fourthTierAltar.add(new AltarComponent(-5, 2, -5, ModBlocks.largeBloodStoneBrick, 0, false, false)); - fourthTierAltar.add(new AltarComponent(-5, 2, 5, ModBlocks.largeBloodStoneBrick, 0, false, false)); - fifthTierAltar.addAll(fourthTierAltar); - fifthTierAltar.add(new AltarComponent(-8, -3, 8, Blocks.beacon, 0, false, false)); - fifthTierAltar.add(new AltarComponent(-8, -3, -8, Blocks.beacon, 0, false, false)); - fifthTierAltar.add(new AltarComponent(8, -3, 8, Blocks.beacon, 0, false, false)); - fifthTierAltar.add(new AltarComponent(8, -3, 8, Blocks.beacon, 0, false, false)); - - for (int i = -6; i <= 6; i++) - { - fifthTierAltar.add(new AltarComponent(8, -4, i, ModBlocks.bloodRune, 0, true, true)); - fifthTierAltar.add(new AltarComponent(-8, -4, i, ModBlocks.bloodRune, 0, true, true)); - fifthTierAltar.add(new AltarComponent(i, -4, 8, ModBlocks.bloodRune, 0, true, true)); - fifthTierAltar.add(new AltarComponent(i, -4, -8, ModBlocks.bloodRune, 0, true, true)); - } - } - - public static List getAltarUpgradeListForTier(int tier) - { - switch (tier) - { - case 2: - return secondTierAltar; - - case 3: - return thirdTierAltar; - - case 4: - return fourthTierAltar; - - case 5: - return fifthTierAltar; - } - - return null; - } -} diff --git a/1.7.2/main/java/WayofTime/alchemicalWizardry/common/demonVillage/BlockSet.java b/1.7.2/main/java/WayofTime/alchemicalWizardry/common/demonVillage/BlockSet.java deleted file mode 100644 index 25398812..00000000 --- a/1.7.2/main/java/WayofTime/alchemicalWizardry/common/demonVillage/BlockSet.java +++ /dev/null @@ -1,195 +0,0 @@ -package WayofTime.alchemicalWizardry.common.demonVillage; - -import java.util.ArrayList; -import java.util.List; - -import net.minecraft.block.Block; -import net.minecraft.block.BlockStairs; -import net.minecraft.init.Blocks; -import net.minecraft.world.World; -import net.minecraftforge.common.util.ForgeDirection; -import WayofTime.alchemicalWizardry.common.Int3; -import cpw.mods.fml.common.registry.GameRegistry; -import cpw.mods.fml.common.registry.GameRegistry.UniqueIdentifier; - -public class BlockSet -{ - protected String blockid; - protected int[] metadata; - protected List positions; - - public BlockSet() - { - this(Blocks.stone); - } - - public BlockSet(String blockid) - { - this.blockid = blockid; - this.metadata = new int[4]; - positions = new ArrayList(); - } - - public BlockSet(Block block) - { - this(BlockSet.getPairedIdForBlock(block)); - } - - public BlockSet(Block block, int meta) - { - this(block); - for(int i=0; i getPositions() - { - return positions; - } - - public void addPositionToBlock(int xOffset, int yOffset, int zOffset) - { - positions.add(new Int3(xOffset, yOffset, zOffset)); - } - - public Block getBlock() - { - return this.getBlockForString(blockid); - } - - public static String getPairedIdForBlock(Block block) - { - UniqueIdentifier un = GameRegistry.findUniqueIdentifierFor(block); - String name = ""; - - if(un != null) - { - name = un.modId + ":" + un.name; - } - - return name; - } - - public static Block getBlockForString(String str) - { - String[] parts = str.split(":"); - String modId = parts[0]; - String name = parts[1]; - return GameRegistry.findBlock(modId, name); - } - - public int getMetaForDirection(ForgeDirection dir) - { - if(metadata.length < 4) - { - return 0; - } - - switch(dir) - { - case NORTH: - return metadata[0]; - case SOUTH: - return metadata[1]; - case WEST: - return metadata[2]; - case EAST: - return metadata[3]; - default: - return 0; - } - } - - public void buildAtIndex(World world, int xCoord, int yCoord, int zCoord, ForgeDirection dir, int index) - { - Block block = this.getBlock(); - if(index >= positions.size() || block == null) - { - return; - } - - Int3 position = positions.get(index); - int xOff = position.xCoord; - int yOff = position.yCoord; - int zOff = position.zCoord; - int meta = this.getMetaForDirection(dir); - - switch(dir) - { - case NORTH: - break; - case SOUTH: - xOff *= -1; - zOff *= -1; - break; - case WEST: - int temp = zOff; - zOff = xOff * -1; - xOff = temp; - break; - case EAST: - int temp2 = zOff * -1; - zOff = xOff; - xOff = temp2; - break; - default: - } - - world.setBlock(xCoord + xOff, yCoord + yOff, zCoord + zOff, block, meta, 3); - } - - public void buildAll(World world, int xCoord, int yCoord, int zCoord, ForgeDirection dir) - { - for(int i=0; i blockList; - - public BuildingSchematic() - { - this(""); - } - - public BuildingSchematic(String name) - { - this.name = name; - blockList = new ArrayList(); - this.doorX = 0; - this.doorZ = 0; - this.doorY = 0; - this.buildingTier = 0; - this.buildingType = DemonBuilding.BUILDING_HOUSE; - } - - public void addBlockWithMeta(Block block, int meta, int xOffset, int yOffset, int zOffset) - { - for(BlockSet set : blockList) - { - if(set.isContained(block, meta)) - { - set.addPositionToBlock(xOffset, yOffset, zOffset); - return; - } - } - - BlockSet set = new BlockSet(block, meta); - set.addPositionToBlock(xOffset, yOffset, zOffset); - blockList.add(set); - } - - public void buildAll(World world, int xCoord, int yCoord, int zCoord, ForgeDirection dir) - { - for(BlockSet set : blockList) - { - set.buildAll(world, xCoord, yCoord, zCoord, dir); - } - } - - public GridSpaceHolder createGSH() - { - GridSpaceHolder holder = new GridSpaceHolder(); - - for(BlockSet set : blockList) - { - for(Int3 coords : set.getPositions()) - { - int gridX = (int)((coords.xCoord+2*Math.signum(coords.xCoord))/5); - int gridZ = (int)((coords.zCoord+2*Math.signum(coords.zCoord))/5); - - holder.setGridSpace(gridX, gridZ, new GridSpace(GridSpace.HOUSE,0)); - } - } - - return holder; - } - - public Int3 getGridSpotOfDoor() - { - int gridX = (int)((doorX+2*Math.signum(doorX))/5); - int gridZ = (int)((doorZ+2*Math.signum(doorZ))/5); - - return new Int3(gridX, doorY, gridZ); - } - - public void destroyAllInField(World world, int xCoord, int yCoord, int zCoord, ForgeDirection dir) - { - GridSpaceHolder grid = this.createGSH(); - for(int i=this.getMinY(); i<=this.getMaxY(); i++) - { - grid.destroyAllInGridSpaces(world, xCoord, yCoord + i, zCoord, dir); - } - } - - public int getMinY() - { - int min = 0; - for(BlockSet set : blockList) - { - for(Int3 pos : set.getPositions()) - { - if(pos.yCoord < min) - { - min = pos.yCoord; - } - } - } - - return min; - } - - public int getMaxY() - { - int max = 0; - for(BlockSet set : blockList) - { - for(Int3 pos : set.getPositions()) - { - if(pos.yCoord > max) - { - max = pos.yCoord; - } - } - } - - return max; - } -} \ No newline at end of file diff --git a/1.7.2/main/java/WayofTime/alchemicalWizardry/common/demonVillage/DemonBuilding.java b/1.7.2/main/java/WayofTime/alchemicalWizardry/common/demonVillage/DemonBuilding.java deleted file mode 100644 index b0777a46..00000000 --- a/1.7.2/main/java/WayofTime/alchemicalWizardry/common/demonVillage/DemonBuilding.java +++ /dev/null @@ -1,120 +0,0 @@ -package WayofTime.alchemicalWizardry.common.demonVillage; - -import net.minecraft.world.World; -import net.minecraftforge.common.util.ForgeDirection; -import WayofTime.alchemicalWizardry.common.Int3; - -public class DemonBuilding -{ - public static final int BUILDING_HOUSE = 0; - public static final int BUILDING_PORTAL = 1; - - public BuildingSchematic schematic; - public GridSpaceHolder area; - public int buildingTier; - public int buildingType; - public Int3 doorGridSpace; - - public DemonBuilding(BuildingSchematic schematic) - { - this.schematic = schematic; - this.buildingType = schematic.buildingType; - this.buildingTier = schematic.buildingTier; - this.area = this.createGSHForSchematic(schematic); - this.doorGridSpace = schematic.getGridSpotOfDoor(); - } - - public String getName() - { - return schematic.name; - } - - public boolean isValid(GridSpaceHolder master, int gridX, int gridZ, ForgeDirection dir) - { - return area.doesContainAll(master, gridX, gridZ, dir); - } - - public void buildAll(World world, int xCoord, int yCoord, int zCoord, ForgeDirection dir) - { - schematic.buildAll(world, xCoord, yCoord, zCoord, dir); - } - - public void setAllGridSpaces(int xInit, int zInit, int yLevel, ForgeDirection dir, int type, GridSpaceHolder master) - { - area.setAllGridSpaces(xInit, zInit, yLevel, dir, type, master); - } - - public GridSpaceHolder createGSHForSchematic(BuildingSchematic scheme) - { - switch(this.buildingType) - { - case DemonBuilding.BUILDING_HOUSE: - return scheme.createGSH(); - case DemonBuilding.BUILDING_PORTAL: - - } - return scheme.createGSH(); - } - - public Int3 getDoorSpace(ForgeDirection dir) - { - int x = 0; - int z = 0; - switch(dir) - { - case SOUTH: - x = -doorGridSpace.xCoord; - z = -doorGridSpace.zCoord; - break; - case WEST: - x = doorGridSpace.zCoord; - z = -doorGridSpace.xCoord; - break; - case EAST: - x = -doorGridSpace.zCoord; - z = doorGridSpace.xCoord; - break; - default: - x = doorGridSpace.xCoord; - z = doorGridSpace.zCoord; - break; - } - - return new Int3(x, doorGridSpace.yCoord, z); - } - - public Int3 getGridOffsetFromRoad(ForgeDirection sideOfRoad, int yLevel) - { - Int3 doorSpace = this.getDoorSpace(sideOfRoad); - int x = doorSpace.xCoord; - int z = doorSpace.zCoord; - - switch(sideOfRoad) - { - case SOUTH: - z++; - break; - case EAST: - x++; - break; - case WEST: - x--; - break; - default: - z--; - break; - } - - return new Int3(x, yLevel, z); - } - - public void destroyAllInField(World world, int xCoord, int yCoord, int zCoord, ForgeDirection dir) - { - schematic.destroyAllInField(world, xCoord, yCoord, zCoord, dir); - } - - public int getNumberOfGridSpaces() - { - return area.getNumberOfGridSpaces(); - } -} diff --git a/1.7.2/main/java/WayofTime/alchemicalWizardry/common/demonVillage/DemonCrosspath.java b/1.7.2/main/java/WayofTime/alchemicalWizardry/common/demonVillage/DemonCrosspath.java deleted file mode 100644 index 3b8a7a71..00000000 --- a/1.7.2/main/java/WayofTime/alchemicalWizardry/common/demonVillage/DemonCrosspath.java +++ /dev/null @@ -1,22 +0,0 @@ -package WayofTime.alchemicalWizardry.common.demonVillage; - -import net.minecraft.world.World; - -public class DemonCrosspath -{ - private int xCoord; - private int yLevel; - private int zCoord; - - public DemonCrosspath(int xCoord, int yLevel, int zCoord) - { - this.xCoord = xCoord; - this.yLevel = yLevel; - this.zCoord = zCoord; - } - - public void createCrosspath(World world) - { - - } -} diff --git a/1.7.2/main/java/WayofTime/alchemicalWizardry/common/demonVillage/DemonVillagePath.java b/1.7.2/main/java/WayofTime/alchemicalWizardry/common/demonVillage/DemonVillagePath.java deleted file mode 100644 index 01645f35..00000000 --- a/1.7.2/main/java/WayofTime/alchemicalWizardry/common/demonVillage/DemonVillagePath.java +++ /dev/null @@ -1,135 +0,0 @@ -package WayofTime.alchemicalWizardry.common.demonVillage; - -import net.minecraft.block.Block; -import net.minecraft.block.material.Material; -import net.minecraft.world.World; -import net.minecraftforge.common.util.ForgeDirection; -import WayofTime.alchemicalWizardry.ModBlocks; -import WayofTime.alchemicalWizardry.common.Int3; - -public class DemonVillagePath -{ - public int xi; - public int yi; - public int zi; - public ForgeDirection dir; - public int length; - - public DemonVillagePath(int xi, int yi, int zi, ForgeDirection dir, int length) - { - this.xi = xi; - this.yi = yi; - this.zi = zi; - this.dir = dir; - this.length = length; - } - - public Int3 constructFullPath(World world, int clearance, Block block, int meta) - { - int xPos = this.xi; - int yPos = this.yi; - int zPos = this.zi; - int rad = this.getRoadRadius(); - - for(int i=-rad; i<=rad; i++) - { - this.constructPartialPath(world, clearance, block, meta, xPos-rad*dir.offsetX+i*dir.offsetZ, yPos, zPos-rad*dir.offsetZ+i*dir.offsetX, dir, length+2*rad); - } - - return this.getFinalLocation(world, clearance); - } - - public void constructPartialPath(World world, int clearance, Block roadBlock, int meta, int xi, int yi, int zi, ForgeDirection dir, int length) - { - int xPos = xi; - int yPos = yi; - int zPos = zi; - - for(int i=0; i posXRadius|| x < -negXRadius || z > posZRadius || z < -negZRadius) - { - return new GridSpace(); - }else - { - return (area[x + negXRadius][z + negZRadius]); - } - } - - public void setGridSpace(int x, int z, GridSpace space) - { - if(x > posXRadius) - { - this.expandAreaInPosX(); - this.setGridSpace(x, z, space); - return; - }else if(x < -negXRadius) - { - this.expandAreaInNegX(); - this.setGridSpace(x, z, space); - return; - }else if(z > posZRadius) - { - this.expandAreaInPosZ(); - this.setGridSpace(x, z, space); - return; - }else if(z < -negZRadius) - { - this.expandAreaInNegZ(); - this.setGridSpace(x, z, space); - return; - }else - { - area[x + negXRadius][z + negZRadius] = space; - } - } - - public boolean doesContainAll(GridSpaceHolder master, int xInit, int zInit, ForgeDirection dir) - { - if(master != null) - { - System.out.println("negXRadius: " + negXRadius + " posXRadius: " + posXRadius + " negZRadius: " + negZRadius + " posZRadius: " + posZRadius); - for(int i=-negXRadius; i<=posXRadius; i++) - { - for(int j=-negZRadius; j<=posZRadius; j++) - { - GridSpace thisSpace = this.getGridSpace(i, j); - if(thisSpace.isEmpty()) - { - continue; - } - - System.out.println("x: " + i + " z: " + j); - - int xOff = 0; - int zOff = 0; - - switch(dir) - { - case SOUTH: - xOff = -i; - zOff = -j; - break; - case WEST: - xOff = j; - zOff = -i; - break; - case EAST: - xOff = -j; - zOff = i; - break; - default: - xOff = i; - zOff = j; - break; - } - if(!master.getGridSpace(xInit + xOff, zInit + zOff).isEmpty()) - { - return false; - } - } - } - return true; - } - return false; - } - - public void setAllGridSpaces(int xInit, int zInit, int yLevel, ForgeDirection dir, int type, GridSpaceHolder master) - { - System.out.println("Grid space selected: (" + xInit + "," + zInit + ")"); - if(master != null) - { - for(int i=-negXRadius; i<=posXRadius; i++) - { - for(int j=-negZRadius; j<=posZRadius; j++) - { - GridSpace thisSpace = this.getGridSpace(i, j); - if(thisSpace.isEmpty()) - { - continue; - } - - int xOff = 0; - int zOff = 0; - - switch(dir) - { - case SOUTH: - xOff = -i; - zOff = -j; - break; - case WEST: - xOff = j; - zOff = -i; - break; - case EAST: - xOff = -j; - zOff = i; - break; - default: - xOff = i; - zOff = j; - break; - } - - System.out.println("Grid space (" + (xInit + xOff) + "," + (zInit + zOff) + ")"); - - master.setGridSpace(xInit + xOff, zInit + zOff, new GridSpace(type, yLevel)); - } - } - } - } - - public void destroyAllInGridSpaces(World world, int xCoord, int yCoord, int zCoord, ForgeDirection dir) - { - for(int i=-negXRadius; i<=posXRadius; i++) - { - for(int j=-negZRadius; j<=posZRadius; j++) - { - GridSpace thisSpace = this.getGridSpace(i, j); - if(thisSpace.isEmpty()) - { - continue; - } - - int xOff = 0; - int zOff = 0; - - switch(dir) - { - case SOUTH: - xOff = -i; - zOff = -j; - break; - case WEST: - xOff = j; - zOff = -i; - break; - case EAST: - xOff = -j; - zOff = i; - break; - default: - xOff = i; - zOff = j; - break; - } - - for(int l = -2; l<=2; l++) - { - for(int m = -2; m<=2; m++) - { - Block block = world.getBlock(xCoord + xOff*5 + l, yCoord, zCoord + zOff*5 + m); - if(block == ModBlocks.blockDemonPortal) - { - continue; - } - world.setBlockToAir(xCoord + xOff*5 + l, yCoord, zCoord + zOff*5 + m); - } - } - } - } - } - - public int getNumberOfGridSpaces() - { - int num = 0; - for(int i=-this.negXRadius; i<=this.posXRadius; i++) - { - for(int j=-this.negZRadius; j<=this.posZRadius; j++) - { - if(!this.getGridSpace(i, j).isEmpty()) - { - num++; - } - } - } - - return num; - } -} diff --git a/1.7.2/main/java/WayofTime/alchemicalWizardry/common/demonVillage/TileBlockSet.java b/1.7.2/main/java/WayofTime/alchemicalWizardry/common/demonVillage/TileBlockSet.java deleted file mode 100644 index 2209f58c..00000000 --- a/1.7.2/main/java/WayofTime/alchemicalWizardry/common/demonVillage/TileBlockSet.java +++ /dev/null @@ -1,8 +0,0 @@ -package WayofTime.alchemicalWizardry.common.demonVillage; - -import net.minecraft.nbt.NBTTagCompound; - -public class TileBlockSet extends BlockSet -{ - public NBTTagCompound tag; -} diff --git a/1.7.2/main/java/WayofTime/alchemicalWizardry/common/entity/mob/EntityBileDemon.java b/1.7.2/main/java/WayofTime/alchemicalWizardry/common/entity/mob/EntityBileDemon.java deleted file mode 100644 index 7fda195f..00000000 --- a/1.7.2/main/java/WayofTime/alchemicalWizardry/common/entity/mob/EntityBileDemon.java +++ /dev/null @@ -1,487 +0,0 @@ -package WayofTime.alchemicalWizardry.common.entity.mob; - -import net.minecraft.entity.Entity; -import net.minecraft.entity.EntityAgeable; -import net.minecraft.entity.EntityLivingBase; -import net.minecraft.entity.SharedMonsterAttributes; -import net.minecraft.entity.ai.EntityAIAttackOnCollide; -import net.minecraft.entity.ai.EntityAIFollowOwner; -import net.minecraft.entity.ai.EntityAIHurtByTarget; -import net.minecraft.entity.ai.EntityAILookIdle; -import net.minecraft.entity.ai.EntityAIOwnerHurtByTarget; -import net.minecraft.entity.ai.EntityAIOwnerHurtTarget; -import net.minecraft.entity.ai.EntityAISwimming; -import net.minecraft.entity.ai.EntityAIWander; -import net.minecraft.entity.ai.EntityAIWatchClosest; -import net.minecraft.entity.monster.EntityCreeper; -import net.minecraft.entity.monster.EntityGhast; -import net.minecraft.entity.passive.EntityAnimal; -import net.minecraft.entity.passive.EntityHorse; -import net.minecraft.entity.passive.EntityWolf; -import net.minecraft.entity.player.EntityPlayer; -import net.minecraft.entity.projectile.EntityArrow; -import net.minecraft.init.Items; -import net.minecraft.item.Item; -import net.minecraft.item.ItemFood; -import net.minecraft.item.ItemStack; -import net.minecraft.nbt.NBTTagCompound; -import net.minecraft.pathfinding.PathEntity; -import net.minecraft.util.DamageSource; -import net.minecraft.world.World; -import WayofTime.alchemicalWizardry.AlchemicalWizardry; -import WayofTime.alchemicalWizardry.ModItems; - -public class EntityBileDemon extends EntityDemon -{ - private EntityAIAttackOnCollide aiAttackOnCollide = new EntityAIAttackOnCollide(this, EntityPlayer.class, 1.2D, false); - - private static float maxTamedHealth = 100.0F; - private static float maxUntamedHealth = 200.0F; - private int attackTimer; - - public EntityBileDemon(World par1World) - { - super(par1World, AlchemicalWizardry.entityBileDemonID); - this.setSize(1.3F, 2.0F); - this.getNavigator().setAvoidsWater(true); - this.tasks.addTask(1, new EntityAISwimming(this)); - //this.tasks.addTask(3, new EntityAILeapAtTarget(this, 0.4F)); - this.tasks.addTask(2, new EntityAIAttackOnCollide(this, 1.0D, true)); - this.tasks.addTask(3, this.aiSit); - this.tasks.addTask(5, new EntityAIFollowOwner(this, 1.0D, 10.0F, 2.0F)); - //this.tasks.addTask(6, new EntityAIMate(this, 1.0D)); - this.tasks.addTask(7, new EntityAIWander(this, 1.0D)); - //this.tasks.addTask(8, new EntityAIBeg(this, 8.0F)); - this.tasks.addTask(9, new EntityAIWatchClosest(this, EntityPlayer.class, 8.0F)); - this.tasks.addTask(9, new EntityAILookIdle(this)); - this.targetTasks.addTask(1, new EntityAIOwnerHurtByTarget(this)); - this.targetTasks.addTask(2, new EntityAIOwnerHurtTarget(this)); - this.targetTasks.addTask(3, new EntityAIHurtByTarget(this, true)); - //this.targetTasks.addTask(4, new EntityAITargetNonTamed(this, EntitySheep.class, 200, false)); - this.setTamed(false); - attackTimer = 0; - //this.isImmuneToFire = true; - } - - @Override - protected void applyEntityAttributes() - { - super.applyEntityAttributes(); - //This line affects the speed of the monster - this.getEntityAttribute(SharedMonsterAttributes.movementSpeed).setBaseValue(0.20000001192092896D); - - //My guess is that this will alter the max health - if (this.isTamed()) - { - this.getEntityAttribute(SharedMonsterAttributes.maxHealth).setBaseValue(this.maxTamedHealth); - } else - { - this.getEntityAttribute(SharedMonsterAttributes.maxHealth).setBaseValue(this.maxUntamedHealth); - } - - //this.func_110148_a(SharedMonsterAttributes.field_111267_a).func_111128_a(10.0D); - } - - /** - * Returns true if the newer Entity AI code should be run - */ - public boolean isAIEnabled() - { - return true; - } - - /** - * Sets the active target the Task system uses for tracking - */ - public void setAttackTarget(EntityLivingBase par1EntityLivingBase) - { - super.setAttackTarget(par1EntityLivingBase); - - if (par1EntityLivingBase == null) - { - this.setAngry(false); - } else if (!this.isTamed()) - { - this.setAngry(true); - } - } - - /** - * main AI tick function, replaces updateEntityActionState - */ - protected void updateAITick() - { - this.dataWatcher.updateObject(18, Float.valueOf(this.getHealth())); - } - - protected void entityInit() - { - super.entityInit(); - this.dataWatcher.addObject(18, new Float(this.getHealth())); - this.dataWatcher.addObject(19, new Byte((byte) 0)); - //this.dataWatcher.addObject(20, new Byte((byte) BlockColored.getBlockFromDye(1))); - } - - /** - * Plays step sound at given x, y, z for the entity - */ - protected void playStepSound(int par1, int par2, int par3, int par4) - { - this.playSound("mob.zombie.step", 0.15F, 1.0F); - } - - /** - * (abstract) Protected helper method to write subclass entity data to NBT. - */ - public void writeEntityToNBT(NBTTagCompound par1NBTTagCompound) - { - super.writeEntityToNBT(par1NBTTagCompound); - par1NBTTagCompound.setBoolean("Angry", this.isAngry()); - par1NBTTagCompound.setByte("attackTimer", (byte) attackTimer); - } - - /** - * (abstract) Protected helper method to read subclass entity data from NBT. - */ - public void readEntityFromNBT(NBTTagCompound par1NBTTagCompound) - { - super.readEntityFromNBT(par1NBTTagCompound); - this.setAngry(par1NBTTagCompound.getBoolean("Angry")); - - attackTimer = par1NBTTagCompound.getByte("attackTimer"); - } - - /** - * Returns the sound this mob makes while it's alive. - */ - protected String getLivingSound() - { - return "none"; - } - - /** - * Returns the sound this mob makes when it is hurt. - */ - protected String getHurtSound() - { - return "mob.irongolem.hit"; - } - - /** - * Returns the sound this mob makes on death. - */ - protected String getDeathSound() - { - return "mob.irongolem.death"; - } - - /** - * Returns the volume for the sounds this mob makes. - */ - protected float getSoundVolume() - { - return 1.0F; - } - - /** - * Returns the item ID for the item the mob drops on death. - */ - protected int getDropItemId() - { - return -1; - } - - /** - * Called frequently so the entity can update its state every tick as required. For example, zombies and skeletons - * use this to react to sunlight and start to burn. - */ - public void onLivingUpdate() - { - super.onLivingUpdate(); - - if (attackTimer > 0) - { - attackTimer--; - } - } - - public int getAttackTimer() - { - return attackTimer; - } - - /** - * Called to update the entity's position/logic. - */ - public void onUpdate() - { - super.onUpdate(); - } - - public float getEyeHeight() - { - return this.height * 0.8F; - } - - /** - * The speed it takes to move the entityliving's rotationPitch through the faceEntity method. This is only currently - * use in wolves. - */ - public int getVerticalFaceSpeed() - { - return this.isSitting() ? 20 : super.getVerticalFaceSpeed(); - } - - /** - * Called when the entity is attacked. - */ - public boolean attackEntityFrom(DamageSource par1DamageSource, float par2) - { - if (this.isEntityInvulnerable()) - { - return false; - } else - { - Entity entity = par1DamageSource.getEntity(); - this.aiSit.setSitting(false); - - if (entity != null && !(entity instanceof EntityPlayer) && !(entity instanceof EntityArrow)) - { - par2 = (par2 + 1.0F) / 2.0F; - } - - return super.attackEntityFrom(par1DamageSource, par2); - } - } - - public boolean attackEntityAsMob(Entity par1Entity) - { - this.attackTimer = 10; - this.worldObj.setEntityState(this, (byte) 4); - boolean flag = par1Entity.attackEntityFrom(DamageSource.causeMobDamage(this), (float) (7 + this.rand.nextInt(15))); - - if (flag) - { - par1Entity.motionY += 0.4000000059604645D; - } - - this.playSound("mob.irongolem.throw", 1.0F, 1.0F); - return flag; - } - - public void setTamed(boolean par1) - { - super.setTamed(par1); - - if (par1) - { - this.getEntityAttribute(SharedMonsterAttributes.maxHealth).setBaseValue(this.maxTamedHealth); - } else - { - this.getEntityAttribute(SharedMonsterAttributes.maxHealth).setBaseValue(this.maxUntamedHealth); - } - } - - /** - * Called when a player interacts with a mob. e.g. gets milk from a cow, gets into the saddle on a pig. - */ - @Override - public boolean interact(EntityPlayer par1EntityPlayer) - { - ItemStack itemstack = par1EntityPlayer.inventory.getCurrentItem(); - - if (this.isTamed()) - { - if (itemstack != null) - { - if (itemstack.getItem() instanceof ItemFood) - { - ItemFood itemfood = (ItemFood) itemstack.getItem(); - - if (itemfood.isWolfsFavoriteMeat() && this.dataWatcher.getWatchableObjectFloat(18) < this.maxTamedHealth) - { - if (!par1EntityPlayer.capabilities.isCreativeMode) - { - --itemstack.stackSize; - } - - this.heal((float) itemfood.func_150905_g(itemstack)); - - if (itemstack.stackSize <= 0) - { - par1EntityPlayer.inventory.setInventorySlotContents(par1EntityPlayer.inventory.currentItem, (ItemStack) null); - } - - return true; - } - } - } - - if (par1EntityPlayer.getCommandSenderName().equalsIgnoreCase(this.getOwnerName()) && !this.isBreedingItem(itemstack)) - { - if (!this.worldObj.isRemote) - { - this.aiSit.setSitting(!this.isSitting()); - this.isJumping = false; - this.setPathToEntity((PathEntity) null); - this.setTarget((Entity) null); - this.setAttackTarget((EntityLivingBase) null); - } - - this.sendSittingMessageToPlayer(par1EntityPlayer, !this.isSitting()); - } - } else if (itemstack != null && itemstack.getItem().equals(ModItems.weakBloodOrb) && !this.isAngry()) - { - if (!par1EntityPlayer.capabilities.isCreativeMode) - { - --itemstack.stackSize; - } - - if (itemstack.stackSize <= 0) - { - par1EntityPlayer.inventory.setInventorySlotContents(par1EntityPlayer.inventory.currentItem, (ItemStack) null); - } - - if (!this.worldObj.isRemote) - { - if (this.rand.nextInt(1) == 0) - { - this.setTamed(true); - this.setPathToEntity((PathEntity) null); - this.setAttackTarget((EntityLivingBase) null); - this.aiSit.setSitting(true); - this.setHealth(this.maxTamedHealth); - this.setOwner(par1EntityPlayer.getCommandSenderName()); - this.playTameEffect(true); - this.worldObj.setEntityState(this, (byte) 7); - } else - { - this.playTameEffect(false); - this.worldObj.setEntityState(this, (byte) 6); - } - } - - return true; - } - - return super.interact(par1EntityPlayer); - } - - /** - * Checks if the parameter is an item which this animal can be fed to breed it (wheat, carrots or seeds depending on - * the animal type) - */ - public boolean isBreedingItem(ItemStack par1ItemStack) - { - return false; - //return par1ItemStack == null ? false : (!(Item.itemsList[par1ItemStack.itemID] instanceof ItemFood) ? false : ((ItemFood)Item.itemsList[par1ItemStack.itemID]).isWolfsFavoriteMeat()); - } - - /** - * Determines whether this wolf is angry or not. - */ - public boolean isAngry() - { - return (this.dataWatcher.getWatchableObjectByte(16) & 2) != 0; - } - - /** - * Sets whether this wolf is angry or not. - */ - public void setAngry(boolean par1) - { - byte b0 = this.dataWatcher.getWatchableObjectByte(16); - - if (par1) - { - this.dataWatcher.updateObject(16, Byte.valueOf((byte) (b0 | 2))); - } else - { - this.dataWatcher.updateObject(16, Byte.valueOf((byte) (b0 & -3))); - } - } - - /** - * Return this wolf's collar color. - */ - public int getCollarColor() - { - return this.dataWatcher.getWatchableObjectByte(20) & 15; - } - - /** - * Set this wolf's collar color. - */ - public void setCollarColor(int par1) - { - this.dataWatcher.updateObject(20, Byte.valueOf((byte) (par1 & 15))); - } - - /** - * This function is used when two same-species animals in 'love mode' breed to generate the new baby animal. - */ - public EntityWolf spawnBabyAnimal(EntityAgeable par1EntityAgeable) - { - return null; - } - - public void func_70918_i(boolean par1) - { - if (par1) - { - this.dataWatcher.updateObject(19, Byte.valueOf((byte) 1)); - } else - { - this.dataWatcher.updateObject(19, Byte.valueOf((byte) 0)); - } - } - - /** - * Returns true if the mob is currently able to mate with the specified mob. - */ - public boolean canMateWith(EntityAnimal par1EntityAnimal) - { - return false; - } - - public boolean func_70922_bv() - { - return this.dataWatcher.getWatchableObjectByte(19) == 1; - } - - /** - * Determines if an entity can be despawned, used on idle far away entities - */ - protected boolean canDespawn() - { - //return !this.isTamed() && this.ticksExisted > 2400; - return false; - } - - @Override - public boolean func_142018_a(EntityLivingBase par1EntityLivingBase, EntityLivingBase par2EntityLivingBase) - { - if (!(par1EntityLivingBase instanceof EntityCreeper) && !(par1EntityLivingBase instanceof EntityGhast)) - { - if (par1EntityLivingBase instanceof EntityBileDemon) - { - EntityBileDemon entitywolf = (EntityBileDemon) par1EntityLivingBase; - - if (entitywolf.isTamed() && entitywolf.getOwner() == par2EntityLivingBase) - { - return false; - } - } - - return par1EntityLivingBase instanceof EntityPlayer && par2EntityLivingBase instanceof EntityPlayer && !((EntityPlayer) par2EntityLivingBase).canAttackPlayer((EntityPlayer) par1EntityLivingBase) ? false : !(par1EntityLivingBase instanceof EntityHorse) || !((EntityHorse) par1EntityLivingBase).isTame(); - } else - { - return false; - } - } - - public EntityAgeable createChild(EntityAgeable par1EntityAgeable) - { - return this.spawnBabyAnimal(par1EntityAgeable); - } -} \ No newline at end of file diff --git a/1.7.2/main/java/WayofTime/alchemicalWizardry/common/entity/mob/EntityBoulderFist.java b/1.7.2/main/java/WayofTime/alchemicalWizardry/common/entity/mob/EntityBoulderFist.java deleted file mode 100644 index 8dfddeaf..00000000 --- a/1.7.2/main/java/WayofTime/alchemicalWizardry/common/entity/mob/EntityBoulderFist.java +++ /dev/null @@ -1,494 +0,0 @@ -package WayofTime.alchemicalWizardry.common.entity.mob; - -import WayofTime.alchemicalWizardry.AlchemicalWizardry; -import WayofTime.alchemicalWizardry.ModItems; -import WayofTime.alchemicalWizardry.common.EntityAITargetAggro; -import WayofTime.alchemicalWizardry.common.entity.projectile.HolyProjectile; -import net.minecraft.block.BlockColored; -import net.minecraft.entity.Entity; -import net.minecraft.entity.EntityAgeable; -import net.minecraft.entity.EntityLivingBase; -import net.minecraft.entity.SharedMonsterAttributes; -import net.minecraft.entity.ai.*; -import net.minecraft.entity.monster.EntityCreeper; -import net.minecraft.entity.monster.EntityGhast; -import net.minecraft.entity.passive.EntityAnimal; -import net.minecraft.entity.passive.EntityHorse; -import net.minecraft.entity.passive.EntityWolf; -import net.minecraft.entity.player.EntityPlayer; -import net.minecraft.entity.projectile.EntityArrow; -import net.minecraft.item.Item; -import net.minecraft.item.ItemFood; -import net.minecraft.item.ItemStack; -import net.minecraft.nbt.NBTTagCompound; -import net.minecraft.pathfinding.PathEntity; -import net.minecraft.util.DamageSource; -import net.minecraft.world.World; - -public class EntityBoulderFist extends EntityDemon -{ - //private EntityAIArrowAttack aiArrowAttack = new EntityAIArrowAttack(this, 1.0D, 40, 40, 15.0F); - private EntityAIAttackOnCollide aiAttackOnCollide = new EntityAIAttackOnCollide(this, EntityPlayer.class, 1.2D, false); - - private static float maxTamedHealth = 60.0F; - private static float maxUntamedHealth = 50.0F; - - public EntityBoulderFist(World par1World) - { - super(par1World, AlchemicalWizardry.entityBoulderFistID); - this.setSize(0.8F, 1.2F); - this.getNavigator().setAvoidsWater(true); - this.tasks.addTask(1, new EntityAISwimming(this)); - this.tasks.addTask(2, this.aiSit); - this.tasks.addTask(3, new EntityAILeapAtTarget(this, 0.4F)); - this.tasks.addTask(4, new EntityAIAttackOnCollide(this, 1.0D, true)); - this.tasks.addTask(5, new EntityAIFollowOwner(this, 1.0D, 10.0F, 2.0F)); - //this.tasks.addTask(6, new EntityAIMate(this, 1.0D)); - this.tasks.addTask(7, new EntityAIWander(this, 1.0D)); - //this.tasks.addTask(8, new EntityAIBeg(this, 8.0F)); - this.tasks.addTask(9, new EntityAIWatchClosest(this, EntityPlayer.class, 8.0F)); - this.tasks.addTask(9, new EntityAILookIdle(this)); - this.targetTasks.addTask(1, new EntityAIOwnerHurtByTarget(this)); - this.targetTasks.addTask(2, new EntityAIOwnerHurtTarget(this)); - this.targetTasks.addTask(3, new EntityAIHurtByTarget(this, true)); - this.targetTasks.addTask(4, new EntityAITargetAggro(this, EntityPlayer.class, 0, false)); - this.setAggro(false); - //this.targetTasks.addTask(4, new EntityAITargetNonTamed(this, EntitySheep.class, 200, false)); - this.setTamed(false); - - if (par1World != null && !par1World.isRemote) - { - this.setCombatTask(); - } - - //this.isImmuneToFire = true; - } - - @Override - protected void applyEntityAttributes() - { - super.applyEntityAttributes(); - //This line affects the speed of the monster - this.getEntityAttribute(SharedMonsterAttributes.movementSpeed).setBaseValue(0.30000001192092896D); - - //My guess is that this will alter the max health - if (this.isTamed()) - { - this.getEntityAttribute(SharedMonsterAttributes.maxHealth).setBaseValue(this.maxTamedHealth); - } else - { - this.getEntityAttribute(SharedMonsterAttributes.maxHealth).setBaseValue(this.maxUntamedHealth); - } - - //this.func_110148_a(SharedMonsterAttributes.field_111267_a).func_111128_a(10.0D); - } - - /** - * Returns true if the newer Entity AI code should be run - */ - public boolean isAIEnabled() - { - return true; - } - - /** - * Sets the active target the Task system uses for tracking - */ - public void setAttackTarget(EntityLivingBase par1EntityLivingBase) - { - super.setAttackTarget(par1EntityLivingBase); - - if (par1EntityLivingBase == null) - { - this.setAngry(false); - } else if (!this.isTamed()) - { - this.setAngry(true); - } - } - - /** - * main AI tick function, replaces updateEntityActionState - */ - protected void updateAITick() - { - this.dataWatcher.updateObject(18, Float.valueOf(this.getHealth())); - } - - protected void entityInit() - { - super.entityInit(); - this.dataWatcher.addObject(18, new Float(this.getHealth())); - this.dataWatcher.addObject(19, new Byte((byte) 0)); - //this.dataWatcher.addObject(20, new Byte((byte) BlockColored.getBlockFromDye(1))); - } - - /** - * Plays step sound at given x, y, z for the entity - */ - protected void playStepSound(int par1, int par2, int par3, int par4) - { - this.playSound("mob.zombie.step", 0.15F, 1.0F); - } - - /** - * (abstract) Protected helper method to write subclass entity data to NBT. - */ - public void writeEntityToNBT(NBTTagCompound par1NBTTagCompound) - { - super.writeEntityToNBT(par1NBTTagCompound); - par1NBTTagCompound.setBoolean("Angry", this.isAngry()); - } - - /** - * (abstract) Protected helper method to read subclass entity data from NBT. - */ - public void readEntityFromNBT(NBTTagCompound par1NBTTagCompound) - { - super.readEntityFromNBT(par1NBTTagCompound); - this.setAngry(par1NBTTagCompound.getBoolean("Angry")); - - - this.setCombatTask(); - } - - /** - * Returns the sound this mob makes while it's alive. - */ - protected String getLivingSound() - { - //TODO change sounds - return this.isAngry() ? "mob.wolf.growl" : (this.rand.nextInt(3) == 0 ? (this.isTamed() && this.dataWatcher.getWatchableObjectFloat(18) < 10.0F ? "mob.wolf.whine" : "mob.wolf.panting") : "mob.wolf.bark"); - } - - /** - * Returns the sound this mob makes when it is hurt. - */ - protected String getHurtSound() - { - return "mob.wolf.hurt"; - } - - /** - * Returns the sound this mob makes on death. - */ - protected String getDeathSound() - { - return "mob.wolf.death"; - } - - /** - * Returns the volume for the sounds this mob makes. - */ - protected float getSoundVolume() - { - return 0.4F; - } - - /** - * Returns the item ID for the item the mob drops on death. - */ - protected int getDropItemId() - { - return -1; - } - - /** - * Called frequently so the entity can update its state every tick as required. For example, zombies and skeletons - * use this to react to sunlight and start to burn. - */ - public void onLivingUpdate() - { - super.onLivingUpdate(); - } - - /** - * Called to update the entity's position/logic. - */ - public void onUpdate() - { - super.onUpdate(); - } - - public float getEyeHeight() - { - return this.height * 0.8F; - } - - /** - * The speed it takes to move the entityliving's rotationPitch through the faceEntity method. This is only currently - * use in wolves. - */ - public int getVerticalFaceSpeed() - { - return this.isSitting() ? 20 : super.getVerticalFaceSpeed(); - } - - /** - * Called when the entity is attacked. - */ - public boolean attackEntityFrom(DamageSource par1DamageSource, float par2) - { - if (this.isEntityInvulnerable()) - { - return false; - } else - { - Entity entity = par1DamageSource.getEntity(); - this.aiSit.setSitting(false); - - if (entity != null && !(entity instanceof EntityPlayer) && !(entity instanceof EntityArrow)) - { - par2 = (par2 + 1.0F) / 2.0F; - } - - return super.attackEntityFrom(par1DamageSource, par2); - } - } - - public boolean attackEntityAsMob(Entity par1Entity) - { - int i = this.isTamed() ? 6 : 7; - return par1Entity.attackEntityFrom(DamageSource.causeMobDamage(this), (float) i); - } - - public void setTamed(boolean par1) - { - super.setTamed(par1); - - if (par1) - { - this.getEntityAttribute(SharedMonsterAttributes.maxHealth).setBaseValue(this.maxTamedHealth); - } else - { - this.getEntityAttribute(SharedMonsterAttributes.maxHealth).setBaseValue(this.maxUntamedHealth); - } - } - - /** - * Called when a player interacts with a mob. e.g. gets milk from a cow, gets into the saddle on a pig. - */ - @Override - public boolean interact(EntityPlayer par1EntityPlayer) - { - ItemStack itemstack = par1EntityPlayer.inventory.getCurrentItem(); - - if (this.isTamed()) - { - if (itemstack != null) - { - if (itemstack.getItem() instanceof ItemFood) - { - ItemFood itemfood = (ItemFood) itemstack.getItem(); - - if (itemfood.isWolfsFavoriteMeat() && this.dataWatcher.getWatchableObjectFloat(18) < this.maxTamedHealth) - { - if (!par1EntityPlayer.capabilities.isCreativeMode) - { - --itemstack.stackSize; - } - - this.heal((float) itemfood.func_150905_g(itemstack)); - - if (itemstack.stackSize <= 0) - { - par1EntityPlayer.inventory.setInventorySlotContents(par1EntityPlayer.inventory.currentItem, (ItemStack) null); - } - - return true; - } - } - } - - if (par1EntityPlayer.getCommandSenderName().equalsIgnoreCase(this.getOwnerName()) && !this.isBreedingItem(itemstack)) - { - if (!this.worldObj.isRemote) - { - this.aiSit.setSitting(!this.isSitting()); - this.isJumping = false; - this.setPathToEntity((PathEntity) null); - this.setTarget((Entity) null); - this.setAttackTarget((EntityLivingBase) null); - } - - this.sendSittingMessageToPlayer(par1EntityPlayer, !this.isSitting()); - } - } else if (itemstack != null && itemstack.getItem().equals(ModItems.weakBloodOrb) && !this.isAngry()) - { - if (!par1EntityPlayer.capabilities.isCreativeMode) - { - --itemstack.stackSize; - } - - if (itemstack.stackSize <= 0) - { - par1EntityPlayer.inventory.setInventorySlotContents(par1EntityPlayer.inventory.currentItem, (ItemStack) null); - } - - if (!this.worldObj.isRemote) - { - if (this.rand.nextInt(1) == 0) - { - this.setTamed(true); - this.setPathToEntity((PathEntity) null); - this.setAttackTarget((EntityLivingBase) null); - this.aiSit.setSitting(true); - this.setHealth(this.maxTamedHealth); - this.setOwner(par1EntityPlayer.getCommandSenderName()); - this.playTameEffect(true); - this.worldObj.setEntityState(this, (byte) 7); - } else - { - this.playTameEffect(false); - this.worldObj.setEntityState(this, (byte) 6); - } - } - - return true; - } - - return super.interact(par1EntityPlayer); - } - - - /** - * Checks if the parameter is an item which this animal can be fed to breed it (wheat, carrots or seeds depending on - * the animal type) - */ - public boolean isBreedingItem(ItemStack par1ItemStack) - { - return false; - //return par1ItemStack == null ? false : (!(Item.itemsList[par1ItemStack.itemID] instanceof ItemFood) ? false : ((ItemFood)Item.itemsList[par1ItemStack.itemID]).isWolfsFavoriteMeat()); - } - - /** - * Determines whether this wolf is angry or not. - */ - public boolean isAngry() - { - return (this.dataWatcher.getWatchableObjectByte(16) & 2) != 0; - } - - /** - * Sets whether this wolf is angry or not. - */ - public void setAngry(boolean par1) - { - byte b0 = this.dataWatcher.getWatchableObjectByte(16); - - if (par1) - { - this.dataWatcher.updateObject(16, Byte.valueOf((byte) (b0 | 2))); - } else - { - this.dataWatcher.updateObject(16, Byte.valueOf((byte) (b0 & -3))); - } - } - - /** - * Return this wolf's collar color. - */ - public int getCollarColor() - { - return this.dataWatcher.getWatchableObjectByte(20) & 15; - } - - /** - * Set this wolf's collar color. - */ - public void setCollarColor(int par1) - { - this.dataWatcher.updateObject(20, Byte.valueOf((byte) (par1 & 15))); - } - - /** - * This function is used when two same-species animals in 'love mode' breed to generate the new baby animal. - */ - public EntityWolf spawnBabyAnimal(EntityAgeable par1EntityAgeable) - { - return null; - } - - public void func_70918_i(boolean par1) - { - if (par1) - { - this.dataWatcher.updateObject(19, Byte.valueOf((byte) 1)); - } else - { - this.dataWatcher.updateObject(19, Byte.valueOf((byte) 0)); - } - } - - /** - * Returns true if the mob is currently able to mate with the specified mob. - */ - public boolean canMateWith(EntityAnimal par1EntityAnimal) - { - return false; - } - - public boolean func_70922_bv() - { - return this.dataWatcher.getWatchableObjectByte(19) == 1; - } - - /** - * Determines if an entity can be despawned, used on idle far away entities - */ - protected boolean canDespawn() - { - //return !this.isTamed() && this.ticksExisted > 2400; - return false; - } - - @Override - public boolean func_142018_a(EntityLivingBase par1EntityLivingBase, EntityLivingBase par2EntityLivingBase) - { - if (!(par1EntityLivingBase instanceof EntityCreeper) && !(par1EntityLivingBase instanceof EntityGhast)) - { - if (par1EntityLivingBase instanceof EntityBoulderFist) - { - EntityBoulderFist entitywolf = (EntityBoulderFist) par1EntityLivingBase; - - if (entitywolf.isTamed() && entitywolf.getOwner() == par2EntityLivingBase) - { - return false; - } - } - - return par1EntityLivingBase instanceof EntityPlayer && par2EntityLivingBase instanceof EntityPlayer && !((EntityPlayer) par2EntityLivingBase).canAttackPlayer((EntityPlayer) par1EntityLivingBase) ? false : !(par1EntityLivingBase instanceof EntityHorse) || !((EntityHorse) par1EntityLivingBase).isTame(); - } else - { - return false; - } - } - - public EntityAgeable createChild(EntityAgeable par1EntityAgeable) - { - return this.spawnBabyAnimal(par1EntityAgeable); - } - - /** - * Attack the specified entity using a ranged attack. - */ - public void attackEntityWithRangedAttack(EntityLivingBase par1EntityLivingBase, float par2) - { - double xCoord; - double yCoord; - double zCoord; - HolyProjectile hol = new HolyProjectile(worldObj, this, par1EntityLivingBase, 1.8f, 0f, 5, 600); - this.worldObj.spawnEntityInWorld(hol); - } - - /** - * sets this entity's combat AI. - */ - public void setCombatTask() - { - this.tasks.removeTask(this.aiAttackOnCollide); - //this.tasks.removeTask(this.aiArrowAttack); - ItemStack itemstack = this.getHeldItem(); - this.tasks.addTask(4, this.aiAttackOnCollide); - } -} \ No newline at end of file diff --git a/1.7.2/main/java/WayofTime/alchemicalWizardry/common/entity/mob/EntityDemon.java b/1.7.2/main/java/WayofTime/alchemicalWizardry/common/entity/mob/EntityDemon.java deleted file mode 100644 index f28cbb75..00000000 --- a/1.7.2/main/java/WayofTime/alchemicalWizardry/common/entity/mob/EntityDemon.java +++ /dev/null @@ -1,94 +0,0 @@ -package WayofTime.alchemicalWizardry.common.entity.mob; - -import net.minecraft.entity.EntityAgeable; -import net.minecraft.entity.passive.EntityTameable; -import net.minecraft.entity.player.EntityPlayer; -import net.minecraft.item.ItemStack; -import net.minecraft.util.ChatComponentText; -import net.minecraft.world.World; -import WayofTime.alchemicalWizardry.ModItems; -import WayofTime.alchemicalWizardry.common.IDemon; -import WayofTime.alchemicalWizardry.common.items.DemonPlacer; - -public class EntityDemon extends EntityTameable implements IDemon -{ - private boolean isAggro; - private int demonID; - - public EntityDemon(World par1World, int demonID) - { - super(par1World); - this.demonID = demonID; - } - - @Override - public void setSummonedConditions() - { - this.setAggro(true); - } - - @Override - public boolean isAggro() - { - return this.isAggro; - } - - @Override - public void setAggro(boolean aggro) - { - this.isAggro = aggro; - } - - @Override - public EntityAgeable createChild(EntityAgeable entityageable) - { - // TODO Auto-generated method stub - return null; - } - - protected void dropFewItems(boolean par1, int par2) - { - ItemStack drop = new ItemStack(ModItems.demonPlacer, 1, this.getDemonID()); - DemonPlacer.setOwnerName(drop, this.getOwnerName()); - - if (this.hasCustomNameTag()) - { - drop.setStackDisplayName(this.getCustomNameTag()); - } - - this.entityDropItem(drop, 0.0f); - } - - public void onLivingUpdate() - { - super.onLivingUpdate(); - - if (!this.isAggro() && worldObj.getWorldTime() % 100 == 0) - { - this.heal(1); - } - } - - public void sendSittingMessageToPlayer(EntityPlayer owner, boolean isSitting) - { - if (owner != null && owner.worldObj.isRemote) - { - ChatComponentText chatmessagecomponent; - - if (isSitting) - { - chatmessagecomponent = new ChatComponentText("I will stay here for now, Master."); - } else - { - chatmessagecomponent = new ChatComponentText("I shall follow and protect you!"); - } - - owner.addChatComponentMessage(chatmessagecomponent); - } - } - - public int getDemonID() - { - return this.demonID; - } -} diff --git a/1.7.2/main/java/WayofTime/alchemicalWizardry/common/entity/mob/EntityEarthElemental.java b/1.7.2/main/java/WayofTime/alchemicalWizardry/common/entity/mob/EntityEarthElemental.java deleted file mode 100644 index 5d7b5045..00000000 --- a/1.7.2/main/java/WayofTime/alchemicalWizardry/common/entity/mob/EntityEarthElemental.java +++ /dev/null @@ -1,28 +0,0 @@ -package WayofTime.alchemicalWizardry.common.entity.mob; - -import WayofTime.alchemicalWizardry.AlchemicalWizardry; -import net.minecraft.entity.Entity; -import net.minecraft.entity.EntityLivingBase; -import net.minecraft.entity.monster.IMob; -import net.minecraft.potion.Potion; -import net.minecraft.potion.PotionEffect; -import net.minecraft.util.DamageSource; -import net.minecraft.world.World; - -public class EntityEarthElemental extends EntityElemental implements IMob -{ - public EntityEarthElemental(World world) - { - super(world, AlchemicalWizardry.entityEarthElementalID); - } - - public void inflictEffectOnEntity(Entity target) - { - if (target instanceof EntityLivingBase) - { - ((EntityLivingBase) target).attackEntityFrom(DamageSource.causeMobDamage(this), 10); - ((EntityLivingBase) target).addPotionEffect(new PotionEffect(Potion.moveSlowdown.id, 100, 4)); - ((EntityLivingBase) target).addPotionEffect(new PotionEffect(AlchemicalWizardry.customPotionInhibit.id, 150, 0)); - } - } -} \ No newline at end of file diff --git a/1.7.2/main/java/WayofTime/alchemicalWizardry/common/entity/mob/EntityElemental.java b/1.7.2/main/java/WayofTime/alchemicalWizardry/common/entity/mob/EntityElemental.java deleted file mode 100644 index 95275b21..00000000 --- a/1.7.2/main/java/WayofTime/alchemicalWizardry/common/entity/mob/EntityElemental.java +++ /dev/null @@ -1,744 +0,0 @@ -package WayofTime.alchemicalWizardry.common.entity.mob; - -import WayofTime.alchemicalWizardry.AlchemicalWizardry; -import WayofTime.alchemicalWizardry.ModItems; -import cpw.mods.fml.relauncher.Side; -import cpw.mods.fml.relauncher.SideOnly; -import net.minecraft.block.Block; -import net.minecraft.block.BlockColored; -import net.minecraft.entity.Entity; -import net.minecraft.entity.EntityAgeable; -import net.minecraft.entity.EntityLivingBase; -import net.minecraft.entity.SharedMonsterAttributes; -import net.minecraft.entity.ai.EntityAIAttackOnCollide; -import net.minecraft.entity.monster.EntityCreeper; -import net.minecraft.entity.monster.EntityGhast; -import net.minecraft.entity.passive.EntityAnimal; -import net.minecraft.entity.passive.EntityHorse; -import net.minecraft.entity.passive.EntityWolf; -import net.minecraft.entity.player.EntityPlayer; -import net.minecraft.entity.projectile.EntityArrow; -import net.minecraft.item.ItemStack; -import net.minecraft.nbt.NBTTagCompound; -import net.minecraft.potion.PotionEffect; -import net.minecraft.util.AxisAlignedBB; -import net.minecraft.util.DamageSource; -import net.minecraft.util.MathHelper; -import net.minecraft.world.World; - -import java.util.List; - -public class EntityElemental extends EntityDemon -{ - //private EntityAIArrowAttack aiArrowAttack = new EntityAIArrowAttack(this, 1.0D, 40, 40, 15.0F); - private EntityAIAttackOnCollide aiAttackOnCollide = new EntityAIAttackOnCollide(this, EntityPlayer.class, 1.2D, false); - - private static float maxTamedHealth = 100.0F; - private static float maxUntamedHealth = 100.0F; - - public EntityElemental(World par1World, int demonID) - { - super(par1World, demonID); - this.setSize(0.5F, 1.0F); - this.setAggro(false); - //this.targetTasks.addTask(4, new EntityAITargetNonTamed(this, EntitySheep.class, 200, false)); - this.setTamed(false); - - if (par1World != null && !par1World.isRemote) - { - this.setCombatTask(); - } - - //this.isImmuneToFire = true; - } - - public int courseChangeCooldown; - public double waypointX; - public double waypointY; - public double waypointZ; - private Entity targetedEntity; - - /** - * Cooldown time between target loss and new target aquirement. - */ - private int aggroCooldown; - public int prevAttackCounter; - public int attackCounter; - - /** - * The explosion radius of spawned fireballs. - */ - //private int explosionStrength = 1; -// -// private int heightOffsetUpdateTime; -// private float heightOffset = 0.5F; -// private int field_70846_g; - protected void dropFewItems(boolean par1, int par2) - { - if (worldObj.rand.nextFloat() < (1 - Math.pow(0.6f, par2 + 1))) - { - this.entityDropItem(new ItemStack(ModItems.demonBloodShard, 1, 0), 0.0f); - } - } - - protected void fall(float par1) - { - } - - /** - * Takes in the distance the entity has fallen this tick and whether its on the ground to update the fall distance - * and deal fall damage if landing on the ground. Args: distanceFallenThisTick, onGround - */ - protected void updateFallState(double par1, boolean par3) - { - } - - /** - * Moves the entity based on the specified heading. Args: strafe, forward - */ - public void moveEntityWithHeading(float par1, float par2) - { - if (this.isInWater()) - { - this.moveFlying(par1, par2, 0.02F); - this.moveEntity(this.motionX, this.motionY, this.motionZ); - this.motionX *= 0.800000011920929D; - this.motionY *= 0.800000011920929D; - this.motionZ *= 0.800000011920929D; - } else if (this.handleLavaMovement()) - { - this.moveFlying(par1, par2, 0.02F); - this.moveEntity(this.motionX, this.motionY, this.motionZ); - this.motionX *= 0.5D; - this.motionY *= 0.5D; - this.motionZ *= 0.5D; - } else - { - float f2 = 0.91F; - - if (this.onGround) - { - f2 = 0.54600006F; - Block i = this.worldObj.getBlock(MathHelper.floor_double(this.posX), MathHelper.floor_double(this.boundingBox.minY) - 1, MathHelper.floor_double(this.posZ)); - - if (i != null) - { - f2 = i.slipperiness * 0.91F; - } - } - - float f3 = 0.16277136F / (f2 * f2 * f2); - this.moveFlying(par1, par2, this.onGround ? 0.1F * f3 : 0.02F); - f2 = 0.91F; - - if (this.onGround) - { - f2 = 0.54600006F; - Block j = this.worldObj.getBlock(MathHelper.floor_double(this.posX), MathHelper.floor_double(this.boundingBox.minY) - 1, MathHelper.floor_double(this.posZ)); - - if (j != null) - { - f2 = j.slipperiness * 0.91F; - } - } - - this.moveEntity(this.motionX, this.motionY, this.motionZ); - this.motionX *= (double) f2; - this.motionY *= (double) f2; - this.motionZ *= (double) f2; - } - - double d0 = this.posX - this.prevPosX; - double d1 = this.posZ - this.prevPosZ; - float f4 = MathHelper.sqrt_double(d0 * d0 + d1 * d1) * 4.0F; - - if (f4 > 1.0F) - { - f4 = 1.0F; - } - } - - /** - * returns true if this entity is by a ladder, false otherwise - */ - public boolean isOnLadder() - { - return false; - } - - @SideOnly(Side.CLIENT) - public boolean func_110182_bF() - { - return this.dataWatcher.getWatchableObjectByte(25) != 0; - } - - protected void updateEntityActionState() - { -// if (!this.worldObj.isRemote && this.worldObj.difficultySetting == 0) -// { -// this.setDead(); -// } - - //this.despawnEntity(); - if (this.getHealth() <= this.getMaxHealth() / 2.0f && worldObj.rand.nextInt(200) == 0) - { - this.addPotionEffect(new PotionEffect(AlchemicalWizardry.customPotionReciprocation.id, 100, 1)); - } - - this.prevAttackCounter = this.attackCounter; - double d0 = this.waypointX - this.posX; - double d1 = this.waypointY - this.posY; - double d2 = this.waypointZ - this.posZ; - double d3 = d0 * d0 + d1 * d1 + d2 * d2; - - if (d3 < 1.0D || d3 > 3600.0D) - { - this.waypointX = this.posX + (double) ((this.rand.nextFloat() * 2.0F - 1.0F) * 16.0F); - this.waypointY = this.posY + (double) ((this.rand.nextFloat() * 2.0F - 1.0F) * 16.0F); - this.waypointZ = this.posZ + (double) ((this.rand.nextFloat() * 2.0F - 1.0F) * 16.0F); - } - - if (this.courseChangeCooldown-- <= 0) - { - this.courseChangeCooldown += this.rand.nextInt(5) + 2; - d3 = (double) MathHelper.sqrt_double(d3); - - if (this.isCourseTraversable(this.waypointX, this.waypointY, this.waypointZ, d3)) - { - this.motionX += d0 / d3 * 0.1D; - this.motionY += d1 / d3 * 0.1D; - this.motionZ += d2 / d3 * 0.1D; - } else - { - this.waypointX = this.posX + (double) ((this.rand.nextFloat() * 2.0F - 1.0F) * 16.0F); - this.waypointY = this.posY + (double) ((this.rand.nextFloat() * 2.0F - 1.0F) * 16.0F); - this.waypointZ = this.posZ + (double) ((this.rand.nextFloat() * 2.0F - 1.0F) * 16.0F); - } - } - - if (this.targetedEntity != null && this.targetedEntity.isDead) - { - this.targetedEntity = null; - } - - if (this.targetedEntity == null || this.aggroCooldown-- <= 0) - { - this.targetedEntity = getClosestVulnerableMonsterToEntity(this, 100.0D); - - if (this.targetedEntity != null) - { - this.aggroCooldown = 20; - } - } - - double d4 = 64.0D; - - if (this.targetedEntity != null && this.targetedEntity.getDistanceSqToEntity(this) < d4 * d4) - { - double d5 = this.targetedEntity.posX - this.posX; - double d6 = this.targetedEntity.boundingBox.minY + (double) (this.targetedEntity.height / 2.0F) - (this.posY + (double) (this.height / 2.0F)); - double d7 = this.targetedEntity.posZ - this.posZ; - this.renderYawOffset = this.rotationYaw = -((float) Math.atan2(d5, d7)) * 180.0F / (float) Math.PI; - - if (this.courseChangeCooldown <= 0) - { - if (isCourseTraversable(this.targetedEntity.posX, this.targetedEntity.posY, this.targetedEntity.posZ, Math.sqrt(d5 * d5 + d6 * d6 + d7 * d7))) - { - this.waypointX = this.targetedEntity.posX; - this.waypointY = this.targetedEntity.posY; - this.waypointZ = this.targetedEntity.posZ; - this.motionX += d5 / d3 * 0.1D; - this.motionY += d6 / d3 * 0.1D; - this.motionZ += d7 / d3 * 0.1D; - } else - { - this.waypointX = this.posX + (double) ((this.rand.nextFloat() * 2.0F - 1.0F) * 16.0F); - this.waypointY = this.posY + (double) ((this.rand.nextFloat() * 2.0F - 1.0F) * 16.0F); - this.waypointZ = this.posZ + (double) ((this.rand.nextFloat() * 2.0F - 1.0F) * 16.0F); - this.motionX += d5 / d3 * 0.1D; - this.motionY += d6 / d3 * 0.1D; - this.motionZ += d7 / d3 * 0.1D; - } - } - - if (this.canEntityBeSeen(this.targetedEntity)) - { - if (Math.sqrt(d5 * d5 + d6 * d6 + d7 * d7) < 4) - { -// if (this.attackCounter == 10) -// { -// this.worldObj.playAuxSFXAtEntity((EntityPlayer)null, 1007, (int)this.posX, (int)this.posY, (int)this.posZ, 0); -// } - ++this.attackCounter; - - if (this.attackCounter >= 10) - { - this.worldObj.playAuxSFXAtEntity((EntityPlayer) null, 1008, (int) this.posX, (int) this.posY, (int) this.posZ, 0); - this.inflictEffectOnEntity(this.targetedEntity); - this.attackCounter = -40; - } - } - } else if (this.attackCounter > 0) - { - --this.attackCounter; - } - } else - { - this.renderYawOffset = this.rotationYaw = -((float) Math.atan2(this.motionX, this.motionZ)) * 180.0F / (float) Math.PI; - - if (this.attackCounter > 0) - { - --this.attackCounter; - } - } - - if (!this.worldObj.isRemote) - { - byte b0 = this.dataWatcher.getWatchableObjectByte(25); - byte b1 = (byte) (this.attackCounter > 10 ? 1 : 0); - - if (b0 != b1) - { - this.dataWatcher.updateObject(25, Byte.valueOf(b1)); - } - } - } - - /** - * True if the ghast has an unobstructed line of travel to the waypoint. - */ - private boolean isCourseTraversable(double par1, double par3, double par5, double par7) - { - double d4 = (this.waypointX - this.posX) / par7; - double d5 = (this.waypointY - this.posY) / par7; - double d6 = (this.waypointZ - this.posZ) / par7; - AxisAlignedBB axisalignedbb = this.boundingBox.copy(); - - for (int i = 1; (double) i < par7; ++i) - { - axisalignedbb.offset(d4, d5, d6); - - if (!this.worldObj.getCollidingBoundingBoxes(this, axisalignedbb).isEmpty()) - { - return false; - } - } - - return true; - } - - /** - * Will return how many at most can spawn in a chunk at once. - */ - public int getMaxSpawnedInChunk() - { - return 1; - } - - /** - * (abstract) Protected helper method to write subclass entity data to NBT. - */ - public void writeEntityToNBT(NBTTagCompound par1NBTTagCompound) - { - super.writeEntityToNBT(par1NBTTagCompound); - par1NBTTagCompound.setBoolean("Angry", this.isAngry()); - } - - /** - * (abstract) Protected helper method to read subclass entity data from NBT. - */ - public void readEntityFromNBT(NBTTagCompound par1NBTTagCompound) - { - super.readEntityFromNBT(par1NBTTagCompound); - this.setAngry(par1NBTTagCompound.getBoolean("Angry")); - - this.setCombatTask(); - } - - @Override - protected void applyEntityAttributes() - { - super.applyEntityAttributes(); - //This line affects the speed of the monster - this.getEntityAttribute(SharedMonsterAttributes.movementSpeed).setBaseValue(0.30000001192092896D); - - //My guess is that this will alter the max health - if (this.isTamed()) - { - this.getEntityAttribute(SharedMonsterAttributes.maxHealth).setBaseValue(this.maxTamedHealth); - } else - { - this.getEntityAttribute(SharedMonsterAttributes.maxHealth).setBaseValue(this.maxUntamedHealth); - } - - //this.func_110148_a(SharedMonsterAttributes.field_111267_a).func_111128_a(10.0D); - } - - /** - * Returns true if the newer Entity AI code should be run - */ - public boolean isAIEnabled() - { - return false; - } - - /** - * Sets the active target the Task system uses for tracking - */ - public void setAttackTarget(EntityLivingBase par1EntityLivingBase) - { - super.setAttackTarget(par1EntityLivingBase); - - if (par1EntityLivingBase == null) - { - this.setAngry(false); - } else if (!this.isTamed()) - { - this.setAngry(true); - } - } - - /** - * main AI tick function, replaces updateEntityActionState - */ - protected void updateAITick() - { - this.dataWatcher.updateObject(18, Float.valueOf(this.getHealth())); - } - - protected void entityInit() - { - super.entityInit(); - this.dataWatcher.addObject(18, new Float(this.getHealth())); - this.dataWatcher.addObject(19, new Byte((byte) 0)); - //this.dataWatcher.addObject(20, new Byte((byte) BlockColored.getBlockFromDye(1))); - this.dataWatcher.addObject(25, Byte.valueOf((byte) 0)); - } - - /** - * Plays step sound at given x, y, z for the entity - */ - protected void playStepSound(int par1, int par2, int par3, int par4) - { - this.playSound("mob.zombie.step", 0.15F, 1.0F); - } - - /** - * Returns the sound this mob makes while it's alive. - */ - protected String getLivingSound() - { - //TODO change sounds - return "none"; - } - - /** - * Returns the sound this mob makes when it is hurt. - */ - protected String getHurtSound() - { - return "none"; - } - - /** - * Returns the sound this mob makes on death. - */ - protected String getDeathSound() - { - return "none"; - } - - /** - * Returns the volume for the sounds this mob makes. - */ - protected float getSoundVolume() - { - return 0.4F; - } - - /** - * Returns the item ID for the item the mob drops on death. - */ - protected int getDropItemId() - { - return -1; - } - - /** - * Called frequently so the entity can update its state every tick as required. For example, zombies and skeletons - * use this to react to sunlight and start to burn. - */ - public void onLivingUpdate() - { - super.onLivingUpdate(); - } - - /** - * Called to update the entity's position/logic. - */ - public void onUpdate() - { - super.onUpdate(); - } - - public float getEyeHeight() - { - return this.height * 0.8F; - } - - /** - * The speed it takes to move the entityliving's rotationPitch through the faceEntity method. This is only currently - * use in wolves. - */ - public int getVerticalFaceSpeed() - { - return this.isSitting() ? 20 : super.getVerticalFaceSpeed(); - } - - /** - * Called when the entity is attacked. - */ - public boolean attackEntityFrom(DamageSource par1DamageSource, float par2) - { - if (this.isEntityInvulnerable()) - { - return false; - } else - { - Entity entity = par1DamageSource.getEntity(); - this.aiSit.setSitting(false); - - if (entity != null && !(entity instanceof EntityPlayer) && !(entity instanceof EntityArrow)) - { - par2 = (par2 + 1.0F) / 2.0F; - } - - return super.attackEntityFrom(par1DamageSource, par2); - } - } - - public boolean attackEntityAsMob(Entity par1Entity) - { - int i = this.isTamed() ? 6 : 7; - return par1Entity.attackEntityFrom(DamageSource.causeMobDamage(this), (float) i); - } - - public void setTamed(boolean par1) - { - super.setTamed(par1); - - if (par1) - { - this.getEntityAttribute(SharedMonsterAttributes.maxHealth).setBaseValue(this.maxTamedHealth); - } else - { - this.getEntityAttribute(SharedMonsterAttributes.maxHealth).setBaseValue(this.maxUntamedHealth); - } - } - - /** - * Called when a player interacts with a mob. e.g. gets milk from a cow, gets into the saddle on a pig. - */ - - /** - * Checks if the parameter is an item which this animal can be fed to breed it (wheat, carrots or seeds depending on - * the animal type) - */ - public boolean isBreedingItem(ItemStack par1ItemStack) - { - return false; - //return par1ItemStack == null ? false : (!(Item.itemsList[par1ItemStack.itemID] instanceof ItemFood) ? false : ((ItemFood)Item.itemsList[par1ItemStack.itemID]).isWolfsFavoriteMeat()); - } - - /** - * Determines whether this wolf is angry or not. - */ - public boolean isAngry() - { - return (this.dataWatcher.getWatchableObjectByte(16) & 2) != 0; - } - - /** - * Sets whether this wolf is angry or not. - */ - public void setAngry(boolean par1) - { - byte b0 = this.dataWatcher.getWatchableObjectByte(16); - - if (par1) - { - this.dataWatcher.updateObject(16, Byte.valueOf((byte) (b0 | 2))); - } else - { - this.dataWatcher.updateObject(16, Byte.valueOf((byte) (b0 & -3))); - } - } - - /** - * Return this wolf's collar color. - */ - public int getCollarColor() - { - return this.dataWatcher.getWatchableObjectByte(20) & 15; - } - - /** - * Set this wolf's collar color. - */ - public void setCollarColor(int par1) - { - this.dataWatcher.updateObject(20, Byte.valueOf((byte) (par1 & 15))); - } - - /** - * This function is used when two same-species animals in 'love mode' breed to generate the new baby animal. - */ - public EntityWolf spawnBabyAnimal(EntityAgeable par1EntityAgeable) - { - return null; - } - - public void func_70918_i(boolean par1) - { - if (par1) - { - this.dataWatcher.updateObject(19, Byte.valueOf((byte) 1)); - } else - { - this.dataWatcher.updateObject(19, Byte.valueOf((byte) 0)); - } - } - - /** - * Returns true if the mob is currently able to mate with the specified mob. - */ - public boolean canMateWith(EntityAnimal par1EntityAnimal) - { - return false; - } - - public boolean func_70922_bv() - { - return this.dataWatcher.getWatchableObjectByte(19) == 1; - } - - /** - * Determines if an entity can be despawned, used on idle far away entities - */ - protected boolean canDespawn() - { - //return !this.isTamed() && this.ticksExisted > 2400; - return false; - } - - @Override - public boolean func_142018_a(EntityLivingBase par1EntityLivingBase, EntityLivingBase par2EntityLivingBase) - { - if (!(par1EntityLivingBase instanceof EntityCreeper) && !(par1EntityLivingBase instanceof EntityGhast)) - { - if (par1EntityLivingBase instanceof EntityBoulderFist) - { - EntityBoulderFist entitywolf = (EntityBoulderFist) par1EntityLivingBase; - - if (entitywolf.isTamed() && entitywolf.getOwner() == par2EntityLivingBase) - { - return false; - } - } - - return par1EntityLivingBase instanceof EntityPlayer && par2EntityLivingBase instanceof EntityPlayer && !((EntityPlayer) par2EntityLivingBase).canAttackPlayer((EntityPlayer) par1EntityLivingBase) ? false : !(par1EntityLivingBase instanceof EntityHorse) || !((EntityHorse) par1EntityLivingBase).isTame(); - //return par1EntityLivingBase instanceof EntityPlayer && par2EntityLivingBase instanceof EntityPlayer && !((EntityPlayer)par2EntityLivingBase).func_96122_a((EntityPlayer)par1EntityLivingBase) ? false : !(par1EntityLivingBase instanceof EntityHorse) || !((EntityHorse)par1EntityLivingBase).func_110248_bS(); - } else - { - return false; - } - } - - public EntityAgeable createChild(EntityAgeable par1EntityAgeable) - { - return this.spawnBabyAnimal(par1EntityAgeable); - } - - /** - * sets this entity's combat AI. - */ - public void setCombatTask() - { - this.tasks.removeTask(this.aiAttackOnCollide); - //this.tasks.removeTask(this.aiArrowAttack); - ItemStack itemstack = this.getHeldItem(); - this.tasks.addTask(4, this.aiAttackOnCollide); - } - - public void inflictEffectOnEntity(Entity target) - { - if (target instanceof EntityLivingBase) - { - ((EntityLivingBase) target).addPotionEffect(new PotionEffect(AlchemicalWizardry.customPotionDrowning.id, 100, 0)); - } - } - - public static Entity getClosestVulnerableMonsterToEntity(Entity par1Entity, double par2) - { - double d4 = -1.0D; - double par1 = par1Entity.posX; - double par3 = par1Entity.posY; - double par5 = par1Entity.posZ; - - EntityLivingBase entityLiving = null; - World world = par1Entity.worldObj; - - double range = Math.sqrt(par2); - double verticalRange = Math.sqrt(par2); - List entities = world.getEntitiesWithinAABB(EntityLivingBase.class, AxisAlignedBB.getBoundingBox(par1 - 0.5f, par3 - 0.5f, par5 - 0.5f, par1 + 0.5f, par3 + 0.5f, par5 + 0.5f).expand(range, verticalRange, range)); - if (entities == null) - { - return null; - } - - for (int i = 0; i < entities.size(); ++i) - { - EntityLivingBase entityLiving1 = entities.get(i); - - if (!(entityLiving1 instanceof EntityPlayer && ((EntityPlayer) entityLiving1).capabilities.disableDamage) && entityLiving1.isEntityAlive()) - { - double d5 = entityLiving1.getDistanceSq(par1, par3, par5); - double d6 = par2; - - if (entityLiving1.isSneaking()) - { - d6 = par2 * 0.800000011920929D; - } - - if (entityLiving1.isInvisible()) - { - float f = entityLiving1 instanceof EntityPlayer ? ((EntityPlayer) entityLiving1).getArmorVisibility() : 1.0f; - - if (f < 0.1F) - { - f = 0.1F; - } - - d6 *= (double) (0.7F * f); - } - - if ((par2 < 0.0D || d5 < d6 * d6) && (d4 == -1.0D || d5 < d4)) - { - if (par1Entity != entityLiving1) - { - d4 = d5; - entityLiving = entityLiving1; - } - } - } - } - - return entityLiving; - } - - @Override - public int getTotalArmorValue() //TODO - { - return 10; - } -} \ No newline at end of file diff --git a/1.7.2/main/java/WayofTime/alchemicalWizardry/common/entity/mob/EntityFallenAngel.java b/1.7.2/main/java/WayofTime/alchemicalWizardry/common/entity/mob/EntityFallenAngel.java deleted file mode 100644 index 6b537cb5..00000000 --- a/1.7.2/main/java/WayofTime/alchemicalWizardry/common/entity/mob/EntityFallenAngel.java +++ /dev/null @@ -1,501 +0,0 @@ -package WayofTime.alchemicalWizardry.common.entity.mob; - -import net.minecraft.block.BlockColored; -import net.minecraft.entity.Entity; -import net.minecraft.entity.EntityAgeable; -import net.minecraft.entity.EntityLivingBase; -import net.minecraft.entity.IRangedAttackMob; -import net.minecraft.entity.SharedMonsterAttributes; -import net.minecraft.entity.ai.EntityAIArrowAttack; -import net.minecraft.entity.ai.EntityAIAttackOnCollide; -import net.minecraft.entity.ai.EntityAIFollowOwner; -import net.minecraft.entity.ai.EntityAIHurtByTarget; -import net.minecraft.entity.ai.EntityAILookIdle; -import net.minecraft.entity.ai.EntityAIOwnerHurtByTarget; -import net.minecraft.entity.ai.EntityAIOwnerHurtTarget; -import net.minecraft.entity.ai.EntityAISwimming; -import net.minecraft.entity.ai.EntityAIWander; -import net.minecraft.entity.ai.EntityAIWatchClosest; -import net.minecraft.entity.monster.EntityCreeper; -import net.minecraft.entity.monster.EntityGhast; -import net.minecraft.entity.passive.EntityAnimal; -import net.minecraft.entity.passive.EntityHorse; -import net.minecraft.entity.passive.EntityWolf; -import net.minecraft.entity.player.EntityPlayer; -import net.minecraft.entity.projectile.EntityArrow; -import net.minecraft.item.ItemFood; -import net.minecraft.item.ItemStack; -import net.minecraft.nbt.NBTTagCompound; -import net.minecraft.pathfinding.PathEntity; -import net.minecraft.util.DamageSource; -import net.minecraft.world.World; -import WayofTime.alchemicalWizardry.AlchemicalWizardry; -import WayofTime.alchemicalWizardry.ModItems; -import WayofTime.alchemicalWizardry.common.EntityAITargetAggro; -import WayofTime.alchemicalWizardry.common.entity.projectile.HolyProjectile; - -public class EntityFallenAngel extends EntityDemon implements IRangedAttackMob -{ - private EntityAIArrowAttack aiArrowAttack = new EntityAIArrowAttack(this, 1.0D, 40, 40, 15.0F); - private EntityAIAttackOnCollide aiAttackOnCollide = new EntityAIAttackOnCollide(this, EntityPlayer.class, 1.2D, false); - - private static float maxTamedHealth = 50.0F; - private static float maxUntamedHealth = 50.0F; - - public EntityFallenAngel(World par1World) - { - super(par1World, AlchemicalWizardry.entityFallenAngelID); - this.setSize(0.7F, 1.8F); - this.getNavigator().setAvoidsWater(true); - this.tasks.addTask(1, new EntityAISwimming(this)); - this.tasks.addTask(2, this.aiSit); - //this.tasks.addTask(3, new EntityAILeapAtTarget(this, 0.4F)); - //this.tasks.addTask(4, new EntityAIAttackOnCollide(this, 1.0D, true)); - this.tasks.addTask(5, new EntityAIFollowOwner(this, 1.0D, 10.0F, 2.0F)); - //this.tasks.addTask(6, new EntityAIMate(this, 1.0D)); - this.tasks.addTask(7, new EntityAIWander(this, 1.0D)); - //this.tasks.addTask(8, new EntityAIBeg(this, 8.0F)); - this.tasks.addTask(9, new EntityAIWatchClosest(this, EntityPlayer.class, 8.0F)); - this.tasks.addTask(9, new EntityAILookIdle(this)); - this.targetTasks.addTask(1, new EntityAIOwnerHurtByTarget(this)); - this.targetTasks.addTask(2, new EntityAIOwnerHurtTarget(this)); - this.targetTasks.addTask(3, new EntityAIHurtByTarget(this, true)); - this.targetTasks.addTask(4, new EntityAITargetAggro(this, EntityPlayer.class, 0, false)); - this.setAggro(false); - //this.targetTasks.addTask(4, new EntityAITargetNonTamed(this, EntitySheep.class, 200, false)); - this.setTamed(false); - - if (par1World != null && !par1World.isRemote) - { - this.setCombatTask(); - } - - //this.isImmuneToFire = true; - } - - @Override - protected void applyEntityAttributes() - { - super.applyEntityAttributes(); - //This line affects the speed of the monster - this.getEntityAttribute(SharedMonsterAttributes.movementSpeed).setBaseValue(0.30000001192092896D); - - //My guess is that this will alter the max health - if (this.isTamed()) - { - this.getEntityAttribute(SharedMonsterAttributes.maxHealth).setBaseValue(this.maxTamedHealth); - } else - { - this.getEntityAttribute(SharedMonsterAttributes.maxHealth).setBaseValue(this.maxUntamedHealth); - } - - //this.func_110148_a(SharedMonsterAttributes.field_111267_a).func_111128_a(10.0D); - } - - /** - * Returns true if the newer Entity AI code should be run - */ - public boolean isAIEnabled() - { - return true; - } - - /** - * Sets the active target the Task system uses for tracking - */ - public void setAttackTarget(EntityLivingBase par1EntityLivingBase) - { - super.setAttackTarget(par1EntityLivingBase); - - if (par1EntityLivingBase == null) - { - this.setAngry(false); - } else if (!this.isTamed()) - { - this.setAngry(true); - } - } - - /** - * main AI tick function, replaces updateEntityActionState - */ - protected void updateAITick() - { - this.dataWatcher.updateObject(18, Float.valueOf(this.getHealth())); - } - - protected void entityInit() - { - super.entityInit(); - this.dataWatcher.addObject(18, new Float(this.getHealth())); - this.dataWatcher.addObject(19, new Byte((byte) 0)); - //this.dataWatcher.addObject(20, new Byte((byte) BlockColored.getBlockFromDye(1))); - } - - /** - * Plays step sound at given x, y, z for the entity - */ - protected void playStepSound(int par1, int par2, int par3, int par4) - { - this.playSound("mob.zombie.step", 0.15F, 1.0F); - } - - /** - * (abstract) Protected helper method to write subclass entity data to NBT. - */ - public void writeEntityToNBT(NBTTagCompound par1NBTTagCompound) - { - super.writeEntityToNBT(par1NBTTagCompound); - par1NBTTagCompound.setBoolean("Angry", this.isAngry()); - } - - /** - * (abstract) Protected helper method to read subclass entity data from NBT. - */ - public void readEntityFromNBT(NBTTagCompound par1NBTTagCompound) - { - super.readEntityFromNBT(par1NBTTagCompound); - this.setAngry(par1NBTTagCompound.getBoolean("Angry")); - - this.setCombatTask(); - } - - /** - * Returns the sound this mob makes while it's alive. - */ - protected String getLivingSound() - { - //TODO change sounds - return "none"; - } - - /** - * Returns the sound this mob makes when it is hurt. - */ - protected String getHurtSound() - { - return "none"; - } - - /** - * Returns the sound this mob makes on death. - */ - protected String getDeathSound() - { - return "mob.wolf.death"; - } - - /** - * Returns the volume for the sounds this mob makes. - */ - protected float getSoundVolume() - { - return 0.4F; - } - - /** - * Returns the item ID for the item the mob drops on death. - */ - protected int getDropItemId() - { - return -1; - } - - /** - * Called frequently so the entity can update its state every tick as required. For example, zombies and skeletons - * use this to react to sunlight and start to burn. - */ - public void onLivingUpdate() - { - super.onLivingUpdate(); - } - - /** - * Called to update the entity's position/logic. - */ - public void onUpdate() - { - super.onUpdate(); - } - - public float getEyeHeight() - { - return this.height * 0.8F; - } - - /** - * The speed it takes to move the entityliving's rotationPitch through the faceEntity method. This is only currently - * use in wolves. - */ - public int getVerticalFaceSpeed() - { - return this.isSitting() ? 20 : super.getVerticalFaceSpeed(); - } - - /** - * Called when the entity is attacked. - */ - public boolean attackEntityFrom(DamageSource par1DamageSource, float par2) - { - if (this.isEntityInvulnerable()) - { - return false; - } else - { - Entity entity = par1DamageSource.getEntity(); - this.aiSit.setSitting(false); - - if (entity != null && !(entity instanceof EntityPlayer) && !(entity instanceof EntityArrow)) - { - par2 = (par2 + 1.0F) / 2.0F; - } - - return super.attackEntityFrom(par1DamageSource, par2); - } - } - - public boolean attackEntityAsMob(Entity par1Entity) - { - int i = this.isTamed() ? 4 : 2; - return par1Entity.attackEntityFrom(DamageSource.causeMobDamage(this), (float) i); - } - - public void setTamed(boolean par1) - { - super.setTamed(par1); - - if (par1) - { - this.getEntityAttribute(SharedMonsterAttributes.maxHealth).setBaseValue(this.maxTamedHealth); - } else - { - this.getEntityAttribute(SharedMonsterAttributes.maxHealth).setBaseValue(this.maxUntamedHealth); - } - } - - /** - * Called when a player interacts with a mob. e.g. gets milk from a cow, gets into the saddle on a pig. - */ - @Override - public boolean interact(EntityPlayer par1EntityPlayer) - { - ItemStack itemstack = par1EntityPlayer.inventory.getCurrentItem(); - - if (this.isTamed()) - { - if (itemstack != null) - { - if (itemstack.getItem() instanceof ItemFood) - { - ItemFood itemfood = (ItemFood) itemstack.getItem(); - - if (itemfood.isWolfsFavoriteMeat() && this.dataWatcher.getWatchableObjectFloat(18) < this.maxTamedHealth) - { - if (!par1EntityPlayer.capabilities.isCreativeMode) - { - --itemstack.stackSize; - } - - this.heal((float) itemfood.func_150905_g(itemstack)); - - if (itemstack.stackSize <= 0) - { - par1EntityPlayer.inventory.setInventorySlotContents(par1EntityPlayer.inventory.currentItem, (ItemStack) null); - } - - return true; - } - } - } - - if (par1EntityPlayer.getCommandSenderName().equalsIgnoreCase(this.getOwnerName()) && !this.isBreedingItem(itemstack)) - { - if (!this.worldObj.isRemote) - { - this.aiSit.setSitting(!this.isSitting()); - this.isJumping = false; - this.setPathToEntity((PathEntity) null); - this.setTarget((Entity) null); - this.setAttackTarget((EntityLivingBase) null); - } - - this.sendSittingMessageToPlayer(par1EntityPlayer, !this.isSitting()); - } - } else if (itemstack != null && itemstack.getItem().equals(ModItems.weakBloodOrb) && !this.isAngry()) - { - if (!par1EntityPlayer.capabilities.isCreativeMode) - { - --itemstack.stackSize; - } - - if (itemstack.stackSize <= 0) - { - par1EntityPlayer.inventory.setInventorySlotContents(par1EntityPlayer.inventory.currentItem, (ItemStack) null); - } - - if (!this.worldObj.isRemote) - { - if (this.rand.nextInt(1) == 0) - { - this.setTamed(true); - this.setPathToEntity((PathEntity) null); - this.setAttackTarget((EntityLivingBase) null); - this.aiSit.setSitting(true); - this.setHealth(this.maxTamedHealth); - this.setOwner(par1EntityPlayer.getCommandSenderName()); - this.playTameEffect(true); - this.worldObj.setEntityState(this, (byte) 7); - } else - { - this.playTameEffect(false); - this.worldObj.setEntityState(this, (byte) 6); - } - } - - return true; - } - - return super.interact(par1EntityPlayer); - } - - - /** - * Checks if the parameter is an item which this animal can be fed to breed it (wheat, carrots or seeds depending on - * the animal type) - */ - public boolean isBreedingItem(ItemStack par1ItemStack) - { - return false; - //return par1ItemStack == null ? false : (!(Item.itemsList[par1ItemStack.itemID] instanceof ItemFood) ? false : ((ItemFood)Item.itemsList[par1ItemStack.itemID]).isWolfsFavoriteMeat()); - } - - /** - * Determines whether this wolf is angry or not. - */ - public boolean isAngry() - { - return (this.dataWatcher.getWatchableObjectByte(16) & 2) != 0; - } - - /** - * Sets whether this wolf is angry or not. - */ - public void setAngry(boolean par1) - { - byte b0 = this.dataWatcher.getWatchableObjectByte(16); - - if (par1) - { - this.dataWatcher.updateObject(16, Byte.valueOf((byte) (b0 | 2))); - } else - { - this.dataWatcher.updateObject(16, Byte.valueOf((byte) (b0 & -3))); - } - } - - /** - * Return this wolf's collar color. - */ - public int getCollarColor() - { - return this.dataWatcher.getWatchableObjectByte(20) & 15; - } - - /** - * Set this wolf's collar color. - */ - public void setCollarColor(int par1) - { - this.dataWatcher.updateObject(20, Byte.valueOf((byte) (par1 & 15))); - } - - /** - * This function is used when two same-species animals in 'love mode' breed to generate the new baby animal. - */ - public EntityWolf spawnBabyAnimal(EntityAgeable par1EntityAgeable) - { - return null; - } - - public void func_70918_i(boolean par1) - { - if (par1) - { - this.dataWatcher.updateObject(19, Byte.valueOf((byte) 1)); - } else - { - this.dataWatcher.updateObject(19, Byte.valueOf((byte) 0)); - } - } - - /** - * Returns true if the mob is currently able to mate with the specified mob. - */ - public boolean canMateWith(EntityAnimal par1EntityAnimal) - { - return false; - } - - public boolean func_70922_bv() - { - return this.dataWatcher.getWatchableObjectByte(19) == 1; - } - - /** - * Determines if an entity can be despawned, used on idle far away entities - */ - protected boolean canDespawn() - { - //return !this.isTamed() && this.ticksExisted > 2400; - return false; - } - - public boolean func_142018_a(EntityLivingBase par1EntityLivingBase, EntityLivingBase par2EntityLivingBase) - { - if (!(par1EntityLivingBase instanceof EntityCreeper) && !(par1EntityLivingBase instanceof EntityGhast)) - { - if (par1EntityLivingBase instanceof EntityFallenAngel) - { - EntityFallenAngel entitywolf = (EntityFallenAngel) par1EntityLivingBase; - - if (entitywolf.isTamed() && entitywolf.getOwner() == par2EntityLivingBase) - { - return false; - } - } - - return par1EntityLivingBase instanceof EntityPlayer && par2EntityLivingBase instanceof EntityPlayer && !((EntityPlayer) par2EntityLivingBase).canAttackPlayer((EntityPlayer) par1EntityLivingBase) ? false : !(par1EntityLivingBase instanceof EntityHorse) || !((EntityHorse) par1EntityLivingBase).isTame(); - } else - { - return false; - } - } - - public EntityAgeable createChild(EntityAgeable par1EntityAgeable) - { - return this.spawnBabyAnimal(par1EntityAgeable); - } - - /** - * Attack the specified entity using a ranged attack. - */ - public void attackEntityWithRangedAttack(EntityLivingBase par1EntityLivingBase, float par2) - { - double xCoord; - double yCoord; - double zCoord; - HolyProjectile hol = new HolyProjectile(worldObj, this, par1EntityLivingBase, 1.8f, 0f, 5, 600); - this.worldObj.spawnEntityInWorld(hol); - } - - /** - * sets this entity's combat AI. - */ - public void setCombatTask() - { - this.tasks.removeTask(this.aiAttackOnCollide); - this.tasks.removeTask(this.aiArrowAttack); - ItemStack itemstack = this.getHeldItem(); - this.tasks.addTask(4, this.aiArrowAttack); - } -} diff --git a/1.7.2/main/java/WayofTime/alchemicalWizardry/common/entity/mob/EntityFireElemental.java b/1.7.2/main/java/WayofTime/alchemicalWizardry/common/entity/mob/EntityFireElemental.java deleted file mode 100644 index a599be7c..00000000 --- a/1.7.2/main/java/WayofTime/alchemicalWizardry/common/entity/mob/EntityFireElemental.java +++ /dev/null @@ -1,26 +0,0 @@ -package WayofTime.alchemicalWizardry.common.entity.mob; - -import WayofTime.alchemicalWizardry.AlchemicalWizardry; -import net.minecraft.entity.Entity; -import net.minecraft.entity.EntityLivingBase; -import net.minecraft.entity.monster.IMob; -import net.minecraft.potion.PotionEffect; -import net.minecraft.world.World; - -public class EntityFireElemental extends EntityElemental implements IMob -{ - public EntityFireElemental(World world) - { - super(world, AlchemicalWizardry.entityFireElementalID); - this.isImmuneToFire = true; - } - - public void inflictEffectOnEntity(Entity target) - { - if (target instanceof EntityLivingBase) - { - ((EntityLivingBase) target).setFire(10); - ((EntityLivingBase) target).addPotionEffect(new PotionEffect(AlchemicalWizardry.customPotionInhibit.id, 150, 0)); - } - } -} \ No newline at end of file diff --git a/1.7.2/main/java/WayofTime/alchemicalWizardry/common/entity/mob/EntityHolyElemental.java b/1.7.2/main/java/WayofTime/alchemicalWizardry/common/entity/mob/EntityHolyElemental.java deleted file mode 100644 index c4c626a0..00000000 --- a/1.7.2/main/java/WayofTime/alchemicalWizardry/common/entity/mob/EntityHolyElemental.java +++ /dev/null @@ -1,28 +0,0 @@ -package WayofTime.alchemicalWizardry.common.entity.mob; - -import WayofTime.alchemicalWizardry.AlchemicalWizardry; -import net.minecraft.entity.Entity; -import net.minecraft.entity.EntityLivingBase; -import net.minecraft.entity.monster.IMob; -import net.minecraft.potion.Potion; -import net.minecraft.potion.PotionEffect; -import net.minecraft.util.DamageSource; -import net.minecraft.world.World; - -public class EntityHolyElemental extends EntityElemental implements IMob -{ - public EntityHolyElemental(World world) - { - super(world, AlchemicalWizardry.entityHolyElementalID); - } - - public void inflictEffectOnEntity(Entity target) - { - if (target instanceof EntityLivingBase) - { - ((EntityLivingBase) target).attackEntityFrom(DamageSource.causeMobDamage(this), 15); - ((EntityLivingBase) target).addPotionEffect(new PotionEffect(AlchemicalWizardry.customPotionInhibit.id, 150, 0)); - ((EntityLivingBase) target).addPotionEffect(new PotionEffect(Potion.poison.id, 100, 1)); - } - } -} \ No newline at end of file diff --git a/1.7.2/main/java/WayofTime/alchemicalWizardry/common/entity/mob/EntityIceDemon.java b/1.7.2/main/java/WayofTime/alchemicalWizardry/common/entity/mob/EntityIceDemon.java deleted file mode 100644 index eb928082..00000000 --- a/1.7.2/main/java/WayofTime/alchemicalWizardry/common/entity/mob/EntityIceDemon.java +++ /dev/null @@ -1,522 +0,0 @@ -package WayofTime.alchemicalWizardry.common.entity.mob; - -import net.minecraft.block.BlockColored; -import net.minecraft.entity.Entity; -import net.minecraft.entity.EntityAgeable; -import net.minecraft.entity.EntityLivingBase; -import net.minecraft.entity.IRangedAttackMob; -import net.minecraft.entity.SharedMonsterAttributes; -import net.minecraft.entity.ai.EntityAIArrowAttack; -import net.minecraft.entity.ai.EntityAIAttackOnCollide; -import net.minecraft.entity.ai.EntityAIFollowOwner; -import net.minecraft.entity.ai.EntityAIHurtByTarget; -import net.minecraft.entity.ai.EntityAILookIdle; -import net.minecraft.entity.ai.EntityAIOwnerHurtByTarget; -import net.minecraft.entity.ai.EntityAIOwnerHurtTarget; -import net.minecraft.entity.ai.EntityAISwimming; -import net.minecraft.entity.ai.EntityAIWander; -import net.minecraft.entity.ai.EntityAIWatchClosest; -import net.minecraft.entity.monster.EntityCreeper; -import net.minecraft.entity.monster.EntityGhast; -import net.minecraft.entity.passive.EntityAnimal; -import net.minecraft.entity.passive.EntityHorse; -import net.minecraft.entity.passive.EntityWolf; -import net.minecraft.entity.player.EntityPlayer; -import net.minecraft.entity.projectile.EntityArrow; -import net.minecraft.item.ItemFood; -import net.minecraft.item.ItemStack; -import net.minecraft.nbt.NBTTagCompound; -import net.minecraft.pathfinding.PathEntity; -import net.minecraft.util.DamageSource; -import net.minecraft.util.Vec3; -import net.minecraft.world.World; -import WayofTime.alchemicalWizardry.AlchemicalWizardry; -import WayofTime.alchemicalWizardry.ModItems; -import WayofTime.alchemicalWizardry.common.EntityAITargetAggro; -import WayofTime.alchemicalWizardry.common.entity.projectile.IceProjectile; -import WayofTime.alchemicalWizardry.common.spell.complex.effect.SpellHelper; - -public class EntityIceDemon extends EntityDemon implements IRangedAttackMob -{ - private EntityAIArrowAttack aiArrowAttack = new EntityAIArrowAttack(this, 1.0D, 30, 50, 15.0F); - private EntityAIAttackOnCollide aiAttackOnCollide = new EntityAIAttackOnCollide(this, EntityPlayer.class, 1.2D, false); - - private static float maxTamedHealth = 50.0F; - private static float maxUntamedHealth = 30.0F; - - public EntityIceDemon(World par1World) - { - super(par1World, AlchemicalWizardry.entityIceDemonID); - this.setSize(0.5F, 2.0F); - //this.getNavigator().setAvoidsWater(true); - this.tasks.addTask(1, new EntityAISwimming(this)); - this.tasks.addTask(2, this.aiSit); - //this.tasks.addTask(3, new EntityAILeapAtTarget(this, 0.4F)); - //this.tasks.addTask(4, new EntityAIAttackOnCollide(this, 1.0D, true)); - this.tasks.addTask(5, new EntityAIFollowOwner(this, 1.0D, 10.0F, 2.0F)); - //this.tasks.addTask(6, new EntityAIMate(this, 1.0D)); - this.tasks.addTask(7, new EntityAIWander(this, 1.0D)); - //this.tasks.addTask(8, new EntityAIBeg(this, 8.0F)); - this.tasks.addTask(9, new EntityAIWatchClosest(this, EntityPlayer.class, 8.0F)); - this.tasks.addTask(9, new EntityAILookIdle(this)); - this.targetTasks.addTask(1, new EntityAIOwnerHurtByTarget(this)); - this.targetTasks.addTask(2, new EntityAIOwnerHurtTarget(this)); - this.targetTasks.addTask(3, new EntityAIHurtByTarget(this, true)); - this.targetTasks.addTask(4, new EntityAITargetAggro(this, EntityPlayer.class, 0, false)); - this.setAggro(false); - //this.targetTasks.addTask(4, new EntityAITargetNonTamed(this, EntitySheep.class, 200, false)); - this.setTamed(false); - - if (par1World != null && !par1World.isRemote) - { - this.setCombatTask(); - } - - //this.isImmuneToFire = true; - } - - @Override - protected void applyEntityAttributes() - { - super.applyEntityAttributes(); - //This line affects the speed of the monster - this.getEntityAttribute(SharedMonsterAttributes.movementSpeed).setBaseValue(0.40000001192092896D); - - //My guess is that this will alter the max health - if (this.isTamed()) - { - this.getEntityAttribute(SharedMonsterAttributes.maxHealth).setBaseValue(this.maxTamedHealth); - } else - { - this.getEntityAttribute(SharedMonsterAttributes.maxHealth).setBaseValue(this.maxUntamedHealth); - } - - //this.func_110148_a(SharedMonsterAttributes.field_111267_a).func_111128_a(10.0D); - } - - /** - * Returns true if the newer Entity AI code should be run - */ - public boolean isAIEnabled() - { - return true; - } - - /** - * Sets the active target the Task system uses for tracking - */ - public void setAttackTarget(EntityLivingBase par1EntityLivingBase) - { - super.setAttackTarget(par1EntityLivingBase); - - if (par1EntityLivingBase == null) - { - this.setAngry(false); - } else if (!this.isTamed()) - { - this.setAngry(true); - } - } - - /** - * main AI tick function, replaces updateEntityActionState - */ - protected void updateAITick() - { - this.dataWatcher.updateObject(18, Float.valueOf(this.getHealth())); - } - - protected void entityInit() - { - super.entityInit(); - this.dataWatcher.addObject(18, new Float(this.getHealth())); - this.dataWatcher.addObject(19, new Byte((byte) 0)); - //this.dataWatcher.addObject(20, new Byte((byte) BlockColored.getBlockFromDye(1))); - } - - /** - * Plays step sound at given x, y, z for the entity - */ - protected void playStepSound(int par1, int par2, int par3, int par4) - { - this.playSound("mob.zombie.step", 0.15F, 1.0F); - } - - /** - * (abstract) Protected helper method to write subclass entity data to NBT. - */ - public void writeEntityToNBT(NBTTagCompound par1NBTTagCompound) - { - super.writeEntityToNBT(par1NBTTagCompound); - par1NBTTagCompound.setBoolean("Angry", this.isAngry()); - } - - /** - * (abstract) Protected helper method to read subclass entity data from NBT. - */ - public void readEntityFromNBT(NBTTagCompound par1NBTTagCompound) - { - super.readEntityFromNBT(par1NBTTagCompound); - this.setAngry(par1NBTTagCompound.getBoolean("Angry")); - this.setCombatTask(); - } - - /** - * Returns the sound this mob makes while it's alive. - */ - protected String getLivingSound() - { - return "none"; - } - - /** - * Returns the sound this mob makes when it is hurt. - */ - protected String getHurtSound() - { - return "mob.irongolem.hit"; - } - - /** - * Returns the sound this mob makes on death. - */ - protected String getDeathSound() - { - return "mob.irongolem.death"; - } - - /** - * Returns the volume for the sounds this mob makes. - */ - protected float getSoundVolume() - { - return 0.4F; - } - - /** - * Returns the item ID for the item the mob drops on death. - */ - protected int getDropItemId() - { - return -1; - } - - /** - * Called frequently so the entity can update its state every tick as required. For example, zombies and skeletons - * use this to react to sunlight and start to burn. - */ - public void onLivingUpdate() - { - super.onLivingUpdate(); - int range = 2; - - Vec3 blockVector = SpellHelper.getEntityBlockVector(this); - - int xCoord = (int)(blockVector.xCoord); - int yCoord = (int)(blockVector.yCoord); - int zCoord = (int)(blockVector.zCoord); - - for (int i = -range; i <= range; i++) - { - for (int j = -range; j <= range; j++) - { - for (int k = -range; k <= range; k++) - { - if (worldObj.rand.nextFloat() < 0.25f) - { - SpellHelper.freezeWaterBlock(worldObj, xCoord + i, yCoord + j, zCoord + k); - } - } - } - } - } - - /** - * Called to update the entity's position/logic. - */ - public void onUpdate() - { - super.onUpdate(); - } - - public float getEyeHeight() - { - return this.height * 0.8F; - } - - /** - * The speed it takes to move the entityliving's rotationPitch through the faceEntity method. This is only currently - * use in wolves. - */ - public int getVerticalFaceSpeed() - { - return this.isSitting() ? 20 : super.getVerticalFaceSpeed(); - } - - /** - * Called when the entity is attacked. - */ - public boolean attackEntityFrom(DamageSource par1DamageSource, float par2) - { - if (this.isEntityInvulnerable()) - { - return false; - } else - { - Entity entity = par1DamageSource.getEntity(); - this.aiSit.setSitting(false); - - if (entity != null && !(entity instanceof EntityPlayer) && !(entity instanceof EntityArrow)) - { - par2 = (par2 + 1.0F) / 2.0F; - } - - return super.attackEntityFrom(par1DamageSource, par2); - } - } - - public boolean attackEntityAsMob(Entity par1Entity) - { - int i = this.isTamed() ? 4 : 2; - return par1Entity.attackEntityFrom(DamageSource.causeMobDamage(this), (float) i); - } - - public void setTamed(boolean par1) - { - super.setTamed(par1); - - if (par1) - { - this.getEntityAttribute(SharedMonsterAttributes.maxHealth).setBaseValue(this.maxTamedHealth); - } else - { - this.getEntityAttribute(SharedMonsterAttributes.maxHealth).setBaseValue(this.maxUntamedHealth); - } - } - - /** - * Called when a player interacts with a mob. e.g. gets milk from a cow, gets into the saddle on a pig. - */ - @Override - public boolean interact(EntityPlayer par1EntityPlayer) - { - ItemStack itemstack = par1EntityPlayer.inventory.getCurrentItem(); - - if (this.isTamed()) - { - if (itemstack != null) - { - if (itemstack.getItem() instanceof ItemFood) - { - ItemFood itemfood = (ItemFood) itemstack.getItem(); - - if (itemfood.isWolfsFavoriteMeat() && this.dataWatcher.getWatchableObjectFloat(18) < this.maxTamedHealth) - { - if (!par1EntityPlayer.capabilities.isCreativeMode) - { - --itemstack.stackSize; - } - - this.heal((float) itemfood.func_150905_g(itemstack)); - - if (itemstack.stackSize <= 0) - { - par1EntityPlayer.inventory.setInventorySlotContents(par1EntityPlayer.inventory.currentItem, (ItemStack) null); - } - - return true; - } - } - } - - if (par1EntityPlayer.getCommandSenderName().equalsIgnoreCase(this.getOwnerName()) && !this.isBreedingItem(itemstack)) - { - if (!this.worldObj.isRemote) - { - this.aiSit.setSitting(!this.isSitting()); - this.isJumping = false; - this.setPathToEntity((PathEntity) null); - this.setTarget((Entity) null); - this.setAttackTarget((EntityLivingBase) null); - } - - this.sendSittingMessageToPlayer(par1EntityPlayer, !this.isSitting()); - } - } else if (itemstack != null && itemstack.getItem().equals(ModItems.weakBloodOrb) && !this.isAngry()) - { - if (!par1EntityPlayer.capabilities.isCreativeMode) - { - --itemstack.stackSize; - } - - if (itemstack.stackSize <= 0) - { - par1EntityPlayer.inventory.setInventorySlotContents(par1EntityPlayer.inventory.currentItem, (ItemStack) null); - } - - if (!this.worldObj.isRemote) - { - if (this.rand.nextInt(1) == 0) - { - this.setTamed(true); - this.setPathToEntity((PathEntity) null); - this.setAttackTarget((EntityLivingBase) null); - this.aiSit.setSitting(true); - this.setHealth(this.maxTamedHealth); - this.setOwner(par1EntityPlayer.getCommandSenderName()); - this.playTameEffect(true); - this.worldObj.setEntityState(this, (byte) 7); - } else - { - this.playTameEffect(false); - this.worldObj.setEntityState(this, (byte) 6); - } - } - - return true; - } - - return super.interact(par1EntityPlayer); - } - - - /** - * Checks if the parameter is an item which this animal can be fed to breed it (wheat, carrots or seeds depending on - * the animal type) - */ - public boolean isBreedingItem(ItemStack par1ItemStack) - { - return false; - //return par1ItemStack == null ? false : (!(Item.itemsList[par1ItemStack.itemID] instanceof ItemFood) ? false : ((ItemFood)Item.itemsList[par1ItemStack.itemID]).isWolfsFavoriteMeat()); - } - - /** - * Determines whether this wolf is angry or not. - */ - public boolean isAngry() - { - return (this.dataWatcher.getWatchableObjectByte(16) & 2) != 0; - } - - /** - * Sets whether this wolf is angry or not. - */ - public void setAngry(boolean par1) - { - byte b0 = this.dataWatcher.getWatchableObjectByte(16); - - if (par1) - { - this.dataWatcher.updateObject(16, Byte.valueOf((byte) (b0 | 2))); - } else - { - this.dataWatcher.updateObject(16, Byte.valueOf((byte) (b0 & -3))); - } - } - - /** - * Return this wolf's collar color. - */ - public int getCollarColor() - { - return this.dataWatcher.getWatchableObjectByte(20) & 15; - } - - /** - * Set this wolf's collar color. - */ - public void setCollarColor(int par1) - { - this.dataWatcher.updateObject(20, Byte.valueOf((byte) (par1 & 15))); - } - - /** - * This function is used when two same-species animals in 'love mode' breed to generate the new baby animal. - */ - public EntityWolf spawnBabyAnimal(EntityAgeable par1EntityAgeable) - { - return null; - } - - public void func_70918_i(boolean par1) - { - if (par1) - { - this.dataWatcher.updateObject(19, Byte.valueOf((byte) 1)); - } else - { - this.dataWatcher.updateObject(19, Byte.valueOf((byte) 0)); - } - } - - /** - * Returns true if the mob is currently able to mate with the specified mob. - */ - public boolean canMateWith(EntityAnimal par1EntityAnimal) - { - return false; - } - - public boolean func_70922_bv() - { - return this.dataWatcher.getWatchableObjectByte(19) == 1; - } - - /** - * Determines if an entity can be despawned, used on idle far away entities - */ - protected boolean canDespawn() - { - //return !this.isTamed() && this.ticksExisted > 2400; - return false; - } - - public boolean func_142018_a(EntityLivingBase par1EntityLivingBase, EntityLivingBase par2EntityLivingBase) - { - if (!(par1EntityLivingBase instanceof EntityCreeper) && !(par1EntityLivingBase instanceof EntityGhast)) - { - if (par1EntityLivingBase instanceof EntityIceDemon) - { - EntityIceDemon entitywolf = (EntityIceDemon) par1EntityLivingBase; - - if (entitywolf.isTamed() && entitywolf.getOwner() == par2EntityLivingBase) - { - return false; - } - } - - return par1EntityLivingBase instanceof EntityPlayer && par2EntityLivingBase instanceof EntityPlayer && !((EntityPlayer) par2EntityLivingBase).canAttackPlayer((EntityPlayer) par1EntityLivingBase) ? false : !(par1EntityLivingBase instanceof EntityHorse) || !((EntityHorse) par1EntityLivingBase).isTame(); - } else - { - return false; - } - } - - public EntityAgeable createChild(EntityAgeable par1EntityAgeable) - { - return this.spawnBabyAnimal(par1EntityAgeable); - } - - /** - * Attack the specified entity using a ranged attack. - */ - public void attackEntityWithRangedAttack(EntityLivingBase par1EntityLivingBase, float par2) - { - double xCoord; - double yCoord; - double zCoord; - IceProjectile hol = new IceProjectile(worldObj, this, par1EntityLivingBase, 1.8f, 0f, 3, 600); - this.worldObj.spawnEntityInWorld(hol); - } - - /** - * sets this entity's combat AI. - */ - public void setCombatTask() - { - this.tasks.removeTask(this.aiAttackOnCollide); - this.tasks.removeTask(this.aiArrowAttack); - ItemStack itemstack = this.getHeldItem(); - this.tasks.addTask(4, this.aiArrowAttack); - } -} \ No newline at end of file diff --git a/1.7.2/main/java/WayofTime/alchemicalWizardry/common/entity/mob/EntityLowerGuardian.java b/1.7.2/main/java/WayofTime/alchemicalWizardry/common/entity/mob/EntityLowerGuardian.java deleted file mode 100644 index 0b3e6729..00000000 --- a/1.7.2/main/java/WayofTime/alchemicalWizardry/common/entity/mob/EntityLowerGuardian.java +++ /dev/null @@ -1,486 +0,0 @@ -package WayofTime.alchemicalWizardry.common.entity.mob; - -import WayofTime.alchemicalWizardry.AlchemicalWizardry; -import WayofTime.alchemicalWizardry.ModItems; -import WayofTime.alchemicalWizardry.common.EntityAITargetAggro; -import net.minecraft.block.BlockColored; -import net.minecraft.entity.Entity; -import net.minecraft.entity.EntityAgeable; -import net.minecraft.entity.EntityLivingBase; -import net.minecraft.entity.SharedMonsterAttributes; -import net.minecraft.entity.ai.*; -import net.minecraft.entity.monster.EntityCreeper; -import net.minecraft.entity.monster.EntityGhast; -import net.minecraft.entity.passive.EntityAnimal; -import net.minecraft.entity.passive.EntityHorse; -import net.minecraft.entity.passive.EntityWolf; -import net.minecraft.entity.player.EntityPlayer; -import net.minecraft.entity.projectile.EntityArrow; -import net.minecraft.item.Item; -import net.minecraft.item.ItemFood; -import net.minecraft.item.ItemStack; -import net.minecraft.nbt.NBTTagCompound; -import net.minecraft.pathfinding.PathEntity; -import net.minecraft.util.DamageSource; -import net.minecraft.world.World; - -public class EntityLowerGuardian extends EntityDemon -{ - private EntityAIAttackOnCollide aiAttackOnCollide = new EntityAIAttackOnCollide(this, EntityPlayer.class, 1.2D, false); - - private static float maxTamedHealth = 50.0F; - private static float maxUntamedHealth = 30.0F; - private int attackTimer; - private boolean isAggro; - - public EntityLowerGuardian(World par1World) - { - super(par1World, AlchemicalWizardry.entityLowerGuardianID); - this.setSize(0.7F, 1.8F); - this.getNavigator().setAvoidsWater(true); - this.tasks.addTask(1, new EntityAISwimming(this)); - //this.tasks.addTask(3, new EntityAILeapAtTarget(this, 0.4F)); - this.tasks.addTask(2, new EntityAIAttackOnCollide(this, 1.0D, true)); - this.tasks.addTask(3, this.aiSit); - this.tasks.addTask(5, new EntityAIFollowOwner(this, 1.0D, 10.0F, 2.0F)); - //this.tasks.addTask(6, new EntityAIMate(this, 1.0D)); - this.tasks.addTask(7, new EntityAIWander(this, 1.0D)); - //this.tasks.addTask(8, new EntityAIBeg(this, 8.0F)); - this.tasks.addTask(9, new EntityAIWatchClosest(this, EntityPlayer.class, 8.0F)); - this.tasks.addTask(9, new EntityAILookIdle(this)); - this.targetTasks.addTask(1, new EntityAIOwnerHurtByTarget(this)); - this.targetTasks.addTask(2, new EntityAIOwnerHurtTarget(this)); - this.targetTasks.addTask(3, new EntityAIHurtByTarget(this, true)); - this.targetTasks.addTask(4, new EntityAITargetAggro(this, EntityPlayer.class, 0, false)); - this.setAggro(false); - this.setTamed(false); - attackTimer = 0; - //isAggro = false; - //this.isImmuneToFire = true; - } - - @Override - protected void applyEntityAttributes() - { - super.applyEntityAttributes(); - //This line affects the speed of the monster - this.getEntityAttribute(SharedMonsterAttributes.movementSpeed).setBaseValue(0.30000001192092896D); - - //My guess is that this will alter the max health - if (this.isTamed()) - { - this.getEntityAttribute(SharedMonsterAttributes.maxHealth).setBaseValue(this.maxTamedHealth); - } else - { - this.getEntityAttribute(SharedMonsterAttributes.maxHealth).setBaseValue(this.maxUntamedHealth); - } - - //this.func_110148_a(SharedMonsterAttributes.field_111267_a).func_111128_a(10.0D); - } - - /** - * Returns true if the newer Entity AI code should be run - */ - public boolean isAIEnabled() - { - return true; - } - - /** - * Sets the active target the Task system uses for tracking - */ - public void setAttackTarget(EntityLivingBase par1EntityLivingBase) - { - super.setAttackTarget(par1EntityLivingBase); - - if (par1EntityLivingBase == null) - { - this.setAngry(false); - } else if (!this.isTamed()) - { - this.setAngry(true); - } - } - - /** - * main AI tick function, replaces updateEntityActionState - */ - protected void updateAITick() - { - this.dataWatcher.updateObject(18, Float.valueOf(this.getHealth())); - } - - protected void entityInit() - { - super.entityInit(); - this.dataWatcher.addObject(18, new Float(this.getHealth())); - this.dataWatcher.addObject(19, new Byte((byte) 0)); - //this.dataWatcher.addObject(20, new Byte((byte) BlockColored.getBlockFromDye(1))); - } - - /** - * Plays step sound at given x, y, z for the entity - */ - protected void playStepSound(int par1, int par2, int par3, int par4) - { - this.playSound("mob.zombie.step", 0.15F, 1.0F); - } - - /** - * (abstract) Protected helper method to write subclass entity data to NBT. - */ - public void writeEntityToNBT(NBTTagCompound par1NBTTagCompound) - { - super.writeEntityToNBT(par1NBTTagCompound); - par1NBTTagCompound.setBoolean("Angry", this.isAngry()); - par1NBTTagCompound.setByte("attackTimer", (byte) attackTimer); - par1NBTTagCompound.setBoolean("isAggro", this.isAggro()); - } - - /** - * (abstract) Protected helper method to read subclass entity data from NBT. - */ - public void readEntityFromNBT(NBTTagCompound par1NBTTagCompound) - { - super.readEntityFromNBT(par1NBTTagCompound); - this.setAngry(par1NBTTagCompound.getBoolean("Angry")); - - - attackTimer = par1NBTTagCompound.getByte("attackTimer"); - isAggro = par1NBTTagCompound.getBoolean("isAggro"); - } - - /** - * Returns the sound this mob makes while it's alive. - */ - protected String getLivingSound() - { - return "none"; - } - - /** - * Returns the sound this mob makes when it is hurt. - */ - protected String getHurtSound() - { - return "mob.irongolem.hit"; - } - - /** - * Returns the sound this mob makes on death. - */ - protected String getDeathSound() - { - return "mob.irongolem.death"; - } - - /** - * Returns the volume for the sounds this mob makes. - */ - protected float getSoundVolume() - { - return 1.0F; - } - - /** - * Returns the item ID for the item the mob drops on death. - */ - protected int getDropItemId() - { - return -1; - } - - /** - * Called frequently so the entity can update its state every tick as required. For example, zombies and skeletons - * use this to react to sunlight and start to burn. - */ - public void onLivingUpdate() - { - super.onLivingUpdate(); - - if (attackTimer > 0) - { - attackTimer--; - } - } - - public int getAttackTimer() - { - return attackTimer; - } - - /** - * Called to update the entity's position/logic. - */ - public void onUpdate() - { - super.onUpdate(); - } - - public float getEyeHeight() - { - return this.height * 0.8F; - } - - /** - * The speed it takes to move the entityliving's rotationPitch through the faceEntity method. This is only currently - * use in wolves. - */ - public int getVerticalFaceSpeed() - { - return this.isSitting() ? 20 : super.getVerticalFaceSpeed(); - } - - /** - * Called when the entity is attacked. - */ - public boolean attackEntityFrom(DamageSource par1DamageSource, float par2) - { - if (this.isEntityInvulnerable()) - { - return false; - } else - { - Entity entity = par1DamageSource.getEntity(); - this.aiSit.setSitting(false); - - if (entity != null && !(entity instanceof EntityPlayer) && !(entity instanceof EntityArrow)) - { - par2 = (par2 + 1.0F) / 2.0F; - } - - return super.attackEntityFrom(par1DamageSource, par2); - } - } - - public boolean attackEntityAsMob(Entity par1Entity) - { - this.attackTimer = 10; - this.worldObj.setEntityState(this, (byte) 4); - boolean flag = par1Entity.attackEntityFrom(DamageSource.causeMobDamage(this), (float) (7 + this.rand.nextInt(15))); - - if (flag) - { - par1Entity.motionY += 0.4000000059604645D; - } - - this.playSound("mob.irongolem.throw", 1.0F, 1.0F); - return flag; - } - - public void setTamed(boolean par1) - { - super.setTamed(par1); - - if (par1) - { - this.getEntityAttribute(SharedMonsterAttributes.maxHealth).setBaseValue(this.maxTamedHealth); - } else - { - this.getEntityAttribute(SharedMonsterAttributes.maxHealth).setBaseValue(this.maxUntamedHealth); - } - } - - /** - * Called when a player interacts with a mob. e.g. gets milk from a cow, gets into the saddle on a pig. - */ - @Override - public boolean interact(EntityPlayer par1EntityPlayer) - { - ItemStack itemstack = par1EntityPlayer.inventory.getCurrentItem(); - - if (this.isTamed()) - { - if (itemstack != null) - { - if (itemstack.getItem() instanceof ItemFood) - { - ItemFood itemfood = (ItemFood) itemstack.getItem(); - - if (itemfood.isWolfsFavoriteMeat() && this.dataWatcher.getWatchableObjectFloat(18) < this.maxTamedHealth) - { - if (!par1EntityPlayer.capabilities.isCreativeMode) - { - --itemstack.stackSize; - } - - this.heal((float) itemfood.func_150905_g(itemstack)); - - if (itemstack.stackSize <= 0) - { - par1EntityPlayer.inventory.setInventorySlotContents(par1EntityPlayer.inventory.currentItem, (ItemStack) null); - } - - return true; - } - } - } - - if (par1EntityPlayer.getCommandSenderName().equalsIgnoreCase(this.getOwnerName()) && !this.isBreedingItem(itemstack)) - { - if (!this.worldObj.isRemote) - { - this.aiSit.setSitting(!this.isSitting()); - this.isJumping = false; - this.setPathToEntity((PathEntity) null); - this.setTarget((Entity) null); - this.setAttackTarget((EntityLivingBase) null); - } - - this.sendSittingMessageToPlayer(par1EntityPlayer, !this.isSitting()); - } - } else if (itemstack != null && itemstack.getItem().equals(ModItems.weakBloodOrb) && !this.isAngry()) - { - if (!par1EntityPlayer.capabilities.isCreativeMode) - { - --itemstack.stackSize; - } - - if (itemstack.stackSize <= 0) - { - par1EntityPlayer.inventory.setInventorySlotContents(par1EntityPlayer.inventory.currentItem, (ItemStack) null); - } - - if (!this.worldObj.isRemote) - { - if (this.rand.nextInt(1) == 0) - { - this.setTamed(true); - this.setPathToEntity((PathEntity) null); - this.setAttackTarget((EntityLivingBase) null); - this.aiSit.setSitting(true); - this.setHealth(this.maxTamedHealth); - this.setOwner(par1EntityPlayer.getCommandSenderName()); - this.playTameEffect(true); - this.worldObj.setEntityState(this, (byte) 7); - } else - { - this.playTameEffect(false); - this.worldObj.setEntityState(this, (byte) 6); - } - } - - return true; - } - - return super.interact(par1EntityPlayer); - } - - - /** - * Checks if the parameter is an item which this animal can be fed to breed it (wheat, carrots or seeds depending on - * the animal type) - */ - public boolean isBreedingItem(ItemStack par1ItemStack) - { - return false; - //return par1ItemStack == null ? false : (!(Item.itemsList[par1ItemStack.itemID] instanceof ItemFood) ? false : ((ItemFood)Item.itemsList[par1ItemStack.itemID]).isWolfsFavoriteMeat()); - } - - /** - * Determines whether this wolf is angry or not. - */ - public boolean isAngry() - { - return (this.dataWatcher.getWatchableObjectByte(16) & 2) != 0; - } - - /** - * Sets whether this wolf is angry or not. - */ - public void setAngry(boolean par1) - { - byte b0 = this.dataWatcher.getWatchableObjectByte(16); - - if (par1) - { - this.dataWatcher.updateObject(16, Byte.valueOf((byte) (b0 | 2))); - } else - { - this.dataWatcher.updateObject(16, Byte.valueOf((byte) (b0 & -3))); - } - } - - /** - * Return this wolf's collar color. - */ - public int getCollarColor() - { - return this.dataWatcher.getWatchableObjectByte(20) & 15; - } - - /** - * Set this wolf's collar color. - */ - public void setCollarColor(int par1) - { - this.dataWatcher.updateObject(20, Byte.valueOf((byte) (par1 & 15))); - } - - /** - * This function is used when two same-species animals in 'love mode' breed to generate the new baby animal. - */ - public EntityWolf spawnBabyAnimal(EntityAgeable par1EntityAgeable) - { - return null; - } - - public void func_70918_i(boolean par1) - { - if (par1) - { - this.dataWatcher.updateObject(19, Byte.valueOf((byte) 1)); - } else - { - this.dataWatcher.updateObject(19, Byte.valueOf((byte) 0)); - } - } - - /** - * Returns true if the mob is currently able to mate with the specified mob. - */ - public boolean canMateWith(EntityAnimal par1EntityAnimal) - { - return false; - } - - public boolean func_70922_bv() - { - return this.dataWatcher.getWatchableObjectByte(19) == 1; - } - - /** - * Determines if an entity can be despawned, used on idle far away entities - */ - protected boolean canDespawn() - { - //return !this.isTamed() && this.ticksExisted > 2400; - return false; - } - - public boolean func_142018_a(EntityLivingBase par1EntityLivingBase, EntityLivingBase par2EntityLivingBase) - { - if (!(par1EntityLivingBase instanceof EntityCreeper) && !(par1EntityLivingBase instanceof EntityGhast)) - { - if (par1EntityLivingBase instanceof EntityLowerGuardian) - { - EntityLowerGuardian entitywolf = (EntityLowerGuardian) par1EntityLivingBase; - - if (entitywolf.isTamed() && entitywolf.getOwner() == par2EntityLivingBase) - { - return false; - } - } - - return par1EntityLivingBase instanceof EntityPlayer && par2EntityLivingBase instanceof EntityPlayer && !((EntityPlayer) par2EntityLivingBase).canAttackPlayer((EntityPlayer) par1EntityLivingBase) ? false : !(par1EntityLivingBase instanceof EntityHorse) || !((EntityHorse) par1EntityLivingBase).isTame(); - } else - { - return false; - } - } - - public EntityAgeable createChild(EntityAgeable par1EntityAgeable) - { - return this.spawnBabyAnimal(par1EntityAgeable); - } -} diff --git a/1.7.2/main/java/WayofTime/alchemicalWizardry/common/entity/mob/EntityShade.java b/1.7.2/main/java/WayofTime/alchemicalWizardry/common/entity/mob/EntityShade.java deleted file mode 100644 index 99e86ad5..00000000 --- a/1.7.2/main/java/WayofTime/alchemicalWizardry/common/entity/mob/EntityShade.java +++ /dev/null @@ -1,492 +0,0 @@ -package WayofTime.alchemicalWizardry.common.entity.mob; - -import WayofTime.alchemicalWizardry.AlchemicalWizardry; -import WayofTime.alchemicalWizardry.ModItems; -import WayofTime.alchemicalWizardry.common.EntityAITargetAggro; -import WayofTime.alchemicalWizardry.common.entity.projectile.HolyProjectile; -import net.minecraft.block.BlockColored; -import net.minecraft.entity.Entity; -import net.minecraft.entity.EntityAgeable; -import net.minecraft.entity.EntityLivingBase; -import net.minecraft.entity.SharedMonsterAttributes; -import net.minecraft.entity.ai.*; -import net.minecraft.entity.monster.EntityCreeper; -import net.minecraft.entity.monster.EntityGhast; -import net.minecraft.entity.passive.EntityAnimal; -import net.minecraft.entity.passive.EntityHorse; -import net.minecraft.entity.passive.EntityWolf; -import net.minecraft.entity.player.EntityPlayer; -import net.minecraft.entity.projectile.EntityArrow; -import net.minecraft.item.Item; -import net.minecraft.item.ItemFood; -import net.minecraft.item.ItemStack; -import net.minecraft.nbt.NBTTagCompound; -import net.minecraft.pathfinding.PathEntity; -import net.minecraft.util.DamageSource; -import net.minecraft.world.World; - -public class EntityShade extends EntityDemon -{ - //private EntityAIArrowAttack aiArrowAttack = new EntityAIArrowAttack(this, 1.0D, 40, 40, 15.0F); - private EntityAIAttackOnCollide aiAttackOnCollide = new EntityAIAttackOnCollide(this, EntityPlayer.class, 1.2D, false); - - private static float maxTamedHealth = 50.0F; - private static float maxUntamedHealth = 100.0F; - - public EntityShade(World par1World) - { - super(par1World, AlchemicalWizardry.entityShadeID); - this.setSize(0.8F, 2.0F); - this.getNavigator().setAvoidsWater(true); - this.tasks.addTask(1, new EntityAISwimming(this)); - this.tasks.addTask(2, this.aiSit); - //this.tasks.addTask(3, new EntityAILeapAtTarget(this, 0.4F)); - this.tasks.addTask(4, new EntityAIAttackOnCollide(this, 1.0D, true)); - this.tasks.addTask(5, new EntityAIFollowOwner(this, 1.0D, 10.0F, 2.0F)); - //this.tasks.addTask(6, new EntityAIMate(this, 1.0D)); - this.tasks.addTask(7, new EntityAIWander(this, 1.0D)); - //this.tasks.addTask(8, new EntityAIBeg(this, 8.0F)); - this.tasks.addTask(9, new EntityAIWatchClosest(this, EntityPlayer.class, 8.0F)); - this.tasks.addTask(9, new EntityAILookIdle(this)); - this.targetTasks.addTask(1, new EntityAIOwnerHurtByTarget(this)); - this.targetTasks.addTask(2, new EntityAIOwnerHurtTarget(this)); - this.targetTasks.addTask(3, new EntityAIHurtByTarget(this, true)); - this.targetTasks.addTask(4, new EntityAITargetAggro(this, EntityPlayer.class, 0, false)); - this.setAggro(false); - //this.targetTasks.addTask(4, new EntityAITargetNonTamed(this, EntitySheep.class, 200, false)); - this.setTamed(false); - - if (par1World != null && !par1World.isRemote) - { - this.setCombatTask(); - } - - //this.isImmuneToFire = true; - } - - @Override - protected void applyEntityAttributes() - { - super.applyEntityAttributes(); - //This line affects the speed of the monster - this.getEntityAttribute(SharedMonsterAttributes.movementSpeed).setBaseValue(0.30000001192092896D); - - //My guess is that this will alter the max health - if (this.isTamed()) - { - this.getEntityAttribute(SharedMonsterAttributes.maxHealth).setBaseValue(this.maxTamedHealth); - } else - { - this.getEntityAttribute(SharedMonsterAttributes.maxHealth).setBaseValue(this.maxUntamedHealth); - } - - //this.func_110148_a(SharedMonsterAttributes.field_111267_a).func_111128_a(10.0D); - } - - /** - * Returns true if the newer Entity AI code should be run - */ - public boolean isAIEnabled() - { - return true; - } - - /** - * Sets the active target the Task system uses for tracking - */ - public void setAttackTarget(EntityLivingBase par1EntityLivingBase) - { - super.setAttackTarget(par1EntityLivingBase); - - if (par1EntityLivingBase == null) - { - this.setAngry(false); - } else if (!this.isTamed()) - { - this.setAngry(true); - } - } - - /** - * main AI tick function, replaces updateEntityActionState - */ - protected void updateAITick() - { - this.dataWatcher.updateObject(18, Float.valueOf(this.getHealth())); - } - - protected void entityInit() - { - super.entityInit(); - this.dataWatcher.addObject(18, new Float(this.getHealth())); - this.dataWatcher.addObject(19, new Byte((byte) 0)); - //this.dataWatcher.addObject(20, new Byte((byte) BlockColored.getBlockFromDye(1))); - } - - /** - * Plays step sound at given x, y, z for the entity - */ - protected void playStepSound(int par1, int par2, int par3, int par4) - { - this.playSound("mob.zombie.step", 0.15F, 1.0F); - } - - /** - * (abstract) Protected helper method to write subclass entity data to NBT. - */ - public void writeEntityToNBT(NBTTagCompound par1NBTTagCompound) - { - super.writeEntityToNBT(par1NBTTagCompound); - par1NBTTagCompound.setBoolean("Angry", this.isAngry()); - } - - /** - * (abstract) Protected helper method to read subclass entity data from NBT. - */ - public void readEntityFromNBT(NBTTagCompound par1NBTTagCompound) - { - super.readEntityFromNBT(par1NBTTagCompound); - this.setAngry(par1NBTTagCompound.getBoolean("Angry")); - - this.setCombatTask(); - } - - /** - * Returns the sound this mob makes while it's alive. - */ - protected String getLivingSound() - { - //TODO change sounds - return "none"; - } - - /** - * Returns the sound this mob makes when it is hurt. - */ - protected String getHurtSound() - { - return "none"; - } - - /** - * Returns the sound this mob makes on death. - */ - protected String getDeathSound() - { - return "none"; - } - - /** - * Returns the volume for the sounds this mob makes. - */ - protected float getSoundVolume() - { - return 0.4F; - } - - /** - * Returns the item ID for the item the mob drops on death. - */ - protected int getDropItemId() - { - return -1; - } - - /** - * Called frequently so the entity can update its state every tick as required. For example, zombies and skeletons - * use this to react to sunlight and start to burn. - */ - public void onLivingUpdate() - { - super.onLivingUpdate(); - } - - /** - * Called to update the entity's position/logic. - */ - public void onUpdate() - { - super.onUpdate(); - } - - public float getEyeHeight() - { - return this.height * 0.8F; - } - - /** - * The speed it takes to move the entityliving's rotationPitch through the faceEntity method. This is only currently - * use in wolves. - */ - public int getVerticalFaceSpeed() - { - return this.isSitting() ? 20 : super.getVerticalFaceSpeed(); - } - - /** - * Called when the entity is attacked. - */ - public boolean attackEntityFrom(DamageSource par1DamageSource, float par2) - { - if (this.isEntityInvulnerable()) - { - return false; - } else - { - Entity entity = par1DamageSource.getEntity(); - this.aiSit.setSitting(false); - - if (entity != null && !(entity instanceof EntityPlayer) && !(entity instanceof EntityArrow)) - { - par2 = (par2 + 1.0F) / 2.0F; - } - - return super.attackEntityFrom(par1DamageSource, par2); - } - } - - public boolean attackEntityAsMob(Entity par1Entity) - { - int i = this.isTamed() ? 6 : 7; - return par1Entity.attackEntityFrom(DamageSource.causeMobDamage(this), (float) i); - } - - public void setTamed(boolean par1) - { - super.setTamed(par1); - - if (par1) - { - this.getEntityAttribute(SharedMonsterAttributes.maxHealth).setBaseValue(this.maxTamedHealth); - } else - { - this.getEntityAttribute(SharedMonsterAttributes.maxHealth).setBaseValue(this.maxUntamedHealth); - } - } - - /** - * Called when a player interacts with a mob. e.g. gets milk from a cow, gets into the saddle on a pig. - */ - @Override - public boolean interact(EntityPlayer par1EntityPlayer) - { - ItemStack itemstack = par1EntityPlayer.inventory.getCurrentItem(); - - if (this.isTamed()) - { - if (itemstack != null) - { - if (itemstack.getItem() instanceof ItemFood) - { - ItemFood itemfood = (ItemFood) itemstack.getItem(); - - if (itemfood.isWolfsFavoriteMeat() && this.dataWatcher.getWatchableObjectFloat(18) < this.maxTamedHealth) - { - if (!par1EntityPlayer.capabilities.isCreativeMode) - { - --itemstack.stackSize; - } - - this.heal((float) itemfood.func_150905_g(itemstack)); - - if (itemstack.stackSize <= 0) - { - par1EntityPlayer.inventory.setInventorySlotContents(par1EntityPlayer.inventory.currentItem, (ItemStack) null); - } - - return true; - } - } - } - - if (par1EntityPlayer.getCommandSenderName().equalsIgnoreCase(this.getOwnerName()) && !this.isBreedingItem(itemstack)) - { - if (!this.worldObj.isRemote) - { - this.aiSit.setSitting(!this.isSitting()); - this.isJumping = false; - this.setPathToEntity((PathEntity) null); - this.setTarget((Entity) null); - this.setAttackTarget((EntityLivingBase) null); - } - - this.sendSittingMessageToPlayer(par1EntityPlayer, !this.isSitting()); - } - } else if (itemstack != null && itemstack.getItem().equals(ModItems.weakBloodOrb) && !this.isAngry()) - { - if (!par1EntityPlayer.capabilities.isCreativeMode) - { - --itemstack.stackSize; - } - - if (itemstack.stackSize <= 0) - { - par1EntityPlayer.inventory.setInventorySlotContents(par1EntityPlayer.inventory.currentItem, (ItemStack) null); - } - - if (!this.worldObj.isRemote) - { - if (this.rand.nextInt(1) == 0) - { - this.setTamed(true); - this.setPathToEntity((PathEntity) null); - this.setAttackTarget((EntityLivingBase) null); - this.aiSit.setSitting(true); - this.setHealth(this.maxTamedHealth); - this.setOwner(par1EntityPlayer.getCommandSenderName()); - this.playTameEffect(true); - this.worldObj.setEntityState(this, (byte) 7); - } else - { - this.playTameEffect(false); - this.worldObj.setEntityState(this, (byte) 6); - } - } - - return true; - } - - return super.interact(par1EntityPlayer); - } - - - /** - * Checks if the parameter is an item which this animal can be fed to breed it (wheat, carrots or seeds depending on - * the animal type) - */ - public boolean isBreedingItem(ItemStack par1ItemStack) - { - return false; - //return par1ItemStack == null ? false : (!(Item.itemsList[par1ItemStack.itemID] instanceof ItemFood) ? false : ((ItemFood)Item.itemsList[par1ItemStack.itemID]).isWolfsFavoriteMeat()); - } - - /** - * Determines whether this wolf is angry or not. - */ - public boolean isAngry() - { - return (this.dataWatcher.getWatchableObjectByte(16) & 2) != 0; - } - - /** - * Sets whether this wolf is angry or not. - */ - public void setAngry(boolean par1) - { - byte b0 = this.dataWatcher.getWatchableObjectByte(16); - - if (par1) - { - this.dataWatcher.updateObject(16, Byte.valueOf((byte) (b0 | 2))); - } else - { - this.dataWatcher.updateObject(16, Byte.valueOf((byte) (b0 & -3))); - } - } - - /** - * Return this wolf's collar color. - */ - public int getCollarColor() - { - return this.dataWatcher.getWatchableObjectByte(20) & 15; - } - - /** - * Set this wolf's collar color. - */ - public void setCollarColor(int par1) - { - this.dataWatcher.updateObject(20, Byte.valueOf((byte) (par1 & 15))); - } - - /** - * This function is used when two same-species animals in 'love mode' breed to generate the new baby animal. - */ - public EntityWolf spawnBabyAnimal(EntityAgeable par1EntityAgeable) - { - return null; - } - - public void func_70918_i(boolean par1) - { - if (par1) - { - this.dataWatcher.updateObject(19, Byte.valueOf((byte) 1)); - } else - { - this.dataWatcher.updateObject(19, Byte.valueOf((byte) 0)); - } - } - - /** - * Returns true if the mob is currently able to mate with the specified mob. - */ - public boolean canMateWith(EntityAnimal par1EntityAnimal) - { - return false; - } - - public boolean func_70922_bv() - { - return this.dataWatcher.getWatchableObjectByte(19) == 1; - } - - /** - * Determines if an entity can be despawned, used on idle far away entities - */ - protected boolean canDespawn() - { - //return !this.isTamed() && this.ticksExisted > 2400; - return false; - } - - public boolean func_142018_a(EntityLivingBase par1EntityLivingBase, EntityLivingBase par2EntityLivingBase) - { - if (!(par1EntityLivingBase instanceof EntityCreeper) && !(par1EntityLivingBase instanceof EntityGhast)) - { - if (par1EntityLivingBase instanceof EntityBoulderFist) - { - EntityBoulderFist entitywolf = (EntityBoulderFist) par1EntityLivingBase; - - if (entitywolf.isTamed() && entitywolf.getOwner() == par2EntityLivingBase) - { - return false; - } - } - - return par1EntityLivingBase instanceof EntityPlayer && par2EntityLivingBase instanceof EntityPlayer && !((EntityPlayer) par2EntityLivingBase).canAttackPlayer((EntityPlayer) par1EntityLivingBase) ? false : !(par1EntityLivingBase instanceof EntityHorse) || !((EntityHorse) par1EntityLivingBase).isTame(); - } else - { - return false; - } - } - - public EntityAgeable createChild(EntityAgeable par1EntityAgeable) - { - return this.spawnBabyAnimal(par1EntityAgeable); - } - - /** - * Attack the specified entity using a ranged attack. - */ - public void attackEntityWithRangedAttack(EntityLivingBase par1EntityLivingBase, float par2) - { - double xCoord; - double yCoord; - double zCoord; - HolyProjectile hol = new HolyProjectile(worldObj, this, par1EntityLivingBase, 1.8f, 0f, 5, 600); - this.worldObj.spawnEntityInWorld(hol); - } - - /** - * sets this entity's combat AI. - */ - public void setCombatTask() - { - this.tasks.removeTask(this.aiAttackOnCollide); - //this.tasks.removeTask(this.aiArrowAttack); - ItemStack itemstack = this.getHeldItem(); - this.tasks.addTask(4, this.aiAttackOnCollide); - } -} \ No newline at end of file diff --git a/1.7.2/main/java/WayofTime/alchemicalWizardry/common/entity/mob/EntityShadeElemental.java b/1.7.2/main/java/WayofTime/alchemicalWizardry/common/entity/mob/EntityShadeElemental.java deleted file mode 100644 index 004fcce4..00000000 --- a/1.7.2/main/java/WayofTime/alchemicalWizardry/common/entity/mob/EntityShadeElemental.java +++ /dev/null @@ -1,27 +0,0 @@ -package WayofTime.alchemicalWizardry.common.entity.mob; - -import WayofTime.alchemicalWizardry.AlchemicalWizardry; -import net.minecraft.entity.Entity; -import net.minecraft.entity.EntityLivingBase; -import net.minecraft.entity.monster.IMob; -import net.minecraft.potion.Potion; -import net.minecraft.potion.PotionEffect; -import net.minecraft.world.World; - -public class EntityShadeElemental extends EntityElemental implements IMob -{ - public EntityShadeElemental(World world) - { - super(world, AlchemicalWizardry.entityShadeElementalID); - } - - public void inflictEffectOnEntity(Entity target) - { - if (target instanceof EntityLivingBase) - { - ((EntityLivingBase) target).addPotionEffect(new PotionEffect(Potion.blindness.id, 100, 1)); - ((EntityLivingBase) target).addPotionEffect(new PotionEffect(AlchemicalWizardry.customPotionInhibit.id, 150, 0)); - ((EntityLivingBase) target).addPotionEffect(new PotionEffect(Potion.nightVision.id, 100, 0)); - } - } -} \ No newline at end of file diff --git a/1.7.2/main/java/WayofTime/alchemicalWizardry/common/entity/mob/EntitySmallEarthGolem.java b/1.7.2/main/java/WayofTime/alchemicalWizardry/common/entity/mob/EntitySmallEarthGolem.java deleted file mode 100644 index 48da92e9..00000000 --- a/1.7.2/main/java/WayofTime/alchemicalWizardry/common/entity/mob/EntitySmallEarthGolem.java +++ /dev/null @@ -1,499 +0,0 @@ -package WayofTime.alchemicalWizardry.common.entity.mob; - -import net.minecraft.entity.Entity; -import net.minecraft.entity.EntityAgeable; -import net.minecraft.entity.EntityLivingBase; -import net.minecraft.entity.IRangedAttackMob; -import net.minecraft.entity.SharedMonsterAttributes; -import net.minecraft.entity.ai.EntityAIArrowAttack; -import net.minecraft.entity.ai.EntityAIAttackOnCollide; -import net.minecraft.entity.ai.EntityAIFollowOwner; -import net.minecraft.entity.ai.EntityAIHurtByTarget; -import net.minecraft.entity.ai.EntityAILookIdle; -import net.minecraft.entity.ai.EntityAIOwnerHurtByTarget; -import net.minecraft.entity.ai.EntityAIOwnerHurtTarget; -import net.minecraft.entity.ai.EntityAISwimming; -import net.minecraft.entity.ai.EntityAIWander; -import net.minecraft.entity.ai.EntityAIWatchClosest; -import net.minecraft.entity.monster.EntityCreeper; -import net.minecraft.entity.monster.EntityGhast; -import net.minecraft.entity.passive.EntityAnimal; -import net.minecraft.entity.passive.EntityHorse; -import net.minecraft.entity.passive.EntityWolf; -import net.minecraft.entity.player.EntityPlayer; -import net.minecraft.entity.projectile.EntityArrow; -import net.minecraft.item.ItemFood; -import net.minecraft.item.ItemStack; -import net.minecraft.nbt.NBTTagCompound; -import net.minecraft.pathfinding.PathEntity; -import net.minecraft.util.DamageSource; -import net.minecraft.world.World; -import WayofTime.alchemicalWizardry.AlchemicalWizardry; -import WayofTime.alchemicalWizardry.ModItems; -import WayofTime.alchemicalWizardry.common.EntityAITargetAggro; -import WayofTime.alchemicalWizardry.common.entity.projectile.MudProjectile; - -public class EntitySmallEarthGolem extends EntityDemon implements IRangedAttackMob -{ - private EntityAIArrowAttack aiArrowAttack = new EntityAIArrowAttack(this, 1.0D, 25, 25, 15.0F); - private EntityAIAttackOnCollide aiAttackOnCollide = new EntityAIAttackOnCollide(this, EntityPlayer.class, 1.2D, false); - - private static float maxTamedHealth = 20.0F; - private static float maxUntamedHealth = 10.0F; - - public EntitySmallEarthGolem(World par1World) - { - super(par1World, AlchemicalWizardry.entitySmallEarthGolemID); - this.setSize(0.2F, 1.0F); - this.getNavigator().setAvoidsWater(true); - this.tasks.addTask(1, new EntityAISwimming(this)); - this.tasks.addTask(2, this.aiSit); - //this.tasks.addTask(3, new EntityAILeapAtTarget(this, 0.4F)); - //this.tasks.addTask(4, new EntityAIAttackOnCollide(this, 1.0D, true)); - this.tasks.addTask(5, new EntityAIFollowOwner(this, 1.0D, 10.0F, 2.0F)); - //this.tasks.addTask(6, new EntityAIMate(this, 1.0D)); - this.tasks.addTask(7, new EntityAIWander(this, 1.0D)); - //this.tasks.addTask(8, new EntityAIBeg(this, 8.0F)); - this.tasks.addTask(9, new EntityAIWatchClosest(this, EntityPlayer.class, 8.0F)); - this.tasks.addTask(9, new EntityAILookIdle(this)); - this.targetTasks.addTask(1, new EntityAIOwnerHurtByTarget(this)); - this.targetTasks.addTask(2, new EntityAIOwnerHurtTarget(this)); - this.targetTasks.addTask(3, new EntityAIHurtByTarget(this, true)); - this.targetTasks.addTask(4, new EntityAITargetAggro(this, EntityPlayer.class, 0, false)); - this.setAggro(false); - //this.targetTasks.addTask(4, new EntityAITargetNonTamed(this, EntitySheep.class, 200, false)); - this.setTamed(false); - - if (par1World != null && !par1World.isRemote) - { - this.setCombatTask(); - } - - //this.isImmuneToFire = true; - } - - @Override - protected void applyEntityAttributes() - { - super.applyEntityAttributes(); - //This line affects the speed of the monster - this.getEntityAttribute(SharedMonsterAttributes.movementSpeed).setBaseValue(0.40000001192092896D); - - //My guess is that this will alter the max health - if (this.isTamed()) - { - this.getEntityAttribute(SharedMonsterAttributes.maxHealth).setBaseValue(this.maxTamedHealth); - } else - { - this.getEntityAttribute(SharedMonsterAttributes.maxHealth).setBaseValue(this.maxUntamedHealth); - } - - //this.func_110148_a(SharedMonsterAttributes.field_111267_a).func_111128_a(10.0D); - } - - /** - * Returns true if the newer Entity AI code should be run - */ - public boolean isAIEnabled() - { - return true; - } - - /** - * Sets the active target the Task system uses for tracking - */ - public void setAttackTarget(EntityLivingBase par1EntityLivingBase) - { - super.setAttackTarget(par1EntityLivingBase); - - if (par1EntityLivingBase == null) - { - this.setAngry(false); - } else if (!this.isTamed()) - { - this.setAngry(true); - } - } - - /** - * main AI tick function, replaces updateEntityActionState - */ - protected void updateAITick() - { - this.dataWatcher.updateObject(18, Float.valueOf(this.getHealth())); - } - - protected void entityInit() - { - super.entityInit(); - this.dataWatcher.addObject(18, new Float(this.getHealth())); - this.dataWatcher.addObject(19, new Byte((byte) 0)); - //this.dataWatcher.addObject(20, new Byte((byte) BlockColored.getBlockFromDye(1))); - } - - /** - * Plays step sound at given x, y, z for the entity - */ - protected void playStepSound(int par1, int par2, int par3, int par4) - { - this.playSound("mob.zombie.step", 0.15F, 1.0F); - } - - /** - * (abstract) Protected helper method to write subclass entity data to NBT. - */ - public void writeEntityToNBT(NBTTagCompound par1NBTTagCompound) - { - super.writeEntityToNBT(par1NBTTagCompound); - par1NBTTagCompound.setBoolean("Angry", this.isAngry()); - } - - /** - * (abstract) Protected helper method to read subclass entity data from NBT. - */ - public void readEntityFromNBT(NBTTagCompound par1NBTTagCompound) - { - super.readEntityFromNBT(par1NBTTagCompound); - this.setAngry(par1NBTTagCompound.getBoolean("Angry")); - - this.setCombatTask(); - } - - /** - * Returns the sound this mob makes while it's alive. - */ - protected String getLivingSound() - { - return "none"; - } - - /** - * Returns the sound this mob makes when it is hurt. - */ - protected String getHurtSound() - { - return "mob.irongolem.hit"; - } - - /** - * Returns the sound this mob makes on death. - */ - protected String getDeathSound() - { - return "mob.irongolem.death"; - } - - /** - * Returns the volume for the sounds this mob makes. - */ - protected float getSoundVolume() - { - return 0.4F; - } - - /** - * Returns the item ID for the item the mob drops on death. - */ - protected int getDropItemId() - { - return -1; - } - - /** - * Called frequently so the entity can update its state every tick as required. For example, zombies and skeletons - * use this to react to sunlight and start to burn. - */ - public void onLivingUpdate() - { - super.onLivingUpdate(); - } - - /** - * Called to update the entity's position/logic. - */ - public void onUpdate() - { - super.onUpdate(); - } - - public float getEyeHeight() - { - return this.height * 0.8F; - } - - /** - * The speed it takes to move the entityliving's rotationPitch through the faceEntity method. This is only currently - * use in wolves. - */ - public int getVerticalFaceSpeed() - { - return this.isSitting() ? 20 : super.getVerticalFaceSpeed(); - } - - /** - * Called when the entity is attacked. - */ - public boolean attackEntityFrom(DamageSource par1DamageSource, float par2) - { - if (this.isEntityInvulnerable()) - { - return false; - } else - { - Entity entity = par1DamageSource.getEntity(); - this.aiSit.setSitting(false); - - if (entity != null && !(entity instanceof EntityPlayer) && !(entity instanceof EntityArrow)) - { - par2 = (par2 + 1.0F) / 2.0F; - } - - return super.attackEntityFrom(par1DamageSource, par2); - } - } - - public boolean attackEntityAsMob(Entity par1Entity) - { - int i = this.isTamed() ? 4 : 2; - return par1Entity.attackEntityFrom(DamageSource.causeMobDamage(this), (float) i); - } - - public void setTamed(boolean par1) - { - super.setTamed(par1); - - if (par1) - { - this.getEntityAttribute(SharedMonsterAttributes.maxHealth).setBaseValue(this.maxTamedHealth); - } else - { - this.getEntityAttribute(SharedMonsterAttributes.maxHealth).setBaseValue(this.maxUntamedHealth); - } - } - - /** - * Called when a player interacts with a mob. e.g. gets milk from a cow, gets into the saddle on a pig. - */ - @Override - public boolean interact(EntityPlayer par1EntityPlayer) - { - ItemStack itemstack = par1EntityPlayer.inventory.getCurrentItem(); - - if (this.isTamed()) - { - if (itemstack != null) - { - if (itemstack.getItem() instanceof ItemFood) - { - ItemFood itemfood = (ItemFood) itemstack.getItem(); - - if (itemfood.isWolfsFavoriteMeat() && this.dataWatcher.getWatchableObjectFloat(18) < this.maxTamedHealth) - { - if (!par1EntityPlayer.capabilities.isCreativeMode) - { - --itemstack.stackSize; - } - - this.heal((float) itemfood.func_150905_g(itemstack)); - - if (itemstack.stackSize <= 0) - { - par1EntityPlayer.inventory.setInventorySlotContents(par1EntityPlayer.inventory.currentItem, (ItemStack) null); - } - - return true; - } - } - } - - if (par1EntityPlayer.getCommandSenderName().equalsIgnoreCase(this.getOwnerName()) && !this.isBreedingItem(itemstack)) - { - if (!this.worldObj.isRemote) - { - this.aiSit.setSitting(!this.isSitting()); - this.isJumping = false; - this.setPathToEntity((PathEntity) null); - this.setTarget((Entity) null); - this.setAttackTarget((EntityLivingBase) null); - } - - this.sendSittingMessageToPlayer(par1EntityPlayer, !this.isSitting()); - } - } else if (itemstack != null && itemstack.getItem().equals(ModItems.weakBloodOrb) && !this.isAngry()) - { - if (!par1EntityPlayer.capabilities.isCreativeMode) - { - --itemstack.stackSize; - } - - if (itemstack.stackSize <= 0) - { - par1EntityPlayer.inventory.setInventorySlotContents(par1EntityPlayer.inventory.currentItem, (ItemStack) null); - } - - if (!this.worldObj.isRemote) - { - if (this.rand.nextInt(1) == 0) - { - this.setTamed(true); - this.setPathToEntity((PathEntity) null); - this.setAttackTarget((EntityLivingBase) null); - this.aiSit.setSitting(true); - this.setHealth(this.maxTamedHealth); - this.setOwner(par1EntityPlayer.getCommandSenderName()); - this.playTameEffect(true); - this.worldObj.setEntityState(this, (byte) 7); - } else - { - this.playTameEffect(false); - this.worldObj.setEntityState(this, (byte) 6); - } - } - - return true; - } - - return super.interact(par1EntityPlayer); - } - - - /** - * Checks if the parameter is an item which this animal can be fed to breed it (wheat, carrots or seeds depending on - * the animal type) - */ - public boolean isBreedingItem(ItemStack par1ItemStack) - { - return false; - //return par1ItemStack == null ? false : (!(Item.itemsList[par1ItemStack.itemID] instanceof ItemFood) ? false : ((ItemFood)Item.itemsList[par1ItemStack.itemID]).isWolfsFavoriteMeat()); - } - - /** - * Determines whether this wolf is angry or not. - */ - public boolean isAngry() - { - return (this.dataWatcher.getWatchableObjectByte(16) & 2) != 0; - } - - /** - * Sets whether this wolf is angry or not. - */ - public void setAngry(boolean par1) - { - byte b0 = this.dataWatcher.getWatchableObjectByte(16); - - if (par1) - { - this.dataWatcher.updateObject(16, Byte.valueOf((byte) (b0 | 2))); - } else - { - this.dataWatcher.updateObject(16, Byte.valueOf((byte) (b0 & -3))); - } - } - - /** - * Return this wolf's collar color. - */ - public int getCollarColor() - { - return this.dataWatcher.getWatchableObjectByte(20) & 15; - } - - /** - * Set this wolf's collar color. - */ - public void setCollarColor(int par1) - { - this.dataWatcher.updateObject(20, Byte.valueOf((byte) (par1 & 15))); - } - - /** - * This function is used when two same-species animals in 'love mode' breed to generate the new baby animal. - */ - public EntityWolf spawnBabyAnimal(EntityAgeable par1EntityAgeable) - { - return null; - } - - public void func_70918_i(boolean par1) - { - if (par1) - { - this.dataWatcher.updateObject(19, Byte.valueOf((byte) 1)); - } else - { - this.dataWatcher.updateObject(19, Byte.valueOf((byte) 0)); - } - } - - /** - * Returns true if the mob is currently able to mate with the specified mob. - */ - public boolean canMateWith(EntityAnimal par1EntityAnimal) - { - return false; - } - - public boolean func_70922_bv() - { - return this.dataWatcher.getWatchableObjectByte(19) == 1; - } - - /** - * Determines if an entity can be despawned, used on idle far away entities - */ - protected boolean canDespawn() - { - //return !this.isTamed() && this.ticksExisted > 2400; - return false; - } - - public boolean func_142018_a(EntityLivingBase par1EntityLivingBase, EntityLivingBase par2EntityLivingBase) - { - if (!(par1EntityLivingBase instanceof EntityCreeper) && !(par1EntityLivingBase instanceof EntityGhast)) - { - if (par1EntityLivingBase instanceof EntitySmallEarthGolem) - { - EntitySmallEarthGolem entitywolf = (EntitySmallEarthGolem) par1EntityLivingBase; - - if (entitywolf.isTamed() && entitywolf.getOwner() == par2EntityLivingBase) - { - return false; - } - } - - return par1EntityLivingBase instanceof EntityPlayer && par2EntityLivingBase instanceof EntityPlayer && !((EntityPlayer) par2EntityLivingBase).canAttackPlayer((EntityPlayer) par1EntityLivingBase) ? false : !(par1EntityLivingBase instanceof EntityHorse) || !((EntityHorse) par1EntityLivingBase).isTame(); - } else - { - return false; - } - } - - public EntityAgeable createChild(EntityAgeable par1EntityAgeable) - { - return this.spawnBabyAnimal(par1EntityAgeable); - } - - /** - * Attack the specified entity using a ranged attack. - */ - public void attackEntityWithRangedAttack(EntityLivingBase par1EntityLivingBase, float par2) - { - double xCoord; - double yCoord; - double zCoord; - MudProjectile hol = new MudProjectile(worldObj, this, par1EntityLivingBase, 1.8f, 0f, 3, 600, false); - this.worldObj.spawnEntityInWorld(hol); - } - - /** - * sets this entity's combat AI. - */ - public void setCombatTask() - { - this.tasks.removeTask(this.aiAttackOnCollide); - this.tasks.removeTask(this.aiArrowAttack); - ItemStack itemstack = this.getHeldItem(); - this.tasks.addTask(4, this.aiArrowAttack); - } -} diff --git a/1.7.2/main/java/WayofTime/alchemicalWizardry/common/entity/mob/EntityWaterElemental.java b/1.7.2/main/java/WayofTime/alchemicalWizardry/common/entity/mob/EntityWaterElemental.java deleted file mode 100644 index ab141887..00000000 --- a/1.7.2/main/java/WayofTime/alchemicalWizardry/common/entity/mob/EntityWaterElemental.java +++ /dev/null @@ -1,25 +0,0 @@ -package WayofTime.alchemicalWizardry.common.entity.mob; - -import WayofTime.alchemicalWizardry.AlchemicalWizardry; -import net.minecraft.entity.Entity; -import net.minecraft.entity.EntityLivingBase; -import net.minecraft.entity.monster.IMob; -import net.minecraft.potion.PotionEffect; -import net.minecraft.world.World; - -public class EntityWaterElemental extends EntityElemental implements IMob -{ - public EntityWaterElemental(World world) - { - super(world, AlchemicalWizardry.entityWaterElementalID); - } - - public void inflictEffectOnEntity(Entity target) - { - if (target instanceof EntityLivingBase) - { - ((EntityLivingBase) target).addPotionEffect(new PotionEffect(AlchemicalWizardry.customPotionDrowning.id, 100, 2)); - ((EntityLivingBase) target).addPotionEffect(new PotionEffect(AlchemicalWizardry.customPotionInhibit.id, 150, 0)); - } - } -} \ No newline at end of file diff --git a/1.7.2/main/java/WayofTime/alchemicalWizardry/common/entity/mob/EntityWingedFireDemon.java b/1.7.2/main/java/WayofTime/alchemicalWizardry/common/entity/mob/EntityWingedFireDemon.java deleted file mode 100644 index 3ec81764..00000000 --- a/1.7.2/main/java/WayofTime/alchemicalWizardry/common/entity/mob/EntityWingedFireDemon.java +++ /dev/null @@ -1,502 +0,0 @@ -package WayofTime.alchemicalWizardry.common.entity.mob; - -import net.minecraft.block.BlockColored; -import net.minecraft.entity.Entity; -import net.minecraft.entity.EntityAgeable; -import net.minecraft.entity.EntityLivingBase; -import net.minecraft.entity.IRangedAttackMob; -import net.minecraft.entity.SharedMonsterAttributes; -import net.minecraft.entity.ai.EntityAIArrowAttack; -import net.minecraft.entity.ai.EntityAIAttackOnCollide; -import net.minecraft.entity.ai.EntityAIFollowOwner; -import net.minecraft.entity.ai.EntityAIHurtByTarget; -import net.minecraft.entity.ai.EntityAILookIdle; -import net.minecraft.entity.ai.EntityAIOwnerHurtByTarget; -import net.minecraft.entity.ai.EntityAIOwnerHurtTarget; -import net.minecraft.entity.ai.EntityAISwimming; -import net.minecraft.entity.ai.EntityAIWander; -import net.minecraft.entity.ai.EntityAIWatchClosest; -import net.minecraft.entity.monster.EntityCreeper; -import net.minecraft.entity.monster.EntityGhast; -import net.minecraft.entity.passive.EntityAnimal; -import net.minecraft.entity.passive.EntityHorse; -import net.minecraft.entity.passive.EntityWolf; -import net.minecraft.entity.player.EntityPlayer; -import net.minecraft.entity.projectile.EntityArrow; -import net.minecraft.item.Item; -import net.minecraft.item.ItemFood; -import net.minecraft.item.ItemStack; -import net.minecraft.nbt.NBTTagCompound; -import net.minecraft.pathfinding.PathEntity; -import net.minecraft.util.DamageSource; -import net.minecraft.world.World; -import WayofTime.alchemicalWizardry.AlchemicalWizardry; -import WayofTime.alchemicalWizardry.ModItems; -import WayofTime.alchemicalWizardry.common.EntityAITargetAggro; -import WayofTime.alchemicalWizardry.common.entity.projectile.FireProjectile; - -public class EntityWingedFireDemon extends EntityDemon implements IRangedAttackMob -{ - private EntityAIArrowAttack aiArrowAttack = new EntityAIArrowAttack(this, 1.0D, 40, 40, 15.0F); - private EntityAIAttackOnCollide aiAttackOnCollide = new EntityAIAttackOnCollide(this, EntityPlayer.class, 1.2D, false); - - private static float maxTamedHealth = 100.0F; - private static float maxUntamedHealth = 200.0F; - - public EntityWingedFireDemon(World par1World) - { - super(par1World, AlchemicalWizardry.entityWingedFireDemonID); - this.setSize(0.7F, 1.8F); - this.getNavigator().setAvoidsWater(true); - this.tasks.addTask(1, new EntityAISwimming(this)); - this.tasks.addTask(2, this.aiSit); - //this.tasks.addTask(3, new EntityAILeapAtTarget(this, 0.4F)); - //this.tasks.addTask(4, new EntityAIAttackOnCollide(this, 1.0D, true)); - this.tasks.addTask(5, new EntityAIFollowOwner(this, 1.0D, 10.0F, 2.0F)); - //this.tasks.addTask(6, new EntityAIMate(this, 1.0D)); - this.tasks.addTask(7, new EntityAIWander(this, 1.0D)); - //this.tasks.addTask(8, new EntityAIBeg(this, 8.0F)); - this.tasks.addTask(9, new EntityAIWatchClosest(this, EntityPlayer.class, 8.0F)); - this.tasks.addTask(9, new EntityAILookIdle(this)); - this.targetTasks.addTask(1, new EntityAIOwnerHurtByTarget(this)); - this.targetTasks.addTask(2, new EntityAIOwnerHurtTarget(this)); - this.targetTasks.addTask(3, new EntityAIHurtByTarget(this, true)); - this.targetTasks.addTask(4, new EntityAITargetAggro(this, EntityPlayer.class, 0, false)); - this.setAggro(false); - //this.targetTasks.addTask(4, new EntityAITargetNonTamed(this, EntitySheep.class, 200, false)); - this.setTamed(false); - - if (par1World != null && !par1World.isRemote) - { - this.setCombatTask(); - } - - this.isImmuneToFire = true; - } - - @Override - protected void applyEntityAttributes() - { - super.applyEntityAttributes(); - //This line affects the speed of the monster - this.getEntityAttribute(SharedMonsterAttributes.movementSpeed).setBaseValue(0.30000001192092896D); - - //My guess is that this will alter the max health - if (this.isTamed()) - { - this.getEntityAttribute(SharedMonsterAttributes.maxHealth).setBaseValue(this.maxTamedHealth); - } else - { - this.getEntityAttribute(SharedMonsterAttributes.maxHealth).setBaseValue(this.maxUntamedHealth); - } - - //this.func_110148_a(SharedMonsterAttributes.field_111267_a).func_111128_a(10.0D); - } - - /** - * Returns true if the newer Entity AI code should be run - */ - public boolean isAIEnabled() - { - return true; - } - - /** - * Sets the active target the Task system uses for tracking - */ - public void setAttackTarget(EntityLivingBase par1EntityLivingBase) - { - super.setAttackTarget(par1EntityLivingBase); - - if (par1EntityLivingBase == null) - { - this.setAngry(false); - } else if (!this.isTamed()) - { - this.setAngry(true); - } - } - - /** - * main AI tick function, replaces updateEntityActionState - */ - protected void updateAITick() - { - this.dataWatcher.updateObject(18, Float.valueOf(this.getHealth())); - } - - protected void entityInit() - { - super.entityInit(); - this.dataWatcher.addObject(18, new Float(this.getHealth())); - this.dataWatcher.addObject(19, new Byte((byte) 0)); - //this.dataWatcher.addObject(20, new Byte((byte) BlockColored.getBlockFromDye(1))); - } - - /** - * Plays step sound at given x, y, z for the entity - */ - protected void playStepSound(int par1, int par2, int par3, int par4) - { - this.playSound("mob.zombie.step", 0.15F, 1.0F); - } - - /** - * (abstract) Protected helper method to write subclass entity data to NBT. - */ - public void writeEntityToNBT(NBTTagCompound par1NBTTagCompound) - { - super.writeEntityToNBT(par1NBTTagCompound); - par1NBTTagCompound.setBoolean("Angry", this.isAngry()); - } - - /** - * (abstract) Protected helper method to read subclass entity data from NBT. - */ - public void readEntityFromNBT(NBTTagCompound par1NBTTagCompound) - { - super.readEntityFromNBT(par1NBTTagCompound); - this.setAngry(par1NBTTagCompound.getBoolean("Angry")); - - this.setCombatTask(); - } - - /** - * Returns the sound this mob makes while it's alive. - */ - protected String getLivingSound() - { - return "mob.blaze.breathe"; - } - - /** - * Returns the sound this mob makes when it is hurt. - */ - protected String getHurtSound() - { - return "mob.blaze.hit"; - } - - /** - * Returns the sound this mob makes on death. - */ - protected String getDeathSound() - { - return "mob.blaze.death"; - } - - /** - * Returns the volume for the sounds this mob makes. - */ - protected float getSoundVolume() - { - return 0.4F; - } - - /** - * Returns the item ID for the item the mob drops on death. - */ - protected int getDropItemId() - { - return -1; - } - - /** - * Called frequently so the entity can update its state every tick as required. For example, zombies and skeletons - * use this to react to sunlight and start to burn. - */ - public void onLivingUpdate() - { - super.onLivingUpdate(); - } - - /** - * Called to update the entity's position/logic. - */ - public void onUpdate() - { - super.onUpdate(); - } - - public float getEyeHeight() - { - return this.height * 0.8F; - } - - /** - * The speed it takes to move the entityliving's rotationPitch through the faceEntity method. This is only currently - * use in wolves. - */ - public int getVerticalFaceSpeed() - { - return this.isSitting() ? 20 : super.getVerticalFaceSpeed(); - } - - /** - * Called when the entity is attacked. - */ - public boolean attackEntityFrom(DamageSource par1DamageSource, float par2) - { - if (this.isEntityInvulnerable()) - { - return false; - } else - { - Entity entity = par1DamageSource.getEntity(); - this.aiSit.setSitting(false); - - if (entity != null && !(entity instanceof EntityPlayer) && !(entity instanceof EntityArrow)) - { - par2 = (par2 + 1.0F) / 2.0F; - } - - return super.attackEntityFrom(par1DamageSource, par2); - } - } - - public boolean attackEntityAsMob(Entity par1Entity) - { - int i = this.isTamed() ? 4 : 2; - return par1Entity.attackEntityFrom(DamageSource.causeMobDamage(this), (float) i); - } - - public void setTamed(boolean par1) - { - super.setTamed(par1); - - if (par1) - { - this.getEntityAttribute(SharedMonsterAttributes.maxHealth).setBaseValue(this.maxTamedHealth); - } else - { - this.getEntityAttribute(SharedMonsterAttributes.maxHealth).setBaseValue(this.maxUntamedHealth); - } - } - - /** - * Called when a player interacts with a mob. e.g. gets milk from a cow, gets into the saddle on a pig. - */ - @Override - public boolean interact(EntityPlayer par1EntityPlayer) - { - ItemStack itemstack = par1EntityPlayer.inventory.getCurrentItem(); - - if (this.isTamed()) - { - if (itemstack != null) - { - if (itemstack.getItem() instanceof ItemFood) - { - ItemFood itemfood = (ItemFood) itemstack.getItem(); - - if (itemfood.isWolfsFavoriteMeat() && this.dataWatcher.getWatchableObjectFloat(18) < this.maxTamedHealth) - { - if (!par1EntityPlayer.capabilities.isCreativeMode) - { - --itemstack.stackSize; - } - - this.heal((float) itemfood.func_150905_g(itemstack)); - - if (itemstack.stackSize <= 0) - { - par1EntityPlayer.inventory.setInventorySlotContents(par1EntityPlayer.inventory.currentItem, (ItemStack) null); - } - - return true; - } - } - } - - if (par1EntityPlayer.getCommandSenderName().equalsIgnoreCase(this.getOwnerName()) && !this.isBreedingItem(itemstack)) - { - if (!this.worldObj.isRemote) - { - this.aiSit.setSitting(!this.isSitting()); - this.isJumping = false; - this.setPathToEntity((PathEntity) null); - this.setTarget((Entity) null); - this.setAttackTarget((EntityLivingBase) null); - } - - this.sendSittingMessageToPlayer(par1EntityPlayer, !this.isSitting()); - } - } else if (itemstack != null && itemstack.getItem().equals(ModItems.weakBloodOrb) && !this.isAngry()) - { - if (!par1EntityPlayer.capabilities.isCreativeMode) - { - --itemstack.stackSize; - } - - if (itemstack.stackSize <= 0) - { - par1EntityPlayer.inventory.setInventorySlotContents(par1EntityPlayer.inventory.currentItem, (ItemStack) null); - } - - if (!this.worldObj.isRemote) - { - if (this.rand.nextInt(1) == 0) - { - this.setTamed(true); - this.setPathToEntity((PathEntity) null); - this.setAttackTarget((EntityLivingBase) null); - this.aiSit.setSitting(true); - this.setHealth(this.maxTamedHealth); - this.setOwner(par1EntityPlayer.getCommandSenderName()); - this.playTameEffect(true); - this.worldObj.setEntityState(this, (byte) 7); - } else - { - this.playTameEffect(false); - this.worldObj.setEntityState(this, (byte) 6); - } - } - - return true; - } - - return super.interact(par1EntityPlayer); - } - - - /** - * Checks if the parameter is an item which this animal can be fed to breed it (wheat, carrots or seeds depending on - * the animal type) - */ - public boolean isBreedingItem(ItemStack par1ItemStack) - { - return false; - //return par1ItemStack == null ? false : (!(Item.itemsList[par1ItemStack.itemID] instanceof ItemFood) ? false : ((ItemFood)Item.itemsList[par1ItemStack.itemID]).isWolfsFavoriteMeat()); - } - - /** - * Determines whether this wolf is angry or not. - */ - public boolean isAngry() - { - return (this.dataWatcher.getWatchableObjectByte(16) & 2) != 0; - } - - /** - * Sets whether this wolf is angry or not. - */ - public void setAngry(boolean par1) - { - byte b0 = this.dataWatcher.getWatchableObjectByte(16); - - if (par1) - { - this.dataWatcher.updateObject(16, Byte.valueOf((byte) (b0 | 2))); - } else - { - this.dataWatcher.updateObject(16, Byte.valueOf((byte) (b0 & -3))); - } - } - - /** - * Return this wolf's collar color. - */ - public int getCollarColor() - { - return this.dataWatcher.getWatchableObjectByte(20) & 15; - } - - /** - * Set this wolf's collar color. - */ - public void setCollarColor(int par1) - { - this.dataWatcher.updateObject(20, Byte.valueOf((byte) (par1 & 15))); - } - - /** - * This function is used when two same-species animals in 'love mode' breed to generate the new baby animal. - */ - public EntityWolf spawnBabyAnimal(EntityAgeable par1EntityAgeable) - { - return null; - } - - public void func_70918_i(boolean par1) - { - if (par1) - { - this.dataWatcher.updateObject(19, Byte.valueOf((byte) 1)); - } else - { - this.dataWatcher.updateObject(19, Byte.valueOf((byte) 0)); - } - } - - /** - * Returns true if the mob is currently able to mate with the specified mob. - */ - public boolean canMateWith(EntityAnimal par1EntityAnimal) - { - return false; - } - - public boolean func_70922_bv() - { - return this.dataWatcher.getWatchableObjectByte(19) == 1; - } - - /** - * Determines if an entity can be despawned, used on idle far away entities - */ - protected boolean canDespawn() - { - //return !this.isTamed() && this.ticksExisted > 2400; - return false; - } - - public boolean func_142018_a(EntityLivingBase par1EntityLivingBase, EntityLivingBase par2EntityLivingBase) - { - if (!(par1EntityLivingBase instanceof EntityCreeper) && !(par1EntityLivingBase instanceof EntityGhast)) - { - if (par1EntityLivingBase instanceof EntityWingedFireDemon) - { - EntityWingedFireDemon entitywolf = (EntityWingedFireDemon) par1EntityLivingBase; - - if (entitywolf.isTamed() && entitywolf.getOwner() == par2EntityLivingBase) - { - return false; - } - } - - return par1EntityLivingBase instanceof EntityPlayer && par2EntityLivingBase instanceof EntityPlayer && !((EntityPlayer) par2EntityLivingBase).canAttackPlayer((EntityPlayer) par1EntityLivingBase) ? false : !(par1EntityLivingBase instanceof EntityHorse) || !((EntityHorse) par1EntityLivingBase).isTame(); - } else - { - return false; - } - } - - public EntityAgeable createChild(EntityAgeable par1EntityAgeable) - { - return this.spawnBabyAnimal(par1EntityAgeable); - } - - /** - * Attack the specified entity using a ranged attack. - */ - public void attackEntityWithRangedAttack(EntityLivingBase par1EntityLivingBase, float par2) - { - double xCoord; - double yCoord; - double zCoord; - this.worldObj.playAuxSFXAtEntity((EntityPlayer) null, 1009, (int) this.posX, (int) this.posY, (int) this.posZ, 0); - FireProjectile hol = new FireProjectile(worldObj, this, par1EntityLivingBase, 1.8f, 0f, 20, 600); - this.worldObj.spawnEntityInWorld(hol); - } - - /** - * sets this entity's combat AI. - */ - public void setCombatTask() - { - this.tasks.removeTask(this.aiAttackOnCollide); - this.tasks.removeTask(this.aiArrowAttack); - ItemStack itemstack = this.getHeldItem(); - this.tasks.addTask(4, this.aiArrowAttack); - } -} diff --git a/1.7.2/main/java/WayofTime/alchemicalWizardry/common/entity/projectile/EnergyBlastProjectile.java b/1.7.2/main/java/WayofTime/alchemicalWizardry/common/entity/projectile/EnergyBlastProjectile.java deleted file mode 100644 index e41d6468..00000000 --- a/1.7.2/main/java/WayofTime/alchemicalWizardry/common/entity/projectile/EnergyBlastProjectile.java +++ /dev/null @@ -1,526 +0,0 @@ -package WayofTime.alchemicalWizardry.common.entity.projectile; - -import java.util.Iterator; -import java.util.List; - -import net.minecraft.block.Block; -import net.minecraft.entity.Entity; -import net.minecraft.entity.EntityLivingBase; -import net.minecraft.entity.IProjectile; -import net.minecraft.entity.player.EntityPlayer; -import net.minecraft.nbt.NBTTagCompound; -import net.minecraft.potion.Potion; -import net.minecraft.potion.PotionEffect; -import net.minecraft.util.AxisAlignedBB; -import net.minecraft.util.DamageSource; -import net.minecraft.util.MathHelper; -import net.minecraft.util.MovingObjectPosition; -import net.minecraft.util.Vec3; -import net.minecraft.world.World; -import cpw.mods.fml.common.registry.IThrowableEntity; -import cpw.mods.fml.relauncher.Side; -import cpw.mods.fml.relauncher.SideOnly; - -//Shamelessly ripped off from x3n0ph0b3 -public class EnergyBlastProjectile extends Entity implements IProjectile, IThrowableEntity -{ - protected int xTile = -1; - protected int yTile = -1; - protected int zTile = -1; - protected int inTile = 0; - protected int inData = 0; - protected boolean inGround = false; - /** - * The owner of this arrow. - */ - public EntityLivingBase shootingEntity; - protected int ticksInAir = 0; - protected int maxTicksInAir = 600; - private int ricochetCounter = 0; - private boolean scheduledForDeath = false; - protected int projectileDamage; - - public EnergyBlastProjectile(World par1World) - { - super(par1World); - this.setSize(0.5F, 0.5F); - this.maxTicksInAir = 600; - } - - public EnergyBlastProjectile(World par1World, double par2, double par4, double par6) - { - super(par1World); - this.setSize(0.5F, 0.5F); - this.setPosition(par2, par4, par6); - yOffset = 0.0F; - this.maxTicksInAir = 600; - } - - public EnergyBlastProjectile(World par1World, EntityLivingBase par2EntityPlayer, int damage) - { - super(par1World); - shootingEntity = par2EntityPlayer; - float par3 = 0.8F; - this.setSize(0.5F, 0.5F); - this.setLocationAndAngles(par2EntityPlayer.posX, par2EntityPlayer.posY + par2EntityPlayer.getEyeHeight(), par2EntityPlayer.posZ, par2EntityPlayer.rotationYaw, par2EntityPlayer.rotationPitch); - posX -= MathHelper.cos(rotationYaw / 180.0F * (float) Math.PI) * 0.16F; - posY -= 0.2D; - posZ -= MathHelper.sin(rotationYaw / 180.0F * (float) Math.PI) * 0.16F; - this.setPosition(posX, posY, posZ); - yOffset = 0.0F; - motionX = -MathHelper.sin(rotationYaw / 180.0F * (float) Math.PI) * MathHelper.cos(rotationPitch / 180.0F * (float) Math.PI); - motionZ = MathHelper.cos(rotationYaw / 180.0F * (float) Math.PI) * MathHelper.cos(rotationPitch / 180.0F * (float) Math.PI); - motionY = -MathHelper.sin(rotationPitch / 180.0F * (float) Math.PI); - this.setThrowableHeading(motionX, motionY, motionZ, par3 * 1.5F, 1.0F); - this.projectileDamage = damage; - this.maxTicksInAir = 600; - } - - public EnergyBlastProjectile(World par1World, EntityLivingBase par2EntityPlayer, int damage, int maxTicksInAir, double posX, double posY, double posZ, float rotationYaw, float rotationPitch) - { - super(par1World); - shootingEntity = par2EntityPlayer; - float par3 = 0.8F; - this.setSize(0.5F, 0.5F); - this.setLocationAndAngles(posX, posY, posZ, rotationYaw, rotationPitch); - posX -= MathHelper.cos(rotationYaw / 180.0F * (float) Math.PI) * 0.16F; - posY -= 0.2D; - posZ -= MathHelper.sin(rotationYaw / 180.0F * (float) Math.PI) * 0.16F; - this.setPosition(posX, posY, posZ); - yOffset = 0.0F; - motionX = -MathHelper.sin(rotationYaw / 180.0F * (float) Math.PI) * MathHelper.cos(rotationPitch / 180.0F * (float) Math.PI); - motionZ = MathHelper.cos(rotationYaw / 180.0F * (float) Math.PI) * MathHelper.cos(rotationPitch / 180.0F * (float) Math.PI); - motionY = -MathHelper.sin(rotationPitch / 180.0F * (float) Math.PI); - this.setThrowableHeading(motionX, motionY, motionZ, par3 * 1.5F, 1.0F); - this.projectileDamage = damage; - this.maxTicksInAir = maxTicksInAir; - } - - public EnergyBlastProjectile(World par1World, EntityLivingBase par2EntityLivingBase, EntityLivingBase par3EntityLivingBase, float par4, float par5, int damage, int maxTicksInAir) - { - super(par1World); - this.renderDistanceWeight = 10.0D; - this.shootingEntity = par2EntityLivingBase; - this.posY = par2EntityLivingBase.posY + (double) par2EntityLivingBase.getEyeHeight() - 0.10000000149011612D; - double d0 = par3EntityLivingBase.posX - par2EntityLivingBase.posX; - double d1 = par3EntityLivingBase.boundingBox.minY + (double) (par3EntityLivingBase.height / 1.5F) - this.posY; - double d2 = par3EntityLivingBase.posZ - par2EntityLivingBase.posZ; - double d3 = (double) MathHelper.sqrt_double(d0 * d0 + d2 * d2); - - if (d3 >= 1.0E-7D) - { - float f2 = (float) (Math.atan2(d2, d0) * 180.0D / Math.PI) - 90.0F; - float f3 = (float) (-(Math.atan2(d1, d3) * 180.0D / Math.PI)); - double d4 = d0 / d3; - double d5 = d2 / d3; - this.setLocationAndAngles(par2EntityLivingBase.posX + d4, this.posY, par2EntityLivingBase.posZ + d5, f2, f3); - this.yOffset = 0.0F; - float f4 = (float) d3 * 0.2F; - this.setThrowableHeading(d0, d1, d2, par4, par5); - } - - this.projectileDamage = damage; - this.maxTicksInAir = maxTicksInAir; - } - - @Override - protected void entityInit() - { - dataWatcher.addObject(16, Byte.valueOf((byte) 0)); - } - - /** - * Similar to setArrowHeading, it's point the throwable entity to a x, y, z - * direction. - */ - @Override - public void setThrowableHeading(double var1, double var3, double var5, float var7, float var8) - { - float var9 = MathHelper.sqrt_double(var1 * var1 + var3 * var3 + var5 * var5); - var1 /= var9; - var3 /= var9; - var5 /= var9; - var1 += rand.nextGaussian() * 0.007499999832361937D * var8; - var3 += rand.nextGaussian() * 0.007499999832361937D * var8; - var5 += rand.nextGaussian() * 0.007499999832361937D * var8; - var1 *= var7; - var3 *= var7; - var5 *= var7; - motionX = var1; - motionY = var3; - motionZ = var5; - float var10 = MathHelper.sqrt_double(var1 * var1 + var5 * var5); - prevRotationYaw = rotationYaw = (float) (Math.atan2(var1, var5) * 180.0D / Math.PI); - prevRotationPitch = rotationPitch = (float) (Math.atan2(var3, var10) * 180.0D / Math.PI); - } - - @Override - @SideOnly(Side.CLIENT) - /** - * Sets the position and rotation. Only difference from the other one is no bounding on the rotation. Args: posX, - * posY, posZ, yaw, pitch - */ - public void setPositionAndRotation2(double par1, double par3, double par5, float par7, float par8, int par9) - { - this.setPosition(par1, par3, par5); - this.setRotation(par7, par8); - } - - @Override - @SideOnly(Side.CLIENT) - /** - * Sets the velocity to the args. Args: x, y, z - */ - public void setVelocity(double par1, double par3, double par5) - { - motionX = par1; - motionY = par3; - motionZ = par5; - - if (prevRotationPitch == 0.0F && prevRotationYaw == 0.0F) - { - float var7 = MathHelper.sqrt_double(par1 * par1 + par5 * par5); - prevRotationYaw = rotationYaw = (float) (Math.atan2(par1, par5) * 180.0D / Math.PI); - prevRotationPitch = rotationPitch = (float) (Math.atan2(par3, var7) * 180.0D / Math.PI); - prevRotationPitch = rotationPitch; - prevRotationYaw = rotationYaw; - this.setLocationAndAngles(posX, posY, posZ, rotationYaw, rotationPitch); - } - } - - /** - * Called to update the entity's position/logic. - */ - @Override - public void onUpdate() - { - super.onUpdate(); - - if (ticksInAir > maxTicksInAir) - { - this.setDead(); - } - - if (shootingEntity == null) - { - List players = worldObj.getEntitiesWithinAABB(EntityPlayer.class, AxisAlignedBB.getBoundingBox(posX - 1, posY - 1, posZ - 1, posX + 1, posY + 1, posZ + 1)); - Iterator i = players.iterator(); - double closestDistance = Double.MAX_VALUE; - EntityPlayer closestPlayer = null; - - while (i.hasNext()) - { - EntityPlayer e = (EntityPlayer) i.next(); - double distance = e.getDistanceToEntity(this); - - if (distance < closestDistance) - { - closestPlayer = e; - } - } - - if (closestPlayer != null) - { - shootingEntity = closestPlayer; - } - } - - if (prevRotationPitch == 0.0F && prevRotationYaw == 0.0F) - { - float var1 = MathHelper.sqrt_double(motionX * motionX + motionZ * motionZ); - prevRotationYaw = rotationYaw = (float) (Math.atan2(motionX, motionZ) * 180.0D / Math.PI); - prevRotationPitch = rotationPitch = (float) (Math.atan2(motionY, var1) * 180.0D / Math.PI); - } - - Block var16 = worldObj.getBlock(xTile, yTile, zTile); - - if (var16 != null) - { - var16.setBlockBoundsBasedOnState(worldObj, xTile, yTile, zTile); - AxisAlignedBB var2 = var16.getCollisionBoundingBoxFromPool(worldObj, xTile, yTile, zTile); - - if (var2 != null && var2.isVecInside(worldObj.getWorldVec3Pool().getVecFromPool(posX, posY, posZ))) - { - inGround = true; - } - } - - if (inGround) - { - Block var18 = worldObj.getBlock(xTile, yTile, zTile); - int var19 = worldObj.getBlockMetadata(xTile, yTile, zTile); - - if (var18.equals(Block.getBlockById(inTile)) && var19 == inData) - { - // this.groundImpact(); - // this.setDead(); - } - } else - { - ++ticksInAir; - - if (ticksInAir > 1 && ticksInAir < 3) - { - //worldObj.spawnParticle("flame", posX + smallGauss(0.1D), posY + smallGauss(0.1D), posZ + smallGauss(0.1D), 0D, 0D, 0D); - for (int particles = 0; particles < 3; particles++) - { - this.doFiringParticles(); - } - } - - Vec3 var17 = worldObj.getWorldVec3Pool().getVecFromPool(posX, posY, posZ); - Vec3 var3 = worldObj.getWorldVec3Pool().getVecFromPool(posX + motionX, posY + motionY, posZ + motionZ); - MovingObjectPosition var4 = worldObj.func_147447_a(var17, var3, true, false, false); - var17 = worldObj.getWorldVec3Pool().getVecFromPool(posX, posY, posZ); - var3 = worldObj.getWorldVec3Pool().getVecFromPool(posX + motionX, posY + motionY, posZ + motionZ); - - if (var4 != null) - { - var3 = worldObj.getWorldVec3Pool().getVecFromPool(var4.hitVec.xCoord, var4.hitVec.yCoord, var4.hitVec.zCoord); - } - - Entity var5 = null; - List var6 = worldObj.getEntitiesWithinAABBExcludingEntity(this, boundingBox.addCoord(motionX, motionY, motionZ).expand(1.0D, 1.0D, 1.0D)); - double var7 = 0.0D; - Iterator var9 = var6.iterator(); - float var11; - - while (var9.hasNext()) - { - Entity var10 = (Entity) var9.next(); - - if (var10.canBeCollidedWith() && (var10 != shootingEntity || ticksInAir >= 5)) - { - var11 = 0.3F; - AxisAlignedBB var12 = var10.boundingBox.expand(var11, var11, var11); - MovingObjectPosition var13 = var12.calculateIntercept(var17, var3); - - if (var13 != null) - { - double var14 = var17.distanceTo(var13.hitVec); - - if (var14 < var7 || var7 == 0.0D) - { - var5 = var10; - var7 = var14; - } - } - } - } - - if (var5 != null) - { - var4 = new MovingObjectPosition(var5); - } - - if (var4 != null) - { - this.onImpact(var4); - - if (scheduledForDeath) - { - this.setDead(); - } - } - - posX += motionX; - posY += motionY; - posZ += motionZ; - MathHelper.sqrt_double(motionX * motionX + motionZ * motionZ); - this.setPosition(posX, posY, posZ); - //this.doBlockCollisions(); - } - } - - public void doFiringParticles() - { - worldObj.spawnParticle("mobSpellAmbient", posX + smallGauss(0.1D), posY + smallGauss(0.1D), posZ + smallGauss(0.1D), 0.5D, 0.5D, 0.5D); - worldObj.spawnParticle("flame", posX, posY, posZ, gaussian(motionX), gaussian(motionY), gaussian(motionZ)); - } - - /** - * (abstract) Protected helper method to write subclass entity data to NBT. - */ - @Override - public void writeEntityToNBT(NBTTagCompound par1NBTTagCompound) - { - par1NBTTagCompound.setShort("xTile", (short) xTile); - par1NBTTagCompound.setShort("yTile", (short) yTile); - par1NBTTagCompound.setShort("zTile", (short) zTile); - par1NBTTagCompound.setByte("inTile", (byte) inTile); - par1NBTTagCompound.setByte("inData", (byte) inData); - par1NBTTagCompound.setByte("inGround", (byte) (inGround ? 1 : 0)); - par1NBTTagCompound.setInteger("ticksInAir", ticksInAir); - par1NBTTagCompound.setInteger("maxTicksInAir", maxTicksInAir); - par1NBTTagCompound.setInteger("projectileDamage", this.projectileDamage); - } - - /** - * (abstract) Protected helper method to read subclass entity data from NBT. - */ - @Override - public void readEntityFromNBT(NBTTagCompound par1NBTTagCompound) - { - xTile = par1NBTTagCompound.getShort("xTile"); - yTile = par1NBTTagCompound.getShort("yTile"); - zTile = par1NBTTagCompound.getShort("zTile"); - inTile = par1NBTTagCompound.getByte("inTile") & 255; - inData = par1NBTTagCompound.getByte("inData") & 255; - inGround = par1NBTTagCompound.getByte("inGround") == 1; - ticksInAir = par1NBTTagCompound.getInteger("ticksInAir"); - maxTicksInAir = par1NBTTagCompound.getInteger("maxTicksInAir"); - projectileDamage = par1NBTTagCompound.getInteger("projectileDamage"); - } - - /** - * returns if this entity triggers Block.onEntityWalking on the blocks they - * walk on. used for spiders and wolves to prevent them from trampling crops - */ - @Override - protected boolean canTriggerWalking() - { - return false; - } - - @Override - @SideOnly(Side.CLIENT) - public float getShadowSize() - { - return 0.0F; - } - - /** - * Sets the amount of knockback the arrow applies when it hits a mob. - */ - public void setKnockbackStrength(int par1) - { - } - - /** - * If returns false, the item will not inflict any damage against entities. - */ - @Override - public boolean canAttackWithItem() - { - return false; - } - - /** - * Whether the arrow has a stream of critical hit particles flying behind - * it. - */ - public void setIsCritical(boolean par1) - { - byte var2 = dataWatcher.getWatchableObjectByte(16); - - if (par1) - { - dataWatcher.updateObject(16, Byte.valueOf((byte) (var2 | 1))); - } else - { - dataWatcher.updateObject(16, Byte.valueOf((byte) (var2 & -2))); - } - } - - /** - * Whether the arrow has a stream of critical hit particles flying behind - * it. - */ - public boolean getIsCritical() - { - byte var1 = dataWatcher.getWatchableObjectByte(16); - return (var1 & 1) != 0; - } - - public void onImpact(MovingObjectPosition mop) - { - if (mop.typeOfHit == MovingObjectPosition.MovingObjectType.ENTITY && mop.entityHit != null) - { - if (mop.entityHit == shootingEntity) - { - return; - } - - this.onImpact(mop.entityHit); - } else if (mop.typeOfHit == MovingObjectPosition.MovingObjectType.BLOCK) - { - worldObj.createExplosion(shootingEntity, this.posX, this.posY, this.posZ, (float) (0.1), true); - this.setDead(); - } - } - - public void onImpact(Entity mop) - { - if (mop == shootingEntity && ticksInAir > 3) - { - shootingEntity.attackEntityFrom(DamageSource.causeMobDamage(shootingEntity), 1); - this.setDead(); - } else - { - //doDamage(8 + d6(), mop); - if (mop instanceof EntityLivingBase) - { - ((EntityLivingBase) mop).addPotionEffect(new PotionEffect(Potion.weakness.id, 60, 2)); - } - - doDamage(projectileDamage, mop); - worldObj.createExplosion(shootingEntity, this.posX, this.posY, this.posZ, (float) (0.1), true); - } - - spawnHitParticles("magicCrit", 8); - this.setDead(); - } - - private int d6() - { - return rand.nextInt(6) + 1; - } - - protected void spawnHitParticles(String string, int i) - { - for (int particles = 0; particles < i; particles++) - { - worldObj.spawnParticle(string, posX, posY - (string == "portal" ? 1 : 0), posZ, gaussian(motionX), gaussian(motionY), gaussian(motionZ)); - } - } - - protected void doDamage(int i, Entity mop) - { - mop.attackEntityFrom(this.getDamageSource(), i); - } - - public DamageSource getDamageSource() - { - return DamageSource.causeMobDamage(shootingEntity); - } - - public double smallGauss(double d) - { - return (worldObj.rand.nextFloat() - 0.5D) * d; - } - - public double gaussian(double d) - { - return d + d * ((rand.nextFloat() - 0.5D) / 4); - } - - private int getRicochetMax() - { - return 0; - } - - @Override - public Entity getThrower() - { - // TODO Auto-generated method stub - return this.shootingEntity; - } - - @Override - public void setThrower(Entity entity) - { - if(entity instanceof EntityLivingBase) - this.shootingEntity = (EntityLivingBase)entity; - - } -} diff --git a/1.7.2/main/java/WayofTime/alchemicalWizardry/common/entity/projectile/EntityBloodLightProjectile.java b/1.7.2/main/java/WayofTime/alchemicalWizardry/common/entity/projectile/EntityBloodLightProjectile.java deleted file mode 100644 index 4a1729a0..00000000 --- a/1.7.2/main/java/WayofTime/alchemicalWizardry/common/entity/projectile/EntityBloodLightProjectile.java +++ /dev/null @@ -1,131 +0,0 @@ -package WayofTime.alchemicalWizardry.common.entity.projectile; - -import net.minecraft.entity.Entity; -import net.minecraft.entity.EntityLivingBase; -import net.minecraft.init.Blocks; -import net.minecraft.potion.Potion; -import net.minecraft.util.DamageSource; -import net.minecraft.util.MovingObjectPosition; -import net.minecraft.world.World; -import WayofTime.alchemicalWizardry.ModBlocks; - - -public class EntityBloodLightProjectile extends EnergyBlastProjectile -{ - public EntityBloodLightProjectile(World par1World) - { - super(par1World); - } - - public EntityBloodLightProjectile(World par1World, double par2, double par4, double par6) - { - super(par1World, par2, par4, par6); - } - - public EntityBloodLightProjectile(World par1World, EntityLivingBase par2EntityPlayer, int damage) - { - super(par1World, par2EntityPlayer, damage); - } - - public EntityBloodLightProjectile(World par1World, EntityLivingBase par2EntityPlayer, int damage, int maxTicksInAir, double posX, double posY, double posZ, float rotationYaw, float rotationPitch) - { - super(par1World, par2EntityPlayer, damage, maxTicksInAir, posX, posY, posZ, rotationYaw, rotationPitch); - } - - public EntityBloodLightProjectile(World par1World, EntityLivingBase par2EntityLivingBase, EntityLivingBase par3EntityLivingBase, float par4, float par5, int damage, int maxTicksInAir) - { - super(par1World, par2EntityLivingBase, par3EntityLivingBase, par4, par5, damage, maxTicksInAir); - } - - @Override - public DamageSource getDamageSource() - { - return DamageSource.causeMobDamage(shootingEntity); - } - - @Override - public void onImpact(MovingObjectPosition mop) - { - if (mop.typeOfHit == MovingObjectPosition.MovingObjectType.ENTITY && mop.entityHit != null) - { - if (mop.entityHit == shootingEntity) - { - return; - } - - this.onImpact(mop.entityHit); - } else if (mop.typeOfHit == MovingObjectPosition.MovingObjectType.BLOCK) - { - int sideHit = mop.sideHit; - int blockX = mop.blockX; - int blockY = mop.blockY; - int blockZ = mop.blockZ; - - if (sideHit == 0 && this.worldObj.isAirBlock(blockX, blockY - 1, blockZ)) - { - this.worldObj.setBlock(blockX, blockY - 1, blockZ, ModBlocks.blockBloodLight); - } - - if (sideHit == 1 && this.worldObj.isAirBlock(blockX, blockY + 1, blockZ)) - { - this.worldObj.setBlock(blockX, blockY + 1, blockZ, ModBlocks.blockBloodLight); - } - - if (sideHit == 2 && this.worldObj.isAirBlock(blockX, blockY, blockZ - 1)) - { - this.worldObj.setBlock(blockX, blockY, blockZ - 1, ModBlocks.blockBloodLight); - } - - if (sideHit == 3 && this.worldObj.isAirBlock(blockX, blockY, blockZ + 1)) - { - this.worldObj.setBlock(blockX, blockY, blockZ + 1, ModBlocks.blockBloodLight); - } - - if (sideHit == 4 && this.worldObj.isAirBlock(blockX - 1, blockY, blockZ)) - { - this.worldObj.setBlock(blockX - 1, blockY, blockZ, ModBlocks.blockBloodLight); - } - - if (sideHit == 5 && this.worldObj.isAirBlock(blockX + 1, blockY, blockZ)) - { - this.worldObj.setBlock(blockX + 1, blockY, blockZ, ModBlocks.blockBloodLight); - } - - //worldObj.createExplosion(this, this.posX, this.posY, this.posZ, (float)(0.1), true); - } - - this.setDead(); - } - - @Override - public void onImpact(Entity mop) - { - if (mop == shootingEntity && ticksInAir > 3) - { - shootingEntity.attackEntityFrom(DamageSource.causeMobDamage(shootingEntity), 1); - this.setDead(); - } else - { - //doDamage(8 + d6(), mop); - if (mop instanceof EntityLivingBase) - { - //((EntityLivingBase)mop).addPotionEffect(new PotionEffect(Potion.weakness.id, 60,2)); - - ((EntityLivingBase) mop).setRevengeTarget(shootingEntity); - - doDamage(1, mop); - - } - - //worldObj.createExplosion(this, this.posX, this.posY, this.posZ, (float)(0.1), true); - } - - if (worldObj.isAirBlock((int) this.posX, (int) this.posY, (int) this.posZ)) - { - worldObj.setBlock((int) this.posX, (int) this.posY, (int) this.posZ, Blocks.fire); - } - - spawnHitParticles("magicCrit", 8); - this.setDead(); - } -} diff --git a/1.7.2/main/java/WayofTime/alchemicalWizardry/common/entity/projectile/EntityEnergyBazookaMainProjectile.java b/1.7.2/main/java/WayofTime/alchemicalWizardry/common/entity/projectile/EntityEnergyBazookaMainProjectile.java deleted file mode 100644 index 9c55f452..00000000 --- a/1.7.2/main/java/WayofTime/alchemicalWizardry/common/entity/projectile/EntityEnergyBazookaMainProjectile.java +++ /dev/null @@ -1,100 +0,0 @@ -package WayofTime.alchemicalWizardry.common.entity.projectile; - -import net.minecraft.entity.Entity; -import net.minecraft.entity.EntityLivingBase; -import net.minecraft.util.DamageSource; -import net.minecraft.util.MovingObjectPosition; -import net.minecraft.world.World; - -public class EntityEnergyBazookaMainProjectile extends EnergyBlastProjectile -{ - public EntityEnergyBazookaMainProjectile(World par1World) - { - super(par1World); - } - - public EntityEnergyBazookaMainProjectile(World par1World, double par2, double par4, double par6) - { - super(par1World, par2, par4, par6); - } - - public EntityEnergyBazookaMainProjectile(World par1World, EntityLivingBase par2EntityPlayer, int damage) - { - super(par1World, par2EntityPlayer, damage); - } - - public EntityEnergyBazookaMainProjectile(World par1World, EntityLivingBase par2EntityPlayer, int damage, int maxTicksInAir, double posX, double posY, double posZ, float rotationYaw, float rotationPitch) - { - super(par1World, par2EntityPlayer, damage, maxTicksInAir, posX, posY, posZ, rotationYaw, rotationPitch); - } - - public EntityEnergyBazookaMainProjectile(World par1World, EntityLivingBase par2EntityLivingBase, EntityLivingBase par3EntityLivingBase, float par4, float par5, int damage, int maxTicksInAir) - { - super(par1World, par2EntityLivingBase, par3EntityLivingBase, par4, par5, damage, maxTicksInAir); - } - - @Override - public DamageSource getDamageSource() - { - return DamageSource.causeMobDamage(shootingEntity); - } - - @Override - public void onImpact(MovingObjectPosition mop) - { - if (mop.typeOfHit == MovingObjectPosition.MovingObjectType.ENTITY && mop.entityHit != null) - { - if (mop.entityHit == shootingEntity) - { - return; - } - - this.onImpact(mop.entityHit); - } else if (mop.typeOfHit == MovingObjectPosition.MovingObjectType.BLOCK) - { - worldObj.createExplosion(this.shootingEntity, this.posX, this.posY, this.posZ, (float) (5.0f), false); - this.spawnSecondaryProjectiles(); - } - - this.setDead(); - } - - @Override - public void onImpact(Entity mop) - { - if (mop == shootingEntity && ticksInAir > 3) - { - shootingEntity.attackEntityFrom(DamageSource.causeMobDamage(shootingEntity), 1); - this.setDead(); - } else - { - //doDamage(8 + d6(), mop); - if (mop instanceof EntityLivingBase) - { - spawnSecondaryProjectiles(); - } - - worldObj.createExplosion(this.shootingEntity, this.posX, this.posY, this.posZ, (float) (5.0f), false); - } - - spawnHitParticles("magicCrit", 8); - this.setDead(); - } - - public void spawnSecondaryProjectiles() - { - for (int i = 0; i < 20; i++) - { - EntityEnergyBazookaSecondaryProjectile secProj = new EntityEnergyBazookaSecondaryProjectile(worldObj, this.posX, this.posY, this.posZ, 15); - secProj.shootingEntity = this.shootingEntity; - float xVel = rand.nextFloat() - rand.nextFloat(); - float yVel = rand.nextFloat() - rand.nextFloat(); - float zVel = rand.nextFloat() - rand.nextFloat(); - float wantedVel = 0.5f; - secProj.motionX = xVel * wantedVel; - secProj.motionY = yVel * wantedVel; - secProj.motionZ = zVel * wantedVel; - worldObj.spawnEntityInWorld(secProj); - } - } -} diff --git a/1.7.2/main/java/WayofTime/alchemicalWizardry/common/entity/projectile/EntityEnergyBazookaSecondaryProjectile.java b/1.7.2/main/java/WayofTime/alchemicalWizardry/common/entity/projectile/EntityEnergyBazookaSecondaryProjectile.java deleted file mode 100644 index 112e766e..00000000 --- a/1.7.2/main/java/WayofTime/alchemicalWizardry/common/entity/projectile/EntityEnergyBazookaSecondaryProjectile.java +++ /dev/null @@ -1,508 +0,0 @@ -package WayofTime.alchemicalWizardry.common.entity.projectile; - -import cpw.mods.fml.relauncher.Side; -import cpw.mods.fml.relauncher.SideOnly; -import net.minecraft.block.Block; -import net.minecraft.entity.Entity; -import net.minecraft.entity.EntityLivingBase; -import net.minecraft.entity.IProjectile; -import net.minecraft.entity.player.EntityPlayer; -import net.minecraft.nbt.NBTTagCompound; -import net.minecraft.util.*; -import net.minecraft.world.World; - -import java.util.Iterator; -import java.util.List; - -public class EntityEnergyBazookaSecondaryProjectile extends EnergyBlastProjectile implements IProjectile -{ - private int xTile = -1; - private int yTile = -1; - private int zTile = -1; - private int inTile = 0; - private int inData = 0; - private boolean inGround = false; - /** - * The owner of this arrow. - */ - public EntityLivingBase shootingEntity; - private int ticksInAir = 0; - private int ricochetCounter = 0; - private boolean scheduledForDeath = false; - public int damage; - - public EntityEnergyBazookaSecondaryProjectile(World par1World) - { - super(par1World); - this.setSize(0.5F, 0.5F); - damage = 5; - } - - public EntityEnergyBazookaSecondaryProjectile(World par1World, double par2, double par4, double par6, int damage) - { - super(par1World); - this.setSize(0.5F, 0.5F); - this.setPosition(par2, par4, par6); - yOffset = 0.0F; - this.damage = damage; - } - - public EntityEnergyBazookaSecondaryProjectile(World par1World, EntityPlayer par2EntityPlayer, int damage) - { - super(par1World); - shootingEntity = par2EntityPlayer; - float par3 = 0.8F; - this.setSize(0.1F, 0.1F); - this.setLocationAndAngles(par2EntityPlayer.posX, par2EntityPlayer.posY + par2EntityPlayer.getEyeHeight(), par2EntityPlayer.posZ, par2EntityPlayer.rotationYaw, par2EntityPlayer.rotationPitch); - posX -= MathHelper.cos(rotationYaw / 180.0F * (float) Math.PI) * 0.16F; - posY -= 0.2D; - posZ -= MathHelper.sin(rotationYaw / 180.0F * (float) Math.PI) * 0.16F; - this.setPosition(posX, posY, posZ); - yOffset = 0.0F; - motionX = -MathHelper.sin(rotationYaw / 180.0F * (float) Math.PI) * MathHelper.cos(rotationPitch / 180.0F * (float) Math.PI); - motionZ = MathHelper.cos(rotationYaw / 180.0F * (float) Math.PI) * MathHelper.cos(rotationPitch / 180.0F * (float) Math.PI); - motionY = -MathHelper.sin(rotationPitch / 180.0F * (float) Math.PI); - this.setThrowableHeading(motionX, motionY, motionZ, par3 * 1.5F, 1.0F); - this.damage = damage; - } - - @Override - protected void entityInit() - { - dataWatcher.addObject(16, Byte.valueOf((byte) 0)); - } - - /** - * Similar to setArrowHeading, it's point the throwable entity to a x, y, z - * direction. - */ - @Override - public void setThrowableHeading(double var1, double var3, double var5, float var7, float var8) - { - float var9 = MathHelper.sqrt_double(var1 * var1 + var3 * var3 + var5 * var5); - var1 /= var9; - var3 /= var9; - var5 /= var9; - var1 += rand.nextGaussian() * 0.007499999832361937D * var8; - var3 += rand.nextGaussian() * 0.007499999832361937D * var8; - var5 += rand.nextGaussian() * 0.007499999832361937D * var8; - var1 *= var7; - var3 *= var7; - var5 *= var7; - motionX = var1; - motionY = var3; - motionZ = var5; - float var10 = MathHelper.sqrt_double(var1 * var1 + var5 * var5); - prevRotationYaw = rotationYaw = (float) (Math.atan2(var1, var5) * 180.0D / Math.PI); - prevRotationPitch = rotationPitch = (float) (Math.atan2(var3, var10) * 180.0D / Math.PI); - } - - @Override - @SideOnly(Side.CLIENT) - /** - * Sets the position and rotation. Only difference from the other one is no bounding on the rotation. Args: posX, - * posY, posZ, yaw, pitch - */ - public void setPositionAndRotation2(double par1, double par3, double par5, float par7, float par8, int par9) - { - this.setPosition(par1, par3, par5); - this.setRotation(par7, par8); - } - - @Override - @SideOnly(Side.CLIENT) - /** - * Sets the velocity to the args. Args: x, y, z - */ - public void setVelocity(double par1, double par3, double par5) - { - motionX = par1; - motionY = par3; - motionZ = par5; - - if (prevRotationPitch == 0.0F && prevRotationYaw == 0.0F) - { - float var7 = MathHelper.sqrt_double(par1 * par1 + par5 * par5); - prevRotationYaw = rotationYaw = (float) (Math.atan2(par1, par5) * 180.0D / Math.PI); - prevRotationPitch = rotationPitch = (float) (Math.atan2(par3, var7) * 180.0D / Math.PI); - prevRotationPitch = rotationPitch; - prevRotationYaw = rotationYaw; - this.setLocationAndAngles(posX, posY, posZ, rotationYaw, rotationPitch); - } - } - - /** - * Called to update the entity's position/logic. - */ - @Override - public void onUpdate() - { - super.onUpdate(); - - if (ticksInAir > maxTicksInAir) - { - this.setDead(); - } - - if (shootingEntity == null) - { - List players = worldObj.getEntitiesWithinAABB(EntityPlayer.class, AxisAlignedBB.getBoundingBox(posX - 1, posY - 1, posZ - 1, posX + 1, posY + 1, posZ + 1)); - Iterator i = players.iterator(); - double closestDistance = Double.MAX_VALUE; - EntityPlayer closestPlayer = null; - - while (i.hasNext()) - { - EntityPlayer e = (EntityPlayer) i.next(); - double distance = e.getDistanceToEntity(this); - - if (distance < closestDistance) - { - closestPlayer = e; - } - } - - if (closestPlayer != null) - { - shootingEntity = closestPlayer; - } - } - - if (prevRotationPitch == 0.0F && prevRotationYaw == 0.0F) - { - float var1 = MathHelper.sqrt_double(motionX * motionX + motionZ * motionZ); - prevRotationYaw = rotationYaw = (float) (Math.atan2(motionX, motionZ) * 180.0D / Math.PI); - prevRotationPitch = rotationPitch = (float) (Math.atan2(motionY, var1) * 180.0D / Math.PI); - } - - Block var16 = worldObj.getBlock(xTile, yTile, zTile); - - if (var16 != null) - { - var16.setBlockBoundsBasedOnState(worldObj, xTile, yTile, zTile); - AxisAlignedBB var2 = var16.getCollisionBoundingBoxFromPool(worldObj, xTile, yTile, zTile); - - if (var2 != null && var2.isVecInside(worldObj.getWorldVec3Pool().getVecFromPool(posX, posY, posZ))) - { - inGround = true; - } - } - - if (inGround) - { - Block var18 = worldObj.getBlock(xTile, yTile, zTile); - int var19 = worldObj.getBlockMetadata(xTile, yTile, zTile); - - if (var18.equals(Block.getBlockById(inTile)) && var19 == inData) - { - // this.groundImpact(); - // this.setDead(); - } - } else - { - ++ticksInAir; - - if (ticksInAir > 1 && ticksInAir < 3) - { - //worldObj.spawnParticle("flame", posX + smallGauss(0.1D), posY + smallGauss(0.1D), posZ + smallGauss(0.1D), 0D, 0D, 0D); - for (int particles = 0; particles < 3; particles++) - { - this.doFiringParticles(); - } - } - - Vec3 var17 = worldObj.getWorldVec3Pool().getVecFromPool(posX, posY, posZ); - Vec3 var3 = worldObj.getWorldVec3Pool().getVecFromPool(posX + motionX, posY + motionY, posZ + motionZ); - MovingObjectPosition var4 = worldObj.func_147447_a(var17, var3, true, false, false); - var17 = worldObj.getWorldVec3Pool().getVecFromPool(posX, posY, posZ); - var3 = worldObj.getWorldVec3Pool().getVecFromPool(posX + motionX, posY + motionY, posZ + motionZ); - - if (var4 != null) - { - var3 = worldObj.getWorldVec3Pool().getVecFromPool(var4.hitVec.xCoord, var4.hitVec.yCoord, var4.hitVec.zCoord); - } - - Entity var5 = null; - List var6 = worldObj.getEntitiesWithinAABBExcludingEntity(this, boundingBox.addCoord(motionX, motionY, motionZ).expand(1.0D, 1.0D, 1.0D)); - double var7 = 0.0D; - Iterator var9 = var6.iterator(); - float var11; - - while (var9.hasNext()) - { - Entity var10 = (Entity) var9.next(); - - if (var10.canBeCollidedWith() && (var10 != shootingEntity || ticksInAir >= 5)) - { - var11 = 0.3F; - AxisAlignedBB var12 = var10.boundingBox.expand(var11, var11, var11); - MovingObjectPosition var13 = var12.calculateIntercept(var17, var3); - - if (var13 != null) - { - double var14 = var17.distanceTo(var13.hitVec); - - if (var14 < var7 || var7 == 0.0D) - { - var5 = var10; - var7 = var14; - } - } - } - } - - if (var5 != null) - { - var4 = new MovingObjectPosition(var5); - } - - if (var4 != null) - { - this.onImpact(var4); - - if (scheduledForDeath) - { - this.setDead(); - } - } - - posX += motionX; - posY += motionY; - posZ += motionZ; - MathHelper.sqrt_double(motionX * motionX + motionZ * motionZ); - this.setPosition(posX, posY, posZ); - //this.doBlockCollisions(); - } - } - - public void doFiringParticles() - { - worldObj.spawnParticle("mobSpellAmbient", posX + smallGauss(0.1D), posY + smallGauss(0.1D), posZ + smallGauss(0.1D), 0.5D, 0.5D, 0.5D); - worldObj.spawnParticle("flame", posX, posY, posZ, gaussian(motionX), gaussian(motionY), gaussian(motionZ)); - } - - /** - * (abstract) Protected helper method to write subclass entity data to NBT. - */ - @Override - public void writeEntityToNBT(NBTTagCompound par1NBTTagCompound) - { - par1NBTTagCompound.setShort("xTile", (short) xTile); - par1NBTTagCompound.setShort("yTile", (short) yTile); - par1NBTTagCompound.setShort("zTile", (short) zTile); - par1NBTTagCompound.setByte("inTile", (byte) inTile); - par1NBTTagCompound.setByte("inData", (byte) inData); - par1NBTTagCompound.setByte("inGround", (byte) (inGround ? 1 : 0)); - } - - /** - * (abstract) Protected helper method to read subclass entity data from NBT. - */ - @Override - public void readEntityFromNBT(NBTTagCompound par1NBTTagCompound) - { - xTile = par1NBTTagCompound.getShort("xTile"); - yTile = par1NBTTagCompound.getShort("yTile"); - zTile = par1NBTTagCompound.getShort("zTile"); - inTile = par1NBTTagCompound.getByte("inTile") & 255; - inData = par1NBTTagCompound.getByte("inData") & 255; - inGround = par1NBTTagCompound.getByte("inGround") == 1; - } - - /** - * returns if this entity triggers Block.onEntityWalking on the blocks they - * walk on. used for spiders and wolves to prevent them from trampling crops - */ - @Override - protected boolean canTriggerWalking() - { - return false; - } - - @Override - @SideOnly(Side.CLIENT) - public float getShadowSize() - { - return 0.0F; - } - - /** - * Sets the amount of knockback the arrow applies when it hits a mob. - */ - public void setKnockbackStrength(int par1) - { - } - - /** - * If returns false, the item will not inflict any damage against entities. - */ - @Override - public boolean canAttackWithItem() - { - return false; - } - - /** - * Whether the arrow has a stream of critical hit particles flying behind - * it. - */ - public void setIsCritical(boolean par1) - { - byte var2 = dataWatcher.getWatchableObjectByte(16); - - if (par1) - { - dataWatcher.updateObject(16, Byte.valueOf((byte) (var2 | 1))); - } else - { - dataWatcher.updateObject(16, Byte.valueOf((byte) (var2 & -2))); - } - } - - /** - * Whether the arrow has a stream of critical hit particles flying behind - * it. - */ - public boolean getIsCritical() - { - byte var1 = dataWatcher.getWatchableObjectByte(16); - return (var1 & 1) != 0; - } - - public void onImpact(MovingObjectPosition mop) - { - if (mop.typeOfHit == MovingObjectPosition.MovingObjectType.ENTITY && mop.entityHit != null) - { - if (mop.entityHit == shootingEntity) - { - return; - } - - this.onImpact(mop.entityHit); - } else if (mop.typeOfHit == MovingObjectPosition.MovingObjectType.BLOCK) - { - this.groundImpact(mop.sideHit); - worldObj.createExplosion(shootingEntity, posX, posY, posZ, 2, false); - } - } - - public void onImpact(Entity mop) - { - if (mop == shootingEntity && ticksInAir > 3) - { - shootingEntity.attackEntityFrom(DamageSource.causeMobDamage(shootingEntity), 1); - this.setDead(); - } else - { - doDamage(this.damage + d6(), mop); - worldObj.createExplosion(shootingEntity, posX, posY, posZ, 2, false); - } - - spawnHitParticles("magicCrit", 8); - this.setDead(); - } - - private int d6() - { - return rand.nextInt(6) + 1; - } - - public void spawnHitParticles(String string, int i) - { - for (int particles = 0; particles < i; particles++) - { - worldObj.spawnParticle(string, posX, posY - (string == "portal" ? 1 : 0), posZ, gaussian(motionX), gaussian(motionY), gaussian(motionZ)); - } - } - - public void doDamage(int i, Entity mop) - { - mop.attackEntityFrom(this.getDamageSource(), i); - } - - public DamageSource getDamageSource() - { - return DamageSource.causeMobDamage(shootingEntity); - } - - public void groundImpact(int sideHit) - { - this.ricochet(sideHit); - } - - public double smallGauss(double d) - { - return (worldObj.rand.nextFloat() - 0.5D) * d; - } - - public double gaussian(double d) - { - return d + d * ((rand.nextFloat() - 0.5D) / 4); - } - - private void ricochet(int sideHit) - { - switch (sideHit) - { - case 0: - case 1: - // topHit, bottomHit, reflect Y - motionY = motionY * -1; - break; - - case 2: - case 3: - // westHit, eastHit, reflect Z - motionZ = motionZ * -1; - break; - - case 4: - case 5: - // southHit, northHit, reflect X - motionX = motionX * -1; - break; - } - - ricochetCounter++; - - if (ricochetCounter > this.getRicochetMax()) - { - scheduledForDeath = true; - - for (int particles = 0; particles < 4; particles++) - { - switch (sideHit) - { - case 0: - worldObj.spawnParticle("smoke", posX, posY, posZ, gaussian(0.1D), -gaussian(0.1D), gaussian(0.1D)); - break; - - case 1: - worldObj.spawnParticle("smoke", posX, posY, posZ, gaussian(0.1D), gaussian(0.1D), gaussian(0.1D)); - break; - - case 2: - worldObj.spawnParticle("smoke", posX, posY, posZ, gaussian(0.1D), gaussian(0.1D), -gaussian(0.1D)); - break; - - case 3: - worldObj.spawnParticle("smoke", posX, posY, posZ, gaussian(0.1D), gaussian(0.1D), gaussian(0.1D)); - break; - - case 4: - worldObj.spawnParticle("smoke", posX, posY, posZ, -gaussian(0.1D), gaussian(0.1D), gaussian(0.1D)); - break; - - case 5: - worldObj.spawnParticle("smoke", posX, posY, posZ, gaussian(0.1D), gaussian(0.1D), gaussian(0.1D)); - break; - } - } - } - } - - private int getRicochetMax() - { - return 3; - } -} diff --git a/1.7.2/main/java/WayofTime/alchemicalWizardry/common/entity/projectile/EntityMeteor.java b/1.7.2/main/java/WayofTime/alchemicalWizardry/common/entity/projectile/EntityMeteor.java deleted file mode 100644 index 221dc58a..00000000 --- a/1.7.2/main/java/WayofTime/alchemicalWizardry/common/entity/projectile/EntityMeteor.java +++ /dev/null @@ -1,64 +0,0 @@ -package WayofTime.alchemicalWizardry.common.entity.projectile; - -import net.minecraft.entity.Entity; -import net.minecraft.util.DamageSource; -import net.minecraft.util.MovingObjectPosition; -import net.minecraft.world.World; -import WayofTime.alchemicalWizardry.common.summoning.meteor.MeteorRegistry; - -public class EntityMeteor extends EnergyBlastProjectile -{ - private int meteorID; - - public EntityMeteor(World par1World) - { - super(par1World); - this.meteorID = 0; - } - - public EntityMeteor(World par1World, double par2, double par4, double par6, int meteorID) - { - super(par1World, par2, par4, par6); - this.meteorID = meteorID; - } - - @Override - public DamageSource getDamageSource() - { - return DamageSource.fallingBlock; - } - - @Override - public void onImpact(MovingObjectPosition mop) - { - if (worldObj.isRemote) - { - return; - } - - if (mop.typeOfHit == MovingObjectPosition.MovingObjectType.ENTITY && mop.entityHit != null) - { - this.onImpact(mop.entityHit); - } else if (mop.typeOfHit == MovingObjectPosition.MovingObjectType.BLOCK) - { - MeteorRegistry.createMeteorImpact(worldObj, mop.blockX, mop.blockY, mop.blockZ, this.meteorID); - } - - this.setDead(); - } - - @Override - public void onImpact(Entity mop) - { - if (mop == shootingEntity && ticksInAir > 3) - { - shootingEntity.attackEntityFrom(DamageSource.causeMobDamage(shootingEntity), 1); - this.setDead(); - } else - { - MeteorRegistry.createMeteorImpact(worldObj, (int) this.posX, (int) this.posY, (int) this.posZ, meteorID); - } - - this.setDead(); - } -} diff --git a/1.7.2/main/java/WayofTime/alchemicalWizardry/common/entity/projectile/ExplosionProjectile.java b/1.7.2/main/java/WayofTime/alchemicalWizardry/common/entity/projectile/ExplosionProjectile.java deleted file mode 100644 index 569aaf0b..00000000 --- a/1.7.2/main/java/WayofTime/alchemicalWizardry/common/entity/projectile/ExplosionProjectile.java +++ /dev/null @@ -1,134 +0,0 @@ -package WayofTime.alchemicalWizardry.common.entity.projectile; - -import net.minecraft.entity.Entity; -import net.minecraft.entity.EntityLivingBase; -import net.minecraft.nbt.NBTTagCompound; -import net.minecraft.util.DamageSource; -import net.minecraft.util.MovingObjectPosition; -import net.minecraft.world.World; - -public class ExplosionProjectile extends EnergyBlastProjectile -{ - protected boolean causesEnvDamage; - - public ExplosionProjectile(World par1World) - { - super(par1World); - } - - public ExplosionProjectile(World par1World, double par2, double par4, double par6) - { - super(par1World, par2, par4, par6); - } - - public ExplosionProjectile(World par1World, EntityLivingBase par2EntityPlayer, int damage, boolean flag) - { - super(par1World, par2EntityPlayer, damage); - causesEnvDamage = flag; - } - - public ExplosionProjectile(World par1World, EntityLivingBase par2EntityPlayer, int damage, int maxTicksInAir, double posX, double posY, double posZ, float rotationYaw, float rotationPitch, boolean flag) - { - super(par1World, par2EntityPlayer, damage, maxTicksInAir, posX, posY, posZ, rotationYaw, rotationPitch); - causesEnvDamage = flag; - } - - @Override - public DamageSource getDamageSource() - { - return DamageSource.causeMobDamage(shootingEntity); - } - - @Override - public void onImpact(MovingObjectPosition mop) - { - if (mop.typeOfHit == MovingObjectPosition.MovingObjectType.ENTITY && mop.entityHit != null) - { - if (mop.entityHit == shootingEntity) - { - return; - } - - worldObj.createExplosion(this, this.posX, this.posY, this.posZ, (float) (2), causesEnvDamage); - //this.onImpact(mop.entityHit); - } else if (mop.typeOfHit == MovingObjectPosition.MovingObjectType.BLOCK) - { -// for(int i=-1;i<=1;i++) -// { -// for(int j=-1;j<=1;j++) -// { -// for(int k=-1;k<=1;k++) -// { -// if(worldObj.isAirBlock((int)this.posX+i, (int)this.posY+j, (int)this.posZ+k)) -// { -// worldObj.setBlock( (int)this.posX+i, (int)this.posY+j, (int)this.posZ+k,Block.fire.blockID); -// } -// } -// } -// } - worldObj.createExplosion(this, this.posX, this.posY, this.posZ, (float) (2), causesEnvDamage); - } - - this.setDead(); - } - - @Override - public void onImpact(Entity mop) - { - if (mop == shootingEntity && ticksInAir > 3) - { - shootingEntity.attackEntityFrom(DamageSource.causeMobDamage(shootingEntity), 1); - this.setDead(); - } else - { - //doDamage(8 + d6(), mop); - if (mop instanceof EntityLivingBase) - { - //((EntityLivingBase)mop).addPotionEffect(new PotionEffect(Potion.weakness.id, 60,2)); - //((EntityLivingBase)mop).setFire(50); - //((EntityLivingBase)mop).setRevengeTarget(shootingEntity); - if (((EntityLivingBase) mop).isImmuneToFire()) - { - doDamage((int) (projectileDamage), mop); - } else - { - doDamage(projectileDamage, mop); - } - } - - //worldObj.createExplosion(this, this.posX, this.posY, this.posZ, (float)(0.1), true); - } - - if (worldObj.isAirBlock((int) this.posX, (int) this.posY, (int) this.posZ)) - { - //worldObj.setBlock((int)this.posX, (int)this.posY, (int)this.posZ,Block.fire.blockID); - } - - spawnHitParticles("magicCrit", 8); - this.setDead(); - } - - @Override - public void doFiringParticles() - { - worldObj.spawnParticle("mobSpellAmbient", posX + smallGauss(0.1D), posY + smallGauss(0.1D), posZ + smallGauss(0.1D), 0.5D, 0.5D, 0.5D); - worldObj.spawnParticle("explode", posX, posY, posZ, gaussian(motionX), gaussian(motionY), gaussian(motionZ)); - } - - @Override - public void writeEntityToNBT(NBTTagCompound par1NBTTagCompound) - { - super.writeEntityToNBT(par1NBTTagCompound); - par1NBTTagCompound.setBoolean("causesEnvDamage", causesEnvDamage); - } - - /** - * (abstract) Protected helper method to read subclass entity data from NBT. - */ - @Override - public void readEntityFromNBT(NBTTagCompound par1NBTTagCompound) - { - super.readEntityFromNBT(par1NBTTagCompound); - causesEnvDamage = par1NBTTagCompound.getBoolean("causesEnvDamage"); - } -} diff --git a/1.7.2/main/java/WayofTime/alchemicalWizardry/common/entity/projectile/FireProjectile.java b/1.7.2/main/java/WayofTime/alchemicalWizardry/common/entity/projectile/FireProjectile.java deleted file mode 100644 index 7ab8f052..00000000 --- a/1.7.2/main/java/WayofTime/alchemicalWizardry/common/entity/projectile/FireProjectile.java +++ /dev/null @@ -1,115 +0,0 @@ -package WayofTime.alchemicalWizardry.common.entity.projectile; - -import net.minecraft.block.Block; -import net.minecraft.entity.Entity; -import net.minecraft.entity.EntityLivingBase; -import net.minecraft.init.Blocks; -import net.minecraft.potion.Potion; -import net.minecraft.util.DamageSource; -import net.minecraft.util.MovingObjectPosition; -import net.minecraft.world.World; - -public class FireProjectile extends EnergyBlastProjectile -{ - public FireProjectile(World par1World) - { - super(par1World); - } - - public FireProjectile(World par1World, double par2, double par4, double par6) - { - super(par1World, par2, par4, par6); - } - - public FireProjectile(World par1World, EntityLivingBase par2EntityPlayer, int damage) - { - super(par1World, par2EntityPlayer, damage); - } - - public FireProjectile(World par1World, EntityLivingBase par2EntityPlayer, int damage, int maxTicksInAir, double posX, double posY, double posZ, float rotationYaw, float rotationPitch) - { - super(par1World, par2EntityPlayer, damage, maxTicksInAir, posX, posY, posZ, rotationYaw, rotationPitch); - } - - public FireProjectile(World par1World, EntityLivingBase par2EntityLivingBase, EntityLivingBase par3EntityLivingBase, float par4, float par5, int damage, int maxTicksInAir) - { - super(par1World, par2EntityLivingBase, par3EntityLivingBase, par4, par5, damage, maxTicksInAir); - } - - @Override - public DamageSource getDamageSource() - { - return DamageSource.causeMobDamage(shootingEntity); - } - - @Override - public void onImpact(MovingObjectPosition mop) - { - if (mop.typeOfHit == MovingObjectPosition.MovingObjectType.ENTITY && mop.entityHit != null) - { - if (mop.entityHit == shootingEntity) - { - return; - } - - this.onImpact(mop.entityHit); - } else if (mop.typeOfHit == MovingObjectPosition.MovingObjectType.BLOCK) - { - for (int i = -1; i <= 1; i++) - { - for (int j = -1; j <= 1; j++) - { - for (int k = -1; k <= 1; k++) - { - if (worldObj.isAirBlock((int) this.posX + i, (int) this.posY + j, (int) this.posZ + k)) - { - worldObj.setBlock((int) this.posX + i, (int) this.posY + j, (int) this.posZ + k, Blocks.fire); - } - } - } - } - - //worldObj.createExplosion(this, this.posX, this.posY, this.posZ, (float)(0.1), true); - } - - this.setDead(); - } - - @Override - public void onImpact(Entity mop) - { - if (mop == shootingEntity && ticksInAir > 3) - { - shootingEntity.attackEntityFrom(DamageSource.causeMobDamage(shootingEntity), 1); - this.setDead(); - } else - { - //doDamage(8 + d6(), mop); - if (mop instanceof EntityLivingBase) - { - //((EntityLivingBase)mop).addPotionEffect(new PotionEffect(Potion.weakness.id, 60,2)); - ((EntityLivingBase) mop).setFire(50); - ((EntityLivingBase) mop).setRevengeTarget(shootingEntity); - - if (((EntityLivingBase) mop).isPotionActive(Potion.fireResistance) || ((EntityLivingBase) mop).isImmuneToFire()) - { - ((EntityLivingBase) mop).attackEntityFrom(DamageSource.causeMobDamage(shootingEntity), 1); - } else - { - doDamage(projectileDamage, mop); - ((EntityLivingBase) mop).hurtResistantTime = 0; - } - } - - //worldObj.createExplosion(this, this.posX, this.posY, this.posZ, (float)(0.1), true); - } - - if (worldObj.isAirBlock((int) this.posX, (int) this.posY, (int) this.posZ)) - { - worldObj.setBlock((int) this.posX, (int) this.posY, (int) this.posZ, Blocks.fire); - } - - spawnHitParticles("magicCrit", 8); - this.setDead(); - } -} diff --git a/1.7.2/main/java/WayofTime/alchemicalWizardry/common/entity/projectile/HolyProjectile.java b/1.7.2/main/java/WayofTime/alchemicalWizardry/common/entity/projectile/HolyProjectile.java deleted file mode 100644 index 062ccbf7..00000000 --- a/1.7.2/main/java/WayofTime/alchemicalWizardry/common/entity/projectile/HolyProjectile.java +++ /dev/null @@ -1,117 +0,0 @@ -package WayofTime.alchemicalWizardry.common.entity.projectile; - -import net.minecraft.entity.Entity; -import net.minecraft.entity.EntityLivingBase; -import net.minecraft.util.DamageSource; -import net.minecraft.util.MovingObjectPosition; -import net.minecraft.world.World; -import WayofTime.alchemicalWizardry.common.PacketHandler; -import WayofTime.alchemicalWizardry.common.spell.complex.effect.SpellHelper; - -public class HolyProjectile extends EnergyBlastProjectile -{ - public HolyProjectile(World par1World) - { - super(par1World); - } - - public HolyProjectile(World par1World, double par2, double par4, double par6) - { - super(par1World, par2, par4, par6); - } - - public HolyProjectile(World par1World, EntityLivingBase par2EntityPlayer, int damage) - { - super(par1World, par2EntityPlayer, damage); - } - - public HolyProjectile(World par1World, EntityLivingBase par2EntityPlayer, int damage, int maxTicksInAir, double posX, double posY, double posZ, float rotationYaw, float rotationPitch) - { - super(par1World, par2EntityPlayer, damage, maxTicksInAir, posX, posY, posZ, rotationYaw, rotationPitch); - } - - public HolyProjectile(World par1World, EntityLivingBase par2EntityLivingBase, EntityLivingBase par3EntityLivingBase, float par4, float par5, int damage, int maxTicksInAir) - { - super(par1World, par2EntityLivingBase, par3EntityLivingBase, par4, par5, damage, maxTicksInAir); - } - - @Override - public DamageSource getDamageSource() - { - return DamageSource.causeMobDamage(shootingEntity); - } - - @Override - public void onImpact(MovingObjectPosition mop) - { - if (mop.typeOfHit == MovingObjectPosition.MovingObjectType.ENTITY && mop.entityHit != null) - { - if (mop.entityHit == shootingEntity) - { - return; - } - - this.onImpact(mop.entityHit); - } else if (mop.typeOfHit == MovingObjectPosition.MovingObjectType.BLOCK) - { -// for(int i=-1;i<=1;i++) -// { -// for(int j=-1;j<=1;j++) -// { -// for(int k=-1;k<=1;k++) -// { -// if(worldObj.isAirBlock((int)this.posX+i, (int)this.posY+j, (int)this.posZ+k)) -// { -// worldObj.setBlock( (int)this.posX+i, (int)this.posY+j, (int)this.posZ+k,Block.fire.blockID); -// } -// } -// } -// } - } - - this.setDead(); - } - - @Override - public void onImpact(Entity mop) - { - if (mop == shootingEntity && ticksInAir > 3) - { - shootingEntity.attackEntityFrom(DamageSource.causeMobDamage(shootingEntity), 1); - this.setDead(); - } else - { - //doDamage(8 + d6(), mop); - if (mop instanceof EntityLivingBase) - { - //((EntityLivingBase)mop).addPotionEffect(new PotionEffect(Potion.weakness.id, 60,2)); - //((EntityLivingBase)mop).setFire(50); - //((EntityLivingBase)mop).setRevengeTarget(shootingEntity); - if (((EntityLivingBase) mop).isEntityUndead()) - { - doDamage((int) (projectileDamage * 2), mop); - } else - { - doDamage(projectileDamage, mop); - } - } - - //worldObj.createExplosion(this, this.posX, this.posY, this.posZ, (float)(0.1), true); - } - - if (worldObj.isAirBlock((int) this.posX, (int) this.posY, (int) this.posZ)) - { - //worldObj.setBlock((int)this.posX, (int)this.posY, (int)this.posZ,Block.fire.blockID); - } - - spawnHitParticles("magicCrit", 8); - this.setDead(); - } - - @Override - public void doFiringParticles() - { - SpellHelper.sendParticleToAllAround(worldObj, posX, posY, posZ, 30, worldObj.provider.dimensionId, "mobSpellAmbient", posX + smallGauss(0.1D), posY + smallGauss(0.1D), posZ + smallGauss(0.1D), 0.5D, 0.5D, 0.5D); - SpellHelper.sendParticleToAllAround(worldObj, posX, posY, posZ, 30, worldObj.provider.dimensionId, "mobSpell", posX, posY, posZ, 1.0F, 1.0F, 1.0F); - } -} diff --git a/1.7.2/main/java/WayofTime/alchemicalWizardry/common/entity/projectile/IceProjectile.java b/1.7.2/main/java/WayofTime/alchemicalWizardry/common/entity/projectile/IceProjectile.java deleted file mode 100644 index 06867d81..00000000 --- a/1.7.2/main/java/WayofTime/alchemicalWizardry/common/entity/projectile/IceProjectile.java +++ /dev/null @@ -1,123 +0,0 @@ -package WayofTime.alchemicalWizardry.common.entity.projectile; - -import net.minecraft.entity.Entity; -import net.minecraft.entity.EntityLivingBase; -import net.minecraft.potion.Potion; -import net.minecraft.potion.PotionEffect; -import net.minecraft.util.DamageSource; -import net.minecraft.util.MovingObjectPosition; -import net.minecraft.world.World; -import WayofTime.alchemicalWizardry.common.PacketHandler; -import WayofTime.alchemicalWizardry.common.entity.mob.EntityIceDemon; -import WayofTime.alchemicalWizardry.common.spell.complex.effect.SpellHelper; - -public class IceProjectile extends EnergyBlastProjectile -{ - public IceProjectile(World par1World) - { - super(par1World); - } - - public IceProjectile(World par1World, double par2, double par4, double par6) - { - super(par1World, par2, par4, par6); - } - - public IceProjectile(World par1World, EntityLivingBase par2EntityPlayer, int damage) - { - super(par1World, par2EntityPlayer, damage); - } - - public IceProjectile(World par1World, EntityLivingBase par2EntityPlayer, int damage, int maxTicksInAir, double posX, double posY, double posZ, float rotationYaw, float rotationPitch) - { - super(par1World, par2EntityPlayer, damage, maxTicksInAir, posX, posY, posZ, rotationYaw, rotationPitch); - } - - public IceProjectile(World worldObj, EntityIceDemon entityIceDemon, EntityLivingBase par1EntityLivingBase, float f, float g, int i, int j) - { - super(worldObj, entityIceDemon, par1EntityLivingBase, f, g, i, j); - } - - @Override - public DamageSource getDamageSource() - { - return DamageSource.causeMobDamage(shootingEntity); - } - - @Override - public void onImpact(MovingObjectPosition mop) - { - if (mop.typeOfHit == MovingObjectPosition.MovingObjectType.ENTITY && mop.entityHit != null) - { - if (mop.entityHit == shootingEntity) - { - return; - } - - this.onImpact(mop.entityHit); - } else if (mop.typeOfHit == MovingObjectPosition.MovingObjectType.BLOCK) - { -// for(int i=-1;i<=1;i++) -// { -// for(int j=-1;j<=1;j++) -// { -// for(int k=-1;k<=1;k++) -// { -// if(worldObj.isAirBlock((int)this.posX+i, (int)this.posY+j, (int)this.posZ+k)) -// { -// worldObj.setBlock( (int)this.posX+i, (int)this.posY+j, (int)this.posZ+k,Block.fire.blockID); -// } -// } -// } -// } - //worldObj.createExplosion(this, this.posX, this.posY, this.posZ, (float)(0.1), true); - } - - this.setDead(); - } - - @Override - public void onImpact(Entity mop) - { - if (mop == shootingEntity && ticksInAir > 3) - { - shootingEntity.attackEntityFrom(DamageSource.causeMobDamage(shootingEntity), 1); - this.setDead(); - } else - { - //doDamage(8 + d6(), mop); - if (mop instanceof EntityLivingBase) - { - //((EntityLivingBase)mop).addPotionEffect(new PotionEffect(Potion.weakness.id, 60,2)); - //((EntityLivingBase)mop).setFire(50); - //((EntityLivingBase)mop).setRevengeTarget(shootingEntity); - if (((EntityLivingBase) mop).isImmuneToFire()) - { - doDamage((int) (projectileDamage * 2), mop); - ((EntityLivingBase) mop).addPotionEffect(new PotionEffect(Potion.moveSlowdown.id, 200, 2)); - } else - { - doDamage(projectileDamage, mop); - ((EntityLivingBase) mop).addPotionEffect(new PotionEffect(Potion.moveSlowdown.id, 100, 1)); - } - } - - //worldObj.createExplosion(this, this.posX, this.posY, this.posZ, (float)(0.1), true); - } - - if (worldObj.isAirBlock((int) this.posX, (int) this.posY, (int) this.posZ)) - { - //worldObj.setBlock((int)this.posX, (int)this.posY, (int)this.posZ,Block.fire.blockID); - } - - spawnHitParticles("magicCrit", 8); - this.setDead(); - } - - @Override - public void doFiringParticles() - { - SpellHelper.sendParticleToAllAround(worldObj, posX, posY, posZ, 30, worldObj.provider.dimensionId, "mobSpellAmbient", posX + smallGauss(0.1D), posY + smallGauss(0.1D), posZ + smallGauss(0.1D), 0.5D, 0.5D, 0.5D); - SpellHelper.sendParticleToAllAround(worldObj, posX, posY, posZ, 30, worldObj.provider.dimensionId, "explode", posX, posY, posZ, gaussian(motionX), gaussian(motionY), gaussian(motionZ)); - } -} diff --git a/1.7.2/main/java/WayofTime/alchemicalWizardry/common/entity/projectile/LightningBoltProjectile.java b/1.7.2/main/java/WayofTime/alchemicalWizardry/common/entity/projectile/LightningBoltProjectile.java deleted file mode 100644 index 106cf420..00000000 --- a/1.7.2/main/java/WayofTime/alchemicalWizardry/common/entity/projectile/LightningBoltProjectile.java +++ /dev/null @@ -1,126 +0,0 @@ -package WayofTime.alchemicalWizardry.common.entity.projectile; - -import net.minecraft.entity.Entity; -import net.minecraft.entity.EntityLivingBase; -import net.minecraft.entity.effect.EntityLightningBolt; -import net.minecraft.nbt.NBTTagCompound; -import net.minecraft.util.DamageSource; -import net.minecraft.util.MovingObjectPosition; -import net.minecraft.world.World; -import WayofTime.alchemicalWizardry.common.spell.complex.effect.SpellHelper; - -public class LightningBoltProjectile extends EnergyBlastProjectile -{ - private boolean causeLightning; - - public LightningBoltProjectile(World par1World) - { - super(par1World); - } - - public LightningBoltProjectile(World par1World, double par2, double par4, double par6) - { - super(par1World, par2, par4, par6); - } - - public LightningBoltProjectile(World par1World, EntityLivingBase par2EntityPlayer, int damage, boolean flag) - { - super(par1World, par2EntityPlayer, damage); - causeLightning = flag; - } - - public LightningBoltProjectile(World par1World, EntityLivingBase par2EntityPlayer, int damage, int maxTicksInAir, double posX, double posY, double posZ, float rotationYaw, float rotationPitch, boolean flag) - { - super(par1World, par2EntityPlayer, damage, maxTicksInAir, posX, posY, posZ, rotationYaw, rotationPitch); - causeLightning = flag; - } - - @Override - public DamageSource getDamageSource() - { - return DamageSource.causeMobDamage(shootingEntity); - } - - @Override - public void onImpact(MovingObjectPosition mop) - { - if (mop.typeOfHit == MovingObjectPosition.MovingObjectType.ENTITY && mop.entityHit != null) - { - if (mop.entityHit == shootingEntity) - { - return; - } - - this.onImpact(mop.entityHit); - } else if (mop.typeOfHit == MovingObjectPosition.MovingObjectType.BLOCK) - { - if (causeLightning) - { - this.worldObj.addWeatherEffect(new EntityLightningBolt(this.worldObj, this.posX, this.posY, this.posZ)); - } - } - - this.setDead(); - } - - @Override - public void onImpact(Entity mop) - { - if (mop == shootingEntity && ticksInAir > 3) - { - //shootingEntity.attackEntityFrom(DamageSource.causePlayerDamage(shootingEntity), 1); - this.setDead(); - } else - { - //doDamage(8 + d6(), mop); - if (mop instanceof EntityLivingBase) - { - //((EntityLivingBase)mop).addPotionEffect(new PotionEffect(Potion.weakness.id, 60,2)); - //((EntityLivingBase)mop).setFire(50); - //((EntityLivingBase)mop).setRevengeTarget(shootingEntity); -// if(((EntityLivingBase)mop).isEntityUndead()) -// { -// doDamage((int)(projectileDamage*2),mop); -// }else -// { -// doDamage(projectileDamage, mop); -// } - if (causeLightning) - { - this.worldObj.addWeatherEffect(new EntityLightningBolt(this.worldObj, ((EntityLivingBase) mop).posX, ((EntityLivingBase) mop).posY, ((EntityLivingBase) mop).posZ)); - } else - { - doDamage(projectileDamage, mop); - } - - //((EntityLivingBase)mop).setVelocity(this.motionX*2, ((EntityLivingBase)mop).motionY+1.5, this.motionZ*2); - } - - //worldObj.createExplosion(this, this.posX, this.posY, this.posZ, (float)(0.1), true); - } - - spawnHitParticles("magicCrit", 8); - this.setDead(); - } - - @Override - public void doFiringParticles() - { - SpellHelper.sendParticleToAllAround(worldObj, posX, posY, posZ, 30, worldObj.provider.dimensionId, "mobSpellAmbient", posX + smallGauss(0.1D), posY + smallGauss(0.1D), posZ + smallGauss(0.1D), 0.5D, 0.5D, 0.5D); - SpellHelper.sendParticleToAllAround(worldObj, posX, posY, posZ, 30, worldObj.provider.dimensionId, "mobSpell", posX, posY, posZ, 1.0F, 1.0F, 1.0F); - } - - @Override - public void writeEntityToNBT(NBTTagCompound par1NBTTagCompound) - { - super.writeEntityToNBT(par1NBTTagCompound); - par1NBTTagCompound.setBoolean("causeLightning", causeLightning); - } - - @Override - public void readEntityFromNBT(NBTTagCompound par1NBTTagCompound) - { - super.readEntityFromNBT(par1NBTTagCompound); - causeLightning = par1NBTTagCompound.getBoolean("causeLightning"); - } -} \ No newline at end of file diff --git a/1.7.2/main/java/WayofTime/alchemicalWizardry/common/entity/projectile/MudProjectile.java b/1.7.2/main/java/WayofTime/alchemicalWizardry/common/entity/projectile/MudProjectile.java deleted file mode 100644 index 2c944959..00000000 --- a/1.7.2/main/java/WayofTime/alchemicalWizardry/common/entity/projectile/MudProjectile.java +++ /dev/null @@ -1,131 +0,0 @@ -package WayofTime.alchemicalWizardry.common.entity.projectile; - -import net.minecraft.entity.Entity; -import net.minecraft.entity.EntityLivingBase; -import net.minecraft.nbt.NBTTagCompound; -import net.minecraft.potion.Potion; -import net.minecraft.potion.PotionEffect; -import net.minecraft.util.DamageSource; -import net.minecraft.util.MovingObjectPosition; -import net.minecraft.world.World; -import WayofTime.alchemicalWizardry.common.PacketHandler; -import WayofTime.alchemicalWizardry.common.spell.complex.effect.SpellHelper; - -public class MudProjectile extends EnergyBlastProjectile -{ - private boolean doesBlindness; //True for when it applies blindness, false for slowness - - public MudProjectile(World par1World) - { - super(par1World); - } - - public MudProjectile(World par1World, double par2, double par4, double par6) - { - super(par1World, par2, par4, par6); - } - - public MudProjectile(World par1World, EntityLivingBase par2EntityPlayer, int damage, boolean flag) - { - super(par1World, par2EntityPlayer, damage); - doesBlindness = flag; - } - - public MudProjectile(World par1World, EntityLivingBase par2EntityPlayer, int damage, int maxTicksInAir, double posX, double posY, double posZ, float rotationYaw, float rotationPitch, boolean flag) - { - super(par1World, par2EntityPlayer, damage, maxTicksInAir, posX, posY, posZ, rotationYaw, rotationPitch); - doesBlindness = flag; - } - - public MudProjectile(World par1World, EntityLivingBase par2EntityLivingBase, EntityLivingBase par3EntityLivingBase, float par4, float par5, int damage, int maxTicksInAir, boolean flag) - { - super(par1World, par2EntityLivingBase, par3EntityLivingBase, par4, par5, damage, maxTicksInAir); - doesBlindness = flag; - } - - @Override - public DamageSource getDamageSource() - { - return DamageSource.causeMobDamage(shootingEntity); - } - - @Override - public void onImpact(MovingObjectPosition mop) - { - if (mop.typeOfHit == MovingObjectPosition.MovingObjectType.ENTITY && mop.entityHit != null) - { - if (mop.entityHit == shootingEntity) - { - return; - } - - this.onImpact(mop.entityHit); - } else if (mop.typeOfHit == MovingObjectPosition.MovingObjectType.BLOCK) - { - } - - this.setDead(); - } - - @Override - public void onImpact(Entity mop) - { - if (mop == shootingEntity && ticksInAir > 3) - { - //shootingEntity.attackEntityFrom(DamageSource.causePlayerDamage(shootingEntity), 1); - this.setDead(); - } else - { - //doDamage(8 + d6(), mop); - if (mop instanceof EntityLivingBase) - { - //((EntityLivingBase)mop).addPotionEffect(new PotionEffect(Potion.weakness.id, 60,2)); - //((EntityLivingBase)mop).setFire(50); - //((EntityLivingBase)mop).setRevengeTarget(shootingEntity); -// if(((EntityLivingBase)mop).isEntityUndead()) -// { -// doDamage((int)(projectileDamage*2),mop); -// }else -// { -// doDamage(projectileDamage, mop); -// } - if (doesBlindness) - { - ((EntityLivingBase) mop).addPotionEffect(new PotionEffect(Potion.blindness.id, 100, 0)); - } else - { - ((EntityLivingBase) mop).addPotionEffect(new PotionEffect(Potion.moveSlowdown.id, 100, 2)); - } - - doDamage(projectileDamage, mop); - //((EntityLivingBase)mop).setVelocity(this.motionX*2, ((EntityLivingBase)mop).motionY+1.5, this.motionZ*2); - } - - //worldObj.createExplosion(this, this.posX, this.posY, this.posZ, (float)(0.1), true); - } - - spawnHitParticles("magicCrit", 8); - this.setDead(); - } - - @Override - public void doFiringParticles() - { - SpellHelper.sendParticleToAllAround(worldObj, posX, posY, posZ, 30, worldObj.provider.dimensionId, "mobSpellAmbient", posX + smallGauss(0.1D), posY + smallGauss(0.1D), posZ + smallGauss(0.1D), 0.5D, 0.5D, 0.5D); - SpellHelper.sendParticleToAllAround(worldObj, posX, posY, posZ, 30, worldObj.provider.dimensionId, "mobSpell", posX, posY, posZ, 0.5F, 0.297F, 0.0664F); - } - - @Override - public void writeEntityToNBT(NBTTagCompound par1NBTTagCompound) - { - super.writeEntityToNBT(par1NBTTagCompound); - par1NBTTagCompound.setBoolean("doesBlindness", doesBlindness); - } - - @Override - public void readEntityFromNBT(NBTTagCompound par1NBTTagCompound) - { - super.readEntityFromNBT(par1NBTTagCompound); - doesBlindness = par1NBTTagCompound.getBoolean("doesBlindness"); - } -} diff --git a/1.7.2/main/java/WayofTime/alchemicalWizardry/common/entity/projectile/TeleportProjectile.java b/1.7.2/main/java/WayofTime/alchemicalWizardry/common/entity/projectile/TeleportProjectile.java deleted file mode 100644 index c448fadf..00000000 --- a/1.7.2/main/java/WayofTime/alchemicalWizardry/common/entity/projectile/TeleportProjectile.java +++ /dev/null @@ -1,205 +0,0 @@ -package WayofTime.alchemicalWizardry.common.entity.projectile; - -import net.minecraft.entity.Entity; -import net.minecraft.entity.EntityLivingBase; -import net.minecraft.entity.player.EntityPlayerMP; -import net.minecraft.nbt.NBTTagCompound; -import net.minecraft.util.DamageSource; -import net.minecraft.util.MovingObjectPosition; -import net.minecraft.world.World; -import net.minecraftforge.common.MinecraftForge; -import net.minecraftforge.event.entity.living.EnderTeleportEvent; -import WayofTime.alchemicalWizardry.common.spell.complex.effect.SpellHelper; -import WayofTime.alchemicalWizardry.common.spell.simple.SpellTeleport; - -public class TeleportProjectile extends EnergyBlastProjectile -{ - private boolean isEntityTeleport; //True if the entity firing teleports on hit - - public TeleportProjectile(World par1World) - { - super(par1World); - this.motionX *= 3; - this.motionY *= 3; - this.motionZ *= 3; - } - - public TeleportProjectile(World par1World, double par2, double par4, double par6) - { - super(par1World, par2, par4, par6); - this.motionX *= 3; - this.motionY *= 3; - this.motionZ *= 3; - } - - public TeleportProjectile(World par1World, EntityLivingBase par2EntityPlayer, int damage, boolean flag) - { - super(par1World, par2EntityPlayer, damage); - isEntityTeleport = flag; - this.motionX *= 3; - this.motionY *= 3; - this.motionZ *= 3; - } - - public TeleportProjectile(World par1World, EntityLivingBase par2EntityPlayer, int damage, int maxTicksInAir, double posX, double posY, double posZ, float rotationYaw, float rotationPitch, boolean flag) - { - super(par1World, par2EntityPlayer, damage, maxTicksInAir, posX, posY, posZ, rotationYaw, rotationPitch); - isEntityTeleport = flag; - this.motionX *= 3; - this.motionY *= 3; - this.motionZ *= 3; - } - - @Override - public DamageSource getDamageSource() - { - return DamageSource.causeMobDamage(shootingEntity); - } - - @Override - public void onImpact(MovingObjectPosition mop) - { - if (mop.typeOfHit == MovingObjectPosition.MovingObjectType.ENTITY && mop.entityHit != null) - { - if (mop.entityHit == shootingEntity) - { - return; - } - - this.onImpact(mop.entityHit); - } else if (mop.typeOfHit == MovingObjectPosition.MovingObjectType.BLOCK) - { - if (isEntityTeleport) - { - if (shootingEntity != null && shootingEntity instanceof EntityPlayerMP) - { - EntityPlayerMP entityplayermp = (EntityPlayerMP) shootingEntity; - - if(entityplayermp.worldObj == this.worldObj) - //if (!entityplayermp.playerNetServerHandler.connectionClosed && entityplayermp.worldObj == this.worldObj) - { - EnderTeleportEvent event = new EnderTeleportEvent(entityplayermp, this.posX, this.posY, this.posZ, 5.0F); - - if (!MinecraftForge.EVENT_BUS.post(event)) - { - if (shootingEntity.isRiding()) - { - shootingEntity.mountEntity((Entity) null); - } - - shootingEntity.setPositionAndUpdate(event.targetX, event.targetY, event.targetZ); -// this.getThrower().fallDistance = 0.0F; -// this.getThrower().attackEntityFrom(DamageSource.fall, event.attackDamage); - } - } - } - } - } - - this.setDead(); - } - - @Override - public void onImpact(Entity mop) - { - if (mop == shootingEntity && ticksInAir > 3) - { - //shootingEntity.attackEntityFrom(DamageSource.causePlayerDamage(shootingEntity), 1); - this.setDead(); - } else - { - //doDamage(8 + d6(), mop); - if (mop instanceof EntityLivingBase) - { - //((EntityLivingBase)mop).addPotionEffect(new PotionEffect(Potion.weakness.id, 60,2)); - //((EntityLivingBase)mop).setFire(50); - //((EntityLivingBase)mop).setRevengeTarget(shootingEntity); -// if(((EntityLivingBase)mop).isEntityUndead()) -// { -// doDamage((int)(projectileDamage*2),mop); -// }else -// { -// doDamage(projectileDamage, mop); -// } - if (isEntityTeleport) - { - if (shootingEntity != null && shootingEntity instanceof EntityPlayerMP) - { - EntityPlayerMP entityplayermp = (EntityPlayerMP) shootingEntity; - - if(entityplayermp.worldObj == this.worldObj) - //if (!entityplayermp.playerNetServerHandler.connectionClosed && entityplayermp.worldObj == this.worldObj) - { - EnderTeleportEvent event = new EnderTeleportEvent(entityplayermp, this.posX, this.posY, this.posZ, 5.0F); - - if (!MinecraftForge.EVENT_BUS.post(event)) - { - if (shootingEntity.isRiding()) - { - shootingEntity.mountEntity((Entity) null); - } - - shootingEntity.setPositionAndUpdate(event.targetX, event.targetY, event.targetZ); -// this.getThrower().fallDistance = 0.0F; -// this.getThrower().attackEntityFrom(DamageSource.fall, event.attackDamage); - } - } - } - } else - { -// int x = (int)this.posX + mop.worldObj.rand.nextInt(100) - mop.worldObj.rand.nextInt(100); -// int y = (int)this.posY + mop.worldObj.rand.nextInt(10) - mop.worldObj.rand.nextInt(10); -// int z = (int)this.posZ + mop.worldObj.rand.nextInt(100) - mop.worldObj.rand.nextInt(100); -// -// boolean bool = false; -// int i = 0; -// -// while(!bool&&i<100) -// { -// if(worldObj.isAirBlock(x, y, z)||worldObj.isAirBlock(x, y+1, z)) -// { -// ((EntityLivingBase) mop).setPositionAndUpdate(x, y, z); -// bool=true; -// }else -// { -// x = (int)this.posX + mop.worldObj.rand.nextInt(100) - mop.worldObj.rand.nextInt(100); -// y = (int)this.posY + mop.worldObj.rand.nextInt(10) - mop.worldObj.rand.nextInt(10); -// z = (int)this.posZ + mop.worldObj.rand.nextInt(100) - mop.worldObj.rand.nextInt(100); -// i++; -// } -// } - SpellTeleport.teleportRandomly((EntityLivingBase) mop, 64); - } - - //doDamage(projectileDamage, mop); - //((EntityLivingBase)mop).setVelocity(this.motionX*2, ((EntityLivingBase)mop).motionY+1.5, this.motionZ*2); - } - - //worldObj.createExplosion(this, this.posX, this.posY, this.posZ, (float)(0.1), true); - } - - spawnHitParticles("magicCrit", 8); - this.setDead(); - } - - @Override - public void doFiringParticles() - { - SpellHelper.sendParticleToAllAround(worldObj, posX, posY, posZ, 30, worldObj.provider.dimensionId, "mobSpellAmbient", posX + smallGauss(0.1D), posY + smallGauss(0.1D), posZ + smallGauss(0.1D), 0.5D, 0.5D, 0.5D); - SpellHelper.sendParticleToAllAround(worldObj, posX, posY, posZ, 30, worldObj.provider.dimensionId, "portal", posX, posY, posZ, -motionX, -motionY, -motionZ); - } - - @Override - public void writeEntityToNBT(NBTTagCompound par1NBTTagCompound) - { - super.writeEntityToNBT(par1NBTTagCompound); - par1NBTTagCompound.setBoolean("isEntityTeleport", isEntityTeleport); - } - - @Override - public void readEntityFromNBT(NBTTagCompound par1NBTTagCompound) - { - super.readEntityFromNBT(par1NBTTagCompound); - isEntityTeleport = par1NBTTagCompound.getBoolean("isEntityTeleport"); - } -} diff --git a/1.7.2/main/java/WayofTime/alchemicalWizardry/common/entity/projectile/WaterProjectile.java b/1.7.2/main/java/WayofTime/alchemicalWizardry/common/entity/projectile/WaterProjectile.java deleted file mode 100644 index 8fa7704c..00000000 --- a/1.7.2/main/java/WayofTime/alchemicalWizardry/common/entity/projectile/WaterProjectile.java +++ /dev/null @@ -1,107 +0,0 @@ -package WayofTime.alchemicalWizardry.common.entity.projectile; - -import net.minecraft.entity.Entity; -import net.minecraft.entity.EntityLivingBase; -import net.minecraft.potion.PotionEffect; -import net.minecraft.util.DamageSource; -import net.minecraft.util.MovingObjectPosition; -import net.minecraft.world.World; -import WayofTime.alchemicalWizardry.AlchemicalWizardry; -import WayofTime.alchemicalWizardry.common.PacketHandler; -import WayofTime.alchemicalWizardry.common.spell.complex.effect.SpellHelper; - -public class WaterProjectile extends EnergyBlastProjectile -{ - public WaterProjectile(World par1World) - { - super(par1World); - } - - public WaterProjectile(World par1World, double par2, double par4, double par6) - { - super(par1World, par2, par4, par6); - } - - public WaterProjectile(World par1World, EntityLivingBase par2EntityPlayer, int damage) - { - super(par1World, par2EntityPlayer, damage); - } - - public WaterProjectile(World par1World, EntityLivingBase par2EntityPlayer, int damage, int maxTicksInAir, double posX, double posY, double posZ, float rotationYaw, float rotationPitch) - { - super(par1World, par2EntityPlayer, damage, maxTicksInAir, posX, posY, posZ, rotationYaw, rotationPitch); - } - - @Override - public DamageSource getDamageSource() - { - return DamageSource.causeMobDamage(shootingEntity); - } - - @Override - public void onImpact(MovingObjectPosition mop) - { - if (mop.typeOfHit == MovingObjectPosition.MovingObjectType.ENTITY && mop.entityHit != null) - { - if (mop.entityHit == shootingEntity) - { - return; - } - - this.onImpact(mop.entityHit); - } else if (mop.typeOfHit == MovingObjectPosition.MovingObjectType.BLOCK) - { - } - - this.setDead(); - } - - @Override - public void onImpact(Entity mop) - { - if (mop == shootingEntity && ticksInAir > 3) - { - //shootingEntity.attackEntityFrom(DamageSource.causePlayerDamage(shootingEntity), 1); - this.setDead(); - } else - { - //doDamage(8 + d6(), mop); - if (mop instanceof EntityLivingBase) - { - //((EntityLivingBase)mop).addPotionEffect(new PotionEffect(Potion.weakness.id, 60,2)); - //((EntityLivingBase)mop).setFire(50); - //((EntityLivingBase)mop).setRevengeTarget(shootingEntity); -// if(((EntityLivingBase)mop).isEntityUndead()) -// { -// doDamage((int)(projectileDamage*2),mop); -// }else -// { -// doDamage(projectileDamage, mop); -// } - if (((EntityLivingBase) mop).isImmuneToFire()) - { - doDamage(projectileDamage * 2, mop); - ((EntityLivingBase) mop).addPotionEffect(new PotionEffect(AlchemicalWizardry.customPotionDrowning.id, 80, 1)); - } else - { - doDamage(projectileDamage, mop); - ((EntityLivingBase) mop).addPotionEffect(new PotionEffect(AlchemicalWizardry.customPotionDrowning.id, 80, 0)); - } - - //((EntityLivingBase)mop).setVelocity(this.motionX*2, ((EntityLivingBase)mop).motionY+1.5, this.motionZ*2); - } - - //worldObj.createExplosion(this, this.posX, this.posY, this.posZ, (float)(0.1), true); - } - - spawnHitParticles("magicCrit", 8); - this.setDead(); - } - - @Override - public void doFiringParticles() - { - SpellHelper.sendParticleToAllAround(worldObj, posX, posY, posZ, 30, worldObj.provider.dimensionId, "portal", posX, posY, posZ, -motionX, -motionY, -motionZ); - SpellHelper.sendParticleToAllAround(worldObj, posX, posY, posZ, 30, worldObj.provider.dimensionId, "mobSpellAmbient", posX + smallGauss(0.1D), posY + smallGauss(0.1D), posZ + smallGauss(0.1D), 0.5D, 0.5D, 0.5D); - } -} diff --git a/1.7.2/main/java/WayofTime/alchemicalWizardry/common/entity/projectile/WindGustProjectile.java b/1.7.2/main/java/WayofTime/alchemicalWizardry/common/entity/projectile/WindGustProjectile.java deleted file mode 100644 index 46fa01d7..00000000 --- a/1.7.2/main/java/WayofTime/alchemicalWizardry/common/entity/projectile/WindGustProjectile.java +++ /dev/null @@ -1,110 +0,0 @@ -package WayofTime.alchemicalWizardry.common.entity.projectile; - -import net.minecraft.entity.Entity; -import net.minecraft.entity.EntityLivingBase; -import net.minecraft.util.DamageSource; -import net.minecraft.util.MovingObjectPosition; -import net.minecraft.world.World; -import WayofTime.alchemicalWizardry.common.spell.complex.effect.SpellHelper; - -public class WindGustProjectile extends EnergyBlastProjectile -{ - public WindGustProjectile(World par1World) - { - super(par1World); - } - - public WindGustProjectile(World par1World, double par2, double par4, double par6) - { - super(par1World, par2, par4, par6); - } - - public WindGustProjectile(World par1World, EntityLivingBase par2EntityPlayer, int damage) - { - super(par1World, par2EntityPlayer, damage); - } - - public WindGustProjectile(World par1World, EntityLivingBase par2EntityPlayer, int damage, int maxTicksInAir, double posX, double posY, double posZ, float rotationYaw, float rotationPitch) - { - super(par1World, par2EntityPlayer, damage, maxTicksInAir, posX, posY, posZ, rotationYaw, rotationPitch); - } - - @Override - public DamageSource getDamageSource() - { - return DamageSource.causeMobDamage(shootingEntity); - } - - @Override - public void onImpact(MovingObjectPosition mop) - { - if (mop.typeOfHit == MovingObjectPosition.MovingObjectType.ENTITY && mop.entityHit != null) - { - if (mop.entityHit == shootingEntity) - { - return; - } - - this.onImpact(mop.entityHit); - } else if (mop.typeOfHit == MovingObjectPosition.MovingObjectType.BLOCK) - { -// for(int i=-1;i<=1;i++) -// { -// for(int j=-1;j<=1;j++) -// { -// for(int k=-1;k<=1;k++) -// { -// if(worldObj.isAirBlock((int)this.posX+i, (int)this.posY+j, (int)this.posZ+k)) -// { -// worldObj.setBlock( (int)this.posX+i, (int)this.posY+j, (int)this.posZ+k,Block.fire.blockID); -// } -// } -// } -// } - } - - this.setDead(); - } - - @Override - public void onImpact(Entity mop) - { - if (mop == shootingEntity && ticksInAir > 3) - { - //shootingEntity.attackEntityFrom(DamageSource.causePlayerDamage(shootingEntity), 1); - this.setDead(); - } else - { - //doDamage(8 + d6(), mop); - if (mop instanceof EntityLivingBase) - { - //((EntityLivingBase)mop).addPotionEffect(new PotionEffect(Potion.weakness.id, 60,2)); - //((EntityLivingBase)mop).setFire(50); - //((EntityLivingBase)mop).setRevengeTarget(shootingEntity); -// if(((EntityLivingBase)mop).isEntityUndead()) -// { -// doDamage((int)(projectileDamage*2),mop); -// }else -// { -// doDamage(projectileDamage, mop); -// } - ((EntityLivingBase) mop).motionX = this.motionX * 2; - ((EntityLivingBase) mop).motionY = 1.5; - ((EntityLivingBase) mop).motionZ = this.motionZ * 2; - //((EntityLivingBase)mop).setVelocity(this.motionX*2, ((EntityLivingBase)mop).motionY+1.5, this.motionZ*2); - } - - //worldObj.createExplosion(this, this.posX, this.posY, this.posZ, (float)(0.1), true); - } - - spawnHitParticles("magicCrit", 8); - this.setDead(); - } - - @Override - public void doFiringParticles() - { - SpellHelper.sendParticleToAllAround(worldObj, posX, posY, posZ, 30, worldObj.provider.dimensionId, "mobSpellAmbient", posX + smallGauss(0.1D), posY + smallGauss(0.1D), posZ + smallGauss(0.1D), 0.5D, 0.5D, 0.5D); - SpellHelper.sendParticleToAllAround(worldObj, posX, posY, posZ, 30, worldObj.provider.dimensionId, "mobSpell", posX, posY, posZ, 1.0F, 1.0F, 1.0F); - } -} \ No newline at end of file diff --git a/1.7.2/main/java/WayofTime/alchemicalWizardry/common/harvest/BloodMagicHarvestHandler.java b/1.7.2/main/java/WayofTime/alchemicalWizardry/common/harvest/BloodMagicHarvestHandler.java deleted file mode 100644 index 3d02140b..00000000 --- a/1.7.2/main/java/WayofTime/alchemicalWizardry/common/harvest/BloodMagicHarvestHandler.java +++ /dev/null @@ -1,127 +0,0 @@ -package WayofTime.alchemicalWizardry.common.harvest; - -import java.util.List; - -import net.minecraft.block.Block; -import net.minecraft.entity.item.EntityItem; -import net.minecraft.init.Blocks; -import net.minecraft.init.Items; -import net.minecraft.item.Item; -import net.minecraft.item.ItemStack; -import net.minecraft.world.World; -import net.minecraftforge.common.IPlantable; -import WayofTime.alchemicalWizardry.api.harvest.IHarvestHandler; - -public class BloodMagicHarvestHandler implements IHarvestHandler -{ - public boolean canHandleBlock(Block block) - { - return block == Blocks.wheat || block == Blocks.carrots || block == Blocks.potatoes || block == Blocks.nether_wart; - } - - public int getHarvestMeta(Block block) - { - if(block == Blocks.wheat) - { - return 7; - } - if(block == Blocks.carrots) - { - return 7; - } - if(block == Blocks.potatoes) - { - return 7; - } - if(block == Blocks.nether_wart) - { - return 3; - } - return 7; - } - - @Override - public boolean harvestAndPlant(World world, int xCoord, int yCoord, int zCoord, Block block, int meta) - { - if(!this.canHandleBlock(block) || meta != this.getHarvestMeta(block)) - { - return false; - } - - IPlantable seed = this.getSeedItem(block); - - if(seed == null) - { - return false; - } - - int fortune = 0; - - List list = block.getDrops(world, xCoord, yCoord, zCoord, meta, fortune); - boolean foundAndRemovedSeed = false; - - for(ItemStack stack : list) - { - if(stack == null) - { - continue; - } - - Item item = stack.getItem(); - if(item == seed) - { - int itemSize = stack.stackSize; - if(itemSize > 1) - { - stack.stackSize--; - foundAndRemovedSeed = true; - break; - }else if(itemSize == 1) - { - list.remove(stack); - foundAndRemovedSeed = true; - break; - } - } - } - - if(foundAndRemovedSeed) - { - int plantMeta = seed.getPlantMetadata(world, xCoord, yCoord, zCoord); - Block plantBlock = seed.getPlant(world, xCoord, yCoord, zCoord); - - world.setBlock(xCoord, yCoord, zCoord, plantBlock, plantMeta, 3); - - for(ItemStack stack : list) - { - EntityItem itemEnt = new EntityItem(world, xCoord, yCoord, zCoord, stack); - - world.spawnEntityInWorld(itemEnt); - } - } - - return false; - } - - public IPlantable getSeedItem(Block block) - { - if(block == Blocks.wheat) - { - return (IPlantable) Items.wheat_seeds; - } - if(block == Blocks.carrots) - { - return (IPlantable) Items.carrot; - } - if(block == Blocks.potatoes) - { - return (IPlantable) Items.potato; - } - if(block == Blocks.nether_wart) - { - return (IPlantable) Items.nether_wart; - } - - return null; - } -} \ No newline at end of file diff --git a/1.7.2/main/java/WayofTime/alchemicalWizardry/common/harvest/GourdHarvestHandler.java b/1.7.2/main/java/WayofTime/alchemicalWizardry/common/harvest/GourdHarvestHandler.java deleted file mode 100644 index 74624427..00000000 --- a/1.7.2/main/java/WayofTime/alchemicalWizardry/common/harvest/GourdHarvestHandler.java +++ /dev/null @@ -1,45 +0,0 @@ -package WayofTime.alchemicalWizardry.common.harvest; - -import java.util.List; - -import net.minecraft.block.Block; -import net.minecraft.entity.item.EntityItem; -import net.minecraft.init.Blocks; -import net.minecraft.init.Items; -import net.minecraft.item.Item; -import net.minecraft.item.ItemStack; -import net.minecraft.world.World; -import net.minecraftforge.common.IPlantable; -import WayofTime.alchemicalWizardry.api.harvest.IHarvestHandler; - -public class GourdHarvestHandler implements IHarvestHandler -{ - public boolean canHandleBlock(Block block) - { - return block == Blocks.melon_block || block == Blocks.pumpkin; - } - - @Override - public boolean harvestAndPlant(World world, int xCoord, int yCoord, int zCoord, Block block, int meta) - { - if(!this.canHandleBlock(block)) - { - return false; - } - - int fortune = 0; - - List list = block.getDrops(world, xCoord, yCoord, zCoord, meta, fortune); - - world.setBlockToAir(xCoord, yCoord, zCoord); - - for(ItemStack stack : list) - { - EntityItem itemEnt = new EntityItem(world, xCoord, yCoord, zCoord, stack); - - world.spawnEntityInWorld(itemEnt); - } - - return true; - } -} \ No newline at end of file diff --git a/1.7.2/main/java/WayofTime/alchemicalWizardry/common/items/AWBaseItems.java b/1.7.2/main/java/WayofTime/alchemicalWizardry/common/items/AWBaseItems.java deleted file mode 100644 index dd3e4a69..00000000 --- a/1.7.2/main/java/WayofTime/alchemicalWizardry/common/items/AWBaseItems.java +++ /dev/null @@ -1,44 +0,0 @@ -package WayofTime.alchemicalWizardry.common.items; - -import java.util.List; - -import net.minecraft.client.renderer.texture.IIconRegister; -import net.minecraft.entity.player.EntityPlayer; -import net.minecraft.item.Item; -import net.minecraft.item.ItemStack; -import WayofTime.alchemicalWizardry.AlchemicalWizardry; -import WayofTime.alchemicalWizardry.ModItems; - -public class AWBaseItems extends Item -{ - public AWBaseItems() - { - super(); - setMaxStackSize(64); - setCreativeTab(AlchemicalWizardry.tabBloodMagic); - } - - public void registerIcons(IIconRegister iconRegister) - { - if (this.equals(ModItems.blankSlate)) - { - this.itemIcon = iconRegister.registerIcon("AlchemicalWizardry:BlankSlate"); - } else if (this.equals(ModItems.reinforcedSlate)) - { - this.itemIcon = iconRegister.registerIcon("AlchemicalWizardry:ReinforcedSlate"); - } else if (this.equals(ModItems.imbuedSlate)) - { - this.itemIcon = iconRegister.registerIcon("AlchemicalWizardry:InfusedSlate"); - } else if (this.equals(ModItems.demonicSlate)) - { - this.itemIcon = iconRegister.registerIcon("AlchemicalWizardry:DemonSlate"); - } - } - - @Override - public void addInformation(ItemStack par1ItemStack, EntityPlayer par2EntityPlayer, List par3List, boolean par4) - { - par3List.add("Infused stone inside of"); - par3List.add("a blood altar"); - } -} diff --git a/1.7.2/main/java/WayofTime/alchemicalWizardry/common/items/ActivationCrystal.java b/1.7.2/main/java/WayofTime/alchemicalWizardry/common/items/ActivationCrystal.java deleted file mode 100644 index 6c6c6fc2..00000000 --- a/1.7.2/main/java/WayofTime/alchemicalWizardry/common/items/ActivationCrystal.java +++ /dev/null @@ -1,135 +0,0 @@ -package WayofTime.alchemicalWizardry.common.items; - -import java.util.List; - -import javax.swing.Icon; - -import net.minecraft.client.renderer.texture.IIconRegister; -import net.minecraft.creativetab.CreativeTabs; -import net.minecraft.entity.player.EntityPlayer; -import net.minecraft.item.Item; -import net.minecraft.item.ItemStack; -import net.minecraft.util.EnumChatFormatting; -import net.minecraft.util.IIcon; -import net.minecraft.util.MathHelper; -import net.minecraft.world.World; - -import org.lwjgl.input.Keyboard; - -import WayofTime.alchemicalWizardry.AlchemicalWizardry; -import WayofTime.alchemicalWizardry.api.alchemy.AlchemyRecipeRegistry; -import cpw.mods.fml.relauncher.Side; -import cpw.mods.fml.relauncher.SideOnly; - -public class ActivationCrystal extends EnergyItems -{ - private static final String[] ACTIVATION_CRYSTAL_NAMES = new String[]{"Weak", "Awakened"}; - - @SideOnly(Side.CLIENT) - private IIcon[] icons; - - public ActivationCrystal() - { - super(); - this.maxStackSize = 1; - setEnergyUsed(100); - this.setCreativeTab(AlchemicalWizardry.tabBloodMagic); - this.hasSubtypes = true; - } - - @Override - @SideOnly(Side.CLIENT) - public void registerIcons(IIconRegister iconRegister) - { - icons = new IIcon[ACTIVATION_CRYSTAL_NAMES.length]; - - for (int i = 0; i < ACTIVATION_CRYSTAL_NAMES.length; ++i) - { - icons[i] = iconRegister.registerIcon("AlchemicalWizardry:" + "activationCrystal" + ACTIVATION_CRYSTAL_NAMES[i]); - } - } - - @Override - public void addInformation(ItemStack par1ItemStack, EntityPlayer par2EntityPlayer, List par3List, boolean par4) - { - switch (par1ItemStack.getItemDamage()) - { - case 0: - { - par3List.add("Activates low-level rituals"); - break; - } - - case 1: - { - par3List.add("Activates more powerful rituals"); - - if (Keyboard.isKeyDown(Keyboard.KEY_RSHIFT) || Keyboard.isKeyDown(Keyboard.KEY_LSHIFT)) - { - ItemStack[] recipe = AlchemyRecipeRegistry.getRecipeForItemStack(par1ItemStack); - - if (recipe != null) - { - par3List.add(EnumChatFormatting.BLUE + "Recipe:"); - - for (ItemStack item : recipe) - { - if (item != null) - { - par3List.add("" + item.getDisplayName()); - } - } - } - } else - { - par3List.add("-Press " + EnumChatFormatting.BLUE + "shift" + EnumChatFormatting.GRAY + " for Recipe-"); - } - - break; - } - } - - 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); - return par1ItemStack; - } - - public int getCrystalLevel(ItemStack itemStack) - { - return itemStack.getItemDamage() + 1; - } - - @Override - public String getUnlocalizedName(ItemStack itemStack) - { - //This is what will do all the localisation things on the alchemy components so you dont have to set it :D - int meta = MathHelper.clamp_int(itemStack.getItemDamage(), 0, ACTIVATION_CRYSTAL_NAMES.length - 1); - return ("" + "item.activationCrystal" + ACTIVATION_CRYSTAL_NAMES[meta]); - } - - @Override - @SideOnly(Side.CLIENT) - public IIcon getIconFromDamage(int meta) - { - int j = MathHelper.clamp_int(meta, 0, ACTIVATION_CRYSTAL_NAMES.length - 1); - return icons[j]; - } - - @Override - @SideOnly(Side.CLIENT) - public void getSubItems(Item id, CreativeTabs creativeTab, List list) - { - for (int meta = 0; meta < ACTIVATION_CRYSTAL_NAMES.length; ++meta) - { - list.add(new ItemStack(id, 1, meta)); - } - } -} diff --git a/1.7.2/main/java/WayofTime/alchemicalWizardry/common/items/AirScribeTool.java b/1.7.2/main/java/WayofTime/alchemicalWizardry/common/items/AirScribeTool.java deleted file mode 100644 index 9f20b743..00000000 --- a/1.7.2/main/java/WayofTime/alchemicalWizardry/common/items/AirScribeTool.java +++ /dev/null @@ -1,20 +0,0 @@ -package WayofTime.alchemicalWizardry.common.items; - -import net.minecraft.client.renderer.texture.IIconRegister; -import cpw.mods.fml.relauncher.Side; -import cpw.mods.fml.relauncher.SideOnly; - -public class AirScribeTool extends ScribeTool -{ - public AirScribeTool() - { - super(4); - } - - @Override - @SideOnly(Side.CLIENT) - public void registerIcons(IIconRegister iconRegister) - { - this.itemIcon = iconRegister.registerIcon("AlchemicalWizardry:AirScribeTool"); - } -} \ No newline at end of file diff --git a/1.7.2/main/java/WayofTime/alchemicalWizardry/common/items/ApprenticeBloodOrb.java b/1.7.2/main/java/WayofTime/alchemicalWizardry/common/items/ApprenticeBloodOrb.java deleted file mode 100644 index 3bc4a2eb..00000000 --- a/1.7.2/main/java/WayofTime/alchemicalWizardry/common/items/ApprenticeBloodOrb.java +++ /dev/null @@ -1,21 +0,0 @@ -package WayofTime.alchemicalWizardry.common.items; - -import net.minecraft.client.renderer.texture.IIconRegister; -import cpw.mods.fml.relauncher.Side; -import cpw.mods.fml.relauncher.SideOnly; - -public class ApprenticeBloodOrb extends EnergyBattery -{ - public ApprenticeBloodOrb(int damage) - { - super(damage); - orbLevel = 2; - } - - @Override - @SideOnly(Side.CLIENT) - public void registerIcons(IIconRegister iconRegister) - { - this.itemIcon = iconRegister.registerIcon("AlchemicalWizardry:ApprenticeBloodOrb"); - } -} diff --git a/1.7.2/main/java/WayofTime/alchemicalWizardry/common/items/ArchmageBloodOrb.java b/1.7.2/main/java/WayofTime/alchemicalWizardry/common/items/ArchmageBloodOrb.java deleted file mode 100644 index 6bd83098..00000000 --- a/1.7.2/main/java/WayofTime/alchemicalWizardry/common/items/ArchmageBloodOrb.java +++ /dev/null @@ -1,21 +0,0 @@ -package WayofTime.alchemicalWizardry.common.items; - -import net.minecraft.client.renderer.texture.IIconRegister; -import cpw.mods.fml.relauncher.Side; -import cpw.mods.fml.relauncher.SideOnly; - -public class ArchmageBloodOrb extends EnergyBattery -{ - public ArchmageBloodOrb(int damage) - { - super(damage); - orbLevel = 5; - } - - @Override - @SideOnly(Side.CLIENT) - public void registerIcons(IIconRegister iconRegister) - { - this.itemIcon = iconRegister.registerIcon("AlchemicalWizardry:ArchmageBloodOrb"); - } -} diff --git a/1.7.2/main/java/WayofTime/alchemicalWizardry/common/items/ArmourInhibitor.java b/1.7.2/main/java/WayofTime/alchemicalWizardry/common/items/ArmourInhibitor.java deleted file mode 100644 index 1b42a0de..00000000 --- a/1.7.2/main/java/WayofTime/alchemicalWizardry/common/items/ArmourInhibitor.java +++ /dev/null @@ -1,215 +0,0 @@ -package WayofTime.alchemicalWizardry.common.items; - -import java.util.List; - -import javax.swing.Icon; - -import net.minecraft.client.renderer.texture.IIconRegister; -import net.minecraft.entity.Entity; -import net.minecraft.entity.player.EntityPlayer; -import net.minecraft.item.ItemStack; -import net.minecraft.nbt.NBTTagCompound; -import net.minecraft.potion.PotionEffect; -import net.minecraft.util.IIcon; -import net.minecraft.world.World; -import WayofTime.alchemicalWizardry.AlchemicalWizardry; -import cpw.mods.fml.relauncher.Side; -import cpw.mods.fml.relauncher.SideOnly; - -public class ArmourInhibitor extends EnergyItems -{ - private static IIcon activeIcon; - private static IIcon passiveIcon; - private int tickDelay = 200; - - public ArmourInhibitor() - { - super(); - this.maxStackSize = 1; - //setMaxDamage(1000); - setEnergyUsed(0); - setCreativeTab(AlchemicalWizardry.tabBloodMagic); - } - - @Override - public void addInformation(ItemStack par1ItemStack, EntityPlayer par2EntityPlayer, List par3List, boolean par4) - { - par3List.add("Used to suppress a soul's"); - par3List.add("unnatural abilities."); - - if (!(par1ItemStack.stackTagCompound == null)) - { - if (par1ItemStack.stackTagCompound.getBoolean("isActive")) - { - par3List.add("Activated"); - } else - { - par3List.add("Deactivated"); - } - - par3List.add("Current owner: " + par1ItemStack.stackTagCompound.getString("ownerName")); - } - } - - @Override - @SideOnly(Side.CLIENT) - public void registerIcons(IIconRegister iconRegister) - { - this.itemIcon = iconRegister.registerIcon("AlchemicalWizardry:ArmourInhibitor_deactivated"); - this.activeIcon = iconRegister.registerIcon("AlchemicalWizardry:ArmourInhibitor_activated"); - this.passiveIcon = iconRegister.registerIcon("AlchemicalWizardry:ArmourInhibitor_deactivated"); - } - - @Override - public IIcon getIcon(ItemStack stack, int renderPass, EntityPlayer player, ItemStack usingItem, int useRemaining) - { - if (stack.stackTagCompound == null) - { - stack.setTagCompound(new NBTTagCompound()); - } - - NBTTagCompound tag = stack.stackTagCompound; - - if (tag.getBoolean("isActive")) - { - return this.activeIcon; - } else - { - return this.passiveIcon; - } - } - - @Override - @SideOnly(Side.CLIENT) - public IIcon getIconFromDamage(int par1) - { - if (par1 == 1) - { - return this.activeIcon; - } else - { - return this.passiveIcon; - } - } - -// @Override -// public boolean onItemUse(ItemStack par1ItemStack, EntityPlayer par2EntityPlayer, World par3World, int par4, int par5, int par6, int par7, float par8, float par9, float par10) -// { -// -// if(applyBonemeal(par1ItemStack,par3World,par4,par5,par6,par2EntityPlayer)) -// { -// if (par3World.isRemote) -// { -// par3World.playAuxSFX(2005, par4, par5, par6, 0); -// EnergyItems.syphonBatteries(par1ItemStack, par2EntityPlayer, getEnergyUsed()); -// return true; -// } -// return true; -// } -// return false; -// } - - @Override - public ItemStack onItemRightClick(ItemStack par1ItemStack, World par2World, EntityPlayer par3EntityPlayer) - { - EnergyItems.checkAndSetItemOwner(par1ItemStack, par3EntityPlayer); - - if (par3EntityPlayer.isSneaking()) - { - return par1ItemStack; - } - - if (par1ItemStack.stackTagCompound == null) - { - par1ItemStack.setTagCompound(new NBTTagCompound()); - } - - NBTTagCompound tag = par1ItemStack.stackTagCompound; - tag.setBoolean("isActive", !(tag.getBoolean("isActive"))); - - if (tag.getBoolean("isActive")) - { - par1ItemStack.setItemDamage(1); - tag.setInteger("worldTimeDelay", (int) (par2World.getWorldTime() - 1) % tickDelay); - - if (!par3EntityPlayer.capabilities.isCreativeMode) - { - //EnergyItems.syphonBatteries(par1ItemStack, par3EntityPlayer, getEnergyUsed()); - } - } else - { - par1ItemStack.setItemDamage(par1ItemStack.getMaxDamage()); - } - - return par1ItemStack; - } - - @Override - public void onUpdate(ItemStack par1ItemStack, World par2World, Entity par3Entity, int par4, boolean par5) - { - if (!(par3Entity instanceof EntityPlayer)) - { - return; - } - - EntityPlayer par3EntityPlayer = (EntityPlayer) par3Entity; - - if (par1ItemStack.stackTagCompound == null) - { - par1ItemStack.setTagCompound(new NBTTagCompound()); - } - - if (par1ItemStack.stackTagCompound.getBoolean("isActive")) - { - if (par2World.getWorldTime() % tickDelay == par1ItemStack.stackTagCompound.getInteger("worldTimeDelay") && par3Entity instanceof EntityPlayer) - { - //EnergyItems.syphonBatteries(par1ItemStack, (EntityPlayer)par3Entity, getEnergyUsed()); - } - - //TODO Do stuff - par3EntityPlayer.addPotionEffect(new PotionEffect(AlchemicalWizardry.customPotionInhibit.id, 2, 0)); - } - - return; - } - -// @Override -// public void onArmourUpdate(World world, EntityPlayer player, ItemStack thisItemStack) { -// -// int range = 5; -// int verticalRange = 2; -// int posX = (int)Math.round(player.posX-0.5f); -// int posY = (int)player.posY; -// int posZ = (int)Math.round(player.posZ-0.5f); -// -// for(int ix=posX-range;ix<=posX+range;ix++) -// { -// for(int iz=posZ-range;iz<=posZ+range;iz++) -// { -// for(int iy=posY-verticalRange;iy<=posY+verticalRange;iy++) -// { -// int id = world.getBlockId(ix, iy, iz); -// Block block = Block.blocksList[id]; -// if(block instanceof IPlantable) -// { -// if(world.rand.nextInt(10)==0) -// block.updateTick(world, ix, iy, iz, world.rand); -// } -// } -// } -// } -// -// } - -// @Override -// public boolean isUpgrade() { -// // TODO Auto-generated method stub -// return true; -// } -// -// @Override -// public int getEnergyForTenSeconds() { -// // TODO Auto-generated method stub -// return 50; -// } -} diff --git a/1.7.2/main/java/WayofTime/alchemicalWizardry/common/items/BlankSpell.java b/1.7.2/main/java/WayofTime/alchemicalWizardry/common/items/BlankSpell.java deleted file mode 100644 index 58c004d3..00000000 --- a/1.7.2/main/java/WayofTime/alchemicalWizardry/common/items/BlankSpell.java +++ /dev/null @@ -1,114 +0,0 @@ -package WayofTime.alchemicalWizardry.common.items; - -import java.util.List; - -import net.minecraft.client.renderer.texture.IIconRegister; -import net.minecraft.entity.player.EntityPlayer; -import net.minecraft.item.ItemStack; -import net.minecraft.nbt.NBTTagCompound; -import net.minecraft.tileentity.TileEntity; -import net.minecraft.world.World; -import net.minecraftforge.common.DimensionManager; -import WayofTime.alchemicalWizardry.AlchemicalWizardry; -import WayofTime.alchemicalWizardry.common.tileEntity.TEHomHeart; -import cpw.mods.fml.relauncher.Side; -import cpw.mods.fml.relauncher.SideOnly; - -public class BlankSpell extends EnergyItems -{ - public BlankSpell() - { - super(); - this.setMaxStackSize(1); - setCreativeTab(AlchemicalWizardry.tabBloodMagic); - } - - @Override - @SideOnly(Side.CLIENT) - public void registerIcons(IIconRegister iconRegister) - { - this.itemIcon = iconRegister.registerIcon("AlchemicalWizardry:BlankSpell"); - } - - @Override - public void addInformation(ItemStack par1ItemStack, EntityPlayer par2EntityPlayer, List par3List, boolean par4) - { - par3List.add("Crystal of infinite possibilities."); - - if (!(par1ItemStack.stackTagCompound == null)) - { - NBTTagCompound itemTag = par1ItemStack.stackTagCompound; - - if (!par1ItemStack.stackTagCompound.getString("ownerName").equals("")) - { - par3List.add("Current owner: " + par1ItemStack.stackTagCompound.getString("ownerName")); - } - - par3List.add("Coords: " + itemTag.getInteger("xCoord") + ", " + itemTag.getInteger("yCoord") + ", " + itemTag.getInteger("zCoord")); - par3List.add("Bound Dimension: " + getDimensionID(par1ItemStack)); - } - } - - @Override - public ItemStack onItemRightClick(ItemStack par1ItemStack, World par2World, EntityPlayer par3EntityPlayer) - { - EnergyItems.checkAndSetItemOwner(par1ItemStack, par3EntityPlayer); - - if (par3EntityPlayer.isSneaking()) - { - return par1ItemStack; - } - - if (!par2World.isRemote) - { - //World world = MinecraftServer.getServer().worldServers[getDimensionID(par1ItemStack)]; - World world = DimensionManager.getWorld(getDimensionID(par1ItemStack)); - - if (world != null) - { - NBTTagCompound itemTag = par1ItemStack.stackTagCompound; - TileEntity tileEntity = world.getTileEntity(itemTag.getInteger("xCoord"), itemTag.getInteger("yCoord"), itemTag.getInteger("zCoord")); - - if (tileEntity instanceof TEHomHeart) - { - TEHomHeart homHeart = (TEHomHeart) tileEntity; - - if (homHeart.canCastSpell(par1ItemStack, par2World, par3EntityPlayer)) - { - EnergyItems.syphonBatteries(par1ItemStack, par3EntityPlayer, homHeart.castSpell(par1ItemStack, par2World, par3EntityPlayer)); - } else - { - return par1ItemStack; - } - } else - { - return par1ItemStack; - } - } else - { - return par1ItemStack; - } - } else - { - return par1ItemStack; - } - - par2World.playSoundAtEntity(par3EntityPlayer, "random.fizz", 0.5F, 0.4F / (itemRand.nextFloat() * 0.4F + 0.8F)); -// if (!par2World.isRemote) -// { -// //par2World.spawnEntityInWorld(new EnergyBlastProjectile(par2World, par3EntityPlayer, damage)); -// par2World.spawnEntityInWorld(new FireProjectile(par2World, par3EntityPlayer, 10)); -// } - return par1ItemStack; - } - - public int getDimensionID(ItemStack itemStack) - { - if (itemStack.stackTagCompound == null) - { - itemStack.setTagCompound(new NBTTagCompound()); - } - - return itemStack.stackTagCompound.getInteger("dimensionId"); - } -} diff --git a/1.7.2/main/java/WayofTime/alchemicalWizardry/common/items/BloodShard.java b/1.7.2/main/java/WayofTime/alchemicalWizardry/common/items/BloodShard.java deleted file mode 100644 index 43b5e5b8..00000000 --- a/1.7.2/main/java/WayofTime/alchemicalWizardry/common/items/BloodShard.java +++ /dev/null @@ -1,73 +0,0 @@ -package WayofTime.alchemicalWizardry.common.items; - -import net.minecraft.client.renderer.texture.IIconRegister; -import net.minecraft.entity.player.EntityPlayer; -import net.minecraft.item.Item; -import net.minecraft.item.ItemStack; -import net.minecraft.world.World; -import WayofTime.alchemicalWizardry.AlchemicalWizardry; -import WayofTime.alchemicalWizardry.ModItems; -import WayofTime.alchemicalWizardry.api.items.interfaces.ArmourUpgrade; -import cpw.mods.fml.relauncher.Side; -import cpw.mods.fml.relauncher.SideOnly; - -public class BloodShard extends Item implements ArmourUpgrade -{ - public BloodShard() - { - super(); - this.maxStackSize = 64; - //setEnergyUsed(100); - setCreativeTab(AlchemicalWizardry.tabBloodMagic); - } - - @Override - @SideOnly(Side.CLIENT) - public void registerIcons(IIconRegister iconRegister) - { - if (this.equals(ModItems.weakBloodShard)) - { - this.itemIcon = iconRegister.registerIcon("AlchemicalWizardry:WeakBloodShard"); - return; - } - - if (this.equals(ModItems.demonBloodShard)) - { - this.itemIcon = iconRegister.registerIcon("AlchemicalWizardry:DemonBloodShard"); - return; - } - } - - public int getBloodShardLevel() - { - if (this.equals(ModItems.weakBloodShard)) - { - return 1; - } else if (this.equals(ModItems.demonBloodShard)) - { - return 2; - } - - return 0; - } - - @Override - public void onArmourUpdate(World world, EntityPlayer player, ItemStack thisItemStack) - { - // TODO Auto-generated method stub - } - - @Override - public boolean isUpgrade() - { - // TODO Auto-generated method stub - return false; - } - - @Override - public int getEnergyForTenSeconds() - { - // TODO Auto-generated method stub - return 0; - } -} diff --git a/1.7.2/main/java/WayofTime/alchemicalWizardry/common/items/BloodboundSword.java b/1.7.2/main/java/WayofTime/alchemicalWizardry/common/items/BloodboundSword.java deleted file mode 100644 index 07b4ac20..00000000 --- a/1.7.2/main/java/WayofTime/alchemicalWizardry/common/items/BloodboundSword.java +++ /dev/null @@ -1,103 +0,0 @@ -package WayofTime.alchemicalWizardry.common.items; - -import java.util.List; - -import net.minecraft.block.Block; -import net.minecraft.block.material.Material; -import net.minecraft.client.renderer.texture.IIconRegister; -import net.minecraft.entity.EntityLivingBase; -import net.minecraft.entity.player.EntityPlayer; -import net.minecraft.init.Blocks; -import net.minecraft.item.ItemStack; -import net.minecraft.nbt.NBTTagCompound; -import WayofTime.alchemicalWizardry.AlchemicalWizardry; -import cpw.mods.fml.relauncher.Side; -import cpw.mods.fml.relauncher.SideOnly; - -public class BloodboundSword extends EnergyItems -{ - private float weaponDamage; - //private int maxMode = 3; - private NBTTagCompound data; - - public BloodboundSword(int id) - { - super(); - this.maxStackSize = 1; - setCreativeTab(AlchemicalWizardry.tabBloodMagic); - setEnergyUsed(100); - setFull3D(); - weaponDamage = 10.0F; - } - - @Override - @SideOnly(Side.CLIENT) - public void registerIcons(IIconRegister iconRegister) - { - this.itemIcon = iconRegister.registerIcon("AlchemicalWizardry:EnergySword"); - } - - public boolean hitEntity(ItemStack par1ItemStack, EntityLivingBase par2EntityLivingBase, EntityLivingBase par3EntityLivingBase) - { - if (par3EntityLivingBase instanceof EntityPlayer) - { - EnergyItems.checkAndSetItemOwner(par1ItemStack, (EntityPlayer) par3EntityLivingBase); - - if (!this.syphonBatteries(par1ItemStack, (EntityPlayer) par3EntityLivingBase, this.getEnergyUsed())) - { - //this.damagePlayer(null, (EntityPlayer)par3EntityLivingBase, (this.getEnergyUsed() + 99) / 100); - } - } - - return true; - } - - /* - public int getDamageVsEntity(Entity par1Entity) - { - return this.weaponDamage; - } - */ - - public float func_82803_g() - { - return 4.0F; - } - - @Override - public void addInformation(ItemStack par1ItemStack, EntityPlayer par2EntityPlayer, List par3List, boolean par4) - { - par3List.add("Caution: may cause"); - par3List.add("a bad day..."); - - if (!(par1ItemStack.stackTagCompound == null)) - { - par3List.add("Current owner: " + par1ItemStack.stackTagCompound.getString("ownerName")); - } - } - - @Override - public float getDigSpeed(ItemStack par1ItemStack, Block par2Block, int meta) - { - if (par2Block.equals(Blocks.web)) - { - return 15.0F; - } else - { - Material material = par2Block.getMaterial(); - return material != Material.plants && material != Material.vine && material != Material.coral && material != Material.leaves && material != Material.gourd ? 1.0F : 1.5F; - } - } - - public boolean getIsRepairable(ItemStack par1ItemStack, ItemStack par2ItemStack) - { - return false; - } - -// public Multimap func_111205_h() -// { -// Multimap multimap = super.func_111205_h(); -// multimap.put(SharedMonsterAttributes.field_111264_e.func_111108_a(), new AttributeModifier(field_111210_e, "Weapon modifier", (double)this.weaponDamage, 0)); -// return multimap; -// } -} \ No newline at end of file diff --git a/1.7.2/main/java/WayofTime/alchemicalWizardry/common/items/BoundArmour.java b/1.7.2/main/java/WayofTime/alchemicalWizardry/common/items/BoundArmour.java deleted file mode 100644 index e756bc86..00000000 --- a/1.7.2/main/java/WayofTime/alchemicalWizardry/common/items/BoundArmour.java +++ /dev/null @@ -1,594 +0,0 @@ -package WayofTime.alchemicalWizardry.common.items; - -import java.util.List; - -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.item.Item; -import net.minecraft.item.ItemArmor; -import net.minecraft.item.ItemStack; -import net.minecraft.nbt.NBTTagCompound; -import net.minecraft.nbt.NBTTagList; -import net.minecraft.potion.Potion; -import net.minecraft.util.DamageSource; -import net.minecraft.util.IIcon; -import net.minecraft.world.World; -import net.minecraftforge.common.ISpecialArmor; -import net.minecraftforge.common.util.Constants; -import thaumcraft.api.IGoggles; -import thaumcraft.api.nodes.IRevealer; -import WayofTime.alchemicalWizardry.AlchemicalWizardry; -import WayofTime.alchemicalWizardry.ModItems; -import WayofTime.alchemicalWizardry.api.items.interfaces.ArmourUpgrade; -import WayofTime.alchemicalWizardry.api.items.interfaces.IBindable; -import cpw.mods.fml.common.Optional; -import cpw.mods.fml.common.Optional.Interface; -import cpw.mods.fml.relauncher.Side; -import cpw.mods.fml.relauncher.SideOnly; - -@Optional.InterfaceList(value = {@Interface(iface="thaumcraft.api.nodes.IRevealer", modid = "Thaumcraft"), @Interface(iface="thaumcraft.api.IGoggles", modid = "Thaumcraft")}) -public class BoundArmour extends ItemArmor implements ISpecialArmor,IBindable ,IRevealer, IGoggles -{ - private static int invSize = 9; - private static IIcon helmetIcon; - private static IIcon plateIcon; - private static IIcon leggingsIcon; - private static IIcon bootsIcon; - - public BoundArmour(int armorType) - { - super(ItemArmor.ArmorMaterial.GOLD, 0, armorType); - setMaxDamage(1000); - setCreativeTab(AlchemicalWizardry.tabBloodMagic); - } - - @Override - @SideOnly(Side.CLIENT) - public void registerIcons(IIconRegister iconRegister) - { - this.itemIcon = iconRegister.registerIcon("AlchemicalWizardry:SheathedItem"); - this.helmetIcon = iconRegister.registerIcon("AlchemicalWizardry:BoundHelmet"); - this.plateIcon = iconRegister.registerIcon("AlchemicalWizardry:BoundPlate"); - this.leggingsIcon = iconRegister.registerIcon("AlchemicalWizardry:BoundLeggings"); - this.bootsIcon = iconRegister.registerIcon("AlchemicalWizardry:BoundBoots"); - } - - @SideOnly(Side.CLIENT) - - public IIcon getIconFromDamage(int par1) - { - if (this.equals(ModItems.boundHelmet)) - { - return this.helmetIcon; - } - - if (this.equals(ModItems.boundPlate)) - { - return this.plateIcon; - } - - if (this.equals(ModItems.boundLeggings)) - { - return this.leggingsIcon; - } - - if (this.equals(ModItems.boundBoots)) - { - return this.bootsIcon; - } - - return this.itemIcon; - } - - @Override - public boolean getIsRepairable(ItemStack par1ItemStack, ItemStack par2ItemStack) - { - return false; - } - - @Override - public ArmorProperties getProperties(EntityLivingBase player, ItemStack armor, DamageSource source, double damage, int slot) - { - if (source.equals(DamageSource.drown)) - { - return new ArmorProperties(-1, 0, 0); - } - - if (source.equals(DamageSource.outOfWorld)) - { - if (isImmuneToVoid(armor)) - { - return new ArmorProperties(-1, 3, 100000); - } else - { - return new ArmorProperties(-1, 0, 0); - } - } - - ItemStack helmet = player.getEquipmentInSlot(4); - ItemStack plate = player.getEquipmentInSlot(3); - ItemStack leggings = player.getEquipmentInSlot(2); - ItemStack boots = player.getEquipmentInSlot(1); - - if (helmet == null || plate == null || leggings == null || boots == null) - { - return new ArmorProperties(-1, 0, 0); - } - - if (helmet.getItem().equals(ModItems.boundHelmet) || plate.getItem().equals(ModItems.boundPlate) || leggings.getItem().equals(ModItems.boundLeggings) || boots.getItem().equals(ModItems.boundBoots)) - { - if (source.isUnblockable()) - { - return new ArmorProperties(-1, 3, 4); - } - - return new ArmorProperties(-1, 3, 100000); - } - - return new ArmorProperties(-1, 0, 0); - } - - @Override - public int getArmorDisplay(EntityPlayer player, ItemStack armor, int slot) - { - if (armor.equals(ModItems.boundHelmet)) - { - return 3; - } - - if (armor.equals(ModItems.boundPlate)) - { - return 8; - } - - if (armor.equals(ModItems.boundLeggings)) - { - return 6; - } - - if (armor.equals(ModItems.boundBoots)) - { - return 3; - } - - return 5; - } - - @Override - public void damageArmor(EntityLivingBase entity, ItemStack stack, DamageSource source, int damage, int slot) - { - if (entity instanceof EntityPlayer) - { - EnergyItems.checkAndSetItemOwner(stack, (EntityPlayer) entity); - - if (((EntityPlayer) entity).capabilities.isCreativeMode) - { - return; - } - - //EnergyItems.syphonBatteries(stack, (EntityPlayer)entity, 200); - } - - stack.setItemDamage(stack.getItemDamage() + damage); - } - - @Override - public void addInformation(ItemStack par1ItemStack, EntityPlayer par2EntityPlayer, List par3List, boolean par4) - { - par3List.add("Devilish Protection"); - - if (!(par1ItemStack.stackTagCompound == null)) - { - if (!par1ItemStack.stackTagCompound.getString("ownerName").equals("")) - { - par3List.add("Current owner: " + par1ItemStack.stackTagCompound.getString("ownerName")); - } - - ItemStack[] inv = getInternalInventory(par1ItemStack); - - if (inv == null) - { - return; - } - - for (int i = 0; i < invSize; i++) - { - if (inv[i] != null) - { - par3List.add("Item in slot " + i + ": " + inv[i].getDisplayName()); - } - } - } - } - - @Override - public String getArmorTexture(ItemStack stack, Entity entity, int slot, String type) - { - //TODO Make the armour invisible when the player has Invisibility on. - if (entity instanceof EntityLivingBase) - { - if (((EntityLivingBase) entity).isPotionActive(Potion.invisibility.id)) - { - if (this== ModItems.boundHelmet || this == ModItems.boundPlate || this == ModItems.boundBoots) - { - return "alchemicalwizardry:models/armor/boundArmour_invisible_layer_1.png"; - } - - if (this == ModItems.boundLeggings) - { - return "alchemicalwizardry:models/armor/boundArmour_invisible_layer_2.png"; - } - } - } - - if (this == ModItems.boundHelmet || this == ModItems.boundPlate || this == ModItems.boundBoots) - { - return "alchemicalwizardry:models/armor/boundArmour_layer_1.png"; - } - - if (this == ModItems.boundLeggings) - { - return "alchemicalwizardry:models/armor/boundArmour_layer_2.png"; - } else - { - return null; - } - } - - @Override - public ItemStack onItemRightClick(ItemStack par1ItemStack, World par2World, EntityPlayer par3EntityPlayer) - { - EnergyItems.checkAndSetItemOwner(par1ItemStack, par3EntityPlayer); - return super.onItemRightClick(par1ItemStack, par2World, par3EntityPlayer); - } - - @Override - public void onArmorTick(World world, EntityPlayer player, ItemStack itemStack) - { - if (itemStack.stackTagCompound == null) - { - itemStack.setTagCompound(new NBTTagCompound()); - } - - int maxBloodLevel = getMaxBloodShardLevel(itemStack); - ItemStack[] inv = getInternalInventory(itemStack); - - if (inv != null) - { - int iSize = 0; - int iBlood = 0; - } - - if (!player.isPotionActive(AlchemicalWizardry.customPotionInhibit)) - { - tickInternalInventory(itemStack, world, player, 0, false); - } - - if (itemStack.getItemDamage() > 0) - { - EnergyItems.checkAndSetItemOwner(itemStack, player); - - if (!player.capabilities.isCreativeMode) - { - EnergyItems.syphonBatteries(itemStack, player, itemStack.getItemDamage() * 75); - itemStack.setItemDamage(0); - } - } - - return; - } - - public void tickInternalInventory(ItemStack par1ItemStack, World par2World, EntityPlayer par3Entity, int par4, boolean par5) - { - ItemStack[] inv = getInternalInventory(par1ItemStack); - - if (inv == null) - { - return; - } - - int blood = getMaxBloodShardLevel(par1ItemStack); - - //int blood = 1; - for (int i = 0; i < invSize; i++) - { - if (inv[i] == null) - { - continue; - } - - if (inv[i].getItem() instanceof ArmourUpgrade && blood > 0) - { - if (((ArmourUpgrade) inv[i].getItem()).isUpgrade()) - { - ((ArmourUpgrade) inv[i].getItem()).onArmourUpdate(par2World, par3Entity, inv[i]); - blood--; - } - - if (par2World.getWorldTime() % 200 == 0) - { - if (getUpgradeCostMultiplier(par1ItemStack) > 0.02f) - { - EnergyItems.syphonBatteries(par1ItemStack, par3Entity, (int) (((ArmourUpgrade) inv[i].getItem()).getEnergyForTenSeconds() * getUpgradeCostMultiplier(par1ItemStack))); - } - } - } - } - } - - public int getMaxBloodShardLevel(ItemStack armourStack) - { - ItemStack[] inv = getInternalInventory(armourStack); - - if (inv == null) - { - return 0; - } - - int max = 0; - - for (int i = 0; i < invSize; i++) - { - ItemStack itemStack = inv[i]; - - if (itemStack != null) - { - if (itemStack.getItem().equals(ModItems.weakBloodShard)) - { - max = Math.max(max, 1); - } - - if (itemStack.getItem().equals(ModItems.demonBloodShard)) - { - max = Math.max(max, 2); - } - } - } - - return max; - } - - public boolean hasAddedToInventory(ItemStack sigilItemStack, ItemStack addedItemStack) - { - ItemStack[] inv = getInternalInventory(sigilItemStack); - - if (inv == null) - { - return false; - } - - if (addedItemStack == null) - { - return false; - } - - Item item = addedItemStack.getItem(); - int candidateSlot = -1; - - for (int i = invSize - 1; i >= 0; i--) - { - ItemStack nextItem = inv[i]; - - if (nextItem == null) - { - candidateSlot = i; - continue; - } - } - - if (candidateSlot == -1) - { - return false; - } - - if (addedItemStack.getItem() instanceof ArmourUpgrade) - { - inv[candidateSlot] = addedItemStack; - saveInternalInventory(sigilItemStack, inv); - return true; - } - - return false; - } - - public ItemStack[] getInternalInventory(ItemStack itemStack) - { - NBTTagCompound itemTag = itemStack.stackTagCompound; - - if (itemTag == null) - { - itemStack.setTagCompound(new NBTTagCompound()); - } - - ItemStack[] inv = new ItemStack[9]; - NBTTagList tagList = itemTag.getTagList("Inventory", Constants.NBT.TAG_COMPOUND); - - if (tagList == null) - { - return null; - } - - for (int i = 0; i < tagList.tagCount(); i++) - { - NBTTagCompound tag = (NBTTagCompound) tagList.getCompoundTagAt(i); - int slot = tag.getByte("Slot"); - - if (slot >= 0 && slot < invSize) - { - inv[slot] = ItemStack.loadItemStackFromNBT(tag); - } - } - - return inv; - } - - public void saveInternalInventory(ItemStack itemStack, ItemStack[] inventory) - { - NBTTagCompound itemTag = itemStack.stackTagCompound; - - if (itemTag == null) - { - itemStack.setTagCompound(new NBTTagCompound()); - } - - NBTTagList itemList = new NBTTagList(); - - for (int i = 0; i < invSize; i++) - { - ItemStack stack = inventory[i]; - - if (inventory[i] != null) - { - NBTTagCompound tag = new NBTTagCompound(); - tag.setByte("Slot", (byte) i); - inventory[i].writeToNBT(tag); - itemList.appendTag(tag); - } - } - - itemTag.setTag("Inventory", itemList); - } - - public boolean isImmuneToVoid(ItemStack itemStack) - { - ItemStack[] inv = getInternalInventory(itemStack); - - if (inv == null) - { - return false; - } - - for (ItemStack item : inv) - { - if (item == null) - { - continue; - } - - if (item.getItem().equals(ModItems.voidSigil)) - { - return true; - } - } - - return false; - } - - @Optional.Method(modid = "Thaumcraft") - public boolean hasIRevealer(ItemStack itemStack) - { - ItemStack[] inv = getInternalInventory(itemStack); - - if (inv == null) - { - return false; - } - - for (ItemStack item : inv) - { - if (item == null) - { - continue; - } - - if (item.getItem() instanceof IRevealer) - { - return true; - } - } - - return false; - } - - @Optional.Method(modid = "Thaumcraft") - public boolean hasIGoggles(ItemStack itemStack) - { - ItemStack[] inv = getInternalInventory(itemStack); - - if (inv == null) - { - return false; - } - - for (ItemStack item : inv) - { - if (item == null) - { - continue; - } - - if (item.getItem() instanceof IGoggles) - { - return true; - } - } - - return false; - } - - public float getUpgradeCostMultiplier(ItemStack itemStack) - { - ItemStack[] inv = getInternalInventory(itemStack); - - if (inv == null) - { - return 1.0f; - } - - for (ItemStack item : inv) - { - if (item == null) - { - continue; - } - - if (item.getItem().equals(ModItems.weakBloodOrb)) - { - return 0.75f; - } - - if (item.getItem().equals(ModItems.apprenticeBloodOrb)) - { - return 0.50f; - } - - if (item.getItem().equals(ModItems.magicianBloodOrb)) - { - return 0.25f; - } - - if (item.getItem().equals(ModItems.masterBloodOrb)) - { - return 0.0f; - } - - if (item.getItem().equals(ModItems.archmageBloodOrb)) - { - return 0.0f; - } - } - - return 1.0f; - } - - public int getItemEnchantability() - { - return 0; - } - - @Override - @Optional.Method(modid = "Thaumcraft") - public boolean showNodes(ItemStack itemstack, EntityLivingBase player) - { - return this.hasIRevealer(itemstack); - } - - @Override - @Optional.Method(modid = "Thaumcraft") - public boolean showIngamePopups(ItemStack itemstack, EntityLivingBase player) - { - return this.hasIGoggles(itemstack); - } -} diff --git a/1.7.2/main/java/WayofTime/alchemicalWizardry/common/items/BoundAxe.java b/1.7.2/main/java/WayofTime/alchemicalWizardry/common/items/BoundAxe.java deleted file mode 100644 index 3f5f7ec1..00000000 --- a/1.7.2/main/java/WayofTime/alchemicalWizardry/common/items/BoundAxe.java +++ /dev/null @@ -1,384 +0,0 @@ -package WayofTime.alchemicalWizardry.common.items; - -import java.util.ArrayList; -import java.util.List; - -import javax.swing.Icon; - -import net.minecraft.block.Block; -import net.minecraft.block.BlockLeavesBase; -import net.minecraft.client.renderer.texture.IIconRegister; -import net.minecraft.enchantment.Enchantment; -import net.minecraft.entity.Entity; -import net.minecraft.entity.EntityLivingBase; -import net.minecraft.entity.item.EntityItem; -import net.minecraft.entity.player.EntityPlayer; -import net.minecraft.init.Blocks; -import net.minecraft.item.ItemAxe; -import net.minecraft.item.ItemStack; -import net.minecraft.nbt.NBTTagCompound; -import net.minecraft.nbt.NBTTagList; -import net.minecraft.util.IIcon; -import net.minecraft.util.Vec3; -import net.minecraft.world.World; -import net.minecraftforge.common.ForgeHooks; -import WayofTime.alchemicalWizardry.AlchemicalWizardry; -import WayofTime.alchemicalWizardry.api.items.interfaces.IBindable; -import WayofTime.alchemicalWizardry.common.spell.complex.effect.SpellHelper; -import cpw.mods.fml.relauncher.Side; -import cpw.mods.fml.relauncher.SideOnly; - -public class BoundAxe extends ItemAxe implements IBindable -{ - /** - * Array of blocks the tool has extra effect against. - */ - public static final Block[] blocksEffectiveAgainst = new Block[]{Blocks.planks, Blocks.bookshelf, Blocks.log, Blocks.chest, Blocks.stone_slab, Blocks.pumpkin, Blocks.lit_pumpkin}; - - public float efficiencyOnProperMaterial = 12.0F; - - /** - * Damage versus entities. - */ - public float damageVsEntity; - - private static IIcon activeIcon; - private static IIcon passiveIcon; - - private int energyUsed; - - public BoundAxe() - { - super(AlchemicalWizardry.bloodBoundToolMaterial); - this.maxStackSize = 1; - //this.setMaxDamage(par3EnumToolMaterial.getMaxUses()); - this.efficiencyOnProperMaterial = 12.0F; - this.damageVsEntity = 5; - setCreativeTab(AlchemicalWizardry.tabBloodMagic); - setEnergyUsed(5); - } - - public void setEnergyUsed(int i) - { - energyUsed = i; - } - - public int getEnergyUsed() - { - return this.energyUsed; - } - - @Override - public void addInformation(ItemStack par1ItemStack, EntityPlayer par2EntityPlayer, List par3List, boolean par4) - { - par3List.add("Axe me about my puns!"); - - if (!(par1ItemStack.stackTagCompound == null)) - { - if (par1ItemStack.stackTagCompound.getBoolean("isActive")) - { - par3List.add("Activated"); - } else - { - par3List.add("Deactivated"); - } - - if (!par1ItemStack.stackTagCompound.getString("ownerName").equals("")) - { - par3List.add("Current owner: " + par1ItemStack.stackTagCompound.getString("ownerName")); - } - } - } - - @Override - @SideOnly(Side.CLIENT) - public void registerIcons(IIconRegister iconRegister) - { - this.itemIcon = iconRegister.registerIcon("AlchemicalWizardry:BoundAxe_activated"); - this.activeIcon = iconRegister.registerIcon("AlchemicalWizardry:BoundAxe_activated"); - this.passiveIcon = iconRegister.registerIcon("AlchemicalWizardry:SheathedItem"); - } - - @Override - public IIcon getIcon(ItemStack stack, int renderPass, EntityPlayer player, ItemStack usingItem, int useRemaining) - { - if (stack.stackTagCompound == null) - { - stack.setTagCompound(new NBTTagCompound()); - } - - NBTTagCompound tag = stack.stackTagCompound; - - if (tag.getBoolean("isActive")) - { - return this.activeIcon; - } else - { - return this.passiveIcon; - } - } - - @Override - public ItemStack onItemRightClick(ItemStack par1ItemStack, World par2World, EntityPlayer par3EntityPlayer) - { - EnergyItems.checkAndSetItemOwner(par1ItemStack, par3EntityPlayer); - - if (par3EntityPlayer.isSneaking()) - { - this.setActivated(par1ItemStack, !getActivated(par1ItemStack)); - par1ItemStack.stackTagCompound.setInteger("worldTimeDelay", (int) (par2World.getWorldTime() - 1) % 200); - return par1ItemStack; - } - - if (!getActivated(par1ItemStack)) - { - return par1ItemStack; - } - - if (par3EntityPlayer.isPotionActive(AlchemicalWizardry.customPotionInhibit)) - { - return par1ItemStack; - } - - Vec3 blockVec = SpellHelper.getEntityBlockVector(par3EntityPlayer); - int posX = (int)(blockVec.xCoord); - int posY = (int)(blockVec.yCoord); - int posZ = (int)(blockVec.zCoord); - boolean silkTouch = false; - int so = Enchantment.silkTouch.effectId; - int fortune = Enchantment.fortune.effectId; - int fortuneLvl = 0; - NBTTagList enchants = par1ItemStack.getEnchantmentTagList(); - - if (enchants != null) - { - for (int i = 0; i < enchants.tagCount(); i++) - { - if (enchants.getCompoundTagAt(i) instanceof NBTTagCompound) - { - NBTTagCompound nbt = (NBTTagCompound) enchants.getCompoundTagAt(i); - int id = nbt.getShort("id"); - - if (id == so) - { - silkTouch = true; - } - - if (id == fortune) - { - fortuneLvl = nbt.getShort("lvl"); - } - } - } - } - - for (int i = -5; i <= 5; i++) - { - for (int j = 0; j <= 10; j++) - { - for (int k = -5; k <= 5; k++) - { - Block block = par2World.getBlock(posX + i, posY + j, posZ + k); - int meta = par2World.getBlockMetadata(posX + i, posY + j, posZ + k); - - if (block != null) - { - float str = func_150893_a(par1ItemStack, block); - - if (str > 1.1f || block instanceof BlockLeavesBase && par2World.canMineBlock(par3EntityPlayer, posX + i, posY + j, posZ + k)) - { - //par1ItemStack.getEnchantmentTagList(); - if (silkTouch) - { - ItemStack droppedItem = new ItemStack(block, 1, meta); - - if (!par2World.isRemote) - { - par2World.spawnEntityInWorld(new EntityItem(par2World, posX, posY + par3EntityPlayer.getEyeHeight(), posZ, droppedItem)); - } - } else - { - ArrayList itemDropList = block.getDrops(par2World, posX + i, posY + j, posZ + k, meta, fortuneLvl); - - if (itemDropList != null) - { - for (ItemStack item : itemDropList) - { - if (!par2World.isRemote) - { - par2World.spawnEntityInWorld(new EntityItem(par2World, posX, posY + par3EntityPlayer.getEyeHeight(), posZ, item)); - } - } - } - } - - par2World.setBlockToAir(posX + i, posY + j, posZ + k); - } - } - } - } - } - - EnergyItems.syphonBatteries(par1ItemStack, par3EntityPlayer, 10000); - return par1ItemStack; - } - - @Override - public void onUpdate(ItemStack par1ItemStack, World par2World, Entity par3Entity, int par4, boolean par5) - { - if (!(par3Entity instanceof EntityPlayer)) - { - return; - } - - EntityPlayer par3EntityPlayer = (EntityPlayer) par3Entity; - - if (par1ItemStack.stackTagCompound == null) - { - par1ItemStack.setTagCompound(new NBTTagCompound()); - } - -// if(par1ItemStack.stackTagCompound.getBoolean("isActive")) -// { -// EnergyItems.syphonBatteries(par1ItemStack, par3EntityPlayer, 1); -// } - - if (par2World.getWorldTime() % 200 == par1ItemStack.stackTagCompound.getInteger("worldTimeDelay") && par1ItemStack.stackTagCompound.getBoolean("isActive")) - { - if (!par3EntityPlayer.capabilities.isCreativeMode) - { - EnergyItems.syphonBatteries(par1ItemStack, par3EntityPlayer, 20); - } - } - - par1ItemStack.setItemDamage(0); - return; - } - - public void setActivated(ItemStack par1ItemStack, boolean newActivated) - { - NBTTagCompound itemTag = par1ItemStack.stackTagCompound; - - if (itemTag == null) - { - par1ItemStack.setTagCompound(new NBTTagCompound()); - } - - itemTag.setBoolean("isActive", newActivated); - } - - public boolean getActivated(ItemStack par1ItemStack) - { - NBTTagCompound itemTag = par1ItemStack.stackTagCompound; - - if (itemTag == null) - { - par1ItemStack.setTagCompound(new NBTTagCompound()); - } - - return itemTag.getBoolean("isActive"); - } - - /** - * Returns the strength of the stack against a given block. 1.0F base, (Quality+1)*2 if correct blocktype, 1.5F if - * sword - */ - @Override - public float func_150893_a(ItemStack par1ItemStack, Block par2Block) - { - if (!getActivated(par1ItemStack)) - { - return 0.0F; - } - - return super.func_150893_a(par1ItemStack, par2Block); - } - - /** - * Current implementations of this method in child classes do not use the entry argument beside ev. They just raise - * the damage on the stack. - */ - public boolean hitEntity(ItemStack par1ItemStack, EntityLivingBase par2EntityLivingBase, EntityLivingBase par3EntityLivingBase) - { - if (!getActivated(par1ItemStack)) - { - return false; - } - - //par1ItemStack.damageItem(2, par3EntityLivingBase); - return true; - } - - public boolean onBlockDestroyed(ItemStack par1ItemStack, World par2World, Block par3, int par4, int par5, int par6, EntityLivingBase par7EntityLivingBase) - { - if ((double) par3.getBlockHardness(par2World, par4, par5, par6) != 0.0D) - { - //par1ItemStack.damageItem(1, par7EntityLivingBase); - } - - return true; - } - - @SideOnly(Side.CLIENT) - - /** - * Returns True is the item is renderer in full 3D when hold. - */ - public boolean isFull3D() - { - return true; - } - - /** - * Return the enchantability factor of the item, most of the time is based on material. - */ - @Override - public int getItemEnchantability() - { - return 30; - } - - /** - * Return whether this item is repairable in an anvil. - */ -// public boolean getIsRepairable(ItemStack par1ItemStack, ItemStack par2ItemStack) -// { -// return true; -// } - - /** - * FORGE: Overridden to allow custom tool effectiveness - */ - @Override - public float getDigSpeed(ItemStack stack, Block block, int meta) - { - if (!getActivated(stack)) - { - return 0.0F; - } - - if (ForgeHooks.isToolEffective(stack, block, meta)) - { - return efficiencyOnProperMaterial; - } - - return func_150893_a(stack, block); - } - - @Override - public boolean onLeftClickEntity(ItemStack stack, EntityPlayer player, Entity entity) - { - return !getActivated(stack); - } - - @Override - public int getHarvestLevel(ItemStack stack, String toolClass) - { - if("axe".equals(toolClass)) - { - return 5; - } - - return 0; - } -} diff --git a/1.7.2/main/java/WayofTime/alchemicalWizardry/common/items/BoundPickaxe.java b/1.7.2/main/java/WayofTime/alchemicalWizardry/common/items/BoundPickaxe.java deleted file mode 100644 index 9b369c81..00000000 --- a/1.7.2/main/java/WayofTime/alchemicalWizardry/common/items/BoundPickaxe.java +++ /dev/null @@ -1,395 +0,0 @@ -package WayofTime.alchemicalWizardry.common.items; - -import java.util.ArrayList; -import java.util.List; - -import net.minecraft.block.Block; -import net.minecraft.client.renderer.texture.IIconRegister; -import net.minecraft.enchantment.Enchantment; -import net.minecraft.entity.Entity; -import net.minecraft.entity.EntityLivingBase; -import net.minecraft.entity.item.EntityItem; -import net.minecraft.entity.player.EntityPlayer; -import net.minecraft.item.ItemPickaxe; -import net.minecraft.item.ItemStack; -import net.minecraft.nbt.NBTTagCompound; -import net.minecraft.nbt.NBTTagList; -import net.minecraft.util.IIcon; -import net.minecraft.util.Vec3; -import net.minecraft.world.World; -import net.minecraftforge.common.ForgeHooks; -import WayofTime.alchemicalWizardry.AlchemicalWizardry; -import WayofTime.alchemicalWizardry.api.items.interfaces.IBindable; -import WayofTime.alchemicalWizardry.common.spell.complex.effect.SpellHelper; -import cpw.mods.fml.relauncher.Side; -import cpw.mods.fml.relauncher.SideOnly; - -public class BoundPickaxe extends ItemPickaxe implements IBindable -{ - /** - * Array of blocks the tool has extra effect against. - */ - // public static final Block[] blocksEffectiveAgainst = new Block[]{Blocks.cobblestone, Blocks.stoneDoubleSlab, Blocks.stoneSingleSlab, Block.stone, Block.sandStone, Block.cobblestoneMossy, Block.oreIron, Block.blockIron, Block.oreCoal, Block.blockGold, Block.oreGold, Block.oreDiamond, Block.blockDiamond, Block.ice, Block.netherrack, Block.oreLapis, Block.blockLapis, Block.oreRedstone, Block.oreRedstoneGlowing, Block.rail, Block.railDetector, Block.railPowered, Block.railActivator}; - - public float efficiencyOnProperMaterial = 12.0F; - - /** - * Damage versus entities. - */ - public float damageVsEntity; - - private static IIcon activeIcon; - private static IIcon passiveIcon; - - private int energyUsed; - - public BoundPickaxe() - { - super(AlchemicalWizardry.bloodBoundToolMaterial); - this.maxStackSize = 1; - //this.setMaxDamage(par3EnumToolMaterial.getMaxUses()); - this.efficiencyOnProperMaterial = 12.0F; - this.damageVsEntity = 5; - setCreativeTab(AlchemicalWizardry.tabBloodMagic); - this.setEnergyUsed(5); - } - - public void setEnergyUsed(int i) - { - energyUsed = i; - } - - public int getEnergyUsed() - { - return this.energyUsed; - } - - @Override - public void addInformation(ItemStack par1ItemStack, EntityPlayer par2EntityPlayer, List par3List, boolean par4) - { - par3List.add("The Souls of the Damned"); - par3List.add("do not like stone..."); - - if (!(par1ItemStack.stackTagCompound == null)) - { - if (par1ItemStack.stackTagCompound.getBoolean("isActive")) - { - par3List.add("Activated"); - } else - { - par3List.add("Deactivated"); - } - - if (!par1ItemStack.stackTagCompound.getString("ownerName").equals("")) - { - par3List.add("Current owner: " + par1ItemStack.stackTagCompound.getString("ownerName")); - } - } - } - - @Override - @SideOnly(Side.CLIENT) - public void registerIcons(IIconRegister iconRegister) - { - this.itemIcon = iconRegister.registerIcon("AlchemicalWizardry:BoundPickaxe_activated"); - this.activeIcon = iconRegister.registerIcon("AlchemicalWizardry:BoundPickaxe_activated"); - this.passiveIcon = iconRegister.registerIcon("AlchemicalWizardry:SheathedItem"); - } - - @Override - public IIcon getIcon(ItemStack stack, int renderPass, EntityPlayer player, ItemStack usingItem, int useRemaining) - { - if (stack.stackTagCompound == null) - { - stack.setTagCompound(new NBTTagCompound()); - } - - NBTTagCompound tag = stack.stackTagCompound; - - if (tag.getBoolean("isActive")) - { - return this.activeIcon; - } else - { - return this.passiveIcon; - } - } - - @Override - public ItemStack onItemRightClick(ItemStack par1ItemStack, World par2World, EntityPlayer par3EntityPlayer) - { - EnergyItems.checkAndSetItemOwner(par1ItemStack, par3EntityPlayer); - - if (par3EntityPlayer.isSneaking()) - { - this.setActivated(par1ItemStack, !getActivated(par1ItemStack)); - par1ItemStack.stackTagCompound.setInteger("worldTimeDelay", (int) (par2World.getWorldTime() - 1) % 200); - return par1ItemStack; - } - - if (!getActivated(par1ItemStack)) - { - return par1ItemStack; - } - - if (par3EntityPlayer.isPotionActive(AlchemicalWizardry.customPotionInhibit)) - { - return par1ItemStack; - } - - Vec3 blockVec = SpellHelper.getEntityBlockVector(par3EntityPlayer); - int posX = (int)(blockVec.xCoord); - int posY = (int)(blockVec.yCoord); - int posZ = (int)(blockVec.zCoord); - boolean silkTouch = false; - int so = Enchantment.silkTouch.effectId; - int fortune = Enchantment.fortune.effectId; - int fortuneLvl = 0; - NBTTagList enchants = par1ItemStack.getEnchantmentTagList(); - - if (enchants != null) - { - for (int i = 0; i < enchants.tagCount(); i++) - { - if (enchants.getCompoundTagAt(i) instanceof NBTTagCompound) - { - NBTTagCompound nbt = (NBTTagCompound) enchants.getCompoundTagAt(i); - int id = nbt.getShort("id"); - - if (id == so) - { - silkTouch = true; - } - - if (id == fortune) - { - fortuneLvl = nbt.getShort("lvl"); - } - } - } - } - - for (int i = -5; i <= 5; i++) - { - for (int j = -5; j <= 5; j++) - { - for (int k = -5; k <= 5; k++) - { - Block block = par2World.getBlock(posX + i, posY + j, posZ + k); - int meta = par2World.getBlockMetadata(posX + i, posY + j, posZ + k); - - if (block != null && block.getBlockHardness(par2World, posX + i, posY + j, posZ + k) != -1) - { - float str = func_150893_a(par1ItemStack, block); - - if (str > 1.1f && par2World.canMineBlock(par3EntityPlayer, posX + i, posY + j, posZ + k)) - { - //par1ItemStack.getEnchantmentTagList(); - if (silkTouch) - { - ItemStack droppedItem = new ItemStack(block, 1, meta); - - if (!par2World.isRemote) - { - par2World.spawnEntityInWorld(new EntityItem(par2World, posX, posY + par3EntityPlayer.getEyeHeight(), posZ, droppedItem)); - } - } else - { - ArrayList itemDropList = block.getDrops(par2World, posX + i, posY + j, posZ + k, meta, fortuneLvl); - - if (itemDropList != null) - { - for (ItemStack item : itemDropList) - { - if (!par2World.isRemote) - { - par2World.spawnEntityInWorld(new EntityItem(par2World, posX, posY + par3EntityPlayer.getEyeHeight(), posZ, item)); - } - } - } - } - - par2World.setBlockToAir(posX + i, posY + j, posZ + k); - } - } - } - } - } - - EnergyItems.syphonBatteries(par1ItemStack, par3EntityPlayer, 10000); - return par1ItemStack; - } - - @Override - public void onUpdate(ItemStack par1ItemStack, World par2World, Entity par3Entity, int par4, boolean par5) - { - if (!(par3Entity instanceof EntityPlayer)) - { - return; - } - - EntityPlayer par3EntityPlayer = (EntityPlayer) par3Entity; - - if (par1ItemStack.stackTagCompound == null) - { - par1ItemStack.setTagCompound(new NBTTagCompound()); - } - -// if(par1ItemStack.stackTagCompound.getBoolean("isActive")) -// { -// EnergyItems.syphonBatteries(par1ItemStack, par3EntityPlayer, 1); -// } - - if (par2World.getWorldTime() % 200 == par1ItemStack.stackTagCompound.getInteger("worldTimeDelay") && par1ItemStack.stackTagCompound.getBoolean("isActive")) - { - if (!par3EntityPlayer.capabilities.isCreativeMode) - { - EnergyItems.syphonBatteries(par1ItemStack, par3EntityPlayer, 20); - } - } - - par1ItemStack.setItemDamage(0); - return; - } - - public void setActivated(ItemStack par1ItemStack, boolean newActivated) - { - NBTTagCompound itemTag = par1ItemStack.stackTagCompound; - - if (itemTag == null) - { - par1ItemStack.setTagCompound(new NBTTagCompound()); - } - - itemTag.setBoolean("isActive", newActivated); - } - - public boolean getActivated(ItemStack par1ItemStack) - { - NBTTagCompound itemTag = par1ItemStack.stackTagCompound; - - if (itemTag == null) - { - par1ItemStack.setTagCompound(new NBTTagCompound()); - } - - return itemTag.getBoolean("isActive"); - } - - /** - * Returns the strength of the stack against a given block. 1.0F base, (Quality+1)*2 if correct blocktype, 1.5F if - * sword - */ - @Override - public float func_150893_a(ItemStack par1ItemStack, Block par2Block) //getStrVsBlock - { - if (!getActivated(par1ItemStack)) - { - return 0.0F; - } - - return super.func_150893_a(par1ItemStack, par2Block); - } - - /** - * Current implementations of this method in child classes do not use the entry argument beside ev. They just raise - * the damage on the stack. - */ - public boolean hitEntity(ItemStack par1ItemStack, EntityLivingBase par2EntityLivingBase, EntityLivingBase par3EntityLivingBase) - { - if (!getActivated(par1ItemStack)) - { - return false; - } - - //par1ItemStack.damageItem(2, par3EntityLivingBase); - return true; - } - - @Override - public boolean onBlockDestroyed(ItemStack par1ItemStack, World par2World, Block par3, int par4, int par5, int par6, EntityLivingBase par7EntityLivingBase) - { - - if (par7EntityLivingBase instanceof EntityPlayer) - { - EnergyItems.syphonBatteries(par1ItemStack, (EntityPlayer) par7EntityLivingBase, getEnergyUsed()); - } - - //TODO Possibly add better functionality for the items? - //par7EntityLivingBase.getLookVec(); - return true; - } - - @SideOnly(Side.CLIENT) - - /** - * Returns True is the item is renderer in full 3D when hold. - */ - public boolean isFull3D() - { - return true; - } - - /** - * Return the enchantability factor of the item, most of the time is based on material. - */ - @Override - public int getItemEnchantability() - { - return 30; - } - - /** - * Return whether this item is repairable in an anvil. - */ -// public boolean getIsRepairable(ItemStack par1ItemStack, ItemStack par2ItemStack) -// { -// return false; -// } - - /** - * FORGE: Overridden to allow custom tool effectiveness - */ - @Override - public float getDigSpeed(ItemStack stack, Block block, int meta) - { - if (!getActivated(stack)) - { - return 0.0F; - } - - if (ForgeHooks.isToolEffective(stack, block, meta)) - { - return efficiencyOnProperMaterial; - } - - return func_150893_a(stack, block); - } - -// @Override -// -// /** -// * Returns if the item (tool) can harvest results from the block type. -// */ -// public boolean func_150897_b(Block par1Block) //canHarvestBlock -// { -// return par1Block == Blocks.obsidian ? true : (par1Block != Blocks.diamond_block && par1Block != Blocks.diamond_ore ? (par1Block != Blocks.emerald_ore && par1Block != Blocks.emerald_block ? (par1Block != Blocks.gold_block && par1Block != Blocks.gold_ore ? (par1Block != Blocks.iron_block && par1Block != Blocks.iron_ore ? (par1Block != Blocks.lapis_block && par1Block != Blocks.lapis_ore ? (par1Block != Blocks.redstone_ore && par1Block != Blocks.oreRedstoneGlowing ? (par1Block.getMaterial() == Material.rock ? true : (par1Block.blockMaterial == Material.iron ? true : par1Block.blockMaterial == Material.anvil)) : true) : true) : true) : true) : true) : true); -// } - - @Override - public boolean onLeftClickEntity(ItemStack stack, EntityPlayer player, Entity entity) - { - return !getActivated(stack); - } - - @Override - public int getHarvestLevel(ItemStack stack, String toolClass) - { - if("pickaxe".equals(toolClass)) - { - return 5; - } - - return 0; - } -} diff --git a/1.7.2/main/java/WayofTime/alchemicalWizardry/common/items/BoundShovel.java b/1.7.2/main/java/WayofTime/alchemicalWizardry/common/items/BoundShovel.java deleted file mode 100644 index f4f6333e..00000000 --- a/1.7.2/main/java/WayofTime/alchemicalWizardry/common/items/BoundShovel.java +++ /dev/null @@ -1,391 +0,0 @@ -package WayofTime.alchemicalWizardry.common.items; - -import java.util.ArrayList; -import java.util.List; - -import net.minecraft.block.Block; -import net.minecraft.client.renderer.texture.IIconRegister; -import net.minecraft.enchantment.Enchantment; -import net.minecraft.entity.Entity; -import net.minecraft.entity.EntityLivingBase; -import net.minecraft.entity.SharedMonsterAttributes; -import net.minecraft.entity.ai.attributes.AttributeModifier; -import net.minecraft.entity.item.EntityItem; -import net.minecraft.entity.player.EntityPlayer; -import net.minecraft.item.ItemSpade; -import net.minecraft.item.ItemStack; -import net.minecraft.nbt.NBTTagCompound; -import net.minecraft.nbt.NBTTagList; -import net.minecraft.util.IIcon; -import net.minecraft.util.Vec3; -import net.minecraft.world.World; -import net.minecraftforge.common.ForgeHooks; -import WayofTime.alchemicalWizardry.AlchemicalWizardry; -import WayofTime.alchemicalWizardry.api.items.interfaces.IBindable; -import WayofTime.alchemicalWizardry.common.spell.complex.effect.SpellHelper; - -import com.google.common.collect.Multimap; - -import cpw.mods.fml.relauncher.Side; -import cpw.mods.fml.relauncher.SideOnly; - -public class BoundShovel extends ItemSpade implements IBindable -{ - /** - * Array of blocks the tool has extra effect against. - */ - //public static final Block[] blocksEffectiveAgainst = new Block[]{Block.grass, Block.dirt, Block.sand, Block.gravel, Block.snow, Block.blockSnow, Block.blockClay, Block.tilledField, Block.slowSand, Block.mycelium}; - - public float efficiencyOnProperMaterial = 12.0F; - - /** - * Damage versus entities. - */ - public float damageVsEntity; - - private static IIcon activeIcon; - private static IIcon passiveIcon; - - private int energyUsed; - - public BoundShovel() - { - super(AlchemicalWizardry.bloodBoundToolMaterial); - this.maxStackSize = 1; - //this.setMaxDamage(par3EnumToolMaterial.getMaxUses()); - this.efficiencyOnProperMaterial = 12.0F; - this.damageVsEntity = 5; - setCreativeTab(AlchemicalWizardry.tabBloodMagic); - setEnergyUsed(5); - } - - public void setEnergyUsed(int i) - { - energyUsed = i; - } - - public int getEnergyUsed() - { - return this.energyUsed; - } - - @Override - public void addInformation(ItemStack par1ItemStack, EntityPlayer par2EntityPlayer, List par3List, boolean par4) - { - par3List.add("No, not that type of spade."); - - if (!(par1ItemStack.stackTagCompound == null)) - { - if (par1ItemStack.stackTagCompound.getBoolean("isActive")) - { - par3List.add("Activated"); - } else - { - par3List.add("Deactivated"); - } - - if (!par1ItemStack.stackTagCompound.getString("ownerName").equals("")) - { - par3List.add("Current owner: " + par1ItemStack.stackTagCompound.getString("ownerName")); - } - } - } - - @Override - @SideOnly(Side.CLIENT) - public void registerIcons(IIconRegister iconRegister) - { - this.itemIcon = iconRegister.registerIcon("AlchemicalWizardry:BoundShovel_activated"); - this.activeIcon = iconRegister.registerIcon("AlchemicalWizardry:BoundShovel_activated"); - this.passiveIcon = iconRegister.registerIcon("AlchemicalWizardry:SheathedItem"); - } - - @Override - public IIcon getIcon(ItemStack stack, int renderPass, EntityPlayer player, ItemStack usingItem, int useRemaining) - { - if (stack.stackTagCompound == null) - { - stack.setTagCompound(new NBTTagCompound()); - } - - NBTTagCompound tag = stack.stackTagCompound; - - if (tag.getBoolean("isActive")) - { - return this.activeIcon; - } else - { - return this.passiveIcon; - } - } - - @Override - public ItemStack onItemRightClick(ItemStack par1ItemStack, World par2World, EntityPlayer par3EntityPlayer) - { - EnergyItems.checkAndSetItemOwner(par1ItemStack, par3EntityPlayer); - - if (par3EntityPlayer.isSneaking()) - { - this.setActivated(par1ItemStack, !getActivated(par1ItemStack)); - par1ItemStack.stackTagCompound.setInteger("worldTimeDelay", (int) (par2World.getWorldTime() - 1) % 200); - return par1ItemStack; - } - - if (!getActivated(par1ItemStack)) - { - return par1ItemStack; - } - - if (par3EntityPlayer.isPotionActive(AlchemicalWizardry.customPotionInhibit)) - { - return par1ItemStack; - } - - Vec3 blockVec = SpellHelper.getEntityBlockVector(par3EntityPlayer); - int posX = (int)(blockVec.xCoord); - int posY = (int)(blockVec.yCoord); - int posZ = (int)(blockVec.zCoord); - boolean silkTouch = false; - int so = Enchantment.silkTouch.effectId; - int fortune = Enchantment.fortune.effectId; - int fortuneLvl = 0; - NBTTagList enchants = par1ItemStack.getEnchantmentTagList(); - - if (enchants != null) - { - for (int i = 0; i < enchants.tagCount(); i++) - { - if (enchants.getCompoundTagAt(i) instanceof NBTTagCompound) - { - NBTTagCompound nbt = (NBTTagCompound) enchants.getCompoundTagAt(i); - int id = nbt.getShort("id"); - - if (id == so) - { - silkTouch = true; - } - - if (id == fortune) - { - fortuneLvl = nbt.getShort("lvl"); - } - } - } - } - - for (int i = -5; i <= 5; i++) - { - for (int j = 0; j <= 10; j++) - { - for (int k = -5; k <= 5; k++) - { - Block block = par2World.getBlock(posX + i, posY + j, posZ + k); - int meta = par2World.getBlockMetadata(posX + i, posY + j, posZ + k); - - if (block != null) - { - float str = func_150893_a(par1ItemStack, block); - - if (str > 1.1f && par2World.canMineBlock(par3EntityPlayer, posX + i, posY + j, posZ + k)) - { - //par1ItemStack.getEnchantmentTagList(); - if (silkTouch) - { - ItemStack droppedItem = new ItemStack(block, 1, meta); - - if (!par2World.isRemote) - { - par2World.spawnEntityInWorld(new EntityItem(par2World, posX, posY + par3EntityPlayer.getEyeHeight(), posZ, droppedItem)); - } - } else - { - ArrayList itemDropList = block.getDrops(par2World, posX + i, posY + j, posZ + k, meta, fortuneLvl); - - if (itemDropList != null) - { - for (ItemStack item : itemDropList) - { - if (!par2World.isRemote) - { - par2World.spawnEntityInWorld(new EntityItem(par2World, posX, posY + par3EntityPlayer.getEyeHeight(), posZ, item)); - } - } - } - } - - par2World.setBlockToAir(posX + i, posY + j, posZ + k); - } - } - } - } - } - - EnergyItems.syphonBatteries(par1ItemStack, par3EntityPlayer, 10000); - return par1ItemStack; - } - - @Override - public void onUpdate(ItemStack par1ItemStack, World par2World, Entity par3Entity, int par4, boolean par5) - { - if (!(par3Entity instanceof EntityPlayer)) - { - return; - } - - EntityPlayer par3EntityPlayer = (EntityPlayer) par3Entity; - - if (par1ItemStack.stackTagCompound == null) - { - par1ItemStack.setTagCompound(new NBTTagCompound()); - } - -// if(par1ItemStack.stackTagCompound.getBoolean("isActive")) -// { -// EnergyItems.syphonBatteries(par1ItemStack, par3EntityPlayer, 1); -// } - - if (par2World.getWorldTime() % 200 == par1ItemStack.stackTagCompound.getInteger("worldTimeDelay") && par1ItemStack.stackTagCompound.getBoolean("isActive")) - { - if (!par3EntityPlayer.capabilities.isCreativeMode) - { - EnergyItems.syphonBatteries(par1ItemStack, par3EntityPlayer, 20); - } - } - - par1ItemStack.setItemDamage(0); - return; - } - - public void setActivated(ItemStack par1ItemStack, boolean newActivated) - { - NBTTagCompound itemTag = par1ItemStack.stackTagCompound; - - if (itemTag == null) - { - par1ItemStack.setTagCompound(new NBTTagCompound()); - } - - itemTag.setBoolean("isActive", newActivated); - } - - public boolean getActivated(ItemStack par1ItemStack) - { - NBTTagCompound itemTag = par1ItemStack.stackTagCompound; - - if (itemTag == null) - { - par1ItemStack.setTagCompound(new NBTTagCompound()); - } - - return itemTag.getBoolean("isActive"); - } - - /** - * Returns the strength of the stack against a given block. 1.0F base, (Quality+1)*2 if correct blocktype, 1.5F if - * sword - */ - @Override - public float func_150893_a(ItemStack par1ItemStack, Block par2Block) - { - if (!getActivated(par1ItemStack)) - { - return 0.0F; - } - - return super.func_150893_a(par1ItemStack, par2Block); - } - - /** - * Current implementations of this method in child classes do not use the entry argument beside ev. They just raise - * the damage on the stack. - */ - public boolean hitEntity(ItemStack par1ItemStack, EntityLivingBase par2EntityLivingBase, EntityLivingBase par3EntityLivingBase) - { - if (!getActivated(par1ItemStack)) - { - return false; - } - - //par1ItemStack.damageItem(2, par3EntityLivingBase); - return true; - } - - public boolean onBlockDestroyed(ItemStack par1ItemStack, World par2World, int par3, int par4, int par5, int par6, EntityLivingBase par7EntityLivingBase) - { - return true; - } - - @SideOnly(Side.CLIENT) - - /** - * Returns True is the item is renderer in full 3D when hold. - */ - public boolean isFull3D() - { - return true; - } - - /** - * Return the enchantability factor of the item, most of the time is based on material. - */ - public int getItemEnchantability() - { - return 30; - } - - /** - * Return whether this item is repairable in an anvil. - */ -// public boolean getIsRepairable(ItemStack par1ItemStack, ItemStack par2ItemStack) -// { -// return false; -// } - @Override - public Multimap getItemAttributeModifiers() - { - Multimap multimap = super.getItemAttributeModifiers(); - multimap.put(SharedMonsterAttributes.attackDamage.getAttributeUnlocalizedName(), new AttributeModifier(field_111210_e, "Tool modifier", (double) this.damageVsEntity, 0)); - return multimap; - } - - /** - * FORGE: Overridden to allow custom tool effectiveness - */ - @Override - public float getDigSpeed(ItemStack stack, Block block, int meta) - { - if (!getActivated(stack)) - { - return 0.0F; - } - - if (ForgeHooks.isToolEffective(stack, block, meta)) - { - return efficiencyOnProperMaterial; - } - - return func_150893_a(stack, block); - } -// -// public boolean canHarvestBlock(Block par1Block) -// { -// return par1Block == Block.snow ? true : par1Block == Block.blockSnow; -// } - - @Override - public boolean onLeftClickEntity(ItemStack stack, EntityPlayer player, Entity entity) - { - return !getActivated(stack); - } - - @Override - public int getHarvestLevel(ItemStack stack, String toolClass) - { - if("shovel".equals(toolClass)) - { - return 5; - } - - return 0; - } -} diff --git a/1.7.2/main/java/WayofTime/alchemicalWizardry/common/items/CheatyItem.java b/1.7.2/main/java/WayofTime/alchemicalWizardry/common/items/CheatyItem.java deleted file mode 100644 index 8b44398d..00000000 --- a/1.7.2/main/java/WayofTime/alchemicalWizardry/common/items/CheatyItem.java +++ /dev/null @@ -1,254 +0,0 @@ -package WayofTime.alchemicalWizardry.common.items; - -import java.util.List; - -import net.minecraft.client.renderer.texture.IIconRegister; -import net.minecraft.entity.player.EntityPlayer; -import net.minecraft.item.Item; -import net.minecraft.item.ItemStack; -import net.minecraft.nbt.NBTTagCompound; -import net.minecraft.server.MinecraftServer; -import net.minecraft.util.DamageSource; -import net.minecraft.world.World; -import net.minecraftforge.common.util.FakePlayer; -import WayofTime.alchemicalWizardry.AlchemicalWizardry; -import WayofTime.alchemicalWizardry.api.items.interfaces.IBindable; -import WayofTime.alchemicalWizardry.api.soulNetwork.LifeEssenceNetwork; -import WayofTime.alchemicalWizardry.common.PacketHandler; -import WayofTime.alchemicalWizardry.common.spell.complex.effect.SpellHelper; -import WayofTime.alchemicalWizardry.common.tileEntity.TEAltar; -import cpw.mods.fml.relauncher.Side; -import cpw.mods.fml.relauncher.SideOnly; - -public class CheatyItem extends Item implements IBindable -{ - // private int maxEssence; - //protected int orbLevel; - - public CheatyItem() - { - super(); - DamageSource damageSource = DamageSource.generic; - setMaxStackSize(1); - //setMaxDamage(damage); - setCreativeTab(AlchemicalWizardry.tabBloodMagic); - //setFull3D(); - //maxEssence = damage; - //orbLevel = 1; - } - - @Override - @SideOnly(Side.CLIENT) - public void registerIcons(IIconRegister iconRegister) - { - this.itemIcon = iconRegister.registerIcon("AlchemicalWizardry:EnergyBattery"); - } - - @Override - public void addInformation(ItemStack par1ItemStack, EntityPlayer par2EntityPlayer, List par3List, boolean par4) - { - par3List.add("Creative only"); - par3List.add("Right-click to fill network,"); - par3List.add("shift-right to empty."); - - //par3List.add("LP: " + (this.getMaxDamage() - this.getDamage(par1ItemStack))); - if (!(par1ItemStack.stackTagCompound == null)) - { - par3List.add("Current owner: " + par1ItemStack.stackTagCompound.getString("ownerName")); -// EntityPlayer owner = MinecraftServer.getServer().getConfigurationManager().getPlayerForUsername(par1ItemStack.stackTagCompound.getString("ownerName")); -// if(owner!=null) -// { -// NBTTagCompound tag = owner.getEntityData(); -// par3List.add("LP: " + tag.getInteger("currentEssence")); -// } - } - - //par3List.add("LP: " + par2EntityPlayer.getEntityData().getInteger("currentEssence")); - } - - public ItemStack onItemRightClick(ItemStack par1ItemStack, World par2World, EntityPlayer par3EntityPlayer) - { - EnergyItems.checkAndSetItemOwner(par1ItemStack, par3EntityPlayer); - World world = par3EntityPlayer.worldObj; - - if (par3EntityPlayer instanceof FakePlayer) - { - return par1ItemStack; - } - - if (world != null) - { - double posX = par3EntityPlayer.posX; - double posY = par3EntityPlayer.posY; - double posZ = par3EntityPlayer.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); - SpellHelper.sendIndexedParticleToAllAround(world, posX, posY, posZ, 20, world.provider.dimensionId, 4, posX, posY, posZ); - } - - if (!par3EntityPlayer.worldObj.isRemote) - { - return par1ItemStack; - } - - NBTTagCompound itemTag = par1ItemStack.stackTagCompound; - - if (itemTag == null || itemTag.getString("ownerName").equals("")) - { - return par1ItemStack; - } - - if (par3EntityPlayer.isSneaking()) - { - EnergyItems.setCurrentEssence(itemTag.getString("ownerName"), 0); - } else - { - EnergyItems.addEssenceToMaximum(itemTag.getString("ownerName"), 1000000, Integer.MAX_VALUE); - } - - //PacketDispatcher.sendPacketToPlayer(PacketHandler.getPacket(itemTag.getString("ownerName")), (Player)par3EntityPlayer); -// EntityPlayer owner = MinecraftServer.getServer().getConfigurationManager().getPlayerForUsername(itemTag.getString("ownerName")); -// if(owner==null){return par1ItemStack;} -// NBTTagCompound ownerTag = owner.getEntityData(); -// if(ownerTag.getInteger("currentEssence")<=this.maxEssence) -// { -// damagePlayer(par2World, par3EntityPlayer,2); -// ownerTag.setInteger("currentEssence", Math.min(this.maxEssence, ownerTag.getInteger("currentEssence")+200/2)); -// } - return par1ItemStack; - } - - /* - * @return the damage that was not deducted - */ - public int damageItem(ItemStack par1ItemStack, int par2int) - { - if (par2int == 0) - { - return 0; - } - - int before = this.getDamage(par1ItemStack); - this.setDamage(par1ItemStack, this.getDamage(par1ItemStack) + par2int); - return par2int - (this.getDamage(par1ItemStack) - before); - } - - 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); - } - } - - if (!player.capabilities.isCreativeMode) - { - for (int i = 0; i < damage; i++) - { - player.setHealth((player.getHealth() - 1)); - //player.setEntityHealth(player.func_110143_aJ() - 1); - } - } - - if (player.getHealth() <= 0) - { - player.inventory.dropAllItems(); - } - } - -// public int getMaxEssence() -// { -// return this.maxEssence; -// } -// -// public int getOrbLevel() -// { -// return orbLevel; -// } -// -// @Override -// public void onArmourUpdate(World world, EntityPlayer player, -// ItemStack thisItemStack) { -// // TODO Auto-generated method stub -// -// } -// -// @Override -// public boolean isUpgrade() -// { -// // TODO Auto-generated method stub -// return false; -// } -// -// @Override -// public int getEnergyForTenSeconds() -// { -// // TODO Auto-generated method stub -// return 0; -// } - - @Override - public ItemStack getContainerItem(ItemStack itemStack) - { - //if(!syphonBatteries(itemStack, null, 10)) - { - //syphonWhileInContainer(itemStack, this.getEnergyUsed()); -// ItemStack copiedStack = itemStack.copy(); -// copiedStack.setItemDamage(copiedStack.getItemDamage()); -// copiedStack.stackSize = 1; -// return copiedStack; - } - return itemStack; - } - - @Override - public boolean hasContainerItem() - { - return true; - } - - //@SideOnly(Side.SERVER) - public int getCurrentEssence(ItemStack par1ItemStack) - { - if (par1ItemStack == null) - { - return 0; - } - - NBTTagCompound itemTag = par1ItemStack.stackTagCompound; - - if (itemTag == null || itemTag.getString("ownerName").equals("")) - { - return 0; - } - - String owner = itemTag.getString("ownerName"); - 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; - return (currentEssence); - } - - @Override - public boolean doesContainerItemLeaveCraftingGrid(ItemStack itemStack) - { - return false; - } -} diff --git a/1.7.2/main/java/WayofTime/alchemicalWizardry/common/items/DaggerOfSacrifice.java b/1.7.2/main/java/WayofTime/alchemicalWizardry/common/items/DaggerOfSacrifice.java deleted file mode 100644 index 361a95dc..00000000 --- a/1.7.2/main/java/WayofTime/alchemicalWizardry/common/items/DaggerOfSacrifice.java +++ /dev/null @@ -1,268 +0,0 @@ -package WayofTime.alchemicalWizardry.common.items; - -import java.util.List; - -import net.minecraft.block.Block; -import net.minecraft.block.material.Material; -import net.minecraft.client.renderer.texture.IIconRegister; -import net.minecraft.entity.EntityLivingBase; -import net.minecraft.entity.SharedMonsterAttributes; -import net.minecraft.entity.ai.attributes.AttributeModifier; -import net.minecraft.entity.boss.EntityDragon; -import net.minecraft.entity.boss.EntityWither; -import net.minecraft.entity.boss.IBossDisplayData; -import net.minecraft.entity.monster.EntityEnderman; -import net.minecraft.entity.monster.EntitySlime; -import net.minecraft.entity.passive.EntityAnimal; -import net.minecraft.entity.passive.EntityVillager; -import net.minecraft.entity.player.EntityPlayer; -import net.minecraft.entity.player.EntityPlayerMP; -import net.minecraft.init.Blocks; -import net.minecraft.item.ItemStack; -import net.minecraft.tileentity.TileEntity; -import net.minecraft.util.DamageSource; -import net.minecraft.world.World; -import WayofTime.alchemicalWizardry.AlchemicalWizardry; -import WayofTime.alchemicalWizardry.common.spell.complex.effect.SpellHelper; -import WayofTime.alchemicalWizardry.common.tileEntity.TEAltar; - -import com.google.common.collect.Multimap; - -import cpw.mods.fml.relauncher.Side; -import cpw.mods.fml.relauncher.SideOnly; - -public class DaggerOfSacrifice extends EnergyItems -{ - private float weaponDamage; - - public DaggerOfSacrifice() - { - super(); - this.maxStackSize = 1; - setCreativeTab(AlchemicalWizardry.tabBloodMagic); - setEnergyUsed(100); - setFull3D(); - setMaxDamage(100); - weaponDamage = 1.0F; - } - - @Override - @SideOnly(Side.CLIENT) - public void registerIcons(IIconRegister iconRegister) - { - this.itemIcon = iconRegister.registerIcon("AlchemicalWizardry:DaggerOfSacrifice"); - } - - @Override - public boolean hitEntity(ItemStack par1ItemStack, EntityLivingBase par2EntityLivingBase, EntityLivingBase par3EntityLivingBase) - { - if (par3EntityLivingBase == null || par2EntityLivingBase == null || par3EntityLivingBase.worldObj.isRemote || !(par3EntityLivingBase.getClass().equals(EntityPlayerMP.class))) - { - return false; - } - - //EntityWither d; - if (par2EntityLivingBase.isChild() || par2EntityLivingBase instanceof EntityWither || par2EntityLivingBase instanceof EntityDragon || par2EntityLivingBase instanceof EntityPlayer || par2EntityLivingBase instanceof IBossDisplayData) - { - return false; - } - - World world = par2EntityLivingBase.worldObj; - - if (par2EntityLivingBase.isDead || par2EntityLivingBase.getHealth() < 0.5f) - { - return false; - } - - if (par2EntityLivingBase instanceof EntityVillager && !par2EntityLivingBase.isChild()) - { - if (findAndFillAltar(par2EntityLivingBase.worldObj, par2EntityLivingBase, 2000)) - { - double posX = par2EntityLivingBase.posX; - double posY = par2EntityLivingBase.posY; - double posZ = par2EntityLivingBase.posZ; - - - - for (int i = 0; i < 8; i++) - { - SpellHelper.sendIndexedParticleToAllAround(world, posX, posY, posZ, 20, world.provider.dimensionId, 1, posX, posY, posZ); - } - - par2EntityLivingBase.setHealth(-1); - par2EntityLivingBase.onDeath(DamageSource.generic); - return false; - } - } - - if (par2EntityLivingBase instanceof EntitySlime && !par2EntityLivingBase.isChild()) - { - if (findAndFillAltar(par2EntityLivingBase.worldObj, par2EntityLivingBase, 150)) - { - double posX = par2EntityLivingBase.posX; - double posY = par2EntityLivingBase.posY; - double posZ = par2EntityLivingBase.posZ; - - for (int i = 0; i < 8; i++) - { - SpellHelper.sendIndexedParticleToAllAround(world, posX, posY, posZ, 20, world.provider.dimensionId, 1, posX, posY, posZ); - } - - par2EntityLivingBase.setHealth(-1); - par2EntityLivingBase.onDeath(DamageSource.generic); - return false; - } - } - - if (par2EntityLivingBase instanceof EntityEnderman && !par2EntityLivingBase.isChild()) - { - if (findAndFillAltar(par2EntityLivingBase.worldObj, par2EntityLivingBase, 200)) - { - double posX = par2EntityLivingBase.posX; - double posY = par2EntityLivingBase.posY; - double posZ = par2EntityLivingBase.posZ; - - for (int i = 0; i < 8; i++) - { - SpellHelper.sendIndexedParticleToAllAround(world, posX, posY, posZ, 20, world.provider.dimensionId, 1, posX, posY, posZ); - } - - par2EntityLivingBase.setHealth(-1); - par2EntityLivingBase.onDeath(DamageSource.generic); - return false; - } - } - - if (par2EntityLivingBase instanceof EntityAnimal && !par2EntityLivingBase.isChild()) - { - if (findAndFillAltar(par2EntityLivingBase.worldObj, par2EntityLivingBase, 250)) - { - double posX = par2EntityLivingBase.posX; - double posY = par2EntityLivingBase.posY; - double posZ = par2EntityLivingBase.posZ; - - for (int i = 0; i < 8; i++) - { - SpellHelper.sendIndexedParticleToAllAround(world, posX, posY, posZ, 20, world.provider.dimensionId, 1, posX, posY, posZ); - } - - par2EntityLivingBase.setHealth(-1); - par2EntityLivingBase.onDeath(DamageSource.generic); - return false; - } - } - - if (findAndFillAltar(par2EntityLivingBase.worldObj, par2EntityLivingBase, 500)) - { - double posX = par2EntityLivingBase.posX; - double posY = par2EntityLivingBase.posY; - double posZ = par2EntityLivingBase.posZ; - - for (int i = 0; i < 8; i++) - { - SpellHelper.sendIndexedParticleToAllAround(world, posX, posY, posZ, 20, world.provider.dimensionId, 1, posX, posY, posZ); - } - - par2EntityLivingBase.setHealth(-1); - par2EntityLivingBase.onDeath(DamageSource.generic); - return false; - } - - return false; - } - - public float func_82803_g() - { - return 4.0F; - } - - @Override - public void addInformation(ItemStack par1ItemStack, EntityPlayer par2EntityPlayer, List par3List, boolean par4) - { - par3List.add("Caution: may cause"); - par3List.add("a bad day..."); - } - - @Override - public float func_150893_a(ItemStack par1ItemStack, Block par2Block) - { - if (par2Block == Blocks.web) - { - return 15.0F; - } else - { - Material material = par2Block.getMaterial(); - return material != Material.plants && material != Material.vine && material != Material.coral && material != Material.leaves && material != Material.gourd ? 1.0F : 1.5F; - } - } - - @Override - public boolean getIsRepairable(ItemStack par1ItemStack, ItemStack par2ItemStack) - { - return false; - } - - @Override - - public Multimap getItemAttributeModifiers() - { - Multimap multimap = super.getItemAttributeModifiers(); - multimap.put(SharedMonsterAttributes.attackDamage.getAttributeUnlocalizedName(), new AttributeModifier(field_111210_e, "Tool modifier", 1.0d, 0)); - return multimap; - } - - public boolean findAndFillAltar(World world, EntityLivingBase sacrifice, int amount) - { - int posX = (int) Math.round(sacrifice.posX - 0.5f); - int posY = (int) sacrifice.posY; - int posZ = (int) Math.round(sacrifice.posZ - 0.5f); - TEAltar altarEntity = this.getAltar(world, posX, posY, posZ); - - if (altarEntity == null) - { - return false; - } - - altarEntity.sacrificialDaggerCall(amount, true); - altarEntity.startCycle(); - return true; - } - - public TEAltar getAltar(World world, int x, int y, int z) - { - TileEntity tileEntity = null; - - for (int i = -2; i <= 2; i++) - { - for (int j = -2; j <= 2; j++) - { - for (int k = -2; k <= 1; k++) - { - tileEntity = world.getTileEntity(i + x, k + y, j + z); - - if ((tileEntity instanceof TEAltar)) - { - return (TEAltar) tileEntity; - } - } - - if ((tileEntity instanceof TEAltar)) - { - return (TEAltar) tileEntity; - } - } - - if ((tileEntity instanceof TEAltar)) - { - return (TEAltar) tileEntity; - } - } - - if ((tileEntity instanceof TEAltar)) - { - return (TEAltar) tileEntity; - } - - return null; - } -} diff --git a/1.7.2/main/java/WayofTime/alchemicalWizardry/common/items/DemonPlacer.java b/1.7.2/main/java/WayofTime/alchemicalWizardry/common/items/DemonPlacer.java deleted file mode 100644 index a8403618..00000000 --- a/1.7.2/main/java/WayofTime/alchemicalWizardry/common/items/DemonPlacer.java +++ /dev/null @@ -1,277 +0,0 @@ -package WayofTime.alchemicalWizardry.common.items; - -import java.util.List; - -import net.minecraft.block.Block; -import net.minecraft.block.material.Material; -import net.minecraft.client.renderer.texture.IIconRegister; -import net.minecraft.creativetab.CreativeTabs; -import net.minecraft.entity.Entity; -import net.minecraft.entity.EntityList; -import net.minecraft.entity.EntityList.EntityEggInfo; -import net.minecraft.entity.EntityLiving; -import net.minecraft.entity.EntityLivingBase; -import net.minecraft.entity.player.EntityPlayer; -import net.minecraft.item.Item; -import net.minecraft.item.ItemStack; -import net.minecraft.nbt.NBTTagCompound; -import net.minecraft.util.Facing; -import net.minecraft.util.IIcon; -import net.minecraft.util.MathHelper; -import net.minecraft.util.MovingObjectPosition; -import net.minecraft.world.World; -import WayofTime.alchemicalWizardry.api.summoningRegistry.SummoningRegistry; -import WayofTime.alchemicalWizardry.common.entity.mob.EntityDemon; -import cpw.mods.fml.relauncher.Side; -import cpw.mods.fml.relauncher.SideOnly; - -public class DemonPlacer extends Item -{ - @SideOnly(Side.CLIENT) - private IIcon theIcon; - - public DemonPlacer() - { - super(); - this.setHasSubtypes(true); - this.setCreativeTab(CreativeTabs.tabMisc); - this.maxStackSize = 1; - } - - public String getItemDisplayName(ItemStack par1ItemStack) - { -// String s = ("" + StatCollector.translateToLocal(this.getUnlocalizedName() + ".name")).trim(); -// String s1 = EntityList.getStringFromID(par1ItemStack.getItemDamage()); -// -// if (s1 != null) -// { -// s = s + " " + StatCollector.translateToLocal("entity." + s1 + ".name"); -// } -// -// return s; - return "Demon Crystal"; - } - - @SideOnly(Side.CLIENT) - public int getColorFromItemStack(ItemStack par1ItemStack, int par2) - { - EntityEggInfo entityegginfo = (EntityEggInfo) EntityList.entityEggs.get(Integer.valueOf(par1ItemStack.getItemDamage())); - return entityegginfo != null ? (par2 == 0 ? entityegginfo.primaryColor : entityegginfo.secondaryColor) : 16777215; - } - - /** - * Callback for item usage. If the item does something special on right clicking, he will have one of those. Return - * True if something happen and false if it don't. This is for ITEMS, not BLOCKS - */ - public boolean onItemUse(ItemStack par1ItemStack, EntityPlayer par2EntityPlayer, World par3World, int par4, int par5, int par6, int par7, float par8, float par9, float par10) - { - if (par3World.isRemote) - { - return true; - } else - { - Block i1 = par3World.getBlock(par4, par5, par6); - par4 += Facing.offsetsXForSide[par7]; - par5 += Facing.offsetsYForSide[par7]; - par6 += Facing.offsetsZForSide[par7]; - double d0 = 0.0D; - - if (par7 == 1 && i1 != null && i1.getRenderType() == 11) - { - d0 = 0.5D; - } - - Entity entity = spawnCreature(par3World, par1ItemStack.getItemDamage(), (double) par4 + 0.5D, (double) par5 + d0, (double) par6 + 0.5D, par1ItemStack); - - if (entity != null) - { - if (entity instanceof EntityLivingBase && par1ItemStack.hasDisplayName()) - { - ((EntityLiving) entity).setCustomNameTag(par1ItemStack.getDisplayName()); - } - - if (!par2EntityPlayer.capabilities.isCreativeMode) - { - --par1ItemStack.stackSize; - } - } - - return true; - } - } - - /** - * Called whenever this item is equipped and the right mouse button is pressed. Args: itemStack, world, entityPlayer - */ - public ItemStack onItemRightClick(ItemStack par1ItemStack, World par2World, EntityPlayer par3EntityPlayer) - { - if (par2World.isRemote) - { - return par1ItemStack; - } else - { - MovingObjectPosition movingobjectposition = this.getMovingObjectPositionFromPlayer(par2World, par3EntityPlayer, true); - - if (movingobjectposition == null) - { - return par1ItemStack; - } else - { - if (movingobjectposition.typeOfHit == MovingObjectPosition.MovingObjectType.BLOCK) - { - int i = movingobjectposition.blockX; - int j = movingobjectposition.blockY; - int k = movingobjectposition.blockZ; - - if (!par2World.canMineBlock(par3EntityPlayer, i, j, k)) - { - return par1ItemStack; - } - - if (!par3EntityPlayer.canPlayerEdit(i, j, k, movingobjectposition.sideHit, par1ItemStack)) - { - return par1ItemStack; - } - - if (par2World.getBlock(i, j, k).getMaterial() == Material.water) - { - Entity entity = spawnCreature(par2World, par1ItemStack.getItemDamage(), (double) i, (double) j, (double) k, par1ItemStack); - - if (entity != null) - { - if (entity instanceof EntityLivingBase && par1ItemStack.hasDisplayName()) - { - ((EntityLiving) entity).setCustomNameTag(par1ItemStack.getDisplayName()); - } - - if (!par3EntityPlayer.capabilities.isCreativeMode) - { - --par1ItemStack.stackSize; - } - } - } - } - - return par1ItemStack; - } - } - } - - /** - * Spawns the creature specified by the egg's type in the location specified by the last three parameters. - * Parameters: world, entityID, x, y, z. - */ - public static Entity spawnCreature(World par0World, int par1, double par2, double par4, double par6, ItemStack itemStack) - { -// if (!EntityList.entityEggs.containsKey(Integer.valueOf(par1))) -// { -// return null; -// } -// else - { - Entity entity = null; - - for (int j = 0; j < 1; ++j) - { - entity = SummoningRegistry.getEntityWithID(par0World, par1); - - if (entity != null && entity instanceof EntityLivingBase) - { - EntityLiving entityliving = (EntityLiving) entity; - entity.setLocationAndAngles(par2, par4, par6, MathHelper.wrapAngleTo180_float(par0World.rand.nextFloat() * 360.0F), 0.0F); - entityliving.rotationYawHead = entityliving.rotationYaw; - entityliving.renderYawOffset = entityliving.rotationYaw; - - //entityliving.onSpawnWithEgg((EntityLivingData)null); - if (entityliving instanceof EntityDemon) - { - ((EntityDemon) entityliving).setOwner(DemonPlacer.getOwnerName(itemStack)); - - if (!DemonPlacer.getOwnerName(itemStack).equals("")) - { - ((EntityDemon) entityliving).setTamed(true); - } - } - - par0World.spawnEntityInWorld(entity); - entityliving.playLivingSound(); - } - } - - return entity; - } - } - -// @SideOnly(Side.CLIENT) -// public boolean requiresMultipleRenderPasses() -// { -// return true; -// } - -// @SideOnly(Side.CLIENT) -// -// /** -// * Gets an icon index based on an item's damage value and the given render pass -// */ -// public Icon getIconFromDamageForRenderPass(int par1, int par2) -// { -// return par2 > 0 ? this.theIcon : super.getIconFromDamageForRenderPass(par1, par2); -// } - -// @SideOnly(Side.CLIENT) -// -// /** -// * returns a list of items with the same ID, but different meta (eg: dye returns 16 items) -// */ -// public void getSubItems(int par1, CreativeTabs par2CreativeTabs, List par3List) -// { -// Iterator iterator = EntityList.entityEggs.values().iterator(); -// -// while (iterator.hasNext()) -// { -// EntityEggInfo entityegginfo = (EntityEggInfo)iterator.next(); -// par3List.add(new ItemStack(par1, 1, entityegginfo.spawnedID)); -// } -// } - - public static void setOwnerName(ItemStack par1ItemStack, String ownerName) - { - if (par1ItemStack.stackTagCompound == null) - { - par1ItemStack.setTagCompound(new NBTTagCompound()); - } - - par1ItemStack.stackTagCompound.setString("ownerName", ownerName); - } - - public static String getOwnerName(ItemStack par1ItemStack) - { - if (par1ItemStack.stackTagCompound == null) - { - par1ItemStack.setTagCompound(new NBTTagCompound()); - } - - return par1ItemStack.stackTagCompound.getString("ownerName"); - } - - @Override - public void addInformation(ItemStack par1ItemStack, EntityPlayer par2EntityPlayer, List par3List, boolean par4) - { - par3List.add("Used to spawn demons."); - - if (!(par1ItemStack.stackTagCompound == null)) - { - if (!par1ItemStack.stackTagCompound.getString("ownerName").equals("")) - { - par3List.add("Demon's Owner: " + par1ItemStack.stackTagCompound.getString("ownerName")); - } - } - } - - @Override - @SideOnly(Side.CLIENT) - public void registerIcons(IIconRegister iconRegister) - { - this.itemIcon = iconRegister.registerIcon("AlchemicalWizardry:DemonPlacer"); - } -} diff --git a/1.7.2/main/java/WayofTime/alchemicalWizardry/common/items/DemonicTelepositionFocus.java b/1.7.2/main/java/WayofTime/alchemicalWizardry/common/items/DemonicTelepositionFocus.java deleted file mode 100644 index d26de12d..00000000 --- a/1.7.2/main/java/WayofTime/alchemicalWizardry/common/items/DemonicTelepositionFocus.java +++ /dev/null @@ -1,47 +0,0 @@ -package WayofTime.alchemicalWizardry.common.items; - -import java.util.List; - -import net.minecraft.client.renderer.texture.IIconRegister; -import net.minecraft.entity.player.EntityPlayer; -import net.minecraft.item.ItemStack; -import net.minecraft.nbt.NBTTagCompound; -import cpw.mods.fml.relauncher.Side; -import cpw.mods.fml.relauncher.SideOnly; - -public class DemonicTelepositionFocus extends TelepositionFocus -{ - public DemonicTelepositionFocus() - { - super(4); - // TODO Auto-generated constructor stub - } - - @Override - @SideOnly(Side.CLIENT) - public void registerIcons(IIconRegister iconRegister) - { - //TODO - this.itemIcon = iconRegister.registerIcon("AlchemicalWizardry:DemonicTeleposerFocus"); - } - - @Override - public void addInformation(ItemStack par1ItemStack, EntityPlayer par2EntityPlayer, List par3List, boolean par4) - { - par3List.add("A stronger version of the focus,"); - par3List.add("using a demonic shard"); - - if (!(par1ItemStack.stackTagCompound == null)) - { - NBTTagCompound itemTag = par1ItemStack.stackTagCompound; - - if (!par1ItemStack.stackTagCompound.getString("ownerName").equals("")) - { - par3List.add("Current owner: " + par1ItemStack.stackTagCompound.getString("ownerName")); - } - - par3List.add("Coords: " + itemTag.getInteger("xCoord") + ", " + itemTag.getInteger("yCoord") + ", " + itemTag.getInteger("zCoord")); - par3List.add("Bound Dimension: " + getDimensionID(par1ItemStack)); - } - } -} diff --git a/1.7.2/main/java/WayofTime/alchemicalWizardry/common/items/DuskScribeTool.java b/1.7.2/main/java/WayofTime/alchemicalWizardry/common/items/DuskScribeTool.java deleted file mode 100644 index ddbdbfe9..00000000 --- a/1.7.2/main/java/WayofTime/alchemicalWizardry/common/items/DuskScribeTool.java +++ /dev/null @@ -1,20 +0,0 @@ -package WayofTime.alchemicalWizardry.common.items; - -import net.minecraft.client.renderer.texture.IIconRegister; -import cpw.mods.fml.relauncher.Side; -import cpw.mods.fml.relauncher.SideOnly; - -public class DuskScribeTool extends ScribeTool -{ - public DuskScribeTool() - { - super(5); - } - - @Override - @SideOnly(Side.CLIENT) - public void registerIcons(IIconRegister iconRegister) - { - this.itemIcon = iconRegister.registerIcon("AlchemicalWizardry:DuskScribeTool"); - } -} \ No newline at end of file diff --git a/1.7.2/main/java/WayofTime/alchemicalWizardry/common/items/EarthScribeTool.java b/1.7.2/main/java/WayofTime/alchemicalWizardry/common/items/EarthScribeTool.java deleted file mode 100644 index 290c6f91..00000000 --- a/1.7.2/main/java/WayofTime/alchemicalWizardry/common/items/EarthScribeTool.java +++ /dev/null @@ -1,20 +0,0 @@ -package WayofTime.alchemicalWizardry.common.items; - -import net.minecraft.client.renderer.texture.IIconRegister; -import cpw.mods.fml.relauncher.Side; -import cpw.mods.fml.relauncher.SideOnly; - -public class EarthScribeTool extends ScribeTool -{ - public EarthScribeTool() - { - super(3); - } - - @Override - @SideOnly(Side.CLIENT) - public void registerIcons(IIconRegister iconRegister) - { - this.itemIcon = iconRegister.registerIcon("AlchemicalWizardry:EarthScribeTool"); - } -} \ No newline at end of file diff --git a/1.7.2/main/java/WayofTime/alchemicalWizardry/common/items/EnergyBattery.java b/1.7.2/main/java/WayofTime/alchemicalWizardry/common/items/EnergyBattery.java deleted file mode 100644 index e935437e..00000000 --- a/1.7.2/main/java/WayofTime/alchemicalWizardry/common/items/EnergyBattery.java +++ /dev/null @@ -1,252 +0,0 @@ -package WayofTime.alchemicalWizardry.common.items; - -import java.util.List; - -import net.minecraft.client.renderer.texture.IIconRegister; -import net.minecraft.entity.player.EntityPlayer; -import net.minecraft.item.Item; -import net.minecraft.item.ItemStack; -import net.minecraft.nbt.NBTTagCompound; -import net.minecraft.server.MinecraftServer; -import net.minecraft.util.DamageSource; -import net.minecraft.world.World; -import WayofTime.alchemicalWizardry.AlchemicalWizardry; -import WayofTime.alchemicalWizardry.api.items.interfaces.ArmourUpgrade; -import WayofTime.alchemicalWizardry.api.items.interfaces.IBindable; -import WayofTime.alchemicalWizardry.api.items.interfaces.IBloodOrb; -import WayofTime.alchemicalWizardry.api.soulNetwork.LifeEssenceNetwork; -import WayofTime.alchemicalWizardry.common.spell.complex.effect.SpellHelper; -import cpw.mods.fml.relauncher.Side; -import cpw.mods.fml.relauncher.SideOnly; - -public class EnergyBattery extends Item implements ArmourUpgrade, IBindable, IBloodOrb -{ - private int maxEssence; - protected int orbLevel; - - public EnergyBattery(int damage) - { - super(); - DamageSource damageSource = DamageSource.generic; - setMaxStackSize(1); - //setMaxDamage(damage); - setCreativeTab(AlchemicalWizardry.tabBloodMagic); - //setFull3D(); - maxEssence = damage; - orbLevel = 1; - } - - @Override - @SideOnly(Side.CLIENT) - public void registerIcons(IIconRegister iconRegister) - { - this.itemIcon = iconRegister.registerIcon("AlchemicalWizardry:EnergyBattery"); - } - - @Override - public void addInformation(ItemStack par1ItemStack, EntityPlayer par2EntityPlayer, List par3List, boolean par4) - { - par3List.add("Stores raw Life Essence"); - - //par3List.add("LP: " + (this.getMaxDamage() - this.getDamage(par1ItemStack))); - if (!(par1ItemStack.stackTagCompound == null)) - { - par3List.add("Current owner: " + par1ItemStack.stackTagCompound.getString("ownerName")); -// EntityPlayer owner = MinecraftServer.getServer().getConfigurationManager().getPlayerForUsername(par1ItemStack.stackTagCompound.getString("ownerName")); -// if(owner!=null) -// { -// NBTTagCompound tag = owner.getEntityData(); -// par3List.add("LP: " + tag.getInteger("currentEssence")); -// } - } - - //par3List.add("LP: " + par2EntityPlayer.getEntityData().getInteger("currentEssence")); - } - - public ItemStack onItemRightClick(ItemStack par1ItemStack, World par2World, EntityPlayer par3EntityPlayer) - { - EnergyItems.checkAndSetItemOwner(par1ItemStack, par3EntityPlayer); - World world = par3EntityPlayer.worldObj; - -// if (par3EntityPlayer instanceof FakePlayer || par3EntityPlayer instanceof EntityPlayerMP) -// { -// return par1ItemStack; -// } - - if (world != null) - { - double posX = par3EntityPlayer.posX; - double posY = par3EntityPlayer.posY; - double posZ = par3EntityPlayer.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); - SpellHelper.sendIndexedParticleToAllAround(world, posX, posY, posZ, 20, world.provider.dimensionId, 4, posX, posY, posZ); - } - -// if (!(par3EntityPlayer.getClass().equals(EntityPlayerMP.class))) -// { -// return par1ItemStack; -// } - - - -// if (Keyboard.isKeyDown(Keyboard.KEY_RSHIFT) || Keyboard.isKeyDown(Keyboard.KEY_LSHIFT)) -// { -// return par1ItemStack; -// } - NBTTagCompound itemTag = par1ItemStack.stackTagCompound; - - if (itemTag == null || itemTag.getString("ownerName").equals("")) - { - return par1ItemStack; - } - - if(world.isRemote) - { - return par1ItemStack; - } - - EnergyItems.addEssenceToMaximum(itemTag.getString("ownerName"), 200, this.getMaxEssence()); - EnergyItems.hurtPlayer(par3EntityPlayer, 200); - //PacketDispatcher.sendPacketToPlayer(PacketHandler.getPacket(itemTag.getString("ownerName")), (Player)par3EntityPlayer); -// EntityPlayer owner = MinecraftServer.getServer().getConfigurationManager().getPlayerForUsername(itemTag.getString("ownerName")); -// if(owner==null){return par1ItemStack;} -// NBTTagCompound ownerTag = owner.getEntityData(); -// if(ownerTag.getInteger("currentEssence")<=this.maxEssence) -// { -// damagePlayer(par2World, par3EntityPlayer,2); -// ownerTag.setInteger("currentEssence", Math.min(this.maxEssence, ownerTag.getInteger("currentEssence")+200/2)); -// } - return par1ItemStack; - } - - /* - * @return the damage that was not deducted - */ - public int damageItem(ItemStack par1ItemStack, int par2int) - { - if (par2int == 0) - { - return 0; - } - - int before = this.getDamage(par1ItemStack); - this.setDamage(par1ItemStack, this.getDamage(par1ItemStack) + par2int); - return par2int - (this.getDamage(par1ItemStack) - before); - } - - 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); - } - } - - if (!player.capabilities.isCreativeMode) - { - for (int i = 0; i < damage; i++) - { - player.setHealth((player.getHealth() - 1)); - //player.setEntityHealth(player.func_110143_aJ() - 1); - } - } - - if (player.getHealth() <= 0) - { - player.inventory.dropAllItems(); - } - } - - public int getMaxEssence() - { - return this.maxEssence; - } - - public int getOrbLevel() - { - return orbLevel; - } - - @Override - public void onArmourUpdate(World world, EntityPlayer player, ItemStack thisItemStack) - { - } - - @Override - public boolean isUpgrade() - { - return false; - } - - @Override - public int getEnergyForTenSeconds() - { - return 0; - } - - @Override - public ItemStack getContainerItem(ItemStack itemStack) - { - //if(!syphonBatteries(itemStack, null, 10)) - { - //syphonWhileInContainer(itemStack, this.getEnergyUsed()); -// ItemStack copiedStack = itemStack.copy(); -// copiedStack.setItemDamage(copiedStack.getItemDamage()); -// copiedStack.stackSize = 1; -// return copiedStack; - } - return itemStack; - } - - @Override - public boolean hasContainerItem() - { - return true; - } - - //@SideOnly(Side.SERVER) - public int getCurrentEssence(ItemStack par1ItemStack) - { - if (par1ItemStack == null) - { - return 0; - } - - NBTTagCompound itemTag = par1ItemStack.stackTagCompound; - - if (itemTag == null || itemTag.getString("ownerName").equals("")) - { - return 0; - } - - String owner = itemTag.getString("ownerName"); - 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; - return (currentEssence); - } - - @Override - public boolean doesContainerItemLeaveCraftingGrid(ItemStack itemStack) - { - return false; - } -} diff --git a/1.7.2/main/java/WayofTime/alchemicalWizardry/common/items/EnergyBazooka.java b/1.7.2/main/java/WayofTime/alchemicalWizardry/common/items/EnergyBazooka.java deleted file mode 100644 index be0eddc2..00000000 --- a/1.7.2/main/java/WayofTime/alchemicalWizardry/common/items/EnergyBazooka.java +++ /dev/null @@ -1,219 +0,0 @@ -package WayofTime.alchemicalWizardry.common.items; - -import java.util.List; - -import net.minecraft.client.renderer.texture.IIconRegister; -import net.minecraft.entity.Entity; -import net.minecraft.entity.player.EntityPlayer; -import net.minecraft.item.ItemStack; -import net.minecraft.nbt.NBTTagCompound; -import net.minecraft.util.IIcon; -import net.minecraft.util.Vec3; -import net.minecraft.world.World; -import WayofTime.alchemicalWizardry.AlchemicalWizardry; -import WayofTime.alchemicalWizardry.common.entity.projectile.EntityEnergyBazookaMainProjectile; -import cpw.mods.fml.relauncher.Side; -import cpw.mods.fml.relauncher.SideOnly; - -public class EnergyBazooka extends EnergyItems -{ - private static IIcon activeIcon; - private static IIcon passiveIcon; - private static int damage; - //private static int delay; - private static final int maxDelay = 150; - - public EnergyBazooka() - { - super(); - setMaxStackSize(1); - setCreativeTab(AlchemicalWizardry.tabBloodMagic); - setFull3D(); - setMaxDamage(250); - this.setEnergyUsed(20000); - damage = 12; - //delay = 0; - } - - @Override - @SideOnly(Side.CLIENT) - public void registerIcons(IIconRegister iconRegister) - { - this.itemIcon = iconRegister.registerIcon("AlchemicalWizardry:EnergyBazooka_activated"); - this.activeIcon = iconRegister.registerIcon("AlchemicalWizardry:EnergyBazooka_activated"); - this.passiveIcon = iconRegister.registerIcon("AlchemicalWizardry:SheathedItem"); - } - - @Override - public IIcon getIcon(ItemStack stack, int renderPass, EntityPlayer player, ItemStack usingItem, int useRemaining) - { - if (stack.stackTagCompound == null) - { - stack.setTagCompound(new NBTTagCompound()); - } - - NBTTagCompound tag = stack.stackTagCompound; - - if (tag.getBoolean("isActive")) - { - return this.activeIcon; - } else - { - return this.passiveIcon; - } - } - - @Override - public ItemStack onItemRightClick(ItemStack par1ItemStack, World par2World, EntityPlayer par3EntityPlayer) - { - EnergyItems.checkAndSetItemOwner(par1ItemStack, par3EntityPlayer); - - if (par3EntityPlayer.isSneaking()) - { - this.setActivated(par1ItemStack, !getActivated(par1ItemStack)); - par1ItemStack.stackTagCompound.setInteger("worldTimeDelay", (int) (par2World.getWorldTime() - 1) % 100); - return par1ItemStack; - } - - if (!getActivated(par1ItemStack)) - { - return par1ItemStack; - } - - if (this.getDelay(par1ItemStack) > 0) - { - return par1ItemStack; - } - - if (!par3EntityPlayer.capabilities.isCreativeMode) - { - this.syphonBatteries(par1ItemStack, par3EntityPlayer, this.getEnergyUsed()); - } - - par2World.playSoundAtEntity(par3EntityPlayer, "random.bow", 0.5F, 0.4F / (itemRand.nextFloat() * 0.4F + 0.8F)); - - if (!par2World.isRemote) - { - //par2World.spawnEntityInWorld(new EntityEnergyBazookaMainProjectile(par2World, par3EntityPlayer, damage)); - par2World.spawnEntityInWorld(new EntityEnergyBazookaMainProjectile(par2World, par3EntityPlayer, damage)); - this.setDelay(par1ItemStack, maxDelay); - } - - Vec3 vec = par3EntityPlayer.getLookVec(); - double wantedVelocity = 3.0f; - par3EntityPlayer.motionX = -vec.xCoord * wantedVelocity; - par3EntityPlayer.motionY = -vec.yCoord * wantedVelocity; - par3EntityPlayer.motionZ = -vec.zCoord * wantedVelocity; - par2World.playSoundEffect((double) ((float) par3EntityPlayer.posX + 0.5F), (double) ((float) par3EntityPlayer.posY + 0.5F), (double) ((float) par3EntityPlayer.posZ + 0.5F), "random.fizz", 0.5F, 2.6F + (par2World.rand.nextFloat() - par2World.rand.nextFloat()) * 0.8F); - par3EntityPlayer.fallDistance = 0; - return par1ItemStack; - } - - @Override - public void onUpdate(ItemStack par1ItemStack, World par2World, Entity par3Entity, int par4, boolean par5) - { - if (!(par3Entity instanceof EntityPlayer)) - { - return; - } - - EntityPlayer par3EntityPlayer = (EntityPlayer) par3Entity; - - if (par1ItemStack.stackTagCompound == null) - { - par1ItemStack.setTagCompound(new NBTTagCompound()); - } - -// if(par1ItemStack.stackTagCompound.getBoolean("isActive")) -// { -// EnergyItems.syphonBatteries(par1ItemStack, par3EntityPlayer, 1); -// } - int delay = this.getDelay(par1ItemStack); - - if (!par2World.isRemote && delay > 0) - { - this.setDelay(par1ItemStack, delay - 1); - } - - if (par2World.getWorldTime() % 100 == par1ItemStack.stackTagCompound.getInteger("worldTimeDelay") && par1ItemStack.stackTagCompound.getBoolean("isActive")) - { - if (!par3EntityPlayer.capabilities.isCreativeMode) - { - EnergyItems.syphonBatteries(par1ItemStack, par3EntityPlayer, 50); - } - } - - par1ItemStack.setItemDamage(0); - return; - } - - @Override - public void addInformation(ItemStack par1ItemStack, EntityPlayer par2EntityPlayer, List par3List, boolean par4) - { - par3List.add("Boom."); - - if (!(par1ItemStack.stackTagCompound == null)) - { - if (par1ItemStack.stackTagCompound.getBoolean("isActive")) - { - par3List.add("Activated"); - } else - { - par3List.add("Deactivated"); - } - - if (!par1ItemStack.stackTagCompound.getString("ownerName").equals("")) - { - par3List.add("Current owner: " + par1ItemStack.stackTagCompound.getString("ownerName")); - } - } - } - - public void setActivated(ItemStack par1ItemStack, boolean newActivated) - { - NBTTagCompound itemTag = par1ItemStack.stackTagCompound; - - if (itemTag == null) - { - par1ItemStack.setTagCompound(new NBTTagCompound()); - } - - itemTag.setBoolean("isActive", newActivated); - } - - public boolean getActivated(ItemStack par1ItemStack) - { - NBTTagCompound itemTag = par1ItemStack.stackTagCompound; - - if (itemTag == null) - { - par1ItemStack.setTagCompound(new NBTTagCompound()); - } - - return itemTag.getBoolean("isActive"); - } - - public void setDelay(ItemStack par1ItemStack, int newDelay) - { - NBTTagCompound itemTag = par1ItemStack.stackTagCompound; - - if (itemTag == null) - { - par1ItemStack.setTagCompound(new NBTTagCompound()); - } - - itemTag.setInteger("delay", newDelay); - } - - public int getDelay(ItemStack par1ItemStack) - { - NBTTagCompound itemTag = par1ItemStack.stackTagCompound; - - if (itemTag == null) - { - par1ItemStack.setTagCompound(new NBTTagCompound()); - } - - return itemTag.getInteger("delay"); - } -} diff --git a/1.7.2/main/java/WayofTime/alchemicalWizardry/common/items/EnergyBlast.java b/1.7.2/main/java/WayofTime/alchemicalWizardry/common/items/EnergyBlast.java deleted file mode 100644 index 298c950d..00000000 --- a/1.7.2/main/java/WayofTime/alchemicalWizardry/common/items/EnergyBlast.java +++ /dev/null @@ -1,214 +0,0 @@ -package WayofTime.alchemicalWizardry.common.items; - -import java.util.List; - -import net.minecraft.client.renderer.texture.IIconRegister; -import net.minecraft.entity.Entity; -import net.minecraft.entity.player.EntityPlayer; -import net.minecraft.item.ItemStack; -import net.minecraft.nbt.NBTTagCompound; -import net.minecraft.util.IIcon; -import net.minecraft.world.World; -import WayofTime.alchemicalWizardry.AlchemicalWizardry; -import WayofTime.alchemicalWizardry.common.entity.projectile.EnergyBlastProjectile; -import cpw.mods.fml.relauncher.Side; -import cpw.mods.fml.relauncher.SideOnly; - -public class EnergyBlast extends EnergyItems -{ - private static IIcon activeIcon; - private static IIcon passiveIcon; - private static int damage; - //private static int delay; - private static final int maxDelay = 15; - - public EnergyBlast() - { - super(); - setMaxStackSize(1); - setCreativeTab(AlchemicalWizardry.tabBloodMagic); - setUnlocalizedName("energyBlaster"); - setFull3D(); - setMaxDamage(250); - this.setEnergyUsed(150); - damage = 12; - //delay = 0; - } - - @Override - @SideOnly(Side.CLIENT) - public void registerIcons(IIconRegister iconRegister) - { - this.itemIcon = iconRegister.registerIcon("AlchemicalWizardry:EnergyBlaster_activated"); - this.activeIcon = iconRegister.registerIcon("AlchemicalWizardry:EnergyBlaster_activated"); - this.passiveIcon = iconRegister.registerIcon("AlchemicalWizardry:SheathedItem"); - } - - @Override - public IIcon getIcon(ItemStack stack, int renderPass, EntityPlayer player, ItemStack usingItem, int useRemaining) - { - if (stack.stackTagCompound == null) - { - stack.setTagCompound(new NBTTagCompound()); - } - - NBTTagCompound tag = stack.stackTagCompound; - - if (tag.getBoolean("isActive")) - { - return this.activeIcon; - } else - { - return this.passiveIcon; - } - } - - @Override - public ItemStack onItemRightClick(ItemStack par1ItemStack, World par2World, EntityPlayer par3EntityPlayer) - { - EnergyItems.checkAndSetItemOwner(par1ItemStack, par3EntityPlayer); - - if (par3EntityPlayer.isSneaking()) - { - this.setActivated(par1ItemStack, !getActivated(par1ItemStack)); - par1ItemStack.stackTagCompound.setInteger("worldTimeDelay", (int) (par2World.getWorldTime() - 1) % 100); - return par1ItemStack; - } - - if (!getActivated(par1ItemStack)) - { - return par1ItemStack; - } - - if (this.getDelay(par1ItemStack) > 0) - { - return par1ItemStack; - } - - if (!par3EntityPlayer.capabilities.isCreativeMode) - { - this.syphonBatteries(par1ItemStack, par3EntityPlayer, this.getEnergyUsed()); - } - - par2World.playSoundAtEntity(par3EntityPlayer, "random.bow", 0.5F, 0.4F / (itemRand.nextFloat() * 0.4F + 0.8F)); - - if (!par2World.isRemote) - { - //par2World.spawnEntityInWorld(new EnergyBlastProjectile(par2World, par3EntityPlayer, damage)); - par2World.spawnEntityInWorld(new EnergyBlastProjectile(par2World, par3EntityPlayer, damage)); - this.setDelay(par1ItemStack, maxDelay); - } - - return par1ItemStack; - } - - @Override - public void onUpdate(ItemStack par1ItemStack, World par2World, Entity par3Entity, int par4, boolean par5) - { - if (!(par3Entity instanceof EntityPlayer)) - { - return; - } - - EntityPlayer par3EntityPlayer = (EntityPlayer) par3Entity; - - if (par1ItemStack.stackTagCompound == null) - { - par1ItemStack.setTagCompound(new NBTTagCompound()); - } - -// if(par1ItemStack.stackTagCompound.getBoolean("isActive")) -// { -// EnergyItems.syphonBatteries(par1ItemStack, par3EntityPlayer, 1); -// } - int delay = this.getDelay(par1ItemStack); - - if (!par2World.isRemote && delay > 0) - { - this.setDelay(par1ItemStack, delay - 1); - } - - if (par2World.getWorldTime() % 100 == par1ItemStack.stackTagCompound.getInteger("worldTimeDelay") && par1ItemStack.stackTagCompound.getBoolean("isActive")) - { - if (!par3EntityPlayer.capabilities.isCreativeMode) - { - EnergyItems.syphonBatteries(par1ItemStack, par3EntityPlayer, 50); - } - } - - par1ItemStack.setItemDamage(0); - return; - } - - @Override - public void addInformation(ItemStack par1ItemStack, EntityPlayer par2EntityPlayer, List par3List, boolean par4) - { - par3List.add("Used to fire devastating"); - par3List.add("projectiles."); - par3List.add("Damage: " + damage); - - if (!(par1ItemStack.stackTagCompound == null)) - { - if (par1ItemStack.stackTagCompound.getBoolean("isActive")) - { - par3List.add("Activated"); - } else - { - par3List.add("Deactivated"); - } - - if (!par1ItemStack.stackTagCompound.getString("ownerName").equals("")) - { - par3List.add("Current owner: " + par1ItemStack.stackTagCompound.getString("ownerName")); - } - } - } - - public void setActivated(ItemStack par1ItemStack, boolean newActivated) - { - NBTTagCompound itemTag = par1ItemStack.stackTagCompound; - - if (itemTag == null) - { - par1ItemStack.setTagCompound(new NBTTagCompound()); - } - - itemTag.setBoolean("isActive", newActivated); - } - - public boolean getActivated(ItemStack par1ItemStack) - { - NBTTagCompound itemTag = par1ItemStack.stackTagCompound; - - if (itemTag == null) - { - par1ItemStack.setTagCompound(new NBTTagCompound()); - } - - return itemTag.getBoolean("isActive"); - } - - public void setDelay(ItemStack par1ItemStack, int newDelay) - { - NBTTagCompound itemTag = par1ItemStack.stackTagCompound; - - if (itemTag == null) - { - par1ItemStack.setTagCompound(new NBTTagCompound()); - } - - itemTag.setInteger("delay", newDelay); - } - - public int getDelay(ItemStack par1ItemStack) - { - NBTTagCompound itemTag = par1ItemStack.stackTagCompound; - - if (itemTag == null) - { - par1ItemStack.setTagCompound(new NBTTagCompound()); - } - - return itemTag.getInteger("delay"); - } -} diff --git a/1.7.2/main/java/WayofTime/alchemicalWizardry/common/items/EnergyItems.java b/1.7.2/main/java/WayofTime/alchemicalWizardry/common/items/EnergyItems.java deleted file mode 100644 index a82f268f..00000000 --- a/1.7.2/main/java/WayofTime/alchemicalWizardry/common/items/EnergyItems.java +++ /dev/null @@ -1,357 +0,0 @@ -package WayofTime.alchemicalWizardry.common.items; - -import net.minecraft.entity.player.EntityPlayer; -import net.minecraft.item.Item; -import net.minecraft.item.ItemStack; -import net.minecraft.nbt.NBTTagCompound; -import net.minecraft.server.MinecraftServer; -import net.minecraft.util.DamageSource; -import net.minecraft.world.World; -import WayofTime.alchemicalWizardry.AlchemicalWizardry; -import WayofTime.alchemicalWizardry.api.items.interfaces.IBindable; -import WayofTime.alchemicalWizardry.api.soulNetwork.LifeEssenceNetwork; -import WayofTime.alchemicalWizardry.common.PacketHandler; -import WayofTime.alchemicalWizardry.common.spell.complex.effect.SpellHelper; -import WayofTime.alchemicalWizardry.common.tileEntity.TEAltar; - -public class EnergyItems extends Item implements IBindable -{ - private int energyUsed; - - public EnergyItems() - { - super(); - setCreativeTab(AlchemicalWizardry.tabBloodMagic); - } - - protected void setEnergyUsed(int par1int) - { - this.energyUsed = par1int; - } - - protected int getEnergyUsed() - { - return this.energyUsed; - } - //Heals the player using the item. If the player is at full health, or if the durability cannot be used any more, - //the item is not used. - - 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.setHealth((player.getHealth() - 1)); - - if (player.getHealth() <= 0.0005) - { - player.inventory.dropAllItems(); - break; - } - } - } - - public static boolean syphonBatteries(ItemStack ist, EntityPlayer player, int damageToBeDone) - { - if (!player.worldObj.isRemote) - { - return syphonAndDamageWhileInContainer(ist, player, damageToBeDone); - } else - { - World world = player.worldObj; - - if (world != null) - { - double posX = player.posX; - double posY = player.posY; - double posZ = player.posZ; - //if(particles) - { - SpellHelper.sendIndexedParticleToAllAround(world, posX, posY, posZ, 20, world.provider.dimensionId, 4, posX, posY, posZ); - world.playSoundEffect((double) ((float) player.posX + 0.5F), (double) ((float) player.posY + 0.5F), (double) ((float) player.posZ + 0.5F), "random.fizz", 0.5F, 2.6F + (world.rand.nextFloat() - world.rand.nextFloat()) * 0.8F); - } - } - } - - return true; - //return syphonBatteriesWithoutParticles(ist, player, damageToBeDone, true); - } - - public static boolean syphonWhileInContainer(ItemStack ist, int damageToBeDone) - { - if (ist.getTagCompound() != null && !(ist.getTagCompound().getString("ownerName").equals(""))) - { - String ownerName = ist.getTagCompound().getString("ownerName"); - - if (MinecraftServer.getServer() == null) - { - return false; - } - - World world = MinecraftServer.getServer().worldServers[0]; - LifeEssenceNetwork data = (LifeEssenceNetwork) world.loadItemData(LifeEssenceNetwork.class, ownerName); - - if (data == null) - { - data = new LifeEssenceNetwork(ownerName); - world.setItemData(ownerName, data); - } - - if (data.currentEssence >= damageToBeDone) - { - data.currentEssence -= damageToBeDone; - data.markDirty(); - return true; - } - -// EntityPlayer ownerEntity = MinecraftServer.getServer().getConfigurationManager().getPlayerForUsername(ist.getTagCompound().getString("ownerName")); -// if(ownerEntity==null){return false;} -// NBTTagCompound tag = ownerEntity.getEntityData(); -// int currentEssence = tag.getInteger("currentEssence"); -// if(currentEssence>=damageToBeDone) -// { -// tag.setInteger("currentEssence", currentEssence-damageToBeDone); -// return true; -// } - } - - return false; - } - - public static boolean canSyphonInContainer(ItemStack ist, int damageToBeDone) - { - if (ist.getTagCompound() != null && !(ist.getTagCompound().getString("ownerName").equals(""))) - { - String ownerName = ist.getTagCompound().getString("ownerName"); - - if (MinecraftServer.getServer() == null) - { - return false; - } - - World world = MinecraftServer.getServer().worldServers[0]; - LifeEssenceNetwork data = (LifeEssenceNetwork) world.loadItemData(LifeEssenceNetwork.class, ownerName); - - if (data == null) - { - data = new LifeEssenceNetwork(ownerName); - world.setItemData(ownerName, data); - } - - return data.currentEssence >= damageToBeDone; -// EntityPlayer ownerEntity = MinecraftServer.getServer().getConfigurationManager().getPlayerForUsername(ist.getTagCompound().getString("ownerName")); -// if(ownerEntity==null){return false;} -// NBTTagCompound tag = ownerEntity.getEntityData(); -// int currentEssence = tag.getInteger("currentEssence"); -// if(currentEssence>=damageToBeDone) -// { -// tag.setInteger("currentEssence", currentEssence-damageToBeDone); -// return true; -// } - } - - return false; - } - - public static void hurtPlayer(EntityPlayer user, int energySyphoned) - { - if (energySyphoned < 100 && energySyphoned > 0) - { - if (!user.capabilities.isCreativeMode) - { - //player.setEntityHealth((player.getHealth()-1)); - user.setHealth((user.getHealth() - 1)); - - if (user.getHealth() <= 0.0005f) - { - user.onDeath(DamageSource.generic); - - } - } - } else if (energySyphoned >= 100) - { - if (!user.capabilities.isCreativeMode) - { - for (int i = 0; i < ((energySyphoned + 99) / 100); i++) - { - //player.setEntityHealth((player.getHealth()-1)); - user.setHealth((user.getHealth() - 1)); - - if (user.getHealth() <= 0.0005f) - { - user.onDeath(DamageSource.generic); - break; - } - } - } - } - } - - public static boolean syphonAndDamageWhileInContainer(ItemStack ist, EntityPlayer player, int damageToBeDone) - { - if (!syphonWhileInContainer(ist, damageToBeDone)) - { - hurtPlayer(player, damageToBeDone); - } - - return true; - } - - //Global static methods - public static void checkAndSetItemOwner(ItemStack item, EntityPlayer player) - { - if (item.stackTagCompound == null) - { - item.setTagCompound(new NBTTagCompound()); - } - - if (item.stackTagCompound.getString("ownerName").equals("")) - { - item.stackTagCompound.setString("ownerName", SpellHelper.getUsername(player)); - } - - initializePlayer(player); - } - - public static void checkAndSetItemOwner(ItemStack item, String ownerName) - { - if (item.stackTagCompound == null) - { - item.setTagCompound(new NBTTagCompound()); - } - - if (item.stackTagCompound.getString("ownerName").equals("")) - { - item.stackTagCompound.setString("ownerName", ownerName); - } - } - - public static void initializePlayer(EntityPlayer player) - { - NBTTagCompound tag = player.getEntityData(); - - if (tag.getInteger("currentEssence") == 0) - { - tag.setInteger("currentEssence", 0); - } - } - - public static String getOwnerName(ItemStack item) - { - if (item.stackTagCompound == null) - { - item.setTagCompound(new NBTTagCompound()); - } - - return item.stackTagCompound.getString("ownerName"); - } - - public static void drainPlayerNetwork(EntityPlayer player, int damageToBeDone) - { - String ownerName = SpellHelper.getUsername(player); - - if (MinecraftServer.getServer() == null) - { - return; - } - - World world = MinecraftServer.getServer().worldServers[0]; - LifeEssenceNetwork data = (LifeEssenceNetwork) world.loadItemData(LifeEssenceNetwork.class, ownerName); - - if (data == null) - { - data = new LifeEssenceNetwork(ownerName); - world.setItemData(ownerName, data); - } - - if (data.currentEssence >= damageToBeDone) - { - data.currentEssence -= damageToBeDone; - data.markDirty(); - }else - { - hurtPlayer(player, damageToBeDone); - } - } - - public static int getCurrentEssence(String ownerName) - { - if (MinecraftServer.getServer() == null) - { - return 0; - } - - World world = MinecraftServer.getServer().worldServers[0]; - LifeEssenceNetwork data = (LifeEssenceNetwork) world.loadItemData(LifeEssenceNetwork.class, ownerName); - - if (data == null) - { - data = new LifeEssenceNetwork(ownerName); - world.setItemData(ownerName, data); - } - - return data.currentEssence; - } - - public static void setCurrentEssence(String ownerName, int amount) - { - if (MinecraftServer.getServer() == null) - { - return; - } - - World world = MinecraftServer.getServer().worldServers[0]; - LifeEssenceNetwork data = (LifeEssenceNetwork) world.loadItemData(LifeEssenceNetwork.class, ownerName); - - if (data == null) - { - data = new LifeEssenceNetwork(ownerName); - world.setItemData(ownerName, data); - } - - data.currentEssence = amount; - data.markDirty(); - } - - public static void addEssenceToMaximum(String ownerName, int amount, int maximum) - { - if (MinecraftServer.getServer() == null) - { - return; - } - - World world = MinecraftServer.getServer().worldServers[0]; - LifeEssenceNetwork data = (LifeEssenceNetwork) world.loadItemData(LifeEssenceNetwork.class, ownerName); - - if (data == null) - { - data = new LifeEssenceNetwork(ownerName); - world.setItemData(ownerName, data); - } - - if(data.currentEssence>=maximum) - { - return; - } - - data.currentEssence = Math.min(maximum, data.currentEssence + amount); - data.markDirty(); - } -} diff --git a/1.7.2/main/java/WayofTime/alchemicalWizardry/common/items/EnergySword.java b/1.7.2/main/java/WayofTime/alchemicalWizardry/common/items/EnergySword.java deleted file mode 100644 index a4578599..00000000 --- a/1.7.2/main/java/WayofTime/alchemicalWizardry/common/items/EnergySword.java +++ /dev/null @@ -1,238 +0,0 @@ -package WayofTime.alchemicalWizardry.common.items; - -import java.util.List; - -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.ItemStack; -import net.minecraft.item.ItemSword; -import net.minecraft.nbt.NBTTagCompound; -import net.minecraft.potion.Potion; -import net.minecraft.potion.PotionEffect; -import net.minecraft.util.IIcon; -import net.minecraft.world.World; -import WayofTime.alchemicalWizardry.AlchemicalWizardry; -import cpw.mods.fml.relauncher.Side; -import cpw.mods.fml.relauncher.SideOnly; - -public class EnergySword extends ItemSword -{ - //private float weaponDamaged; - //private int maxMode = 3; - private NBTTagCompound data; - - private static IIcon activeIcon; - private static IIcon passiveIcon; - - private int energyUsed; - - public EnergySword() - { - super(AlchemicalWizardry.bloodBoundToolMaterial); - this.maxStackSize = 1; - setCreativeTab(AlchemicalWizardry.tabBloodMagic); - setEnergyUsed(50); - setFull3D(); - setMaxDamage(100); - //weaponDamaged = 12.0F; - } - - public void setEnergyUsed(int i) - { - energyUsed = i; - } - - public int getEnergyUsed() - { - return this.energyUsed; - } - - @Override - @SideOnly(Side.CLIENT) - public void registerIcons(IIconRegister iconRegister) - { - this.itemIcon = iconRegister.registerIcon("AlchemicalWizardry:BoundSword_activated"); - this.activeIcon = iconRegister.registerIcon("AlchemicalWizardry:BoundSword_activated"); - this.passiveIcon = iconRegister.registerIcon("AlchemicalWizardry:SheathedItem"); - } - - @Override - public IIcon getIcon(ItemStack stack, int renderPass, EntityPlayer player, ItemStack usingItem, int useRemaining) - { - if (stack.stackTagCompound == null) - { - stack.setTagCompound(new NBTTagCompound()); - } - - NBTTagCompound tag = stack.stackTagCompound; - - if (tag.getBoolean("isActive")) - { - return this.activeIcon; - } else - { - return this.passiveIcon; - } - } - - @Override - public boolean onLeftClickEntity(ItemStack stack, EntityPlayer player, Entity entity) - { - return !getActivated(stack); - } - - @Override - public boolean hitEntity(ItemStack par1ItemStack, EntityLivingBase par2EntityLivingBase, EntityLivingBase par3EntityLivingBase) - { - if (par3EntityLivingBase instanceof EntityPlayer) - { - EnergyItems.checkAndSetItemOwner(par1ItemStack, (EntityPlayer) par3EntityLivingBase); - - if (!EnergyItems.syphonBatteries(par1ItemStack, (EntityPlayer) par3EntityLivingBase, this.getEnergyUsed())) - { - //this.damagePlayer(null, (EntityPlayer)par3EntityLivingBase, (this.getEnergyUsed() + 99) / 100); - } - } - - par2EntityLivingBase.addPotionEffect(new PotionEffect(Potion.weakness.id, 60, 2)); - return true; - } - - @Override - public ItemStack onItemRightClick(ItemStack par1ItemStack, World par2World, EntityPlayer par3EntityPlayer) - { - EnergyItems.checkAndSetItemOwner(par1ItemStack, par3EntityPlayer); - - if (par3EntityPlayer.isSneaking()) - { - this.setActivated(par1ItemStack, !getActivated(par1ItemStack)); - par1ItemStack.stackTagCompound.setInteger("worldTimeDelay", (int) (par2World.getWorldTime() - 1) % 100); - return par1ItemStack; - } - - if (!getActivated(par1ItemStack)) - { - return par1ItemStack; - } - - return par1ItemStack; - } - - @Override - public int getItemEnchantability() - { - return 30; - } - - @Override - public void onUpdate(ItemStack par1ItemStack, World par2World, Entity par3Entity, int par4, boolean par5) - { - if (!(par3Entity instanceof EntityPlayer)) - { - return; - } - - EntityPlayer par3EntityPlayer = (EntityPlayer) par3Entity; - - if (par1ItemStack.stackTagCompound == null) - { - par1ItemStack.setTagCompound(new NBTTagCompound()); - } - -// if(par1ItemStack.stackTagCompound.getBoolean("isActive")) -// { -// EnergyItems.syphonBatteries(par1ItemStack, par3EntityPlayer, 1); -// } - - if (par2World.getWorldTime() % 100 == par1ItemStack.stackTagCompound.getInteger("worldTimeDelay") && par1ItemStack.stackTagCompound.getBoolean("isActive")) - { - if (!par3EntityPlayer.capabilities.isCreativeMode) - { - EnergyItems.syphonBatteries(par1ItemStack, par3EntityPlayer, 50); - } - } - - par1ItemStack.setItemDamage(0); - return; - } - - public void setActivated(ItemStack par1ItemStack, boolean newActivated) - { - NBTTagCompound itemTag = par1ItemStack.stackTagCompound; - - if (itemTag == null) - { - par1ItemStack.setTagCompound(new NBTTagCompound()); - } - - itemTag.setBoolean("isActive", newActivated); - } - - public boolean getActivated(ItemStack par1ItemStack) - { - NBTTagCompound itemTag = par1ItemStack.stackTagCompound; - - if (itemTag == null) - { - par1ItemStack.setTagCompound(new NBTTagCompound()); - } - - return itemTag.getBoolean("isActive"); - } - -// public int getDamageVsEntity(Entity par1Entity) -// { -// return (int) this.weaponDamage; -// } - - public float func_82803_g() - { - return 4.0F; - } - - @Override - public void addInformation(ItemStack par1ItemStack, EntityPlayer par2EntityPlayer, List par3List, boolean par4) - { - par3List.add("Caution: may cause"); - par3List.add("a bad day..."); - - if (!(par1ItemStack.stackTagCompound == null)) - { - if (par1ItemStack.stackTagCompound.getBoolean("isActive")) - { - par3List.add("Activated"); - } else - { - par3List.add("Deactivated"); - } - - if (!par1ItemStack.stackTagCompound.getString("ownerName").equals("")) - { - par3List.add("Current owner: " + par1ItemStack.stackTagCompound.getString("ownerName")); - } - } - } - - @Override - public float func_150893_a(ItemStack par1ItemStack, Block par2Block) - { - if (par2Block == Blocks.web) - { - return 15.0F; - } else - { - Material material = par2Block.getMaterial(); - return material != Material.plants && material != Material.vine && material != Material.coral && material != Material.leaves && material != Material.gourd ? 1.0F : 1.5F; - } - } - -// public boolean getIsRepairable(ItemStack par1ItemStack, ItemStack par2ItemStack) -// { -// return false; -// } -} diff --git a/1.7.2/main/java/WayofTime/alchemicalWizardry/common/items/EnhancedTelepositionFocus.java b/1.7.2/main/java/WayofTime/alchemicalWizardry/common/items/EnhancedTelepositionFocus.java deleted file mode 100644 index 4753fc05..00000000 --- a/1.7.2/main/java/WayofTime/alchemicalWizardry/common/items/EnhancedTelepositionFocus.java +++ /dev/null @@ -1,46 +0,0 @@ -package WayofTime.alchemicalWizardry.common.items; - -import java.util.List; - -import net.minecraft.client.renderer.texture.IIconRegister; -import net.minecraft.entity.player.EntityPlayer; -import net.minecraft.item.ItemStack; -import net.minecraft.nbt.NBTTagCompound; -import cpw.mods.fml.relauncher.Side; -import cpw.mods.fml.relauncher.SideOnly; - -public class EnhancedTelepositionFocus extends TelepositionFocus -{ - public EnhancedTelepositionFocus() - { - super(2); - // TODO Auto-generated constructor stub - } - - @Override - @SideOnly(Side.CLIENT) - public void registerIcons(IIconRegister iconRegister) - { - //TODO - this.itemIcon = iconRegister.registerIcon("AlchemicalWizardry:EnhancedTeleposerFocus"); - } - - @Override - public void addInformation(ItemStack par1ItemStack, EntityPlayer par2EntityPlayer, List par3List, boolean par4) - { - par3List.add("A focus further enhanced in an altar"); - - if (!(par1ItemStack.stackTagCompound == null)) - { - NBTTagCompound itemTag = par1ItemStack.stackTagCompound; - - if (!par1ItemStack.stackTagCompound.getString("ownerName").equals("")) - { - par3List.add("Current owner: " + par1ItemStack.stackTagCompound.getString("ownerName")); - } - - par3List.add("Coords: " + itemTag.getInteger("xCoord") + ", " + itemTag.getInteger("yCoord") + ", " + itemTag.getInteger("zCoord")); - par3List.add("Bound Dimension: " + getDimensionID(par1ItemStack)); - } - } -} diff --git a/1.7.2/main/java/WayofTime/alchemicalWizardry/common/items/FireScribeTool.java b/1.7.2/main/java/WayofTime/alchemicalWizardry/common/items/FireScribeTool.java deleted file mode 100644 index 18fc3a52..00000000 --- a/1.7.2/main/java/WayofTime/alchemicalWizardry/common/items/FireScribeTool.java +++ /dev/null @@ -1,20 +0,0 @@ -package WayofTime.alchemicalWizardry.common.items; - -import net.minecraft.client.renderer.texture.IIconRegister; -import cpw.mods.fml.relauncher.Side; -import cpw.mods.fml.relauncher.SideOnly; - -public class FireScribeTool extends ScribeTool -{ - public FireScribeTool() - { - super(2); - } - - @Override - @SideOnly(Side.CLIENT) - public void registerIcons(IIconRegister iconRegister) - { - this.itemIcon = iconRegister.registerIcon("AlchemicalWizardry:FireScribeTool"); - } -} \ No newline at end of file diff --git a/1.7.2/main/java/WayofTime/alchemicalWizardry/common/items/ItemAlchemyBase.java b/1.7.2/main/java/WayofTime/alchemicalWizardry/common/items/ItemAlchemyBase.java deleted file mode 100644 index 8319c4a8..00000000 --- a/1.7.2/main/java/WayofTime/alchemicalWizardry/common/items/ItemAlchemyBase.java +++ /dev/null @@ -1,107 +0,0 @@ -package WayofTime.alchemicalWizardry.common.items; - -import java.util.List; - -import net.minecraft.client.renderer.texture.IIconRegister; -import net.minecraft.creativetab.CreativeTabs; -import net.minecraft.entity.player.EntityPlayer; -import net.minecraft.item.Item; -import net.minecraft.item.ItemStack; -import net.minecraft.util.EnumChatFormatting; -import net.minecraft.util.IIcon; -import net.minecraft.util.MathHelper; -import net.minecraft.world.World; - -import org.lwjgl.input.Keyboard; - -import WayofTime.alchemicalWizardry.AlchemicalWizardry; -import WayofTime.alchemicalWizardry.api.alchemy.AlchemyRecipeRegistry; -import cpw.mods.fml.relauncher.Side; -import cpw.mods.fml.relauncher.SideOnly; - -public class ItemAlchemyBase extends Item -{ - private static final String[] ITEM_NAMES = new String[]{"Offensa","Praesidium","OrbisTerrae","StrengthenedCatalyst","ConcentratedCatalyst","FracturedBone","Virtus","Reductus","Potentia"}; - - @SideOnly(Side.CLIENT) - private IIcon[] icons; - - public ItemAlchemyBase() - { - super(); - this.maxStackSize = 64; - this.setCreativeTab(AlchemicalWizardry.tabBloodMagic); - this.hasSubtypes = true; - } - - @Override - @SideOnly(Side.CLIENT) - public void registerIcons(IIconRegister iconRegister) - { - icons = new IIcon[ITEM_NAMES.length]; - - for (int i = 0; i < ITEM_NAMES.length; ++i) - { - icons[i] = iconRegister.registerIcon("AlchemicalWizardry:" + "baseAlchemyItem" + ITEM_NAMES[i]); - } - } - - @Override - public void addInformation(ItemStack par1ItemStack, EntityPlayer par2EntityPlayer, List par3List, boolean par4) - { - par3List.add("Used in alchemy"); - - if (Keyboard.isKeyDown(Keyboard.KEY_RSHIFT) || Keyboard.isKeyDown(Keyboard.KEY_LSHIFT)) - { - ItemStack[] recipe = AlchemyRecipeRegistry.getRecipeForItemStack(par1ItemStack); - - if (recipe != null) - { - par3List.add(EnumChatFormatting.BLUE + "Recipe:"); - - for (ItemStack item : recipe) - { - if (item != null) - { - par3List.add("" + item.getDisplayName()); - } - } - } - } else - { - par3List.add("-Press " + EnumChatFormatting.BLUE + "shift" + EnumChatFormatting.GRAY + " for Recipe-"); - } - } - - @Override - public ItemStack onItemRightClick(ItemStack par1ItemStack, World par2World, EntityPlayer par3EntityPlayer) - { - return par1ItemStack; - } - - @Override - public String getUnlocalizedName(ItemStack itemStack) - { - //This is what will do all the localisation things on the alchemy components so you dont have to set it :D - int meta = MathHelper.clamp_int(itemStack.getItemDamage(), 0, ITEM_NAMES.length - 1); - return ("" + "item.bloodMagicAlchemyItem." + ITEM_NAMES[meta]); - } - - @Override - @SideOnly(Side.CLIENT) - public IIcon getIconFromDamage(int meta) - { - int j = MathHelper.clamp_int(meta, 0, ITEM_NAMES.length - 1); - return icons[j]; - } - - @Override - @SideOnly(Side.CLIENT) - public void getSubItems(Item id, CreativeTabs creativeTab, List list) - { - for (int meta = 0; meta < ITEM_NAMES.length; ++meta) - { - list.add(new ItemStack(id, 1, meta)); - } - } -} diff --git a/1.7.2/main/java/WayofTime/alchemicalWizardry/common/items/ItemBloodRuneBlock.java b/1.7.2/main/java/WayofTime/alchemicalWizardry/common/items/ItemBloodRuneBlock.java deleted file mode 100644 index ba92cbae..00000000 --- a/1.7.2/main/java/WayofTime/alchemicalWizardry/common/items/ItemBloodRuneBlock.java +++ /dev/null @@ -1,63 +0,0 @@ -package WayofTime.alchemicalWizardry.common.items; - -import WayofTime.alchemicalWizardry.AlchemicalWizardry; -import net.minecraft.block.Block; -import net.minecraft.item.ItemBlock; -import net.minecraft.item.ItemStack; - -public class ItemBloodRuneBlock extends ItemBlock - -{ - public ItemBloodRuneBlock(Block block) - { - super(block); - setHasSubtypes(true); -// this.setUnlocalizedName("itemBloodRuneBlock"); -// setCreativeTab(AlchemicalWizardry.tabBloodMagic); - - } - - public String getUnlocalizedName(ItemStack itemstack) - - { - String name = ""; - - switch (itemstack.getItemDamage()) - { - case 0: - { - name = "blank"; - break; - } - - case 1: - { - name = "fill"; - break; - } - - case 2: - name = "empty"; - break; - - case 3: - name = "orb"; - break; - - case 4: - name = "betterCapacity"; - break; - - default: - name = "broken"; - } - - return getUnlocalizedName() + "." + name; - } - - public int getMetadata(int par1) - - { - return par1; - } -} diff --git a/1.7.2/main/java/WayofTime/alchemicalWizardry/common/items/ItemComplexSpellCrystal.java b/1.7.2/main/java/WayofTime/alchemicalWizardry/common/items/ItemComplexSpellCrystal.java deleted file mode 100644 index e2261961..00000000 --- a/1.7.2/main/java/WayofTime/alchemicalWizardry/common/items/ItemComplexSpellCrystal.java +++ /dev/null @@ -1,108 +0,0 @@ -package WayofTime.alchemicalWizardry.common.items; - -import java.util.List; - -import net.minecraft.client.renderer.texture.IIconRegister; -import net.minecraft.entity.player.EntityPlayer; -import net.minecraft.item.ItemStack; -import net.minecraft.nbt.NBTTagCompound; -import net.minecraft.tileentity.TileEntity; -import net.minecraft.world.World; -import net.minecraftforge.common.DimensionManager; -import WayofTime.alchemicalWizardry.AlchemicalWizardry; -import WayofTime.alchemicalWizardry.common.tileEntity.TESpellParadigmBlock; -import cpw.mods.fml.relauncher.Side; -import cpw.mods.fml.relauncher.SideOnly; - -public class ItemComplexSpellCrystal extends EnergyItems -{ - public ItemComplexSpellCrystal() - { - super(); - this.setMaxStackSize(1); - setCreativeTab(AlchemicalWizardry.tabBloodMagic); - } - - @Override - @SideOnly(Side.CLIENT) - public void registerIcons(IIconRegister iconRegister) - { - this.itemIcon = iconRegister.registerIcon("AlchemicalWizardry:ComplexCrystal"); - } - - @Override - public void addInformation(ItemStack par1ItemStack, EntityPlayer par2EntityPlayer, List par3List, boolean par4) - { - par3List.add("Crystal of unimaginable power"); - - if (!(par1ItemStack.stackTagCompound == null)) - { - NBTTagCompound itemTag = par1ItemStack.stackTagCompound; - - if (!par1ItemStack.stackTagCompound.getString("ownerName").equals("")) - { - par3List.add("Current owner: " + par1ItemStack.stackTagCompound.getString("ownerName")); - } - - par3List.add("Coords: " + itemTag.getInteger("xCoord") + ", " + itemTag.getInteger("yCoord") + ", " + itemTag.getInteger("zCoord")); - par3List.add("Bound Dimension: " + getDimensionID(par1ItemStack)); - } - } - - @Override - public ItemStack onItemRightClick(ItemStack par1ItemStack, World par2World, EntityPlayer par3EntityPlayer) - { - EnergyItems.checkAndSetItemOwner(par1ItemStack, par3EntityPlayer); - - if (par3EntityPlayer.isSneaking()) - { - return par1ItemStack; - } - - if (!par2World.isRemote) - { - //World world = MinecraftServer.getServer().worldServers[getDimensionID(par1ItemStack)]; - World world = DimensionManager.getWorld(getDimensionID(par1ItemStack)); - - if (world != null) - { - NBTTagCompound itemTag = par1ItemStack.stackTagCompound; - TileEntity tileEntity = world.getTileEntity(itemTag.getInteger("xCoord"), itemTag.getInteger("yCoord"), itemTag.getInteger("zCoord")); - - if (tileEntity instanceof TESpellParadigmBlock) - { - TESpellParadigmBlock tileParad = (TESpellParadigmBlock) tileEntity; - - tileParad.castSpell(par2World, par3EntityPlayer, par1ItemStack); - } else - { - return par1ItemStack; - } - } else - { - return par1ItemStack; - } - } else - { - return par1ItemStack; - } - - par2World.playSoundAtEntity(par3EntityPlayer, "random.fizz", 0.5F, 0.4F / (itemRand.nextFloat() * 0.4F + 0.8F)); -// if (!par2World.isRemote) -// { -// //par2World.spawnEntityInWorld(new EnergyBlastProjectile(par2World, par3EntityPlayer, damage)); -// par2World.spawnEntityInWorld(new FireProjectile(par2World, par3EntityPlayer, 10)); -// } - return par1ItemStack; - } - - public int getDimensionID(ItemStack itemStack) - { - if (itemStack.stackTagCompound == null) - { - itemStack.setTagCompound(new NBTTagCompound()); - } - - return itemStack.stackTagCompound.getInteger("dimensionId"); - } -} diff --git a/1.7.2/main/java/WayofTime/alchemicalWizardry/common/items/ItemComponents.java b/1.7.2/main/java/WayofTime/alchemicalWizardry/common/items/ItemComponents.java deleted file mode 100644 index 9f8189f4..00000000 --- a/1.7.2/main/java/WayofTime/alchemicalWizardry/common/items/ItemComponents.java +++ /dev/null @@ -1,80 +0,0 @@ -package WayofTime.alchemicalWizardry.common.items; - -import java.util.List; - -import net.minecraft.client.renderer.texture.IIconRegister; -import net.minecraft.creativetab.CreativeTabs; -import net.minecraft.entity.player.EntityPlayer; -import net.minecraft.item.Item; -import net.minecraft.item.ItemStack; -import net.minecraft.util.EnumChatFormatting; -import net.minecraft.util.IIcon; -import net.minecraft.util.MathHelper; -import net.minecraft.world.World; - -import org.lwjgl.input.Keyboard; - -import WayofTime.alchemicalWizardry.AlchemicalWizardry; -import WayofTime.alchemicalWizardry.api.alchemy.AlchemyRecipeRegistry; -import cpw.mods.fml.relauncher.Side; -import cpw.mods.fml.relauncher.SideOnly; - -public class ItemComponents extends Item -{ - private static final String[] ITEM_NAMES = new String[]{"QuartzRod", "EmptyCore", "MagicalesCable", "WoodBrace", "StoneBrace", "ProjectileCore", "SelfCore","MeleeCore","ParadigmBackPlate","OutputCable","FlameCore","IcyCore","GustCore","EarthenCore","InputCable","CrackedRunicPlate","RunicPlate","ScribedRunicPlate","DefaultCore","OffensiveCore","DefensiveCore","EnvironmentalCore","PowerCore","CostCore","PotencyCore","ObsidianBrace","ToolCore"}; - - @SideOnly(Side.CLIENT) - private IIcon[] icons; - - public ItemComponents() - { - super(); - this.maxStackSize = 64; - this.setCreativeTab(AlchemicalWizardry.tabBloodMagic); - this.hasSubtypes = true; - } - - @Override - @SideOnly(Side.CLIENT) - public void registerIcons(IIconRegister iconRegister) - { - icons = new IIcon[ITEM_NAMES.length]; - - for (int i = 0; i < ITEM_NAMES.length; ++i) - { - icons[i] = iconRegister.registerIcon("AlchemicalWizardry:" + "baseItem" + ITEM_NAMES[i]); - } - } - - @Override - public ItemStack onItemRightClick(ItemStack par1ItemStack, World par2World, EntityPlayer par3EntityPlayer) - { - return par1ItemStack; - } - - @Override - public String getUnlocalizedName(ItemStack itemStack) - { - //This is what will do all the localisation things on the alchemy components so you dont have to set it :D - int meta = MathHelper.clamp_int(itemStack.getItemDamage(), 0, ITEM_NAMES.length - 1); - return ("" + "item.bloodMagicBaseItem." + ITEM_NAMES[meta]); - } - - @Override - @SideOnly(Side.CLIENT) - public IIcon getIconFromDamage(int meta) - { - int j = MathHelper.clamp_int(meta, 0, ITEM_NAMES.length - 1); - return icons[j]; - } - - @Override - @SideOnly(Side.CLIENT) - public void getSubItems(Item id, CreativeTabs creativeTab, List list) - { - for (int meta = 0; meta < ITEM_NAMES.length; ++meta) - { - list.add(new ItemStack(id, 1, meta)); - } - } -} diff --git a/1.7.2/main/java/WayofTime/alchemicalWizardry/common/items/ItemDiabloKey.java b/1.7.2/main/java/WayofTime/alchemicalWizardry/common/items/ItemDiabloKey.java deleted file mode 100644 index c172a714..00000000 --- a/1.7.2/main/java/WayofTime/alchemicalWizardry/common/items/ItemDiabloKey.java +++ /dev/null @@ -1,128 +0,0 @@ -package WayofTime.alchemicalWizardry.common.items; - -import java.util.List; - -import net.minecraft.client.renderer.texture.IIconRegister; -import net.minecraft.creativetab.CreativeTabs; -import net.minecraft.entity.player.EntityPlayer; -import net.minecraft.entity.player.EntityPlayerMP; -import net.minecraft.item.Item; -import net.minecraft.item.ItemStack; -import net.minecraft.nbt.NBTTagCompound; -import net.minecraft.util.DamageSource; -import net.minecraft.world.World; -import net.minecraftforge.common.util.FakePlayer; -import WayofTime.alchemicalWizardry.AlchemicalWizardry; -import WayofTime.alchemicalWizardry.ModItems; -import WayofTime.alchemicalWizardry.api.items.interfaces.IBindable; -import WayofTime.alchemicalWizardry.common.spell.complex.effect.SpellHelper; -import WayofTime.alchemicalWizardry.common.tileEntity.TEAltar; -import cpw.mods.fml.relauncher.Side; -import cpw.mods.fml.relauncher.SideOnly; - -public class ItemDiabloKey extends EnergyItems -{ - public ItemDiabloKey() - { - super(); - DamageSource damageSource = DamageSource.generic; - setMaxStackSize(1); - //setMaxDamage(damage); - setCreativeTab(AlchemicalWizardry.tabBloodMagic); - this.setEnergyUsed(1000); - this.hasSubtypes = true; - } - - @Override - @SideOnly(Side.CLIENT) - public void registerIcons(IIconRegister iconRegister) - { - this.itemIcon = iconRegister.registerIcon("AlchemicalWizardry:DiabloKey"); - } - - @Override - public void addInformation(ItemStack par1ItemStack, EntityPlayer par2EntityPlayer, List par3List, boolean par4) - { - par3List.add("Binds other items to the owner's network"); - - //par3List.add("LP: " + (this.getMaxDamage() - this.getDamage(par1ItemStack))); - if (!(par1ItemStack.stackTagCompound == null)) - { - par3List.add("Current owner: " + par1ItemStack.stackTagCompound.getString("ownerName")); - } - - //par3List.add("LP: " + par2EntityPlayer.getEntityData().getInteger("currentEssence")); - } - - public ItemStack onItemRightClick(ItemStack par1ItemStack, World par2World, EntityPlayer par3EntityPlayer) - { - EnergyItems.checkAndSetItemOwner(par1ItemStack, par3EntityPlayer); - World world = par3EntityPlayer.worldObj; - - if (par3EntityPlayer instanceof FakePlayer || par3EntityPlayer instanceof EntityPlayerMP) - { - return par1ItemStack; - } - - if (world != null) - { - double posX = par3EntityPlayer.posX; - double posY = par3EntityPlayer.posY; - double posZ = par3EntityPlayer.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); - SpellHelper.sendIndexedParticleToAllAround(world, posX, posY, posZ, 20, world.provider.dimensionId, 4, posX, posY, posZ); - } - - if (!par3EntityPlayer.worldObj.isRemote && !(par3EntityPlayer.getClass().equals(EntityPlayerMP.class))) - { - return par1ItemStack; - } - - if (par3EntityPlayer.isSneaking()) - { - return par1ItemStack; - } - - NBTTagCompound itemTag = par1ItemStack.stackTagCompound; - - if (itemTag == null || itemTag.getString("ownerName").equals("")) - { - return par1ItemStack; - } - - String ownerName = itemTag.getString("ownerName"); - ItemStack[] inv = par3EntityPlayer.inventory.mainInventory; - - for (ItemStack itemStack : inv) - { - if (itemStack == null) - { - continue; - } - - Item item = itemStack.getItem(); - - if (item instanceof ItemDiabloKey) - { - continue; - } - - if (item instanceof IBindable) - { - EnergyItems.checkAndSetItemOwner(itemStack, ownerName); - } - } - - return par1ItemStack; - } - - @Override - @SideOnly(Side.CLIENT) - public void getSubItems(Item id, CreativeTabs creativeTab, List list) - { - list.add(new ItemStack(ModItems.itemKeyOfDiablo)); - ItemStack boundKey = new ItemStack(ModItems.itemKeyOfDiablo); - EnergyItems.checkAndSetItemOwner(boundKey, "Server-wide Soul Network"); - list.add(boundKey); - } -} diff --git a/1.7.2/main/java/WayofTime/alchemicalWizardry/common/items/ItemRitualDiviner.java b/1.7.2/main/java/WayofTime/alchemicalWizardry/common/items/ItemRitualDiviner.java deleted file mode 100644 index 9ab96a21..00000000 --- a/1.7.2/main/java/WayofTime/alchemicalWizardry/common/items/ItemRitualDiviner.java +++ /dev/null @@ -1,308 +0,0 @@ -package WayofTime.alchemicalWizardry.common.items; - -import java.util.List; - -import net.minecraft.block.Block; -import net.minecraft.client.renderer.texture.IIconRegister; -import net.minecraft.creativetab.CreativeTabs; -import net.minecraft.entity.player.EntityPlayer; -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.EnumChatFormatting; -import net.minecraft.util.IChatComponent; -import net.minecraft.world.World; -import WayofTime.alchemicalWizardry.AlchemicalWizardry; -import WayofTime.alchemicalWizardry.ModBlocks; -import WayofTime.alchemicalWizardry.ModItems; -import WayofTime.alchemicalWizardry.api.rituals.RitualComponent; -import WayofTime.alchemicalWizardry.api.rituals.Rituals; -import WayofTime.alchemicalWizardry.common.tileEntity.TEMasterStone; -import cpw.mods.fml.relauncher.Side; -import cpw.mods.fml.relauncher.SideOnly; - -public class ItemRitualDiviner extends EnergyItems -{ - private int maxMetaData; - - public ItemRitualDiviner() - { - super(); - this.maxStackSize = 1; - setEnergyUsed(100); - this.setCreativeTab(AlchemicalWizardry.tabBloodMagic); - this.maxMetaData = 4; - } - - @Override - @SideOnly(Side.CLIENT) - public void registerIcons(IIconRegister iconRegister) - { - this.itemIcon = iconRegister.registerIcon("AlchemicalWizardry:RitualDiviner"); - } - - @Override - public void addInformation(ItemStack par1ItemStack, EntityPlayer par2EntityPlayer, List par3List, boolean par4) - { - par3List.add("Used to explore new types of rituals"); - - if (this.getMaxRuneDisplacement(par1ItemStack) == 1) - { - par3List.add("Can place Dusk runes"); - } else - { - par3List.add("Can not place Dusk runes"); - } - - if (!(par1ItemStack.stackTagCompound == null)) - { - String ritualID = this.getCurrentRitual(par1ItemStack); - //TODO - par3List.add("Current owner: " + par1ItemStack.stackTagCompound.getString("ownerName")); - par3List.add("RitualID: " + ritualID); - List ritualList = Rituals.getRitualList(this.getCurrentRitual(par1ItemStack)); - if(ritualList == null) - { - return; - } - - int blankStones = 0; - int airStones = 0; - int waterStones = 0; - int fireStones = 0; - int earthStones = 0; - int duskStones = 0; - - for (RitualComponent rc : ritualList) - { - switch (rc.getStoneType()) - { - case RitualComponent.BLANK: - blankStones++; - break; - - case RitualComponent.AIR: - airStones++; - break; - - case RitualComponent.WATER: - waterStones++; - break; - - case RitualComponent.FIRE: - fireStones++; - break; - - case RitualComponent.EARTH: - earthStones++; - break; - - case RitualComponent.DUSK: - duskStones++; - break; - } - } - - par3List.add("Blank stones: " + blankStones); - par3List.add(EnumChatFormatting.AQUA + "Air stones: " + airStones); - par3List.add(EnumChatFormatting.BLUE + "Water stones: " + waterStones); - par3List.add(EnumChatFormatting.RED + "Fire stones: " + fireStones); - par3List.add(EnumChatFormatting.DARK_GREEN + "Earth stones: " + earthStones); - par3List.add(EnumChatFormatting.BOLD + "Dusk stones: " + duskStones); - //par3List.add("Ritual Name: " + Rituals.getNameOfRitual(ritualID)); - } - } - - @Override - public String getItemStackDisplayName(ItemStack par1ItemStack) - { - if (!(par1ItemStack.stackTagCompound == null)) - { - 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 - { - return super.getItemStackDisplayName(par1ItemStack); - } - } - - @Override - public boolean onItemUse(ItemStack par1ItemStack, EntityPlayer par2EntityPlayer, World par3World, int par4, int par5, int par6, int par7, float par8, float par9, float par10) - { - EnergyItems.checkAndSetItemOwner(par1ItemStack, par2EntityPlayer); - ItemStack[] playerInventory = par2EntityPlayer.inventory.mainInventory; - TileEntity tileEntity = par3World.getTileEntity(par4, par5, par6); - - if (tileEntity instanceof TEMasterStone) - { - TEMasterStone masterStone = (TEMasterStone) tileEntity; - List ritualList = Rituals.getRitualList(this.getCurrentRitual(par1ItemStack)); - if(ritualList == null) - { - return false; - } - int playerInvRitualStoneLocation = -1; - - for (int i = 0; i < playerInventory.length; i++) - { - if (playerInventory[i] == null) - { - continue; - } - - if (new ItemStack(ModBlocks.ritualStone).isItemEqual(playerInventory[i])) - { - playerInvRitualStoneLocation = i; - break; - } - } - - for (RitualComponent rc : ritualList) - { - if (par3World.isAirBlock(par4 + rc.getX(), par5 + rc.getY(), par6 + rc.getZ())) - { - if (playerInvRitualStoneLocation >= 0) - { - if (rc.getStoneType() > this.maxMetaData + this.getMaxRuneDisplacement(par1ItemStack)) - { - par3World.playAuxSFX(200, par4, par5 + 1, par6, 0); - return true; - } - - if (!par2EntityPlayer.capabilities.isCreativeMode) - { - par2EntityPlayer.inventory.decrStackSize(playerInvRitualStoneLocation, 1); - } - - par3World.setBlock(par4 + rc.getX(), par5 + rc.getY(), par6 + rc.getZ(), ModBlocks.ritualStone, rc.getStoneType(), 3); - - if (par3World.isRemote) - { - par3World.playAuxSFX(2005, par4, par5 + 1, par6, 0); - EnergyItems.syphonBatteries(par1ItemStack, par2EntityPlayer, getEnergyUsed()); - return true; - } - - return true; - } - } else - { - Block block = par3World.getBlock(par4 + rc.getX(), par5 + rc.getY(), par6 + rc.getZ()); - - if (block == ModBlocks.ritualStone) - { - int metadata = par3World.getBlockMetadata(par4 + rc.getX(), par5 + rc.getY(), par6 + rc.getZ()); - - if (metadata != rc.getStoneType()) - { - if (rc.getStoneType() > this.maxMetaData + this.getMaxRuneDisplacement(par1ItemStack)) - { - par3World.playAuxSFX(200, par4, par5 + 1, par6, 0); - return true; - } - - par3World.setBlockMetadataWithNotify(par4 + rc.getX(), par5 + rc.getY(), par6 + rc.getZ(), rc.getStoneType(), 3); - EnergyItems.syphonBatteries(par1ItemStack, par2EntityPlayer, getEnergyUsed()); - return true; - } - } else - { - par3World.playAuxSFX(0000, par4, par5 + 1, par6, 0); - return true; - } - } - } - -// if (par3World.isRemote) -// { -// par3World.playAuxSFX(2005, par4, par5, par6, 0); -// EnergyItems.syphonBatteries(par1ItemStack, par2EntityPlayer, getEnergyUsed()); -// return true; -// } -// return true; - } - - return false; - } - - @Override - public ItemStack onItemRightClick(ItemStack par1ItemStack, World par2World, EntityPlayer par3EntityPlayer) - { - EnergyItems.checkAndSetItemOwner(par1ItemStack, par3EntityPlayer); - - if (par3EntityPlayer.isSneaking()) - { - int maxRitualID = Rituals.getNumberOfRituals(); - String currentRitualID = this.getCurrentRitual(par1ItemStack); - - this.setCurrentRitual(par1ItemStack, Rituals.getNextRitualKey(currentRitualID)); - - if (par2World.isRemote) - { - IChatComponent chatmessagecomponent = new ChatComponentText("Current Ritual: " + Rituals.getNameOfRitual(this.getCurrentRitual(par1ItemStack))); - //chatmessagecomponent.func_111072_b("Current Essence: " + data.currentEssence + "LP"); - //chatmessagecomponent.addText("Current Ritual: " + Rituals.getNameOfRitual(this.getCurrentRitual(par1ItemStack))); - par3EntityPlayer.addChatComponentMessage(chatmessagecomponent); - } - } - - return par1ItemStack; - } - - public String getCurrentRitual(ItemStack par1ItemStack) - { - if (par1ItemStack.stackTagCompound == null) - { - par1ItemStack.setTagCompound(new NBTTagCompound()); - } - - return par1ItemStack.stackTagCompound.getString("ritualID"); - } - - public void setCurrentRitual(ItemStack par1ItemStack, String ritualID) - { - if (par1ItemStack.stackTagCompound == null) - { - par1ItemStack.setTagCompound(new NBTTagCompound()); - } - - par1ItemStack.stackTagCompound.setString("ritualID", ritualID); - } - - public int getMaxRuneDisplacement(ItemStack par1ItemStack) //0 indicates the starting 4 runes, 1 indicates it can use Dusk runes - { - if (par1ItemStack.stackTagCompound == null) - { - par1ItemStack.setTagCompound(new NBTTagCompound()); - } - - return par1ItemStack.stackTagCompound.getInteger("maxRuneDisplacement"); - } - - public void setMaxRuneDisplacement(ItemStack par1ItemStack, int displacement) - { - if (par1ItemStack.stackTagCompound == null) - { - par1ItemStack.setTagCompound(new NBTTagCompound()); - } - - par1ItemStack.stackTagCompound.setInteger("maxRuneDisplacement", displacement); - } - - @Override - @SideOnly(Side.CLIENT) - public void getSubItems(Item id, CreativeTabs creativeTab, List list) - { - list.add(new ItemStack(ModItems.itemRitualDiviner)); - ItemStack duskRitualDivinerStack = new ItemStack(ModItems.itemRitualDiviner); - ((ItemRitualDiviner) duskRitualDivinerStack.getItem()).setMaxRuneDisplacement(duskRitualDivinerStack, 1); - list.add(duskRitualDivinerStack); - } -} diff --git a/1.7.2/main/java/WayofTime/alchemicalWizardry/common/items/ItemSpellEffectBlock.java b/1.7.2/main/java/WayofTime/alchemicalWizardry/common/items/ItemSpellEffectBlock.java deleted file mode 100644 index 2c5e106d..00000000 --- a/1.7.2/main/java/WayofTime/alchemicalWizardry/common/items/ItemSpellEffectBlock.java +++ /dev/null @@ -1,59 +0,0 @@ -package WayofTime.alchemicalWizardry.common.items; - -import WayofTime.alchemicalWizardry.AlchemicalWizardry; -import net.minecraft.block.Block; -import net.minecraft.item.ItemBlock; -import net.minecraft.item.ItemStack; - -public class ItemSpellEffectBlock extends ItemBlock - -{ - public ItemSpellEffectBlock(Block par1) - { - super(par1); - setHasSubtypes(true); -// this.setUnlocalizedName("itemSpellEffectBlock"); -// setCreativeTab(AlchemicalWizardry.tabBloodMagic); - - } - - public String getUnlocalizedName(ItemStack itemstack) - - { - String name = ""; - - switch (itemstack.getItemDamage()) - { - case 0: - { - name = "fire"; - break; - } - - case 1: - { - name = "ice"; - break; - } - - case 2: - name = "wind"; - break; - - case 3: - name = "earth"; - break; - - default: - name = "broken"; - } - - return getUnlocalizedName() + "." + name; - } - - public int getMetadata(int par1) - - { - return par1; - } -} diff --git a/1.7.2/main/java/WayofTime/alchemicalWizardry/common/items/ItemSpellEnhancementBlock.java b/1.7.2/main/java/WayofTime/alchemicalWizardry/common/items/ItemSpellEnhancementBlock.java deleted file mode 100644 index 670cbce8..00000000 --- a/1.7.2/main/java/WayofTime/alchemicalWizardry/common/items/ItemSpellEnhancementBlock.java +++ /dev/null @@ -1,99 +0,0 @@ -package WayofTime.alchemicalWizardry.common.items; - -import WayofTime.alchemicalWizardry.AlchemicalWizardry; -import net.minecraft.block.Block; -import net.minecraft.item.ItemBlock; -import net.minecraft.item.ItemStack; - -public class ItemSpellEnhancementBlock extends ItemBlock - -{ - public ItemSpellEnhancementBlock(Block par1) - { - super(par1); - setHasSubtypes(true); -// this.setUnlocalizedName("itemSpellEnhancementBlock"); -// setCreativeTab(AlchemicalWizardry.tabBloodMagic); - - } - - public String getUnlocalizedName(ItemStack itemstack) - - { - String name = ""; - - switch (itemstack.getItemDamage()) - { - case 0: - name = "power1"; - break; - - case 1: - name = "power2"; - break; - - case 2: - name = "power3"; - break; - - case 3: - name = "power4"; - break; - - case 4: - name = "power5"; - break; - - case 5: - name = "cost1"; - break; - - case 6: - name = "cost2"; - break; - - case 7: - name = "cost3"; - break; - - case 8: - name = "cost4"; - break; - - case 9: - name = "cost5"; - break; - - case 10: - name = "potency1"; - break; - - case 11: - name = "potency2"; - break; - - case 12: - name = "potency3"; - break; - - case 13: - name = "potency4"; - break; - - case 14: - name = "potency5"; - break; - - default: - name = "broken"; - } - - return getUnlocalizedName() + "." + name; - } - - public int getMetadata(int par1) - - { - return par1; - } -} diff --git a/1.7.2/main/java/WayofTime/alchemicalWizardry/common/items/ItemSpellModifierBlock.java b/1.7.2/main/java/WayofTime/alchemicalWizardry/common/items/ItemSpellModifierBlock.java deleted file mode 100644 index acd47516..00000000 --- a/1.7.2/main/java/WayofTime/alchemicalWizardry/common/items/ItemSpellModifierBlock.java +++ /dev/null @@ -1,59 +0,0 @@ -package WayofTime.alchemicalWizardry.common.items; - -import WayofTime.alchemicalWizardry.AlchemicalWizardry; -import net.minecraft.block.Block; -import net.minecraft.item.ItemBlock; -import net.minecraft.item.ItemStack; - -public class ItemSpellModifierBlock extends ItemBlock - -{ - public ItemSpellModifierBlock(Block par1) - { - super(par1); - setHasSubtypes(true); -// this.setUnlocalizedName("itemSpellModifierBlock"); -// setCreativeTab(AlchemicalWizardry.tabBloodMagic); - - } - - public String getUnlocalizedName(ItemStack itemstack) - - { - String name = ""; - - switch (itemstack.getItemDamage()) - { - case 0: - { - name = "default"; - break; - } - - case 1: - { - name = "offensive"; - break; - } - - case 2: - name = "defensive"; - break; - - case 3: - name = "environmental"; - break; - - default: - name = "broken"; - } - - return getUnlocalizedName() + "." + name; - } - - public int getMetadata(int par1) - - { - return par1; - } -} diff --git a/1.7.2/main/java/WayofTime/alchemicalWizardry/common/items/ItemSpellParadigmBlock.java b/1.7.2/main/java/WayofTime/alchemicalWizardry/common/items/ItemSpellParadigmBlock.java deleted file mode 100644 index 5fb0b9e3..00000000 --- a/1.7.2/main/java/WayofTime/alchemicalWizardry/common/items/ItemSpellParadigmBlock.java +++ /dev/null @@ -1,58 +0,0 @@ -package WayofTime.alchemicalWizardry.common.items; - -import WayofTime.alchemicalWizardry.AlchemicalWizardry; -import net.minecraft.block.Block; -import net.minecraft.item.ItemBlock; -import net.minecraft.item.ItemStack; - -public class ItemSpellParadigmBlock extends ItemBlock - -{ - public ItemSpellParadigmBlock(Block par1) - { - super(par1); - setHasSubtypes(true); - //this.setUnlocalizedName("itemSpellParadigmBlock"); - } - - @Override - public String getUnlocalizedName(ItemStack itemstack) - - { - String name = ""; - - switch (itemstack.getItemDamage()) - { - case 0: - { - name = "projectile"; - break; - } - - case 1: - { - name = "self"; - break; - } - - case 2: - name = "melee"; - break; - - case 3: - name = "tool"; - break; - - default: - name = "broken"; - } - - return getUnlocalizedName() + "." + name; - } - - @Override - public int getMetadata(int par1) - { - return par1; - } -} diff --git a/1.7.2/main/java/WayofTime/alchemicalWizardry/common/items/LavaCrystal.java b/1.7.2/main/java/WayofTime/alchemicalWizardry/common/items/LavaCrystal.java deleted file mode 100644 index 87610c5e..00000000 --- a/1.7.2/main/java/WayofTime/alchemicalWizardry/common/items/LavaCrystal.java +++ /dev/null @@ -1,114 +0,0 @@ -package WayofTime.alchemicalWizardry.common.items; - -import java.util.List; - -import net.minecraft.client.renderer.texture.IIconRegister; -import net.minecraft.entity.player.EntityPlayer; -import net.minecraft.item.ItemStack; -import net.minecraft.server.MinecraftServer; -import net.minecraft.world.World; -import WayofTime.alchemicalWizardry.AlchemicalWizardry; -import WayofTime.alchemicalWizardry.api.soulNetwork.LifeEssenceNetwork; -import cpw.mods.fml.relauncher.Side; -import cpw.mods.fml.relauncher.SideOnly; - -public class LavaCrystal extends EnergyItems -{ - public LavaCrystal() - { - super(); - //setMaxDamage(1000); - setMaxStackSize(1); - setCreativeTab(AlchemicalWizardry.tabBloodMagic); - setUnlocalizedName("lavaCrystal"); - setEnergyUsed(25); - } - - @Override - @SideOnly(Side.CLIENT) - public void registerIcons(IIconRegister iconRegister) - { - this.itemIcon = iconRegister.registerIcon("AlchemicalWizardry:LavaCrystal"); - } - - /* - * Used to have the item contain itself. - */ - @Override - public ItemStack getContainerItem(ItemStack itemStack) - { - //if(!syphonBatteries(itemStack, null, 10)) - { - syphonWhileInContainer(itemStack, this.getEnergyUsed()); - ItemStack copiedStack = itemStack.copy(); - copiedStack.setItemDamage(copiedStack.getItemDamage()); - copiedStack.stackSize = 1; - return copiedStack; - } - //return itemStack; - } - - @Override - public boolean hasContainerItem() - { - return true; - } - - public ItemStack onItemRightClick(ItemStack par1ItemStack, World par2World, EntityPlayer par3EntityPlayer) - { - EnergyItems.checkAndSetItemOwner(par1ItemStack, par3EntityPlayer); - int damage = this.getDamage(par1ItemStack); - return par1ItemStack; - } - - @Override - public void addInformation(ItemStack par1ItemStack, EntityPlayer par2EntityPlayer, List par3List, boolean par4) - { - par3List.add("Store life to smelt"); - par3List.add("stuff in the furnace."); - - if (!(par1ItemStack.stackTagCompound == null)) - { - par3List.add("Current owner: " + par1ItemStack.stackTagCompound.getString("ownerName")); - } - } - - public boolean hasEnoughEssence(ItemStack itemStack) - { - if (itemStack.getTagCompound() != null && !(itemStack.getTagCompound().getString("ownerName").equals(""))) - { - String ownerName = itemStack.getTagCompound().getString("ownerName"); - - if (MinecraftServer.getServer() == null) - { - return false; - } - - World world = MinecraftServer.getServer().worldServers[0]; - LifeEssenceNetwork data = (LifeEssenceNetwork) world.loadItemData(LifeEssenceNetwork.class, ownerName); - - if (data == null) - { - data = new LifeEssenceNetwork(ownerName); - world.setItemData(ownerName, data); - } - - if (data.currentEssence >= this.getEnergyUsed()) - { - return true; - } - -// EntityPlayer ownerEntity = MinecraftServer.getServer().getConfigurationManager().getPlayerForUsername(ist.getTagCompound().getString("ownerName")); -// if(ownerEntity==null){return false;} -// NBTTagCompound tag = ownerEntity.getEntityData(); -// int currentEssence = tag.getInteger("currentEssence"); -// if(currentEssence>=damageToBeDone) -// { -// tag.setInteger("currentEssence", currentEssence-damageToBeDone); -// return true; -// } - } - - return false; - } -} diff --git a/1.7.2/main/java/WayofTime/alchemicalWizardry/common/items/LifeBucket.java b/1.7.2/main/java/WayofTime/alchemicalWizardry/common/items/LifeBucket.java deleted file mode 100644 index 80a29ed3..00000000 --- a/1.7.2/main/java/WayofTime/alchemicalWizardry/common/items/LifeBucket.java +++ /dev/null @@ -1,23 +0,0 @@ -package WayofTime.alchemicalWizardry.common.items; - -import net.minecraft.block.Block; -import net.minecraft.client.renderer.texture.IIconRegister; -import net.minecraft.item.ItemBucket; -import cpw.mods.fml.relauncher.Side; -import cpw.mods.fml.relauncher.SideOnly; - -public class LifeBucket extends ItemBucket -{ - public LifeBucket(Block block) - { - super(block); - // TODO Auto-generated constructor stub - } - - @Override - @SideOnly(Side.CLIENT) - public void registerIcons(IIconRegister iconRegister) - { - this.itemIcon = iconRegister.registerIcon("AlchemicalWizardry:LifeBucket"); - } -} diff --git a/1.7.2/main/java/WayofTime/alchemicalWizardry/common/items/MagicianBloodOrb.java b/1.7.2/main/java/WayofTime/alchemicalWizardry/common/items/MagicianBloodOrb.java deleted file mode 100644 index e6081180..00000000 --- a/1.7.2/main/java/WayofTime/alchemicalWizardry/common/items/MagicianBloodOrb.java +++ /dev/null @@ -1,21 +0,0 @@ -package WayofTime.alchemicalWizardry.common.items; - -import net.minecraft.client.renderer.texture.IIconRegister; -import cpw.mods.fml.relauncher.Side; -import cpw.mods.fml.relauncher.SideOnly; - -public class MagicianBloodOrb extends EnergyBattery -{ - public MagicianBloodOrb(int damage) - { - super(damage); - orbLevel = 3; - } - - @Override - @SideOnly(Side.CLIENT) - public void registerIcons(IIconRegister iconRegister) - { - this.itemIcon = iconRegister.registerIcon("AlchemicalWizardry:MagicianBloodOrb"); - } -} diff --git a/1.7.2/main/java/WayofTime/alchemicalWizardry/common/items/MasterBloodOrb.java b/1.7.2/main/java/WayofTime/alchemicalWizardry/common/items/MasterBloodOrb.java deleted file mode 100644 index 5e9c19c7..00000000 --- a/1.7.2/main/java/WayofTime/alchemicalWizardry/common/items/MasterBloodOrb.java +++ /dev/null @@ -1,21 +0,0 @@ -package WayofTime.alchemicalWizardry.common.items; - -import net.minecraft.client.renderer.texture.IIconRegister; -import cpw.mods.fml.relauncher.Side; -import cpw.mods.fml.relauncher.SideOnly; - -public class MasterBloodOrb extends EnergyBattery -{ - public MasterBloodOrb(int damage) - { - super(damage); - orbLevel = 4; - } - - @Override - @SideOnly(Side.CLIENT) - public void registerIcons(IIconRegister iconRegister) - { - this.itemIcon = iconRegister.registerIcon("AlchemicalWizardry:MasterBloodOrb"); - } -} diff --git a/1.7.2/main/java/WayofTime/alchemicalWizardry/common/items/OrbOfTesting.java b/1.7.2/main/java/WayofTime/alchemicalWizardry/common/items/OrbOfTesting.java deleted file mode 100644 index 06482ac3..00000000 --- a/1.7.2/main/java/WayofTime/alchemicalWizardry/common/items/OrbOfTesting.java +++ /dev/null @@ -1,47 +0,0 @@ -package WayofTime.alchemicalWizardry.common.items; - -import net.minecraft.client.renderer.texture.IIconRegister; -import net.minecraft.creativetab.CreativeTabs; -import net.minecraft.entity.player.EntityPlayer; -import net.minecraft.item.ItemStack; -import net.minecraft.world.World; -import cpw.mods.fml.relauncher.Side; -import cpw.mods.fml.relauncher.SideOnly; - -public class OrbOfTesting extends EnergyItems -{ - public OrbOfTesting() - { - super(); - setMaxStackSize(1); - setCreativeTab(CreativeTabs.tabMisc); - setUnlocalizedName("orbOfTesting"); - setMaxDamage(100); - setFull3D(); - this.setEnergyUsed(100); - } - - @Override - @SideOnly(Side.CLIENT) - public void registerIcons(IIconRegister iconRegister) - { - this.itemIcon = iconRegister.registerIcon("AlchemicalWizardry:Untitled"); - } - - //Heals the player using the item. If the player is at full health, or if the durability cannot be used any more, - //the item is not used. - public ItemStack onItemRightClick(ItemStack par1ItemStack, World par2World, EntityPlayer par3EntityPlayer) - { - if (!par3EntityPlayer.shouldHeal()) - { - return par1ItemStack; - } - - if (this.syphonBatteries(par1ItemStack, par3EntityPlayer, this.getEnergyUsed())) - { - par3EntityPlayer.heal(1); - } - - return par1ItemStack; - } -} diff --git a/1.7.2/main/java/WayofTime/alchemicalWizardry/common/items/ReinforcedTelepositionFocus.java b/1.7.2/main/java/WayofTime/alchemicalWizardry/common/items/ReinforcedTelepositionFocus.java deleted file mode 100644 index 37134dbc..00000000 --- a/1.7.2/main/java/WayofTime/alchemicalWizardry/common/items/ReinforcedTelepositionFocus.java +++ /dev/null @@ -1,47 +0,0 @@ -package WayofTime.alchemicalWizardry.common.items; - -import java.util.List; - -import net.minecraft.client.renderer.texture.IIconRegister; -import net.minecraft.entity.player.EntityPlayer; -import net.minecraft.item.ItemStack; -import net.minecraft.nbt.NBTTagCompound; -import cpw.mods.fml.relauncher.Side; -import cpw.mods.fml.relauncher.SideOnly; - -public class ReinforcedTelepositionFocus extends TelepositionFocus -{ - public ReinforcedTelepositionFocus() - { - super(3); - // TODO Auto-generated constructor stub - } - - @Override - @SideOnly(Side.CLIENT) - public void registerIcons(IIconRegister iconRegister) - { - //TODO - this.itemIcon = iconRegister.registerIcon("AlchemicalWizardry:ReinforcedTeleposerFocus"); - } - - @Override - public void addInformation(ItemStack par1ItemStack, EntityPlayer par2EntityPlayer, List par3List, boolean par4) - { - par3List.add("A stronger version of the focus,"); - par3List.add("using a weak shard"); - - if (!(par1ItemStack.stackTagCompound == null)) - { - NBTTagCompound itemTag = par1ItemStack.stackTagCompound; - - if (!par1ItemStack.stackTagCompound.getString("ownerName").equals("")) - { - par3List.add("Current owner: " + par1ItemStack.stackTagCompound.getString("ownerName")); - } - - par3List.add("Coords: " + itemTag.getInteger("xCoord") + ", " + itemTag.getInteger("yCoord") + ", " + itemTag.getInteger("zCoord")); - par3List.add("Bound Dimension: " + getDimensionID(par1ItemStack)); - } - } -} diff --git a/1.7.2/main/java/WayofTime/alchemicalWizardry/common/items/SacrificialDagger.java b/1.7.2/main/java/WayofTime/alchemicalWizardry/common/items/SacrificialDagger.java deleted file mode 100644 index 98a41bfd..00000000 --- a/1.7.2/main/java/WayofTime/alchemicalWizardry/common/items/SacrificialDagger.java +++ /dev/null @@ -1,159 +0,0 @@ -package WayofTime.alchemicalWizardry.common.items; - -import java.util.List; - -import net.minecraft.client.renderer.texture.IIconRegister; -import net.minecraft.entity.player.EntityPlayer; -import net.minecraft.entity.player.EntityPlayerMP; -import net.minecraft.item.Item; -import net.minecraft.item.ItemStack; -import net.minecraft.tileentity.TileEntity; -import net.minecraft.util.DamageSource; -import net.minecraft.world.World; -import net.minecraftforge.common.util.FakePlayer; -import WayofTime.alchemicalWizardry.AlchemicalWizardry; -import WayofTime.alchemicalWizardry.common.tileEntity.TEAltar; -import cpw.mods.fml.relauncher.Side; -import cpw.mods.fml.relauncher.SideOnly; - -public class SacrificialDagger extends Item -{ - public SacrificialDagger() - { - super(); - this.maxStackSize = 1; - setCreativeTab(AlchemicalWizardry.tabBloodMagic); - setFull3D(); - } - - @Override - @SideOnly(Side.CLIENT) - public void registerIcons(IIconRegister iconRegister) - { - if(AlchemicalWizardry.wimpySettings) - { - this.itemIcon = iconRegister.registerIcon("AlchemicalWizardry:SheathedItem"); - }else - { - this.itemIcon = iconRegister.registerIcon("AlchemicalWizardry:SacrificialDagger"); - } - } - - public void addInformation(ItemStack par1ItemStack, EntityPlayer par2EntityPlayer, List par3List, boolean par4) - { - if(AlchemicalWizardry.wimpySettings) - { - par3List.add("A slight draining feeling tickles your fingers"); - }else - { - par3List.add("Just a prick of the"); - par3List.add("finger will suffice..."); - } - } - - public ItemStack onItemRightClick(ItemStack par1ItemStack, World par2World, EntityPlayer par3EntityPlayer) - { - if (!par3EntityPlayer.capabilities.isCreativeMode) - { - par3EntityPlayer.setHealth(par3EntityPlayer.getHealth() - 2); - } - - if (par3EntityPlayer instanceof FakePlayer) - { - return par1ItemStack; - } - - double posX = par3EntityPlayer.posX; - double posY = par3EntityPlayer.posY; - double posZ = par3EntityPlayer.posZ; - par2World.playSoundEffect((double) ((float) posX + 0.5F), (double) ((float) posY + 0.5F), (double) ((float) posZ + 0.5F), "random.fizz", 0.5F, 2.6F + (par2World.rand.nextFloat() - par2World.rand.nextFloat()) * 0.8F); - float f = (float) 1.0F; - float f1 = f * 0.6F + 0.4F; - float f2 = f * f * 0.7F - 0.5F; - float f3 = f * f * 0.6F - 0.7F; - - for (int l = 0; l < 8; ++l) - { - par2World.spawnParticle("reddust", posX + Math.random() - Math.random(), posY + Math.random() - Math.random(), posZ + Math.random() - Math.random(), f1, f2, f3); - } - - if (!par2World.isRemote && !(par3EntityPlayer.getClass().equals(EntityPlayerMP.class))) - { - return par1ItemStack; - } - - findAndFillAltar(par2World, par3EntityPlayer, 200); - - if (par3EntityPlayer.getHealth() <= 0.001f) - { - //par3EntityPlayer.inventory.dropAllItems(); - par3EntityPlayer.onDeath(DamageSource.generic); - } - - return par1ItemStack; - } - - public void findAndFillAltar(World world, EntityPlayer player, int amount) - { - int posX = (int) Math.round(player.posX - 0.5f); - int posY = (int) player.posY; - int posZ = (int) Math.round(player.posZ - 0.5f); - TEAltar altarEntity = getAltar(world, posX, posY, posZ); - - if (altarEntity == null) - { - return; - } - - altarEntity.sacrificialDaggerCall(amount, false); - altarEntity.startCycle(); - } - - public TEAltar getAltar(World world, int x, int y, int z) - { - TileEntity tileEntity = null; - - for (int i = -2; i <= 2; i++) - { - for (int j = -2; j <= 2; j++) - { - for (int k = -2; k <= 1; k++) - { - tileEntity = world.getTileEntity(i + x, k + y, j + z); - - if ((tileEntity instanceof TEAltar)) - { - return (TEAltar) tileEntity; - } - } - - if ((tileEntity instanceof TEAltar)) - { - return (TEAltar) tileEntity; - } - } - - if ((tileEntity instanceof TEAltar)) - { - return (TEAltar) tileEntity; - } - } - - if ((tileEntity instanceof TEAltar)) - { - return (TEAltar) tileEntity; - } - - return null; - } - - @Override - public String getItemStackDisplayName(ItemStack par1ItemStack) - { - if(AlchemicalWizardry.wimpySettings) - { - return "Sacrificial Orb"; - } - return super.getItemStackDisplayName(par1ItemStack); - } -} \ No newline at end of file diff --git a/1.7.2/main/java/WayofTime/alchemicalWizardry/common/items/ScribeTool.java b/1.7.2/main/java/WayofTime/alchemicalWizardry/common/items/ScribeTool.java deleted file mode 100644 index 0dd3cd63..00000000 --- a/1.7.2/main/java/WayofTime/alchemicalWizardry/common/items/ScribeTool.java +++ /dev/null @@ -1,53 +0,0 @@ -package WayofTime.alchemicalWizardry.common.items; - -import WayofTime.alchemicalWizardry.AlchemicalWizardry; -import net.minecraft.entity.player.EntityPlayer; -import net.minecraft.item.ItemStack; -import net.minecraft.world.World; - -import java.util.List; - -public class ScribeTool extends EnergyItems -{ - private int meta; - - public ScribeTool(int inkType) - { - super(); - setMaxStackSize(1); - setCreativeTab(AlchemicalWizardry.tabBloodMagic); - setMaxDamage(10); - setEnergyUsed(10); - this.meta = inkType; - } - - @Override - public void addInformation(ItemStack par1ItemStack, EntityPlayer par2EntityPlayer, List par3List, boolean par4) - { - par3List.add("The writing is on the wall..."); - - 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 (par1ItemStack.getItemDamage() > 0) - { - par1ItemStack.setItemDamage(par1ItemStack.getItemDamage() - 1); - syphonBatteries(par1ItemStack, par3EntityPlayer, this.getEnergyUsed()); - } - - return par1ItemStack; - } - - public int getType() - { - return this.meta; - } -} diff --git a/1.7.2/main/java/WayofTime/alchemicalWizardry/common/items/TelepositionFocus.java b/1.7.2/main/java/WayofTime/alchemicalWizardry/common/items/TelepositionFocus.java deleted file mode 100644 index 192f34f4..00000000 --- a/1.7.2/main/java/WayofTime/alchemicalWizardry/common/items/TelepositionFocus.java +++ /dev/null @@ -1,124 +0,0 @@ -package WayofTime.alchemicalWizardry.common.items; - -import java.util.List; - -import net.minecraft.client.renderer.texture.IIconRegister; -import net.minecraft.entity.player.EntityPlayer; -import net.minecraft.item.ItemStack; -import net.minecraft.nbt.NBTTagCompound; -import net.minecraft.world.World; -import net.minecraftforge.common.DimensionManager; -import WayofTime.alchemicalWizardry.AlchemicalWizardry; -import cpw.mods.fml.relauncher.Side; -import cpw.mods.fml.relauncher.SideOnly; - -public class TelepositionFocus extends EnergyItems -{ - private int focusLevel; - - public TelepositionFocus(int focusLevel) - { - super(); - this.setMaxStackSize(1); - setCreativeTab(AlchemicalWizardry.tabBloodMagic); - this.focusLevel = focusLevel; - } - - @Override - @SideOnly(Side.CLIENT) - public void registerIcons(IIconRegister iconRegister) - { - //TODO - this.itemIcon = iconRegister.registerIcon("AlchemicalWizardry:TeleposerFocus"); - } - - @Override - public void addInformation(ItemStack par1ItemStack, EntityPlayer par2EntityPlayer, List par3List, boolean par4) - { - par3List.add("An Enderpearl imbued with blood"); - - if (!(par1ItemStack.stackTagCompound == null)) - { - NBTTagCompound itemTag = par1ItemStack.stackTagCompound; - - if (!par1ItemStack.stackTagCompound.getString("ownerName").equals("")) - { - par3List.add("Current owner: " + par1ItemStack.stackTagCompound.getString("ownerName")); - } - - par3List.add("Coords: " + itemTag.getInteger("xCoord") + ", " + itemTag.getInteger("yCoord") + ", " + itemTag.getInteger("zCoord")); - par3List.add("Bound Dimension: " + getDimensionID(par1ItemStack)); - } - } - - @Override - public ItemStack onItemRightClick(ItemStack par1ItemStack, World par2World, EntityPlayer par3EntityPlayer) - { - EnergyItems.checkAndSetItemOwner(par1ItemStack, par3EntityPlayer); - - if (par3EntityPlayer.isSneaking()) - { - return par1ItemStack; - } - -// if (!par2World.isRemote) -// { -// //par2World.spawnEntityInWorld(new EnergyBlastProjectile(par2World, par3EntityPlayer, damage)); -// par2World.spawnEntityInWorld(new FireProjectile(par2World, par3EntityPlayer, 10)); -// } - return par1ItemStack; - } - - public int getDimensionID(ItemStack itemStack) - { - if (itemStack.stackTagCompound == null) - { - itemStack.setTagCompound(new NBTTagCompound()); - } - - return itemStack.stackTagCompound.getInteger("dimensionId"); - } - - public World getWorld(ItemStack itemStack) - { - return DimensionManager.getWorld(getDimensionID(itemStack)); - } - - public int xCoord(ItemStack itemStack) - { - if (!(itemStack.stackTagCompound == null)) - { - return itemStack.stackTagCompound.getInteger("xCoord"); - } else - { - return 0; - } - } - - public int yCoord(ItemStack itemStack) - { - if (!(itemStack.stackTagCompound == null)) - { - return itemStack.stackTagCompound.getInteger("yCoord"); - } else - { - return 0; - } - } - - public int zCoord(ItemStack itemStack) - { - if (!(itemStack.stackTagCompound == null)) - { - return itemStack.stackTagCompound.getInteger("zCoord"); - } else - { - return 0; - } - } - - public int getFocusLevel() - { - return this.focusLevel; - } -} diff --git a/1.7.2/main/java/WayofTime/alchemicalWizardry/common/items/WaterScribeTool.java b/1.7.2/main/java/WayofTime/alchemicalWizardry/common/items/WaterScribeTool.java deleted file mode 100644 index 86132c84..00000000 --- a/1.7.2/main/java/WayofTime/alchemicalWizardry/common/items/WaterScribeTool.java +++ /dev/null @@ -1,22 +0,0 @@ -package WayofTime.alchemicalWizardry.common.items; - -import net.minecraft.client.renderer.texture.IIconRegister; -import WayofTime.alchemicalWizardry.AlchemicalWizardry; -import cpw.mods.fml.relauncher.Side; -import cpw.mods.fml.relauncher.SideOnly; - -public class WaterScribeTool extends ScribeTool -{ - public WaterScribeTool() - { - super(1); - setCreativeTab(AlchemicalWizardry.tabBloodMagic); - } - - @Override - @SideOnly(Side.CLIENT) - public void registerIcons(IIconRegister iconRegister) - { - this.itemIcon = iconRegister.registerIcon("AlchemicalWizardry:WaterScribeTool"); - } -} diff --git a/1.7.2/main/java/WayofTime/alchemicalWizardry/common/items/forestry/ItemBloodFrame.java b/1.7.2/main/java/WayofTime/alchemicalWizardry/common/items/forestry/ItemBloodFrame.java deleted file mode 100644 index 32da83be..00000000 --- a/1.7.2/main/java/WayofTime/alchemicalWizardry/common/items/forestry/ItemBloodFrame.java +++ /dev/null @@ -1,151 +0,0 @@ -package WayofTime.alchemicalWizardry.common.items.forestry; - -import java.util.List; - -import net.minecraft.client.renderer.texture.IIconRegister; -import net.minecraft.entity.player.EntityPlayer; -import net.minecraft.item.ItemStack; -import net.minecraft.world.World; -import WayofTime.alchemicalWizardry.AlchemicalWizardry; -import WayofTime.alchemicalWizardry.common.items.EnergyItems; -import cpw.mods.fml.relauncher.Side; -import cpw.mods.fml.relauncher.SideOnly; - -public class ItemBloodFrame extends EnergyItems //implements IHiveFrame -{ - public ItemBloodFrame() - { - super(); - this.maxStackSize = 1; - this.setMaxDamage(10); - //setMaxDamage(1000); - setEnergyUsed(3000); - setCreativeTab(AlchemicalWizardry.tabBloodMagic); - } - - @Override - public void addInformation(ItemStack par1ItemStack, EntityPlayer par2EntityPlayer, List par3List, boolean par4) - { - par3List.add("Stirs bees into a frenzy."); - - if (!(par1ItemStack.stackTagCompound == null)) - { - par3List.add("Current owner: " + par1ItemStack.stackTagCompound.getString("ownerName")); - } - } - - @Override - @SideOnly(Side.CLIENT) - public void registerIcons(IIconRegister iconRegister) - { - this.itemIcon = iconRegister.registerIcon("AlchemicalWizardry:BloodFrame"); - } - - @Override - public ItemStack onItemRightClick(ItemStack par1ItemStack, World par2World, EntityPlayer par3EntityPlayer) - { - EnergyItems.checkAndSetItemOwner(par1ItemStack, par3EntityPlayer); - - if(par1ItemStack.getItemDamage()>0) - { - EnergyItems.syphonBatteries(par1ItemStack, par3EntityPlayer, getEnergyUsed()); - par1ItemStack.setItemDamage(par1ItemStack.getItemDamage()-1); - } - - return par1ItemStack; - } - - /**TODO Bee Stuff - @Override - public float getTerritoryModifier(IBeeGenome genome, float currentModifier) - { - // TODO Auto-generated method stub - return 1; - } - - @Override - public float getMutationModifier(IBeeGenome genome, IBeeGenome mate, float currentModifier) - { - // TODO Auto-generated method stub - return 1; - } - - @Override - public float getLifespanModifier(IBeeGenome genome, IBeeGenome mate, float currentModifier) - { - // TODO Auto-generated method stub - return 0.0001f; - } - - @Override - public float getProductionModifier(IBeeGenome genome, float currentModifier) - { - // TODO Auto-generated method stub - return 0; - } - - @Override - public float getFloweringModifier(IBeeGenome genome, float currentModifier) - { - // TODO Auto-generated method stub - return 1; - } - - @Override - public float getGeneticDecay(IBeeGenome genome, float currentModifier) - { - // TODO Auto-generated method stub - return 1; - } - - @Override - public boolean isSealed() - { - // TODO Auto-generated method stub - return false; - } - - @Override - public boolean isSelfLighted() - { - // TODO Auto-generated method stub - return false; - } - - @Override - public boolean isSunlightSimulated() - { - // TODO Auto-generated method stub - return false; - } - - @Override - public boolean isHellish() - { - // TODO Auto-generated method stub - return false; - } - - @Override - public ItemStack frameUsed(IBeeHousing housing, ItemStack frame, IBee queen, int wear) - { - // TODO Auto-generated method stub - if(EnergyItems.canSyphonInContainer(frame, getEnergyUsed()*wear)) - { - EnergyItems.syphonWhileInContainer(frame, getEnergyUsed()*wear); - return frame; - }else - { - frame.setItemDamage(frame.getItemDamage() + wear); - if(frame.getItemDamage()>=frame.getMaxDamage()) - { - return null; - } - return frame; - } - - } - - */ - -} diff --git a/1.7.2/main/java/WayofTime/alchemicalWizardry/common/items/potion/AlchemyFlask.java b/1.7.2/main/java/WayofTime/alchemicalWizardry/common/items/potion/AlchemyFlask.java deleted file mode 100644 index 11588be5..00000000 --- a/1.7.2/main/java/WayofTime/alchemicalWizardry/common/items/potion/AlchemyFlask.java +++ /dev/null @@ -1,435 +0,0 @@ -package WayofTime.alchemicalWizardry.common.items.potion; - -import java.util.ArrayList; -import java.util.Iterator; -import java.util.List; -import java.util.Map; -import java.util.Map.Entry; - -import net.minecraft.client.renderer.texture.IIconRegister; -import net.minecraft.entity.EntityLivingBase; -import net.minecraft.entity.ai.attributes.AttributeModifier; -import net.minecraft.entity.ai.attributes.IAttribute; -import net.minecraft.entity.player.EntityPlayer; -import net.minecraft.entity.projectile.EntityPotion; -import net.minecraft.init.Items; -import net.minecraft.item.EnumAction; -import net.minecraft.item.Item; -import net.minecraft.item.ItemStack; -import net.minecraft.nbt.NBTTagCompound; -import net.minecraft.nbt.NBTTagList; -import net.minecraft.potion.Potion; -import net.minecraft.potion.PotionEffect; -import net.minecraft.util.EnumChatFormatting; -import net.minecraft.util.StatCollector; -import net.minecraft.world.World; -import net.minecraftforge.common.util.Constants; -import WayofTime.alchemicalWizardry.AlchemicalWizardry; -import WayofTime.alchemicalWizardry.api.alchemy.AlchemyPotionHelper; - -import com.google.common.collect.HashMultimap; - -import cpw.mods.fml.relauncher.Side; -import cpw.mods.fml.relauncher.SideOnly; - -public class AlchemyFlask extends Item -{ - private int maxPotionAmount = 20; - - public AlchemyFlask() - { - super(); - this.setMaxDamage(8); - this.setMaxStackSize(1); - setCreativeTab(AlchemicalWizardry.tabBloodMagic); - // TODO Auto-generated constructor stub - } - - @Override - @SideOnly(Side.CLIENT) - public void registerIcons(IIconRegister iconRegister) - { - this.itemIcon = iconRegister.registerIcon("AlchemicalWizardry:PotionFlask"); - } - - public static ArrayList getEffects(ItemStack par1ItemStack) - { - if (par1ItemStack.hasTagCompound() && par1ItemStack.getTagCompound().hasKey("CustomFlaskEffects")) - { - ArrayList arraylist = new ArrayList(); - NBTTagList nbttaglist = par1ItemStack.getTagCompound().getTagList("CustomFlaskEffects", Constants.NBT.TAG_COMPOUND); - - for (int i = 0; i < nbttaglist.tagCount(); ++i) - { - NBTTagCompound nbttagcompound = (NBTTagCompound) nbttaglist.getCompoundTagAt(i); - arraylist.add(AlchemyPotionHelper.readEffectFromNBT(nbttagcompound)); - } - - return arraylist; - } else - { - return null; - } - } - - public static ArrayList getPotionEffects(ItemStack par1ItemStack) - { - ArrayList list = AlchemyFlask.getEffects(par1ItemStack); - - if (list != null) - { - ArrayList newList = new ArrayList(); - - for (AlchemyPotionHelper aph : list) - { - newList.add(aph.getPotionEffect()); - } - - return newList; - } else - { - return null; - } - } - - public void setEffects(ItemStack par1ItemStack, ArrayList list) - { - NBTTagCompound itemTag = par1ItemStack.stackTagCompound; - - if (itemTag == null) - { - par1ItemStack.setTagCompound(new NBTTagCompound()); - } - - NBTTagList nbttaglist = new NBTTagList(); - - for (AlchemyPotionHelper aph : list) - { - nbttaglist.appendTag(AlchemyPotionHelper.setEffectToNBT(aph)); - } - - par1ItemStack.stackTagCompound.setTag("CustomFlaskEffects", nbttaglist); - } - - public ItemStack onEaten(ItemStack par1ItemStack, World par2World, EntityPlayer par3EntityPlayer) - { - if (!par3EntityPlayer.capabilities.isCreativeMode) - { - par1ItemStack.setItemDamage(par1ItemStack.getItemDamage() + 1); - } - - if (!par2World.isRemote) - { - ArrayList list = this.getEffects(par1ItemStack); - - if (list != null) - { - for (AlchemyPotionHelper aph : list) - { - PotionEffect pe = aph.getPotionEffect(); - - if (pe != null) - { - //if(pe.get) - par3EntityPlayer.addPotionEffect(pe); - } - } - } - } - - return par1ItemStack; - } - - /** - * How long it takes to use or consume an item - */ - public int getMaxItemUseDuration(ItemStack par1ItemStack) - { - return 32; - } - - /** - * returns the action that specifies what animation to play when the items is being used - */ - public EnumAction getItemUseAction(ItemStack par1ItemStack) - { - if (this.isPotionThrowable(par1ItemStack)) - { - return EnumAction.none; - } - - return EnumAction.drink; - } - - /** - * Called whenever this item is equipped and the right mouse button is pressed. Args: itemStack, world, entityPlayer - */ - public ItemStack onItemRightClick(ItemStack par1ItemStack, World par2World, EntityPlayer par3EntityPlayer) - { -// if(par3EntityPlayer.isSneaking()) -// { -// this.setIsPotionThrowable(true, par1ItemStack); -// return par1ItemStack; -// } - if (par1ItemStack.getItemDamage() < par1ItemStack.getMaxDamage()) - { - if (this.isPotionThrowable(par1ItemStack)) - { - if (!par2World.isRemote) - { - EntityPotion entityPotion = this.getEntityPotion(par1ItemStack, par2World, par3EntityPlayer); - - if (entityPotion != null) - { - float velocityChange = 2.0f; - entityPotion.motionX *= velocityChange; - entityPotion.motionY *= velocityChange; - entityPotion.motionZ *= velocityChange; - par2World.spawnEntityInWorld(entityPotion); - par1ItemStack.setItemDamage(par1ItemStack.getItemDamage() + 1); - } - } - - return par1ItemStack; - } - - par3EntityPlayer.setItemInUse(par1ItemStack, this.getMaxItemUseDuration(par1ItemStack)); - } - - return par1ItemStack; - } - - public void setConcentrationOfPotion(ItemStack par1ItemStack, int potionID, int concentration) - { - ArrayList list = this.getEffects(par1ItemStack); - - if (list != null) - { - for (AlchemyPotionHelper aph : list) - { - if (aph.getPotionID() == potionID) - { - aph.setConcentration(concentration); - break; - } - } - - this.setEffects(par1ItemStack, list); - } - } - - public void setDurationFactorOfPotion(ItemStack par1ItemStack, int potionID, int durationFactor) - { - ArrayList list = this.getEffects(par1ItemStack); - - if (list != null) - { - for (AlchemyPotionHelper aph : list) - { - if (aph.getPotionID() == potionID) - { - aph.setDurationFactor(durationFactor); - break; - } - } - - this.setEffects(par1ItemStack, list); - } - } - - public boolean hasPotionEffect(ItemStack par1ItemStack, int potionID) - { - return false; - } - - public int getNumberOfPotionEffects(ItemStack par1ItemStack) - { - if (getEffects(par1ItemStack) != null) - { - return getEffects(par1ItemStack).size(); - } else - { - return 0; - } - } - - public boolean addPotionEffect(ItemStack par1ItemStack, int potionID, int tickDuration) - { - int i = 0; - ArrayList list = this.getEffects(par1ItemStack); - - if (list != null) - { - for (AlchemyPotionHelper aph : list) - { - if (aph.getPotionID() == potionID) - { - return false; - } - - i++; - } - - //if(i 0) - { - Iterator iterator1 = map.entrySet().iterator(); - - while (iterator1.hasNext()) - { - Entry entry = (Entry) iterator1.next(); - AttributeModifier attributemodifier = (AttributeModifier) entry.getValue(); - AttributeModifier attributemodifier1 = new AttributeModifier(attributemodifier.getName(), potion.func_111183_a(potioneffect.getAmplifier(), attributemodifier), attributemodifier.getOperation()); - hashmultimap.put(((IAttribute)entry.getKey()).getAttributeUnlocalizedName(), attributemodifier1); - } - } - - if (potioneffect.getAmplifier() > 0) - { - s = s + " " + StatCollector.translateToLocal("potion.potency." + potioneffect.getAmplifier()).trim(); - } - - if (potioneffect.getDuration() > 20) - { - s = s + " (" + Potion.getDurationString(potioneffect) + ")"; - } - - if (potion.isBadEffect()) - { - par3List.add(EnumChatFormatting.RED + s); - } else - { - par3List.add(EnumChatFormatting.GRAY + s); - } - } - } else - { - String s1 = StatCollector.translateToLocal("potion.empty").trim(); - par3List.add(EnumChatFormatting.GRAY + s1); - } - - if (!hashmultimap.isEmpty()) - { - par3List.add(""); - par3List.add(EnumChatFormatting.DARK_PURPLE + StatCollector.translateToLocal("potion.effects.whenDrank")); - iterator = hashmultimap.entries().iterator(); - - while (iterator.hasNext()) - { - Entry entry1 = (Entry) iterator.next(); - AttributeModifier attributemodifier2 = (AttributeModifier) entry1.getValue(); - double d0 = attributemodifier2.getAmount(); - double d1; - - if (attributemodifier2.getOperation() != 1 && attributemodifier2.getOperation() != 2) - { - d1 = attributemodifier2.getAmount(); - } else - { - d1 = attributemodifier2.getAmount() * 100.0D; - } - - if (d0 > 0.0D) - { - par3List.add(EnumChatFormatting.BLUE + StatCollector.translateToLocalFormatted("attribute.modifier.plus." + attributemodifier2.getOperation(), new Object[]{ItemStack.field_111284_a.format(d1), StatCollector.translateToLocal("attribute.name." + (String) entry1.getKey())})); - } else if (d0 < 0.0D) - { - d1 *= -1.0D; - par3List.add(EnumChatFormatting.RED + StatCollector.translateToLocalFormatted("attribute.modifier.take." + attributemodifier2.getOperation(), new Object[]{ItemStack.field_111284_a.format(d1), StatCollector.translateToLocal("attribute.name." + (String) entry1.getKey())})); - } - } - } - } - - public boolean isPotionThrowable(ItemStack par1ItemStack) - { - if (par1ItemStack.hasTagCompound() && par1ItemStack.getTagCompound().getBoolean("throwable")) - { - return true; - } else - { - return false; - } - - //return false; - } - - public void setIsPotionThrowable(boolean flag, ItemStack par1ItemStack) - { - if (!par1ItemStack.hasTagCompound()) - { - par1ItemStack.setTagCompound(new NBTTagCompound()); - } - - par1ItemStack.stackTagCompound.setBoolean("throwable", flag); - } - - public EntityPotion getEntityPotion(ItemStack par1ItemStack, World worldObj, EntityLivingBase entityLivingBase) - { - ItemStack potionStack = new ItemStack(Items.potionitem, 1, 0); - potionStack.setTagCompound(new NBTTagCompound()); - ArrayList potionList = this.getPotionEffects(par1ItemStack); - - if (potionList == null) - { - return null; - } - - NBTTagList nbttaglist = new NBTTagList(); - - for (PotionEffect pe : potionList) - { - NBTTagCompound d = new NBTTagCompound(); - d.setByte("Id", (byte) pe.getPotionID()); - d.setByte("Amplifier", (byte) pe.getAmplifier()); - //byte b1 = par0NBTTagCompound.getByte("Amplifier"); - d.setInteger("Duration", pe.getDuration()); - //int i = par0NBTTagCompound.getInteger("Duration"); - d.setBoolean("Ambient", pe.getIsAmbient()); - // boolean flag = par0NBTTagCompound.getBoolean("Ambient"); - nbttaglist.appendTag(d); - } - - potionStack.stackTagCompound.setTag("CustomPotionEffects", nbttaglist); - EntityPotion entityPotion = new EntityPotion(worldObj, entityLivingBase, potionStack); - return entityPotion; - } -} diff --git a/1.7.2/main/java/WayofTime/alchemicalWizardry/common/items/potion/AlchemyReagent.java b/1.7.2/main/java/WayofTime/alchemicalWizardry/common/items/potion/AlchemyReagent.java deleted file mode 100644 index 3987c581..00000000 --- a/1.7.2/main/java/WayofTime/alchemicalWizardry/common/items/potion/AlchemyReagent.java +++ /dev/null @@ -1,120 +0,0 @@ -package WayofTime.alchemicalWizardry.common.items.potion; - -import java.util.List; - -import net.minecraft.client.renderer.texture.IIconRegister; -import net.minecraft.entity.player.EntityPlayer; -import net.minecraft.item.Item; -import net.minecraft.item.ItemStack; -import net.minecraft.util.EnumChatFormatting; - -import org.lwjgl.input.Keyboard; - -import WayofTime.alchemicalWizardry.AlchemicalWizardry; -import WayofTime.alchemicalWizardry.ModItems; -import WayofTime.alchemicalWizardry.api.alchemy.AlchemyRecipeRegistry; -import cpw.mods.fml.relauncher.Side; -import cpw.mods.fml.relauncher.SideOnly; - -public class AlchemyReagent extends Item -{ - public AlchemyReagent() - { - super(); - setCreativeTab(AlchemicalWizardry.tabBloodMagic); - this.setMaxStackSize(64); - // TODO Auto-generated constructor stub - } - - @Override - @SideOnly(Side.CLIENT) - public void registerIcons(IIconRegister iconRegister) - { - if (this == ModItems.incendium) - { - this.itemIcon = iconRegister.registerIcon("AlchemicalWizardry:Incendium"); - return; - } - - if (this == ModItems.magicales) - { - this.itemIcon = iconRegister.registerIcon("AlchemicalWizardry:Magicales"); - return; - } - - if (this == ModItems.sanctus) - { - this.itemIcon = iconRegister.registerIcon("AlchemicalWizardry:Sanctus"); - return; - } - - if (this == ModItems.aether) - { - this.itemIcon = iconRegister.registerIcon("AlchemicalWizardry:Aether"); - return; - } - - if (this == ModItems.simpleCatalyst) - { - this.itemIcon = iconRegister.registerIcon("AlchemicalWizardry:SimpleCatalyst"); - return; - } - - if (this == ModItems.crepitous) - { - this.itemIcon = iconRegister.registerIcon("AlchemicalWizardry:Crepitous"); - return; - } - - if (this == ModItems.crystallos) - { - this.itemIcon = iconRegister.registerIcon("AlchemicalWizardry:Crystallos"); - return; - } - - if (this == ModItems.terrae) - { - this.itemIcon = iconRegister.registerIcon("AlchemicalWizardry:Terrae"); - return; - } - - if (this == ModItems.aquasalus) - { - this.itemIcon = iconRegister.registerIcon("AlchemicalWizardry:Aquasalus"); - return; - } - - if (this == ModItems.tennebrae) - { - this.itemIcon = iconRegister.registerIcon("AlchemicalWizardry:Tennebrae"); - return; - } - } - - @Override - public void addInformation(ItemStack par1ItemStack, EntityPlayer par2EntityPlayer, List par3List, boolean par4) - { - par3List.add("Used in alchemy"); - - if (Keyboard.isKeyDown(Keyboard.KEY_RSHIFT) || Keyboard.isKeyDown(Keyboard.KEY_LSHIFT)) - { - ItemStack[] recipe = AlchemyRecipeRegistry.getRecipeForItemStack(par1ItemStack); - - if (recipe != null) - { - par3List.add(EnumChatFormatting.BLUE + "Recipe:"); - - for (ItemStack item : recipe) - { - if (item != null) - { - par3List.add("" + item.getDisplayName()); - } - } - } - } else - { - par3List.add("-Press " + EnumChatFormatting.BLUE + "shift" + EnumChatFormatting.GRAY + " for Recipe-"); - } - } -} diff --git a/1.7.2/main/java/WayofTime/alchemicalWizardry/common/items/potion/AverageLengtheningCatalyst.java b/1.7.2/main/java/WayofTime/alchemicalWizardry/common/items/potion/AverageLengtheningCatalyst.java deleted file mode 100644 index 841a9729..00000000 --- a/1.7.2/main/java/WayofTime/alchemicalWizardry/common/items/potion/AverageLengtheningCatalyst.java +++ /dev/null @@ -1,20 +0,0 @@ -package WayofTime.alchemicalWizardry.common.items.potion; - -import net.minecraft.client.renderer.texture.IIconRegister; -import cpw.mods.fml.relauncher.Side; -import cpw.mods.fml.relauncher.SideOnly; - -public class AverageLengtheningCatalyst extends LengtheningCatalyst -{ - public AverageLengtheningCatalyst() - { - super(2); - } - - @Override - @SideOnly(Side.CLIENT) - public void registerIcons(IIconRegister iconRegister) - { - this.itemIcon = iconRegister.registerIcon("AlchemicalWizardry:AverageLengtheningCatalyst"); - } -} \ No newline at end of file diff --git a/1.7.2/main/java/WayofTime/alchemicalWizardry/common/items/potion/AveragePowerCatalyst.java b/1.7.2/main/java/WayofTime/alchemicalWizardry/common/items/potion/AveragePowerCatalyst.java deleted file mode 100644 index 3ce2cde9..00000000 --- a/1.7.2/main/java/WayofTime/alchemicalWizardry/common/items/potion/AveragePowerCatalyst.java +++ /dev/null @@ -1,20 +0,0 @@ -package WayofTime.alchemicalWizardry.common.items.potion; - -import net.minecraft.client.renderer.texture.IIconRegister; -import cpw.mods.fml.relauncher.Side; -import cpw.mods.fml.relauncher.SideOnly; - -public class AveragePowerCatalyst extends PowerCatalyst -{ - public AveragePowerCatalyst() - { - super(2); - } - - @Override - @SideOnly(Side.CLIENT) - public void registerIcons(IIconRegister iconRegister) - { - this.itemIcon = iconRegister.registerIcon("AlchemicalWizardry:AveragePowerCatalyst"); - } -} \ No newline at end of file diff --git a/1.7.2/main/java/WayofTime/alchemicalWizardry/common/items/potion/EnhancedFillingAgent.java b/1.7.2/main/java/WayofTime/alchemicalWizardry/common/items/potion/EnhancedFillingAgent.java deleted file mode 100644 index ecbad19d..00000000 --- a/1.7.2/main/java/WayofTime/alchemicalWizardry/common/items/potion/EnhancedFillingAgent.java +++ /dev/null @@ -1,57 +0,0 @@ -package WayofTime.alchemicalWizardry.common.items.potion; - -import java.util.Random; - -import net.minecraft.client.renderer.texture.IIconRegister; -import WayofTime.alchemicalWizardry.AlchemicalWizardry; -import cpw.mods.fml.relauncher.Side; -import cpw.mods.fml.relauncher.SideOnly; - -public class EnhancedFillingAgent extends WeakFillingAgent -{ - public EnhancedFillingAgent() - { - super(); - setCreativeTab(AlchemicalWizardry.tabBloodMagic); - } - - @Override - public int getFilledAmountForPotionNumber(int potionEffects) - { - Random rand = new Random(); - - if (potionEffects == 0) - { - return 8; - } - - //if(potionEffects >=1 && potionEffects<=5) - { - switch (potionEffects) - { - case 1: - return 6; - - case 2: - return 4; - - case 3: - return 3; - - case 4: - return 2; - - case 5: - return 2; - } - } - return 0; - } - - @Override - @SideOnly(Side.CLIENT) - public void registerIcons(IIconRegister iconRegister) - { - this.itemIcon = iconRegister.registerIcon("AlchemicalWizardry:EnhancedFillingAgent"); - } -} diff --git a/1.7.2/main/java/WayofTime/alchemicalWizardry/common/items/potion/GreaterLengtheningCatalyst.java b/1.7.2/main/java/WayofTime/alchemicalWizardry/common/items/potion/GreaterLengtheningCatalyst.java deleted file mode 100644 index 65bb052e..00000000 --- a/1.7.2/main/java/WayofTime/alchemicalWizardry/common/items/potion/GreaterLengtheningCatalyst.java +++ /dev/null @@ -1,20 +0,0 @@ -package WayofTime.alchemicalWizardry.common.items.potion; - -import net.minecraft.client.renderer.texture.IIconRegister; -import cpw.mods.fml.relauncher.Side; -import cpw.mods.fml.relauncher.SideOnly; - -public class GreaterLengtheningCatalyst extends LengtheningCatalyst -{ - public GreaterLengtheningCatalyst() - { - super(3); - } - - @Override - @SideOnly(Side.CLIENT) - public void registerIcons(IIconRegister iconRegister) - { - this.itemIcon = iconRegister.registerIcon("AlchemicalWizardry:GreaterLengtheningCatalyst"); - } -} \ No newline at end of file diff --git a/1.7.2/main/java/WayofTime/alchemicalWizardry/common/items/potion/GreaterPowerCatalyst.java b/1.7.2/main/java/WayofTime/alchemicalWizardry/common/items/potion/GreaterPowerCatalyst.java deleted file mode 100644 index e5dd6d47..00000000 --- a/1.7.2/main/java/WayofTime/alchemicalWizardry/common/items/potion/GreaterPowerCatalyst.java +++ /dev/null @@ -1,20 +0,0 @@ -package WayofTime.alchemicalWizardry.common.items.potion; - -import net.minecraft.client.renderer.texture.IIconRegister; -import cpw.mods.fml.relauncher.Side; -import cpw.mods.fml.relauncher.SideOnly; - -public class GreaterPowerCatalyst extends PowerCatalyst -{ - public GreaterPowerCatalyst() - { - super(3); - } - - @Override - @SideOnly(Side.CLIENT) - public void registerIcons(IIconRegister iconRegister) - { - this.itemIcon = iconRegister.registerIcon("AlchemicalWizardry:GreaterPowerCatalyst"); - } -} \ No newline at end of file diff --git a/1.7.2/main/java/WayofTime/alchemicalWizardry/common/items/potion/LengtheningCatalyst.java b/1.7.2/main/java/WayofTime/alchemicalWizardry/common/items/potion/LengtheningCatalyst.java deleted file mode 100644 index 7476f689..00000000 --- a/1.7.2/main/java/WayofTime/alchemicalWizardry/common/items/potion/LengtheningCatalyst.java +++ /dev/null @@ -1,64 +0,0 @@ -package WayofTime.alchemicalWizardry.common.items.potion; - -import WayofTime.alchemicalWizardry.AlchemicalWizardry; -import WayofTime.alchemicalWizardry.api.alchemy.AlchemyRecipeRegistry; -import WayofTime.alchemicalWizardry.common.ICatalyst; -import net.minecraft.entity.player.EntityPlayer; -import net.minecraft.item.Item; -import net.minecraft.item.ItemStack; -import net.minecraft.util.EnumChatFormatting; - -import org.lwjgl.input.Keyboard; - -import java.util.List; - -public class LengtheningCatalyst extends Item implements ICatalyst -{ - private int catalystStrength; - - public LengtheningCatalyst(int catalystStrength) - { - super(); - this.catalystStrength = catalystStrength; - setCreativeTab(AlchemicalWizardry.tabBloodMagic); - } - - @Override - public int getCatalystLevel() - { - return catalystStrength; - } - - @Override - public boolean isConcentration() - { - return false; - } - - @Override - public void addInformation(ItemStack par1ItemStack, EntityPlayer par2EntityPlayer, List par3List, boolean par4) - { - par3List.add("Used in alchemy"); - - if (Keyboard.isKeyDown(Keyboard.KEY_RSHIFT) || Keyboard.isKeyDown(Keyboard.KEY_LSHIFT)) - { - ItemStack[] recipe = AlchemyRecipeRegistry.getRecipeForItemStack(par1ItemStack); - - if (recipe != null) - { - par3List.add(EnumChatFormatting.BLUE + "Recipe:"); - - for (ItemStack item : recipe) - { - if (item != null) - { - par3List.add("" + item.getDisplayName()); - } - } - } - } else - { - par3List.add("-Press " + EnumChatFormatting.BLUE + "shift" + EnumChatFormatting.GRAY + " for Recipe-"); - } - } -} diff --git a/1.7.2/main/java/WayofTime/alchemicalWizardry/common/items/potion/MundaneLengtheningCatalyst.java b/1.7.2/main/java/WayofTime/alchemicalWizardry/common/items/potion/MundaneLengtheningCatalyst.java deleted file mode 100644 index e945ed22..00000000 --- a/1.7.2/main/java/WayofTime/alchemicalWizardry/common/items/potion/MundaneLengtheningCatalyst.java +++ /dev/null @@ -1,20 +0,0 @@ -package WayofTime.alchemicalWizardry.common.items.potion; - -import net.minecraft.client.renderer.texture.IIconRegister; -import cpw.mods.fml.relauncher.Side; -import cpw.mods.fml.relauncher.SideOnly; - -public class MundaneLengtheningCatalyst extends LengtheningCatalyst -{ - public MundaneLengtheningCatalyst() - { - super(1); - } - - @Override - @SideOnly(Side.CLIENT) - public void registerIcons(IIconRegister iconRegister) - { - this.itemIcon = iconRegister.registerIcon("AlchemicalWizardry:MundaneLengtheningCatalyst"); - } -} diff --git a/1.7.2/main/java/WayofTime/alchemicalWizardry/common/items/potion/MundanePowerCatalyst.java b/1.7.2/main/java/WayofTime/alchemicalWizardry/common/items/potion/MundanePowerCatalyst.java deleted file mode 100644 index 86291dec..00000000 --- a/1.7.2/main/java/WayofTime/alchemicalWizardry/common/items/potion/MundanePowerCatalyst.java +++ /dev/null @@ -1,20 +0,0 @@ -package WayofTime.alchemicalWizardry.common.items.potion; - -import net.minecraft.client.renderer.texture.IIconRegister; -import cpw.mods.fml.relauncher.Side; -import cpw.mods.fml.relauncher.SideOnly; - -public class MundanePowerCatalyst extends PowerCatalyst -{ - public MundanePowerCatalyst() - { - super(1); - } - - @Override - @SideOnly(Side.CLIENT) - public void registerIcons(IIconRegister iconRegister) - { - this.itemIcon = iconRegister.registerIcon("AlchemicalWizardry:MundanePowerCatalyst"); - } -} diff --git a/1.7.2/main/java/WayofTime/alchemicalWizardry/common/items/potion/PowerCatalyst.java b/1.7.2/main/java/WayofTime/alchemicalWizardry/common/items/potion/PowerCatalyst.java deleted file mode 100644 index 60d98566..00000000 --- a/1.7.2/main/java/WayofTime/alchemicalWizardry/common/items/potion/PowerCatalyst.java +++ /dev/null @@ -1,64 +0,0 @@ -package WayofTime.alchemicalWizardry.common.items.potion; - -import WayofTime.alchemicalWizardry.AlchemicalWizardry; -import WayofTime.alchemicalWizardry.api.alchemy.AlchemyRecipeRegistry; -import WayofTime.alchemicalWizardry.common.ICatalyst; -import net.minecraft.entity.player.EntityPlayer; -import net.minecraft.item.Item; -import net.minecraft.item.ItemStack; -import net.minecraft.util.EnumChatFormatting; - -import org.lwjgl.input.Keyboard; - -import java.util.List; - -public class PowerCatalyst extends Item implements ICatalyst -{ - private int catalystStrength; - - public PowerCatalyst(int catalystStrength) - { - super(); - this.catalystStrength = catalystStrength; - setCreativeTab(AlchemicalWizardry.tabBloodMagic); - } - - @Override - public int getCatalystLevel() - { - return catalystStrength; - } - - @Override - public boolean isConcentration() - { - return true; - } - - @Override - public void addInformation(ItemStack par1ItemStack, EntityPlayer par2EntityPlayer, List par3List, boolean par4) - { - par3List.add("Used in alchemy"); - - if (Keyboard.isKeyDown(Keyboard.KEY_RSHIFT) || Keyboard.isKeyDown(Keyboard.KEY_LSHIFT)) - { - ItemStack[] recipe = AlchemyRecipeRegistry.getRecipeForItemStack(par1ItemStack); - - if (recipe != null) - { - par3List.add(EnumChatFormatting.BLUE + "Recipe:"); - - for (ItemStack item : recipe) - { - if (item != null) - { - par3List.add("" + item.getDisplayName()); - } - } - } - } else - { - par3List.add("-Press " + EnumChatFormatting.BLUE + "shift" + EnumChatFormatting.GRAY + " for Recipe-"); - } - } -} diff --git a/1.7.2/main/java/WayofTime/alchemicalWizardry/common/items/potion/StandardBindingAgent.java b/1.7.2/main/java/WayofTime/alchemicalWizardry/common/items/potion/StandardBindingAgent.java deleted file mode 100644 index 6a2edc0b..00000000 --- a/1.7.2/main/java/WayofTime/alchemicalWizardry/common/items/potion/StandardBindingAgent.java +++ /dev/null @@ -1,66 +0,0 @@ -package WayofTime.alchemicalWizardry.common.items.potion; - -import java.util.List; - -import net.minecraft.client.renderer.texture.IIconRegister; -import net.minecraft.entity.player.EntityPlayer; -import net.minecraft.item.Item; -import net.minecraft.item.ItemStack; -import net.minecraft.util.EnumChatFormatting; - -import org.lwjgl.input.Keyboard; - -import WayofTime.alchemicalWizardry.AlchemicalWizardry; -import WayofTime.alchemicalWizardry.api.alchemy.AlchemyRecipeRegistry; -import WayofTime.alchemicalWizardry.common.IBindingAgent; -import cpw.mods.fml.relauncher.Side; -import cpw.mods.fml.relauncher.SideOnly; - -public class StandardBindingAgent extends Item implements IBindingAgent -{ - public StandardBindingAgent() - { - super(); - setCreativeTab(AlchemicalWizardry.tabBloodMagic); - } - - @Override - public float getSuccessRateForPotionNumber(int potions) - { - return (float) Math.pow(0.65, potions); - } - - @Override - @SideOnly(Side.CLIENT) - public void registerIcons(IIconRegister iconRegister) - { - this.itemIcon = iconRegister.registerIcon("AlchemicalWizardry:StandardBindingAgent"); - } - - @Override - public void addInformation(ItemStack par1ItemStack, EntityPlayer par2EntityPlayer, List par3List, boolean par4) - { - par3List.add("Used in alchemy"); - - if (Keyboard.isKeyDown(Keyboard.KEY_RSHIFT) || Keyboard.isKeyDown(Keyboard.KEY_LSHIFT)) - { - ItemStack[] recipe = AlchemyRecipeRegistry.getRecipeForItemStack(par1ItemStack); - - if (recipe != null) - { - par3List.add(EnumChatFormatting.BLUE + "Recipe:"); - - for (ItemStack item : recipe) - { - if (item != null) - { - par3List.add("" + item.getDisplayName()); - } - } - } - } else - { - par3List.add("-Press " + EnumChatFormatting.BLUE + "shift" + EnumChatFormatting.GRAY + " for Recipe-"); - } - } -} diff --git a/1.7.2/main/java/WayofTime/alchemicalWizardry/common/items/potion/StandardFillingAgent.java b/1.7.2/main/java/WayofTime/alchemicalWizardry/common/items/potion/StandardFillingAgent.java deleted file mode 100644 index 0cc4c9a8..00000000 --- a/1.7.2/main/java/WayofTime/alchemicalWizardry/common/items/potion/StandardFillingAgent.java +++ /dev/null @@ -1,39 +0,0 @@ -package WayofTime.alchemicalWizardry.common.items.potion; - -import net.minecraft.client.renderer.texture.IIconRegister; -import WayofTime.alchemicalWizardry.AlchemicalWizardry; -import cpw.mods.fml.relauncher.Side; -import cpw.mods.fml.relauncher.SideOnly; - -public class StandardFillingAgent extends WeakFillingAgent -{ - public StandardFillingAgent() - { - super(); - setCreativeTab(AlchemicalWizardry.tabBloodMagic); - } - - @Override - public int getFilledAmountForPotionNumber(int potionEffects) - { - //Random rand = new Random(); - if (potionEffects == 0) - { - return 8; - } - - if (potionEffects >= 1 && potionEffects <= 3) - { - return (int) (4 * (Math.pow(0.5f, potionEffects - 1) + 0.01f)); - } - - return 0; - } - - @Override - @SideOnly(Side.CLIENT) - public void registerIcons(IIconRegister iconRegister) - { - this.itemIcon = iconRegister.registerIcon("AlchemicalWizardry:StandardFillingAgent"); - } -} diff --git a/1.7.2/main/java/WayofTime/alchemicalWizardry/common/items/potion/WeakBindingAgent.java b/1.7.2/main/java/WayofTime/alchemicalWizardry/common/items/potion/WeakBindingAgent.java deleted file mode 100644 index 24ee6f0b..00000000 --- a/1.7.2/main/java/WayofTime/alchemicalWizardry/common/items/potion/WeakBindingAgent.java +++ /dev/null @@ -1,27 +0,0 @@ -package WayofTime.alchemicalWizardry.common.items.potion; - -import net.minecraft.client.renderer.texture.IIconRegister; -import cpw.mods.fml.relauncher.Side; -import cpw.mods.fml.relauncher.SideOnly; - -public class WeakBindingAgent extends StandardBindingAgent -{ - public WeakBindingAgent() - { - super(); - // TODO Auto-generated constructor stub - } - - @Override - public float getSuccessRateForPotionNumber(int potions) - { - return (float) Math.pow(0.4, potions); - } - - @Override - @SideOnly(Side.CLIENT) - public void registerIcons(IIconRegister iconRegister) - { - this.itemIcon = iconRegister.registerIcon("AlchemicalWizardry:WeakBindingAgent"); - } -} diff --git a/1.7.2/main/java/WayofTime/alchemicalWizardry/common/items/potion/WeakFillingAgent.java b/1.7.2/main/java/WayofTime/alchemicalWizardry/common/items/potion/WeakFillingAgent.java deleted file mode 100644 index cd858f16..00000000 --- a/1.7.2/main/java/WayofTime/alchemicalWizardry/common/items/potion/WeakFillingAgent.java +++ /dev/null @@ -1,85 +0,0 @@ -package WayofTime.alchemicalWizardry.common.items.potion; - -import java.util.List; -import java.util.Random; - -import net.minecraft.client.renderer.texture.IIconRegister; -import net.minecraft.entity.player.EntityPlayer; -import net.minecraft.item.Item; -import net.minecraft.item.ItemStack; -import net.minecraft.util.EnumChatFormatting; - -import org.lwjgl.input.Keyboard; - -import WayofTime.alchemicalWizardry.AlchemicalWizardry; -import WayofTime.alchemicalWizardry.api.alchemy.AlchemyRecipeRegistry; -import WayofTime.alchemicalWizardry.common.IFillingAgent; -import cpw.mods.fml.relauncher.Side; -import cpw.mods.fml.relauncher.SideOnly; - -public class WeakFillingAgent extends Item implements IFillingAgent -{ - public WeakFillingAgent() - { - super(); - setCreativeTab(AlchemicalWizardry.tabBloodMagic); - } - - @Override - public int getFilledAmountForPotionNumber(int potionEffects) - { - Random rand = new Random(); - - if (potionEffects == 0) - { - return 8; - } - - if (potionEffects == 1 || potionEffects == 2) - { - if (rand.nextFloat() > 0.5f) - { - return (4 - potionEffects); - } else - { - return 3 - potionEffects; - } - } - - return 0; - } - - @Override - @SideOnly(Side.CLIENT) - public void registerIcons(IIconRegister iconRegister) - { - this.itemIcon = iconRegister.registerIcon("AlchemicalWizardry:WeakFillingAgent"); - } - - @Override - public void addInformation(ItemStack par1ItemStack, EntityPlayer par2EntityPlayer, List par3List, boolean par4) - { - par3List.add("Used in alchemy"); - - if (Keyboard.isKeyDown(Keyboard.KEY_RSHIFT) || Keyboard.isKeyDown(Keyboard.KEY_LSHIFT)) - { - ItemStack[] recipe = AlchemyRecipeRegistry.getRecipeForItemStack(par1ItemStack); - - if (recipe != null) - { - par3List.add(EnumChatFormatting.BLUE + "Recipe:"); - - for (ItemStack item : recipe) - { - if (item != null) - { - par3List.add("" + item.getDisplayName()); - } - } - } - } else - { - par3List.add("-Press " + EnumChatFormatting.BLUE + "shift" + EnumChatFormatting.GRAY + " for Recipe-"); - } - } -} diff --git a/1.7.2/main/java/WayofTime/alchemicalWizardry/common/items/sigil/AirSigil.java b/1.7.2/main/java/WayofTime/alchemicalWizardry/common/items/sigil/AirSigil.java deleted file mode 100644 index 8858819b..00000000 --- a/1.7.2/main/java/WayofTime/alchemicalWizardry/common/items/sigil/AirSigil.java +++ /dev/null @@ -1,106 +0,0 @@ -package WayofTime.alchemicalWizardry.common.items.sigil; - -import java.util.List; - -import net.minecraft.client.renderer.texture.IIconRegister; -import net.minecraft.entity.player.EntityPlayer; -import net.minecraft.item.ItemStack; -import net.minecraft.util.Vec3; -import net.minecraft.world.World; -import WayofTime.alchemicalWizardry.AlchemicalWizardry; -import WayofTime.alchemicalWizardry.api.items.interfaces.ArmourUpgrade; -import WayofTime.alchemicalWizardry.common.items.EnergyItems; -import cpw.mods.fml.relauncher.Side; -import cpw.mods.fml.relauncher.SideOnly; - -public class AirSigil extends EnergyItems implements ArmourUpgrade -{ - private int energyUsed; - - public AirSigil() - { - super(); - this.maxStackSize = 1; - //setMaxDamage(1000); - setEnergyUsed(50); - setCreativeTab(AlchemicalWizardry.tabBloodMagic); - } - - @Override - public void addInformation(ItemStack par1ItemStack, EntityPlayer par2EntityPlayer, List par3List, boolean par4) - { - par3List.add("I feel lighter already..."); - - if (!(par1ItemStack.stackTagCompound == null)) - { - par3List.add("Current owner: " + par1ItemStack.stackTagCompound.getString("ownerName")); - } - } - - @Override - @SideOnly(Side.CLIENT) - public void registerIcons(IIconRegister iconRegister) - { - this.itemIcon = iconRegister.registerIcon("AlchemicalWizardry:AirSigil"); - } - - @Override - public ItemStack onItemRightClick(ItemStack par1ItemStack, World par2World, EntityPlayer par3EntityPlayer) - { - EnergyItems.checkAndSetItemOwner(par1ItemStack, par3EntityPlayer); - - if (par3EntityPlayer.isSneaking()) - { - return par1ItemStack; - } - - Vec3 vec = par3EntityPlayer.getLookVec(); - double wantedVelocity = 1.7; - - if (par3EntityPlayer.isPotionActive(AlchemicalWizardry.customPotionBoost)) - { - int i = par3EntityPlayer.getActivePotionEffect(AlchemicalWizardry.customPotionBoost).getAmplifier(); - wantedVelocity += (1 + i) * (0.35); - } - - par3EntityPlayer.motionX = vec.xCoord * wantedVelocity; - par3EntityPlayer.motionY = vec.yCoord * wantedVelocity; - par3EntityPlayer.motionZ = vec.zCoord * wantedVelocity; - par2World.playSoundEffect((double) ((float) par3EntityPlayer.posX + 0.5F), (double) ((float) par3EntityPlayer.posY + 0.5F), (double) ((float) par3EntityPlayer.posZ + 0.5F), "random.fizz", 0.5F, 2.6F + (par2World.rand.nextFloat() - par2World.rand.nextFloat()) * 0.8F); - par3EntityPlayer.fallDistance = 0; - - if (!par3EntityPlayer.capabilities.isCreativeMode) - { - if (!EnergyItems.syphonBatteries(par1ItemStack, par3EntityPlayer, getEnergyUsed())) - { - } - } else - { - return par1ItemStack; - } - - return par1ItemStack; - } - - @Override - public void onArmourUpdate(World world, EntityPlayer player, - ItemStack thisItemStack) - { - // TODO Auto-generated method stub - player.fallDistance = 0; - } - - @Override - public boolean isUpgrade() - { - // TODO Auto-generated method stub - return true; - } - - @Override - public int getEnergyForTenSeconds() - { - // TODO Auto-generated method stub - return 50; - } -} diff --git a/1.7.2/main/java/WayofTime/alchemicalWizardry/common/items/sigil/DivinationSigil.java b/1.7.2/main/java/WayofTime/alchemicalWizardry/common/items/sigil/DivinationSigil.java deleted file mode 100644 index a5d61a79..00000000 --- a/1.7.2/main/java/WayofTime/alchemicalWizardry/common/items/sigil/DivinationSigil.java +++ /dev/null @@ -1,96 +0,0 @@ -package WayofTime.alchemicalWizardry.common.items.sigil; - -import java.util.List; - -import net.minecraft.client.renderer.texture.IIconRegister; -import net.minecraft.entity.player.EntityPlayer; -import net.minecraft.item.Item; -import net.minecraft.item.ItemStack; -import net.minecraft.nbt.NBTTagCompound; -import net.minecraft.potion.Potion; -import net.minecraft.potion.PotionEffect; -import net.minecraft.util.ChatComponentText; -import net.minecraft.world.World; -import WayofTime.alchemicalWizardry.AlchemicalWizardry; -import WayofTime.alchemicalWizardry.api.items.interfaces.ArmourUpgrade; -import WayofTime.alchemicalWizardry.common.PacketHandler; -import WayofTime.alchemicalWizardry.common.items.EnergyItems; -import cpw.mods.fml.relauncher.Side; -import cpw.mods.fml.relauncher.SideOnly; - -public class DivinationSigil extends Item implements ArmourUpgrade -{ - public DivinationSigil() - { - super(); - this.maxStackSize = 1; - //setMaxDamage(1000); - setCreativeTab(AlchemicalWizardry.tabBloodMagic); - } - - @Override - @SideOnly(Side.CLIENT) - public void registerIcons(IIconRegister iconRegister) - { - this.itemIcon = iconRegister.registerIcon("AlchemicalWizardry:DivinationSigil"); - } - - @Override - public void addInformation(ItemStack par1ItemStack, EntityPlayer par2EntityPlayer, List par3List, boolean par4) - { - par3List.add("Peer into the soul to"); - par3List.add("get the current essence"); - - 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"); - //PacketDispatcher.sendPacketToServer(PacketHandler.getPacket(ownerName)); - int currentEssence = EnergyItems.getCurrentEssence(ownerName); - - par3EntityPlayer.addChatMessage(new ChatComponentText("Current Essence: " + EnergyItems.getCurrentEssence(ownerName) + "LP")); - - return par1ItemStack; - } - - @Override - public void onArmourUpdate(World world, EntityPlayer player, ItemStack thisItemStack) - { - // TODO Auto-generated method stub - player.addPotionEffect(new PotionEffect(Potion.nightVision.id, 400, 9,true)); - } - - @Override - public boolean isUpgrade() - { - // TODO Auto-generated method stub - return true; - } - - @Override - public int getEnergyForTenSeconds() - { - // TODO Auto-generated method stub - return 25; - } -} diff --git a/1.7.2/main/java/WayofTime/alchemicalWizardry/common/items/sigil/ItemBloodLightSigil.java b/1.7.2/main/java/WayofTime/alchemicalWizardry/common/items/sigil/ItemBloodLightSigil.java deleted file mode 100644 index 2eed1e0b..00000000 --- a/1.7.2/main/java/WayofTime/alchemicalWizardry/common/items/sigil/ItemBloodLightSigil.java +++ /dev/null @@ -1,144 +0,0 @@ -package WayofTime.alchemicalWizardry.common.items.sigil; - -import java.util.List; - -import net.minecraft.client.renderer.texture.IIconRegister; -import net.minecraft.entity.Entity; -import net.minecraft.entity.player.EntityPlayer; -import net.minecraft.item.ItemStack; -import net.minecraft.nbt.NBTTagCompound; -import net.minecraft.world.World; -import WayofTime.alchemicalWizardry.AlchemicalWizardry; -import WayofTime.alchemicalWizardry.ModBlocks; -import WayofTime.alchemicalWizardry.common.entity.projectile.EntityBloodLightProjectile; -import WayofTime.alchemicalWizardry.common.items.EnergyItems; -import cpw.mods.fml.relauncher.Side; -import cpw.mods.fml.relauncher.SideOnly; - -public class ItemBloodLightSigil extends EnergyItems -{ - private int tickDelay = 100; - - public ItemBloodLightSigil() - { - super(); - this.maxStackSize = 1; - //setMaxDamage(1000); - setEnergyUsed(10); - setCreativeTab(AlchemicalWizardry.tabBloodMagic); - // TODO Auto-generated constructor stub - } - - @Override - public void addInformation(ItemStack par1ItemStack, EntityPlayer par2EntityPlayer, List par3List, boolean par4) - { - par3List.add("I see a light!"); - - if (!(par1ItemStack.stackTagCompound == null)) - { - par3List.add("Current owner: " + par1ItemStack.stackTagCompound.getString("ownerName")); - } - } - - @Override - @SideOnly(Side.CLIENT) - public void registerIcons(IIconRegister iconRegister) - { - this.itemIcon = iconRegister.registerIcon("AlchemicalWizardry:BloodLightSigil"); - } - - @Override - public boolean onItemUse(ItemStack par1ItemStack, EntityPlayer par2EntityPlayer, World par3World, int par4, int par5, int par6, int par7, float par8, float par9, float par10) - { - EnergyItems.checkAndSetItemOwner(par1ItemStack, par2EntityPlayer); - EnergyItems.syphonBatteries(par1ItemStack, par2EntityPlayer, getEnergyUsed()); - - if (par3World.isRemote) - { - return true; - } - - if (par7 == 0 && par3World.isAirBlock(par4, par5 - 1, par6)) - { - par3World.setBlock(par4, par5 - 1, par6, ModBlocks.blockBloodLight); - } - - if (par7 == 1 && par3World.isAirBlock(par4, par5 + 1, par6)) - { - par3World.setBlock(par4, par5 + 1, par6, ModBlocks.blockBloodLight); - } - - if (par7 == 2 && par3World.isAirBlock(par4, par5, par6 - 1)) - { - par3World.setBlock(par4, par5, par6 - 1, ModBlocks.blockBloodLight); - } - - if (par7 == 3 && par3World.isAirBlock(par4, par5, par6 + 1)) - { - par3World.setBlock(par4, par5, par6 + 1, ModBlocks.blockBloodLight); - } - - if (par7 == 4 && par3World.isAirBlock(par4 - 1, par5, par6)) - { - par3World.setBlock(par4 - 1, par5, par6, ModBlocks.blockBloodLight); - } - - if (par7 == 5 && par3World.isAirBlock(par4 + 1, par5, par6)) - { - par3World.setBlock(par4 + 1, par5, par6, ModBlocks.blockBloodLight); - } - - return true; - } - - @Override - public ItemStack onItemRightClick(ItemStack par1ItemStack, World par2World, EntityPlayer par3EntityPlayer) - { - EnergyItems.checkAndSetItemOwner(par1ItemStack, par3EntityPlayer); - - if (par3EntityPlayer.isSneaking()) - { - return par1ItemStack; - } - - if (par1ItemStack.stackTagCompound == null) - { - par1ItemStack.setTagCompound(new NBTTagCompound()); - } - - EnergyItems.syphonBatteries(par1ItemStack, par3EntityPlayer, getEnergyUsed() * 5); - - if (!par2World.isRemote) - { - par2World.spawnEntityInWorld(new EntityBloodLightProjectile(par2World, par3EntityPlayer, 10)); - } - - return par1ItemStack; - } - - @Override - public void onUpdate(ItemStack par1ItemStack, World par2World, Entity par3Entity, int par4, boolean par5) - { - if (!(par3Entity instanceof EntityPlayer)) - { - return; - } - - EntityPlayer par3EntityPlayer = (EntityPlayer) par3Entity; - - if (par1ItemStack.stackTagCompound == null) - { - par1ItemStack.setTagCompound(new NBTTagCompound()); - } - - if (par1ItemStack.stackTagCompound.getBoolean("isActive")) - { - if (par2World.getWorldTime() % tickDelay == par1ItemStack.stackTagCompound.getInteger("worldTimeDelay") && par3Entity instanceof EntityPlayer) - { - EnergyItems.syphonBatteries(par1ItemStack, (EntityPlayer) par3Entity, getEnergyUsed()); - } - } - - return; - } -} 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 deleted file mode 100644 index fd8931f4..00000000 --- a/1.7.2/main/java/WayofTime/alchemicalWizardry/common/items/sigil/ItemFluidSigil.java +++ /dev/null @@ -1,597 +0,0 @@ -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 deleted file mode 100644 index 827a3244..00000000 --- a/1.7.2/main/java/WayofTime/alchemicalWizardry/common/items/sigil/ItemSeerSigil.java +++ /dev/null @@ -1,67 +0,0 @@ -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/main/java/WayofTime/alchemicalWizardry/common/items/sigil/ItemSigilOfEnderSeverance.java b/1.7.2/main/java/WayofTime/alchemicalWizardry/common/items/sigil/ItemSigilOfEnderSeverance.java deleted file mode 100644 index b341e859..00000000 --- a/1.7.2/main/java/WayofTime/alchemicalWizardry/common/items/sigil/ItemSigilOfEnderSeverance.java +++ /dev/null @@ -1,171 +0,0 @@ -package WayofTime.alchemicalWizardry.common.items.sigil; - -import java.util.List; - -import net.minecraft.client.renderer.texture.IIconRegister; -import net.minecraft.entity.Entity; -import net.minecraft.entity.EntityLiving; -import net.minecraft.entity.player.EntityPlayer; -import net.minecraft.item.ItemStack; -import net.minecraft.nbt.NBTTagCompound; -import net.minecraft.potion.PotionEffect; -import net.minecraft.util.IIcon; -import net.minecraft.world.World; -import WayofTime.alchemicalWizardry.AlchemicalWizardry; -import WayofTime.alchemicalWizardry.api.items.interfaces.IHolding; -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 ItemSigilOfEnderSeverance extends EnergyItems implements IHolding -{ - @SideOnly(Side.CLIENT) - private static IIcon activeIcon; - @SideOnly(Side.CLIENT) - private static IIcon passiveIcon; - - public ItemSigilOfEnderSeverance() - { - super(); - this.maxStackSize = 1; - setEnergyUsed(200); - setCreativeTab(AlchemicalWizardry.tabBloodMagic); - } - - @Override - public void addInformation(ItemStack par1ItemStack, EntityPlayer par2EntityPlayer, List par3List, boolean par4) - { - par3List.add("Put those endermen in a Dire situation!"); - - if (!(par1ItemStack.stackTagCompound == null)) - { - if (par1ItemStack.stackTagCompound.getBoolean("isActive")) - { - par3List.add("Activated"); - } else - { - par3List.add("Deactivated"); - } - - par3List.add("Current owner: " + par1ItemStack.stackTagCompound.getString("ownerName")); - } - } - - @Override - @SideOnly(Side.CLIENT) - public void registerIcons(IIconRegister iconRegister) - { - this.itemIcon = iconRegister.registerIcon("AlchemicalWizardry:SigilOfSeverance_deactivated"); - this.activeIcon = iconRegister.registerIcon("AlchemicalWizardry:SigilOfSeverance_activated"); - this.passiveIcon = iconRegister.registerIcon("AlchemicalWizardry:SigilOfSeverance_deactivated"); - } - - @Override - public IIcon getIcon(ItemStack stack, int renderPass, EntityPlayer player, ItemStack usingItem, int useRemaining) - { - if (stack.stackTagCompound == null) - { - stack.setTagCompound(new NBTTagCompound()); - } - - NBTTagCompound tag = stack.stackTagCompound; - - if (tag.getBoolean("isActive")) - { - return this.activeIcon; - } else - { - return this.passiveIcon; - } - } - - @Override - @SideOnly(Side.CLIENT) - public IIcon getIconFromDamage(int par1) - { - if (par1 == 1) - { - return this.activeIcon; - } else - { - return this.passiveIcon; - } - } - - @Override - public ItemStack onItemRightClick(ItemStack par1ItemStack, World par2World, EntityPlayer par3EntityPlayer) - { - EnergyItems.checkAndSetItemOwner(par1ItemStack, par3EntityPlayer); - - if (par3EntityPlayer.isSneaking()) - { - return par1ItemStack; - } - - if (par1ItemStack.stackTagCompound == null) - { - par1ItemStack.setTagCompound(new NBTTagCompound()); - } - - NBTTagCompound tag = par1ItemStack.stackTagCompound; - tag.setBoolean("isActive", !(tag.getBoolean("isActive"))); - - if (tag.getBoolean("isActive")) - { - par1ItemStack.setItemDamage(1); - tag.setInteger("worldTimeDelay", (int) (par2World.getWorldTime() - 1) % 200); - - if (!par3EntityPlayer.capabilities.isCreativeMode) - { - if (!EnergyItems.syphonBatteries(par1ItemStack, par3EntityPlayer, getEnergyUsed())) - { - } - } - } else - { - par1ItemStack.setItemDamage(par1ItemStack.getMaxDamage()); - } - - return par1ItemStack; - } - - @Override - public void onUpdate(ItemStack par1ItemStack, World par2World, Entity par3Entity, int par4, boolean par5) - { - if (!(par3Entity instanceof EntityPlayer)) - { - return; - } - - EntityPlayer par3EntityPlayer = (EntityPlayer) par3Entity; - - if (par1ItemStack.stackTagCompound == null) - { - par1ItemStack.setTagCompound(new NBTTagCompound()); - } - - if (par1ItemStack.stackTagCompound.getBoolean("isActive")) - { - List list = SpellHelper.getEntitiesInRange(par2World, par3Entity.posX, par3Entity.posY, par3Entity.posZ, 4.5, 4.5); - for(Entity entity : list) - { - if(!entity.equals(par3Entity)&&entity instanceof EntityLiving) - { - ((EntityLiving)entity).addPotionEffect(new PotionEffect(AlchemicalWizardry.customPotionPlanarBinding.id,5,0)); - } - } - } - - if (par2World.getWorldTime() % 200 == par1ItemStack.stackTagCompound.getInteger("worldTimeDelay") && par1ItemStack.stackTagCompound.getBoolean("isActive")) - { - //par3EntityPlayer.addPotionEffect(new PotionEffect(Potion.field_76444_x.id, 2400,99)); - if (!par3EntityPlayer.capabilities.isCreativeMode) - { - EnergyItems.syphonBatteries(par1ItemStack, par3EntityPlayer, getEnergyUsed()); - } - } - - return; - } -} \ No newline at end of file diff --git a/1.7.2/main/java/WayofTime/alchemicalWizardry/common/items/sigil/ItemSigilOfSupression.java b/1.7.2/main/java/WayofTime/alchemicalWizardry/common/items/sigil/ItemSigilOfSupression.java deleted file mode 100644 index c7c607c4..00000000 --- a/1.7.2/main/java/WayofTime/alchemicalWizardry/common/items/sigil/ItemSigilOfSupression.java +++ /dev/null @@ -1,270 +0,0 @@ -package WayofTime.alchemicalWizardry.common.items.sigil; - -import java.util.List; - -import javax.swing.Icon; - -import net.minecraft.block.Block; -import net.minecraft.client.renderer.texture.IIconRegister; -import net.minecraft.entity.Entity; -import net.minecraft.entity.player.EntityPlayer; -import net.minecraft.item.ItemStack; -import net.minecraft.nbt.NBTTagCompound; -import net.minecraft.tileentity.TileEntity; -import net.minecraft.util.IIcon; -import net.minecraft.util.Vec3; -import net.minecraft.world.World; -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 WayofTime.alchemicalWizardry.common.tileEntity.TESpectralContainer; -import cpw.mods.fml.relauncher.Side; -import cpw.mods.fml.relauncher.SideOnly; - -public class ItemSigilOfSupression extends EnergyItems implements ArmourUpgrade -{ - private static IIcon activeIcon; - private static IIcon passiveIcon; - private int tickDelay = 200; - private int radius = 5; - private int refresh = 100; - - public ItemSigilOfSupression() - { - super(); - this.maxStackSize = 1; - setEnergyUsed(400); - setCreativeTab(AlchemicalWizardry.tabBloodMagic); - } - - @Override - public void addInformation(ItemStack par1ItemStack, EntityPlayer par2EntityPlayer, List par3List, boolean par4) - { - par3List.add("Better than telekinesis"); - - if (!(par1ItemStack.stackTagCompound == null)) - { - if (par1ItemStack.stackTagCompound.getBoolean("isActive")) - { - par3List.add("Activated"); - } else - { - par3List.add("Deactivated"); - } - - par3List.add("Current owner: " + par1ItemStack.stackTagCompound.getString("ownerName")); - } - } - - @Override - @SideOnly(Side.CLIENT) - public void registerIcons(IIconRegister iconRegister) - { - this.itemIcon = iconRegister.registerIcon("AlchemicalWizardry:SigilOfSupression_deactivated"); - this.activeIcon = iconRegister.registerIcon("AlchemicalWizardry:SigilOfSupression_activated"); - this.passiveIcon = iconRegister.registerIcon("AlchemicalWizardry:SigilOfSupression_deactivated"); - } - - @Override - public IIcon getIcon(ItemStack stack, int renderPass, EntityPlayer player, ItemStack usingItem, int useRemaining) - { - if (stack.stackTagCompound == null) - { - stack.setTagCompound(new NBTTagCompound()); - } - - NBTTagCompound tag = stack.stackTagCompound; - - if (tag.getBoolean("isActive")) - { - return this.activeIcon; - } else - { - return this.passiveIcon; - } - } - - @Override - @SideOnly(Side.CLIENT) - public IIcon getIconFromDamage(int par1) - { - if (par1 == 1) - { - return this.activeIcon; - } else - { - return this.passiveIcon; - } - } - - @Override - public ItemStack onItemRightClick(ItemStack par1ItemStack, World par2World, EntityPlayer par3EntityPlayer) - { - EnergyItems.checkAndSetItemOwner(par1ItemStack, par3EntityPlayer); - - if(SpellHelper.isFakePlayer(par2World, par3EntityPlayer)) - { - return par1ItemStack; - } - - if (par3EntityPlayer.isSneaking()) - { - return par1ItemStack; - } - - if (par1ItemStack.stackTagCompound == null) - { - par1ItemStack.setTagCompound(new NBTTagCompound()); - } - - NBTTagCompound tag = par1ItemStack.stackTagCompound; - tag.setBoolean("isActive", !(tag.getBoolean("isActive"))); - - if (tag.getBoolean("isActive")) - { - par1ItemStack.setItemDamage(1); - tag.setInteger("worldTimeDelay", (int) (par2World.getWorldTime() - 1) % tickDelay); - - if (!par3EntityPlayer.capabilities.isCreativeMode) - { - EnergyItems.syphonBatteries(par1ItemStack, par3EntityPlayer, getEnergyUsed()); - } - } else - { - par1ItemStack.setItemDamage(par1ItemStack.getMaxDamage()); - } - - return par1ItemStack; - } - - @Override - public void onUpdate(ItemStack par1ItemStack, World par2World, Entity par3Entity, int par4, boolean par5) - { - if (!(par3Entity instanceof EntityPlayer)) - { - return; - } - - if(SpellHelper.isFakePlayer(par2World, (EntityPlayer)par3Entity)) - { - return; - } - - EntityPlayer par3EntityPlayer = (EntityPlayer) par3Entity; - - if (par1ItemStack.stackTagCompound == null) - { - par1ItemStack.setTagCompound(new NBTTagCompound()); - } - - if (par1ItemStack.stackTagCompound.getBoolean("isActive")&&(!par2World.isRemote)) - { - Vec3 blockVec = SpellHelper.getEntityBlockVector(par3EntityPlayer); - int x = (int)blockVec.xCoord; - int y = (int)blockVec.yCoord; - int z = (int)blockVec.zCoord; - - 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; - } - - Block block = par2World.getBlock(x+i, y+j, z+k); - - - if(SpellHelper.isBlockFluid(block)) - { - if(par2World.getTileEntity(x+i, y+j, z+k)!=null) - { - par2World.setBlockToAir(x+i, y+j, z+k); - } - TESpectralContainer.createSpectralBlockAtLocation(par2World, x+i, y+j, z+k, refresh); - } - else - { - TileEntity tile = par2World.getTileEntity(x+i, y+j, z+k); - if(tile instanceof TESpectralContainer) - { - ((TESpectralContainer) tile).resetDuration(refresh); - } - } - } - } - } - } - - if (par2World.getWorldTime() % 200 == par1ItemStack.stackTagCompound.getInteger("worldTimeDelay") && par1ItemStack.stackTagCompound.getBoolean("isActive")) - { - //par3EntityPlayer.addPotionEffect(new PotionEffect(Potion.field_76444_x.id, 2400,99)); - if (!par3EntityPlayer.capabilities.isCreativeMode) - { - EnergyItems.syphonBatteries(par1ItemStack, par3EntityPlayer, getEnergyUsed()); - - } - } - - return; - } - - @Override - public void onArmourUpdate(World world, EntityPlayer player, ItemStack thisItemStack) - { - Vec3 blockVec = SpellHelper.getEntityBlockVector(player); - int x = (int)blockVec.xCoord; - int y = (int)blockVec.yCoord; - int z = (int)blockVec.zCoord; - - 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; - } - - Block block = world.getBlock(x+i, y+j, z+k); - - - if(SpellHelper.isBlockFluid(block)) - { - if(world.getTileEntity(x+i, y+j, z+k)!=null) - { - world.setBlockToAir(x+i, y+j, z+k); - } - TESpectralContainer.createSpectralBlockAtLocation(world, x+i, y+j, z+k, refresh); - } - else - { - TileEntity tile = world.getTileEntity(x+i, y+j, z+k); - if(tile instanceof TESpectralContainer) - { - ((TESpectralContainer) tile).resetDuration(refresh); - } - } - } - } - } - } - - @Override - public boolean isUpgrade() - { - return true; - } - - @Override - public int getEnergyForTenSeconds() - { - return 200; - } -} diff --git a/1.7.2/main/java/WayofTime/alchemicalWizardry/common/items/sigil/LavaSigil.java b/1.7.2/main/java/WayofTime/alchemicalWizardry/common/items/sigil/LavaSigil.java deleted file mode 100644 index 75028002..00000000 --- a/1.7.2/main/java/WayofTime/alchemicalWizardry/common/items/sigil/LavaSigil.java +++ /dev/null @@ -1,310 +0,0 @@ -package WayofTime.alchemicalWizardry.common.items.sigil; - -import java.util.List; - -import net.minecraft.block.Block; -import net.minecraft.client.renderer.texture.IIconRegister; -import net.minecraft.entity.player.EntityPlayer; -import net.minecraft.init.Blocks; -import net.minecraft.inventory.IInventory; -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; -import WayofTime.alchemicalWizardry.common.items.EnergyItems; -import cpw.mods.fml.relauncher.Side; -import cpw.mods.fml.relauncher.SideOnly; - -public class LavaSigil extends ItemBucket implements ArmourUpgrade -{ - /** - * field for checking if the bucket has been filled. - */ - private Block isFull = Blocks.lava; - private int energyUsed; - - public LavaSigil() - { - super(Blocks.lava); - this.maxStackSize = 1; - //setMaxDamage(2000); - setEnergyUsed(1000); - setCreativeTab(AlchemicalWizardry.tabBloodMagic); - } - - @Override - @SideOnly(Side.CLIENT) - public void registerIcons(IIconRegister iconRegister) - { - this.itemIcon = iconRegister.registerIcon("AlchemicalWizardry:LavaSigil"); - } - - @Override - public ItemStack getContainerItem(ItemStack itemStack) - { - ItemStack copiedStack = itemStack.copy(); - copiedStack.setItemDamage(copiedStack.getItemDamage() + getEnergyUsed()); - copiedStack.stackSize = 1; - return copiedStack; - } - - @Override - public void addInformation(ItemStack par1ItemStack, EntityPlayer par2EntityPlayer, List par3List, boolean par4) - { - par3List.add("Contact with liquid is"); - par3List.add("highly unrecommended."); - - if (!(par1ItemStack.stackTagCompound == null)) - { - par3List.add("Current owner: " + par1ItemStack.stackTagCompound.getString("ownerName")); - } - } - - /** - * Called whenever this item is equipped and the right mouse button is pressed. Args: itemStack, world, entityPlayer - */ - public ItemStack onItemRightClick(ItemStack par1ItemStack, World par2World, EntityPlayer par3EntityPlayer) - { - EnergyItems.checkAndSetItemOwner(par1ItemStack, par3EntityPlayer); - - if (par3EntityPlayer.isSneaking()) - { - return par1ItemStack; - } - - float f = 1.0F; - double d0 = par3EntityPlayer.prevPosX + (par3EntityPlayer.posX - par3EntityPlayer.prevPosX) * (double) f; - double d1 = par3EntityPlayer.prevPosY + (par3EntityPlayer.posY - par3EntityPlayer.prevPosY) * (double) f + 1.62D - (double) par3EntityPlayer.yOffset; - double d2 = par3EntityPlayer.prevPosZ + (par3EntityPlayer.posZ - par3EntityPlayer.prevPosZ) * (double) f; - - MovingObjectPosition movingobjectposition = this.getMovingObjectPositionFromPlayer(par2World, par3EntityPlayer, false); - - if (movingobjectposition == null) - { - return par1ItemStack; - } else - { - if (movingobjectposition.typeOfHit == MovingObjectPosition.MovingObjectType.BLOCK) - { - int i = movingobjectposition.blockX; - int j = movingobjectposition.blockY; - int k = movingobjectposition.blockZ; - - if (!par2World.canMineBlock(par3EntityPlayer, i, j, k)) - { - 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) - { - //Empty - } //else - { - 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 (!par3EntityPlayer.canPlayerEdit(i, j, k, movingobjectposition.sideHit, par1ItemStack)) - { - return par1ItemStack; - } - - if (this.tryPlaceContainedLiquid(par2World, d0, d1, d2, i, j, k) && !par3EntityPlayer.capabilities.isCreativeMode) - { - if (!par3EntityPlayer.capabilities.isCreativeMode) - { - if (!EnergyItems.syphonBatteries(par1ItemStack, par3EntityPlayer, getEnergyUsed())) - { - } - } else - { - return par1ItemStack; - } - } - } - } - - return par1ItemStack; - } - } - - /** - * Attempts to place the liquid contained inside the bucket. - */ - public boolean tryPlaceContainedLiquid(World par1World, double par2, double par4, double par6, int par8, int par9, int par10) - { - //if (this.isFull <= 0) - { - //return false; - } if (!par1World.isAirBlock(par8, par9, par10) && par1World.getBlock(par8, par9, par10).getMaterial().isSolid()) - { - return false; - } else if ((par1World.getBlock(par8, par9, par10) == Blocks.lava || par1World.getBlock(par8, par9, par10) == Blocks.flowing_lava) && par1World.getBlockMetadata(par8, par9, par10) == 0) - { - return false; - } else - { - par1World.setBlock(par8, par9, par10, this.isFull, 0, 3); - return true; - } - } - - protected void setEnergyUsed(int par1int) - { - this.energyUsed = par1int; - } - - protected int getEnergyUsed() - { - return this.energyUsed; - } - //Heals the player using the item. If the player is at full health, or if the durability cannot be used any more, - //the item is not used. - - // 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 void onArmourUpdate(World world, EntityPlayer player, - ItemStack thisItemStack) - { - // TODO Auto-generated method stub - player.addPotionEffect(new PotionEffect(Potion.fireResistance.id, 2, 9,true)); - player.extinguish(); - } - - @Override - public boolean isUpgrade() - { - // TODO Auto-generated method stub - return true; - } - - @Override - public int getEnergyForTenSeconds() - { - // TODO Auto-generated method stub - return 100; - } -} diff --git a/1.7.2/main/java/WayofTime/alchemicalWizardry/common/items/sigil/SigilOfElementalAffinity.java b/1.7.2/main/java/WayofTime/alchemicalWizardry/common/items/sigil/SigilOfElementalAffinity.java deleted file mode 100644 index daa017a1..00000000 --- a/1.7.2/main/java/WayofTime/alchemicalWizardry/common/items/sigil/SigilOfElementalAffinity.java +++ /dev/null @@ -1,171 +0,0 @@ -package WayofTime.alchemicalWizardry.common.items.sigil; - -import java.util.List; - -import net.minecraft.client.renderer.texture.IIconRegister; -import net.minecraft.entity.Entity; -import net.minecraft.entity.player.EntityPlayer; -import net.minecraft.item.ItemStack; -import net.minecraft.nbt.NBTTagCompound; -import net.minecraft.potion.Potion; -import net.minecraft.potion.PotionEffect; -import net.minecraft.util.IIcon; -import net.minecraft.world.World; -import WayofTime.alchemicalWizardry.AlchemicalWizardry; -import WayofTime.alchemicalWizardry.common.items.EnergyItems; -import cpw.mods.fml.relauncher.Side; -import cpw.mods.fml.relauncher.SideOnly; - -public class SigilOfElementalAffinity extends EnergyItems -{ - @SideOnly(Side.CLIENT) - private static IIcon activeIcon; - @SideOnly(Side.CLIENT) - private static IIcon passiveIcon; - - public SigilOfElementalAffinity() - { - super(); - this.maxStackSize = 1; - setEnergyUsed(200); - setCreativeTab(AlchemicalWizardry.tabBloodMagic); - } - - @Override - public void addInformation(ItemStack par1ItemStack, EntityPlayer par2EntityPlayer, List par3List, boolean par4) - { - par3List.add("Perfect for a fire-breathing fish"); - par3List.add("who is afraid of heights!"); - - if (!(par1ItemStack.stackTagCompound == null)) - { - if (par1ItemStack.stackTagCompound.getBoolean("isActive")) - { - par3List.add("Activated"); - } else - { - par3List.add("Deactivated"); - } - - par3List.add("Current owner: " + par1ItemStack.stackTagCompound.getString("ownerName")); - } - } - - @Override - @SideOnly(Side.CLIENT) - public void registerIcons(IIconRegister iconRegister) - { - this.itemIcon = iconRegister.registerIcon("AlchemicalWizardry:SigilOfTheFastMiner"); - this.activeIcon = iconRegister.registerIcon("AlchemicalWizardry:ElementalSigil_activated"); - this.passiveIcon = iconRegister.registerIcon("AlchemicalWizardry:ElementalSigil_deactivated"); - } - - @Override - public IIcon getIcon(ItemStack stack, int renderPass, EntityPlayer player, ItemStack usingItem, int useRemaining) - { - if (stack.stackTagCompound == null) - { - stack.setTagCompound(new NBTTagCompound()); - } - - NBTTagCompound tag = stack.stackTagCompound; - - if (tag.getBoolean("isActive")) - { - return this.activeIcon; - } else - { - return this.passiveIcon; - } - } - - @Override - @SideOnly(Side.CLIENT) - public IIcon getIconFromDamage(int par1) - { - if (par1 == 1) - { - return this.activeIcon; - } else - { - return this.passiveIcon; - } - } - - @Override - public ItemStack onItemRightClick(ItemStack par1ItemStack, World par2World, EntityPlayer par3EntityPlayer) - { - EnergyItems.checkAndSetItemOwner(par1ItemStack, par3EntityPlayer); - - if (par3EntityPlayer.isSneaking()) - { - return par1ItemStack; - } - - if (par1ItemStack.stackTagCompound == null) - { - par1ItemStack.setTagCompound(new NBTTagCompound()); - } - - NBTTagCompound tag = par1ItemStack.stackTagCompound; - tag.setBoolean("isActive", !(tag.getBoolean("isActive"))); - - if (tag.getBoolean("isActive")) - { - par1ItemStack.setItemDamage(1); - tag.setInteger("worldTimeDelay", (int) (par2World.getWorldTime() - 1) % 200); - par3EntityPlayer.addPotionEffect(new PotionEffect(Potion.waterBreathing.id, 2, 0, true)); - par3EntityPlayer.addPotionEffect(new PotionEffect(Potion.fireResistance.id, 2, 0, true)); - - //Test with added health boost - //par3EntityPlayer.addPotionEffect(new PotionEffect(Potion.field_76444_x.id, 2400,99)); - if (!par3EntityPlayer.capabilities.isCreativeMode) - { - if (!EnergyItems.syphonBatteries(par1ItemStack, par3EntityPlayer, getEnergyUsed())) - { - } - } - } else - { - par1ItemStack.setItemDamage(par1ItemStack.getMaxDamage()); - } - - return par1ItemStack; - } - - @Override - public void onUpdate(ItemStack par1ItemStack, World par2World, Entity par3Entity, int par4, boolean par5) - { - if (!(par3Entity instanceof EntityPlayer)) - { - return; - } - - EntityPlayer par3EntityPlayer = (EntityPlayer) par3Entity; - - if (par1ItemStack.stackTagCompound == null) - { - par1ItemStack.setTagCompound(new NBTTagCompound()); - } - - if (par1ItemStack.stackTagCompound.getBoolean("isActive")) - { - par3EntityPlayer.fallDistance = 0; - par3EntityPlayer.addPotionEffect(new PotionEffect(Potion.waterBreathing.id, 2, 0, true)); - par3EntityPlayer.addPotionEffect(new PotionEffect(Potion.fireResistance.id, 2, 0, true)); - } - - if (par2World.getWorldTime() % 200 == par1ItemStack.stackTagCompound.getInteger("worldTimeDelay") && par1ItemStack.stackTagCompound.getBoolean("isActive")) - { - //par3EntityPlayer.addPotionEffect(new PotionEffect(Potion.field_76444_x.id, 2400,99)); - if (!par3EntityPlayer.capabilities.isCreativeMode) - { - if (!EnergyItems.syphonBatteries(par1ItemStack, par3EntityPlayer, getEnergyUsed())) - { - } - } - } - - return; - } -} \ No newline at end of file diff --git a/1.7.2/main/java/WayofTime/alchemicalWizardry/common/items/sigil/SigilOfGrowth.java b/1.7.2/main/java/WayofTime/alchemicalWizardry/common/items/sigil/SigilOfGrowth.java deleted file mode 100644 index 710b3315..00000000 --- a/1.7.2/main/java/WayofTime/alchemicalWizardry/common/items/sigil/SigilOfGrowth.java +++ /dev/null @@ -1,302 +0,0 @@ -package WayofTime.alchemicalWizardry.common.items.sigil; - -import java.util.List; - -import net.minecraft.block.Block; -import net.minecraft.block.BlockCocoa; -import net.minecraft.block.BlockCrops; -import net.minecraft.block.BlockDirectional; -import net.minecraft.block.BlockMushroom; -import net.minecraft.block.BlockSapling; -import net.minecraft.block.BlockStem; -import net.minecraft.block.IGrowable; -import net.minecraft.client.renderer.texture.IIconRegister; -import net.minecraft.entity.Entity; -import net.minecraft.entity.player.EntityPlayer; -import net.minecraft.init.Blocks; -import net.minecraft.item.ItemStack; -import net.minecraft.nbt.NBTTagCompound; -import net.minecraft.util.IIcon; -import net.minecraft.world.World; -import net.minecraftforge.common.ForgeHooks; -import net.minecraftforge.common.IPlantable; -import net.minecraftforge.common.MinecraftForge; -import net.minecraftforge.event.entity.player.BonemealEvent; -import WayofTime.alchemicalWizardry.AlchemicalWizardry; -import WayofTime.alchemicalWizardry.api.items.interfaces.ArmourUpgrade; -import WayofTime.alchemicalWizardry.common.items.EnergyItems; -import cpw.mods.fml.common.eventhandler.Event.Result; -import cpw.mods.fml.relauncher.Side; -import cpw.mods.fml.relauncher.SideOnly; - -public class SigilOfGrowth extends EnergyItems implements ArmourUpgrade -{ - private static IIcon activeIcon; - private static IIcon passiveIcon; - private int tickDelay = 100; - - public SigilOfGrowth() - { - super(); - this.maxStackSize = 1; - //setMaxDamage(1000); - setEnergyUsed(150); - setCreativeTab(AlchemicalWizardry.tabBloodMagic); - // TODO Auto-generated constructor stub - } - - @Override - public void addInformation(ItemStack par1ItemStack, EntityPlayer par2EntityPlayer, List par3List, boolean par4) - { - par3List.add("Who needs a green thumb when"); - par3List.add("you have a green slate?"); - - if (!(par1ItemStack.stackTagCompound == null)) - { - if (par1ItemStack.stackTagCompound.getBoolean("isActive")) - { - par3List.add("Activated"); - } else - { - par3List.add("Deactivated"); - } - - par3List.add("Current owner: " + par1ItemStack.stackTagCompound.getString("ownerName")); - } - } - - @Override - @SideOnly(Side.CLIENT) - public void registerIcons(IIconRegister iconRegister) - { - this.itemIcon = iconRegister.registerIcon("AlchemicalWizardry:GrowthSigil_deactivated"); - this.activeIcon = iconRegister.registerIcon("AlchemicalWizardry:GrowthSigil_activated"); - this.passiveIcon = iconRegister.registerIcon("AlchemicalWizardry:GrowthSigil_deactivated"); - } - - @Override - public IIcon getIcon(ItemStack stack, int renderPass, EntityPlayer player, ItemStack usingItem, int useRemaining) - { - if (stack.stackTagCompound == null) - { - stack.setTagCompound(new NBTTagCompound()); - } - - NBTTagCompound tag = stack.stackTagCompound; - - if (tag.getBoolean("isActive")) - { - return this.activeIcon; - } else - { - return this.passiveIcon; - } - } - - @Override - @SideOnly(Side.CLIENT) - public IIcon getIconFromDamage(int par1) - { - if (par1 == 1) - { - return this.activeIcon; - } else - { - return this.passiveIcon; - } - } - - @Override - public boolean onItemUse(ItemStack par1ItemStack, EntityPlayer par2EntityPlayer, World par3World, int par4, int par5, int par6, int par7, float par8, float par9, float par10) - { - EnergyItems.checkAndSetItemOwner(par1ItemStack, par2EntityPlayer); - - if (applyBonemeal(par1ItemStack, par3World, par4, par5, par6, par2EntityPlayer)) - { - EnergyItems.syphonBatteries(par1ItemStack, par2EntityPlayer, getEnergyUsed()); - - if (par3World.isRemote) - { - par3World.playAuxSFX(2005, par4, par5, par6, 0); - return true; - } - - return true; - } - - return false; - } - - @Override - public ItemStack onItemRightClick(ItemStack par1ItemStack, World par2World, EntityPlayer par3EntityPlayer) - { - EnergyItems.checkAndSetItemOwner(par1ItemStack, par3EntityPlayer); - - if (par3EntityPlayer.isSneaking()) - { - return par1ItemStack; - } - - if (par1ItemStack.stackTagCompound == null) - { - par1ItemStack.setTagCompound(new NBTTagCompound()); - } - - NBTTagCompound tag = par1ItemStack.stackTagCompound; - tag.setBoolean("isActive", !(tag.getBoolean("isActive"))); - - if (tag.getBoolean("isActive")) - { - par1ItemStack.setItemDamage(1); - tag.setInteger("worldTimeDelay", (int) (par2World.getWorldTime() - 1) % tickDelay); - - if (!par3EntityPlayer.capabilities.isCreativeMode) - { - EnergyItems.syphonBatteries(par1ItemStack, par3EntityPlayer, getEnergyUsed()); - } - } else - { - par1ItemStack.setItemDamage(par1ItemStack.getMaxDamage()); - } - - return par1ItemStack; - } - - @Override - public void onUpdate(ItemStack par1ItemStack, World par2World, Entity par3Entity, int par4, boolean par5) - { - if (!(par3Entity instanceof EntityPlayer)) - { - return; - } - - EntityPlayer par3EntityPlayer = (EntityPlayer) par3Entity; - - if (par1ItemStack.stackTagCompound == null) - { - par1ItemStack.setTagCompound(new NBTTagCompound()); - } - - if (par1ItemStack.stackTagCompound.getBoolean("isActive")) - { - if (par2World.getWorldTime() % tickDelay == par1ItemStack.stackTagCompound.getInteger("worldTimeDelay") && par3Entity instanceof EntityPlayer) - { - EnergyItems.syphonBatteries(par1ItemStack, (EntityPlayer) par3Entity, getEnergyUsed()); - } - - int range = 5; - int verticalRange = 2; - int posX = (int) Math.round(par3Entity.posX - 0.5f); - int posY = (int) par3Entity.posY; - int posZ = (int) Math.round(par3Entity.posZ - 0.5f); - - for (int ix = posX - range; ix <= posX + range; ix++) - { - for (int iz = posZ - range; iz <= posZ + range; iz++) - { - for (int iy = posY - verticalRange; iy <= posY + verticalRange; iy++) - { - Block block = par2World.getBlock(ix, iy, iz); - - - if (block instanceof IPlantable) - { - if (par2World.rand.nextInt(20) == 0) - { - block.updateTick(par2World, ix, iy, iz, par2World.rand); - } - } - } - } - } - } - - return; - } - - public static boolean applyBonemeal(ItemStack p_150919_0_, World p_150919_1_, int p_150919_2_, int p_150919_3_, int p_150919_4_, EntityPlayer player) - { - Block block = p_150919_1_.getBlock(p_150919_2_, p_150919_3_, p_150919_4_); - - BonemealEvent event = new BonemealEvent(player, p_150919_1_, block, p_150919_2_, p_150919_3_, p_150919_4_); - if (MinecraftForge.EVENT_BUS.post(event)) - { - return false; - } - - if (event.getResult() == Result.ALLOW) - { - if (!p_150919_1_.isRemote) - { - - } - return true; - } - - if (block instanceof IGrowable) - { - IGrowable igrowable = (IGrowable)block; - - if (igrowable.func_149851_a(p_150919_1_, p_150919_2_, p_150919_3_, p_150919_4_, p_150919_1_.isRemote)) - { - if (!p_150919_1_.isRemote) - { - if (igrowable.func_149852_a(p_150919_1_, p_150919_1_.rand, p_150919_2_, p_150919_3_, p_150919_4_)) - { - igrowable.func_149853_b(p_150919_1_, p_150919_1_.rand, p_150919_2_, p_150919_3_, p_150919_4_); - } - - - } - - return true; - } - } - - return false; - } - - @Override - public void onArmourUpdate(World world, EntityPlayer player, ItemStack thisItemStack) - { - int range = 5; - int verticalRange = 2; - int posX = (int) Math.round(player.posX - 0.5f); - int posY = (int) player.posY; - int posZ = (int) Math.round(player.posZ - 0.5f); - - for (int ix = posX - range; ix <= posX + range; ix++) - { - for (int iz = posZ - range; iz <= posZ + range; iz++) - { - for (int iy = posY - verticalRange; iy <= posY + verticalRange; iy++) - { - Block block = world.getBlock(ix, iy, iz); - - - if (block instanceof IPlantable) - { - if (world.rand.nextInt(10) == 0) - { - block.updateTick(world, ix, iy, iz, world.rand); - } - } - } - } - } - } - - @Override - public boolean isUpgrade() - { - // TODO Auto-generated method stub - return true; - } - - @Override - public int getEnergyForTenSeconds() - { - // TODO Auto-generated method stub - return 50; - } -} diff --git a/1.7.2/main/java/WayofTime/alchemicalWizardry/common/items/sigil/SigilOfHaste.java b/1.7.2/main/java/WayofTime/alchemicalWizardry/common/items/sigil/SigilOfHaste.java deleted file mode 100644 index 2aecbf25..00000000 --- a/1.7.2/main/java/WayofTime/alchemicalWizardry/common/items/sigil/SigilOfHaste.java +++ /dev/null @@ -1,198 +0,0 @@ -package WayofTime.alchemicalWizardry.common.items.sigil; - -import java.util.List; - -import javax.swing.Icon; - -import net.minecraft.client.renderer.texture.IIconRegister; -import net.minecraft.entity.Entity; -import net.minecraft.entity.player.EntityPlayer; -import net.minecraft.item.ItemStack; -import net.minecraft.nbt.NBTTagCompound; -import net.minecraft.potion.PotionEffect; -import net.minecraft.util.IIcon; -import net.minecraft.world.World; -import WayofTime.alchemicalWizardry.AlchemicalWizardry; -import WayofTime.alchemicalWizardry.api.items.interfaces.ArmourUpgrade; -import WayofTime.alchemicalWizardry.common.items.EnergyItems; -import cpw.mods.fml.relauncher.Side; -import cpw.mods.fml.relauncher.SideOnly; - -public class SigilOfHaste extends EnergyItems implements ArmourUpgrade -{ - @SideOnly(Side.CLIENT) - private static IIcon activeIcon; - @SideOnly(Side.CLIENT) - private static IIcon passiveIcon; - - public SigilOfHaste() - { - super(); - this.maxStackSize = 1; - //setMaxDamage(100); - setEnergyUsed(250); - setCreativeTab(AlchemicalWizardry.tabBloodMagic); - } - - @Override - public void addInformation(ItemStack par1ItemStack, EntityPlayer par2EntityPlayer, List par3List, boolean par4) - { - par3List.add("One dose of caffeine later..."); - - if (!(par1ItemStack.stackTagCompound == null)) - { - if (par1ItemStack.stackTagCompound.getBoolean("isActive")) - { - par3List.add("Activated"); - } else - { - par3List.add("Deactivated"); - } - - par3List.add("Current owner: " + par1ItemStack.stackTagCompound.getString("ownerName")); - } - } - - @Override - @SideOnly(Side.CLIENT) - public void registerIcons(IIconRegister iconRegister) - { - this.itemIcon = iconRegister.registerIcon("AlchemicalWizardry:HasteSigil_deactivated"); - this.activeIcon = iconRegister.registerIcon("AlchemicalWizardry:HasteSigil_activated"); - this.passiveIcon = iconRegister.registerIcon("AlchemicalWizardry:HasteSigil_deactivated"); - } - - @Override - public IIcon getIcon(ItemStack stack, int renderPass, EntityPlayer player, ItemStack usingItem, int useRemaining) - { - if (stack.stackTagCompound == null) - { - stack.setTagCompound(new NBTTagCompound()); - } - - NBTTagCompound tag = stack.stackTagCompound; - - if (tag.getBoolean("isActive")) - { - return this.activeIcon; - } else - { - return this.passiveIcon; - } - } - - @Override - @SideOnly(Side.CLIENT) - public IIcon getIconFromDamage(int par1) - { - if (par1 == 1) - { - return this.activeIcon; - } else - { - return this.passiveIcon; - } - } - - @Override - public ItemStack onItemRightClick(ItemStack par1ItemStack, World par2World, EntityPlayer par3EntityPlayer) - { - EnergyItems.checkAndSetItemOwner(par1ItemStack, par3EntityPlayer); - - if (par3EntityPlayer.isSneaking()) - { - return par1ItemStack; - } - - if (par1ItemStack.stackTagCompound == null) - { - par1ItemStack.setTagCompound(new NBTTagCompound()); - } - - NBTTagCompound tag = par1ItemStack.stackTagCompound; - tag.setBoolean("isActive", !(tag.getBoolean("isActive"))); - - if (tag.getBoolean("isActive")) - { - par1ItemStack.setItemDamage(1); - tag.setInteger("worldTimeDelay", (int) (par2World.getWorldTime() - 1) % 200); - par3EntityPlayer.addPotionEffect(new PotionEffect(AlchemicalWizardry.customPotionBoost.id, 3, 1)); - //par3EntityPlayer.addPotionEffect(new PotionEffect(AlchemicalWizardry.customPotionProjProt.id, 2, 2)); - - //Test with added health boost - //par3EntityPlayer.addPotionEffect(new PotionEffect(Potion.field_76444_x.id, 2400,99)); - if (!par3EntityPlayer.capabilities.isCreativeMode) - { - if (!EnergyItems.syphonBatteries(par1ItemStack, par3EntityPlayer, getEnergyUsed())) - { - } - } - } else - { - par1ItemStack.setItemDamage(par1ItemStack.getMaxDamage()); - } - - return par1ItemStack; - } - - @Override - public void onUpdate(ItemStack par1ItemStack, World par2World, Entity par3Entity, int par4, boolean par5) - { - if (!(par3Entity instanceof EntityPlayer)) - { - return; - } - - EntityPlayer par3EntityPlayer = (EntityPlayer) par3Entity; - - if (par1ItemStack.stackTagCompound == null) - { - par1ItemStack.setTagCompound(new NBTTagCompound()); - } - - if (par1ItemStack.stackTagCompound.getBoolean("isActive")) - { - par3EntityPlayer.addPotionEffect(new PotionEffect(AlchemicalWizardry.customPotionBoost.id, 3, 1)); - } - - if (par2World.getWorldTime() % 200 == par1ItemStack.stackTagCompound.getInteger("worldTimeDelay") && par1ItemStack.stackTagCompound.getBoolean("isActive")) - { - //par3EntityPlayer.addPotionEffect(new PotionEffect(AlchemicalWizardry.customPotionBoost.id, 205, 1)); - - //par3EntityPlayer.addPotionEffect(new PotionEffect(AlchemicalWizardry.customPotionProjProt.id, 205, 2)); - if (!par3EntityPlayer.capabilities.isCreativeMode) - { - if (!EnergyItems.syphonBatteries(par1ItemStack, par3EntityPlayer, getEnergyUsed())) - { - } - } - } - - return; - } - - @Override - public void onArmourUpdate(World world, EntityPlayer player, ItemStack itemStack) - { - if (itemStack.stackTagCompound == null) - { - itemStack.setTagCompound(new NBTTagCompound()); - } - - player.addPotionEffect(new PotionEffect(AlchemicalWizardry.customPotionBoost.id, 3, 1,true)); - } - - @Override - public boolean isUpgrade() - { - // TODO Auto-generated method stub - return true; - } - - @Override - public int getEnergyForTenSeconds() - { - // TODO Auto-generated method stub - return 150; - } -} \ No newline at end of file diff --git a/1.7.2/main/java/WayofTime/alchemicalWizardry/common/items/sigil/SigilOfHolding.java b/1.7.2/main/java/WayofTime/alchemicalWizardry/common/items/sigil/SigilOfHolding.java deleted file mode 100644 index 03b1f730..00000000 --- a/1.7.2/main/java/WayofTime/alchemicalWizardry/common/items/sigil/SigilOfHolding.java +++ /dev/null @@ -1,371 +0,0 @@ -package WayofTime.alchemicalWizardry.common.items.sigil; - -import java.util.ArrayList; -import java.util.List; - -import net.minecraft.client.renderer.texture.IIconRegister; -import net.minecraft.entity.Entity; -import net.minecraft.entity.player.EntityPlayer; -import net.minecraft.item.Item; -import net.minecraft.item.ItemStack; -import net.minecraft.nbt.NBTTagCompound; -import net.minecraft.nbt.NBTTagList; -import net.minecraft.util.IIcon; -import net.minecraft.world.World; -import net.minecraftforge.common.util.Constants; -import WayofTime.alchemicalWizardry.AlchemicalWizardry; -import WayofTime.alchemicalWizardry.ModItems; -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 SigilOfHolding extends EnergyItems -{ - private int invSize = 4; - - public static List allowedSigils = new ArrayList(); - - public SigilOfHolding() - { - super(); - this.maxStackSize = 1; - //setEnergyUsed(100); - setCreativeTab(AlchemicalWizardry.tabBloodMagic); - } - - @Override - @SideOnly(Side.CLIENT) - public void registerIcons(IIconRegister iconRegister) - { - this.itemIcon = iconRegister.registerIcon("AlchemicalWizardry:SigilOfHolding"); - } - - @Override - public IIcon getIcon(ItemStack stack, int renderPass, EntityPlayer player, ItemStack usingItem, int useRemaining) - { - if (!(stack.stackTagCompound == null)) - { - ItemStack[] inv = getInternalInventory(stack); - - if (inv == null) - { - return this.itemIcon; - } - - ItemStack item = inv[stack.stackTagCompound.getInteger("selectedSlot")]; - - if (item != null) - { - return item.getIconIndex(); - } - } - - return this.itemIcon; - } - - @Override - public void addInformation(ItemStack par1ItemStack, EntityPlayer par2EntityPlayer, List par3List, boolean par4) - { - par3List.add("Used to hold several Sigils!"); - - if (!(par1ItemStack.stackTagCompound == null)) - { - par3List.add("Current owner: " + par1ItemStack.stackTagCompound.getString("ownerName")); -// par3List.add("Current slot: " + par1ItemStack.stackTagCompound.getInteger("selectedSlot")); - ItemStack[] inv = getInternalInventory(par1ItemStack); - - if (inv == null) - { - return; - } - - ItemStack item = inv[par1ItemStack.stackTagCompound.getInteger("selectedSlot")]; - - if (item != null) - { - par3List.add("Current item: " + item.getDisplayName()); - } - - for (int i = 0; i < invSize; i++) - { - if (inv[i] != null) - { - par3List.add("Item in slot " + i + ": " + inv[i].getDisplayName()); - } - } - } - } - - @Override - public ItemStack onItemRightClick(ItemStack par1ItemStack, World par2World, EntityPlayer par3EntityPlayer) - { - //TODO Might be a good idea to have this item need to be in the player's first slot - //for it to search and consume sigils on right click. Might avoid confusion? At least - //will avoid the need to add a button just for it... - this.checkAndSetItemOwner(par1ItemStack, par3EntityPlayer); - - if (par3EntityPlayer.isSneaking()) - { - if (this.addSigilToInventory(par1ItemStack, par3EntityPlayer)) - { - return par1ItemStack; - } - - selectNextSlot(par1ItemStack); - return par1ItemStack; - } - - int currentSlot = this.getSelectedSlot(par1ItemStack); - ItemStack[] inv = getInternalInventory(par1ItemStack); - - if (inv == null) - { - return par1ItemStack; - } - - ItemStack itemUsed = inv[currentSlot]; - - if (itemUsed == null) - { - return par1ItemStack; - } - - itemUsed.getItem().onItemRightClick(itemUsed, par2World, par3EntityPlayer); - saveInternalInventory(par1ItemStack, inv); - return par1ItemStack; - } - - @Override - public void onUpdate(ItemStack par1ItemStack, World par2World, Entity par3Entity, int par4, boolean par5) - { - if (!(par1ItemStack.stackTagCompound == null)) - { - this.tickInternalInventory(par1ItemStack, par2World, par3Entity, par4, par5); - } - } - - public ItemStack[] getInternalInventory(ItemStack itemStack) - { - NBTTagCompound itemTag = itemStack.stackTagCompound; - - if (itemTag == null) - { - itemStack.setTagCompound(new NBTTagCompound()); - return null; - } - - ItemStack[] inv = new ItemStack[9]; - NBTTagList tagList = itemTag.getTagList("Inventory", Constants.NBT.TAG_COMPOUND); - - if (tagList == null) - { - return null; - } - - for (int i = 0; i < tagList.tagCount(); i++) - { - NBTTagCompound tag = (NBTTagCompound) tagList.getCompoundTagAt(i); - int slot = tag.getByte("Slot"); - - if (slot >= 0 && slot < invSize) - { - inv[slot] = ItemStack.loadItemStackFromNBT(tag); - } - } - - return inv; - } - - public void saveInternalInventory(ItemStack itemStack, ItemStack[] inventory) - { - NBTTagCompound itemTag = itemStack.stackTagCompound; - - if (itemTag == null) - { - itemStack.setTagCompound(new NBTTagCompound()); - } - - NBTTagList itemList = new NBTTagList(); - - for (int i = 0; i < invSize; i++) - { - ItemStack stack = inventory[i]; - - if (inventory[i] != null) - { - NBTTagCompound tag = new NBTTagCompound(); - tag.setByte("Slot", (byte) i); - inventory[i].writeToNBT(tag); - itemList.appendTag(tag); - } - } - - itemTag.setTag("Inventory", itemList); - } - - public void tickInternalInventory(ItemStack par1ItemStack, World par2World, Entity par3Entity, int par4, boolean par5) - { - ItemStack[] inv = getInternalInventory(par1ItemStack); - - if (inv == null) - { - return; - } - - for (int i = 0; i < invSize; i++) - { - if (inv[i] == null) - { - continue; - } - - inv[i].getItem().onUpdate(inv[i], par2World, par3Entity, par4, par5); - } - } - - public int getSelectedSlot(ItemStack itemStack) - { - NBTTagCompound itemTag = itemStack.stackTagCompound; - - if (itemTag == null) - { - itemStack.setTagCompound(new NBTTagCompound()); - } - - return itemTag.getInteger("selectedSlot"); - } - - public void selectNextSlot(ItemStack itemStack) - { - ItemStack[] inv = getInternalInventory(itemStack); - int filledSlots = 0; - - for (int i = 0; i < invSize; i++) - { - if (inv[i] != null) - { - filledSlots++; - } else - { - break; - } - } - - NBTTagCompound itemTag = itemStack.stackTagCompound; - - if (itemTag == null) - { - itemStack.setTagCompound(new NBTTagCompound()); - } - - if (getSelectedSlot(itemStack) + 1 < filledSlots) - { - itemTag.setInteger("selectedSlot", itemTag.getInteger("selectedSlot") + 1); - } else - { - itemTag.setInteger("selectedSlot", 0); - } - } - - public boolean hasAddedToInventory(ItemStack sigilItemStack, ItemStack addedItemStack) - { - ItemStack[] inv = getInternalInventory(sigilItemStack); - - if (inv == null) - { - return false; - } - - if (addedItemStack == null) - { - return false; - } - - Item item = addedItemStack.getItem(); - int candidateSlot = -1; - - for (int i = invSize - 1; i >= 0; i--) - { - ItemStack nextItem = inv[i]; - - if (nextItem == null) - { - candidateSlot = i; - continue; - } - - if (item == nextItem.getItem()) - { - return false; - } - } - - if (candidateSlot == -1) - { - return false; - } - - if(addedItemStack.getItem() instanceof IHolding) - { - inv[candidateSlot] = addedItemStack; - saveInternalInventory(sigilItemStack, inv); - return true; - } - - for (ItemStack i : allowedSigils) - { - if (i != null && i.getItem() == item) - { - inv[candidateSlot] = addedItemStack; - saveInternalInventory(sigilItemStack, inv); - return true; - } - } - - return false; - } - - public boolean addSigilToInventory(ItemStack sigilItemStack, EntityPlayer player) - { - ItemStack[] playerInventory = player.inventory.mainInventory; - - for (int i = 0; i < 36; i++) - { - if (this.hasAddedToInventory(sigilItemStack, playerInventory[i])) - { - player.inventory.consumeInventoryItem(playerInventory[i].getItem()); - //playerInventory[i].stackSize--; - return true; - } - } - - return false; - } - - public static void initiateSigilOfHolding() - { - allowedSigils.add(new ItemStack(ModItems.waterSigil)); - allowedSigils.add(new ItemStack(ModItems.lavaSigil)); - allowedSigils.add(new ItemStack(ModItems.voidSigil)); - allowedSigils.add(new ItemStack(ModItems.airSigil)); - allowedSigils.add(new ItemStack(ModItems.sigilOfTheFastMiner)); - allowedSigils.add(new ItemStack(ModItems.divinationSigil)); - allowedSigils.add(new ItemStack(ModItems.sigilOfElementalAffinity)); - allowedSigils.add(new ItemStack(ModItems.growthSigil)); - allowedSigils.add(new ItemStack(ModItems.sigilOfHaste)); - allowedSigils.add(new ItemStack(ModItems.sigilOfWind)); - } - - public ItemStack getCurrentItem(ItemStack sigilItemStack) - { - ItemStack[] items = this.getInternalInventory(sigilItemStack); - - if (items == null) - { - return null; - } - - return items[this.getSelectedSlot(sigilItemStack)]; - } -} diff --git a/1.7.2/main/java/WayofTime/alchemicalWizardry/common/items/sigil/SigilOfMagnetism.java b/1.7.2/main/java/WayofTime/alchemicalWizardry/common/items/sigil/SigilOfMagnetism.java deleted file mode 100644 index 5693d17f..00000000 --- a/1.7.2/main/java/WayofTime/alchemicalWizardry/common/items/sigil/SigilOfMagnetism.java +++ /dev/null @@ -1,222 +0,0 @@ -package WayofTime.alchemicalWizardry.common.items.sigil; - -import java.util.List; - -import net.minecraft.client.renderer.texture.IIconRegister; -import net.minecraft.entity.Entity; -import net.minecraft.entity.item.EntityItem; -import net.minecraft.entity.player.EntityPlayer; -import net.minecraft.item.ItemStack; -import net.minecraft.nbt.NBTTagCompound; -import net.minecraft.util.AxisAlignedBB; -import net.minecraft.util.IIcon; -import net.minecraft.world.World; -import WayofTime.alchemicalWizardry.AlchemicalWizardry; -import WayofTime.alchemicalWizardry.api.items.interfaces.ArmourUpgrade; -import WayofTime.alchemicalWizardry.common.items.EnergyItems; -import cpw.mods.fml.relauncher.Side; -import cpw.mods.fml.relauncher.SideOnly; - -public class SigilOfMagnetism extends EnergyItems implements ArmourUpgrade -{ - private static IIcon activeIcon; - private static IIcon passiveIcon; - private int tickDelay = 300; - - public SigilOfMagnetism() - { - super(); - this.maxStackSize = 1; - //setMaxDamage(1000); - setEnergyUsed(50); - setCreativeTab(AlchemicalWizardry.tabBloodMagic); - // TODO Auto-generated constructor stub - } - - @Override - public void addInformation(ItemStack par1ItemStack, EntityPlayer par2EntityPlayer, List par3List, boolean par4) - { - par3List.add("I have a very magnetic personality!"); -// par3List.add("you have a green slate?"); - - if (!(par1ItemStack.stackTagCompound == null)) - { - if (par1ItemStack.stackTagCompound.getBoolean("isActive")) - { - par3List.add("Activated"); - } else - { - par3List.add("Deactivated"); - } - - par3List.add("Current owner: " + par1ItemStack.stackTagCompound.getString("ownerName")); - } - } - - @Override - @SideOnly(Side.CLIENT) - public void registerIcons(IIconRegister iconRegister) - { - this.itemIcon = iconRegister.registerIcon("AlchemicalWizardry:SigilOfMagnetism_deactivated"); - this.activeIcon = iconRegister.registerIcon("AlchemicalWizardry:SigilOfMagnetism_activated"); - this.passiveIcon = iconRegister.registerIcon("AlchemicalWizardry:SigilOfMagnetism_deactivated"); - } - - @Override - public IIcon getIcon(ItemStack stack, int renderPass, EntityPlayer player, ItemStack usingItem, int useRemaining) - { - if (stack.stackTagCompound == null) - { - stack.setTagCompound(new NBTTagCompound()); - } - - NBTTagCompound tag = stack.stackTagCompound; - - if (tag.getBoolean("isActive")) - { - return this.activeIcon; - } else - { - return this.passiveIcon; - } - } - - @Override - @SideOnly(Side.CLIENT) - public IIcon getIconFromDamage(int par1) - { - if (par1 == 1) - { - return this.activeIcon; - } else - { - return this.passiveIcon; - } - } - -// @Override -// public boolean onItemUse(ItemStack par1ItemStack, EntityPlayer par2EntityPlayer, World par3World, int par4, int par5, int par6, int par7, float par8, float par9, float par10) -// { -// EnergyItems.checkAndSetItemOwner(par1ItemStack, par2EntityPlayer); -// if(applyBonemeal(par1ItemStack,par3World,par4,par5,par6,par2EntityPlayer)) -// { -// if (par3World.isRemote) -// { -// par3World.playAuxSFX(2005, par4, par5, par6, 0); -// EnergyItems.syphonBatteries(par1ItemStack, par2EntityPlayer, getEnergyUsed()); -// return true; -// } -// return true; -// } -// return false; -// } - - @Override - public ItemStack onItemRightClick(ItemStack par1ItemStack, World par2World, EntityPlayer par3EntityPlayer) - { - EnergyItems.checkAndSetItemOwner(par1ItemStack, par3EntityPlayer); - - if (par3EntityPlayer.isSneaking()) - { - return par1ItemStack; - } - - if (par1ItemStack.stackTagCompound == null) - { - par1ItemStack.setTagCompound(new NBTTagCompound()); - } - - NBTTagCompound tag = par1ItemStack.stackTagCompound; - tag.setBoolean("isActive", !(tag.getBoolean("isActive"))); - - if (tag.getBoolean("isActive")) - { - par1ItemStack.setItemDamage(1); - tag.setInteger("worldTimeDelay", (int) (par2World.getWorldTime() - 1) % tickDelay); - - if (!par3EntityPlayer.capabilities.isCreativeMode) - { - EnergyItems.syphonBatteries(par1ItemStack, par3EntityPlayer, getEnergyUsed()); - } - } else - { - par1ItemStack.setItemDamage(par1ItemStack.getMaxDamage()); - } - - return par1ItemStack; - } - - @Override - public void onUpdate(ItemStack par1ItemStack, World par2World, Entity par3Entity, int par4, boolean par5) - { - if (!(par3Entity instanceof EntityPlayer)) - { - return; - } - - EntityPlayer par3EntityPlayer = (EntityPlayer) par3Entity; - - if (par1ItemStack.stackTagCompound == null) - { - par1ItemStack.setTagCompound(new NBTTagCompound()); - } - - if (par1ItemStack.stackTagCompound.getBoolean("isActive")) - { - if (par2World.getWorldTime() % tickDelay == par1ItemStack.stackTagCompound.getInteger("worldTimeDelay") && par3Entity instanceof EntityPlayer) - { - EnergyItems.syphonBatteries(par1ItemStack, (EntityPlayer) par3Entity, getEnergyUsed()); - } - - int range = 5; - int verticalRange = 5; - float posX = Math.round(par3Entity.posX); - float posY = (float) (par3Entity.posY - par3Entity.getEyeHeight()); - float posZ = Math.round(par3Entity.posZ); - List entities = par3EntityPlayer.worldObj.getEntitiesWithinAABB(EntityItem.class, AxisAlignedBB.getBoundingBox(posX - 0.5f, posY - 0.5f, posZ - 0.5f, posX + 0.5f, posY + 0.5f, posZ + 0.5f).expand(range, verticalRange, range)); - - for (EntityItem entity : entities) - { - if (entity != null && !par2World.isRemote) - { - entity.onCollideWithPlayer(par3EntityPlayer); - } - } - } - - return; - } - - @Override - public void onArmourUpdate(World world, EntityPlayer player, ItemStack thisItemStack) - { - int range = 5; - int verticalRange = 5; - float posX = Math.round(player.posX); - float posY = (float) (player.posY - player.getEyeHeight()); - float posZ = Math.round(player.posZ); - List entities = player.worldObj.getEntitiesWithinAABB(EntityItem.class, AxisAlignedBB.getBoundingBox(posX - 0.5f, posY - 0.5f, posZ - 0.5f, posX + 0.5f, posY + 0.5f, posZ + 0.5f).expand(range, verticalRange, range)); - - for (EntityItem entity : entities) - { - if (entity != null && !world.isRemote) - { - entity.onCollideWithPlayer(player); - } - } - } - - @Override - public boolean isUpgrade() - { - // TODO Auto-generated method stub - return true; - } - - @Override - public int getEnergyForTenSeconds() - { - // TODO Auto-generated method stub - return 25; - } -} diff --git a/1.7.2/main/java/WayofTime/alchemicalWizardry/common/items/sigil/SigilOfTheBridge.java b/1.7.2/main/java/WayofTime/alchemicalWizardry/common/items/sigil/SigilOfTheBridge.java deleted file mode 100644 index a4575728..00000000 --- a/1.7.2/main/java/WayofTime/alchemicalWizardry/common/items/sigil/SigilOfTheBridge.java +++ /dev/null @@ -1,312 +0,0 @@ -package WayofTime.alchemicalWizardry.common.items.sigil; - -import java.util.List; - -import javax.swing.Icon; - -import net.minecraft.block.Block; -import net.minecraft.client.renderer.texture.IIconRegister; -import net.minecraft.entity.Entity; -import net.minecraft.entity.player.EntityPlayer; -import net.minecraft.item.ItemStack; -import net.minecraft.nbt.NBTTagCompound; -import net.minecraft.util.IIcon; -import net.minecraft.world.World; -import WayofTime.alchemicalWizardry.AlchemicalWizardry; -import WayofTime.alchemicalWizardry.ModBlocks; -import WayofTime.alchemicalWizardry.api.items.interfaces.ArmourUpgrade; -import WayofTime.alchemicalWizardry.common.items.EnergyItems; -import cpw.mods.fml.relauncher.Side; -import cpw.mods.fml.relauncher.SideOnly; - -public class SigilOfTheBridge extends EnergyItems implements ArmourUpgrade -{ - private static IIcon activeIcon; - private static IIcon passiveIcon; - private int tickDelay = 200; - - public SigilOfTheBridge() - { - super(); - this.maxStackSize = 1; - //setMaxDamage(1000); - setEnergyUsed(100); - setCreativeTab(AlchemicalWizardry.tabBloodMagic); - // TODO Auto-generated constructor stub - } - - @Override - public void addInformation(ItemStack par1ItemStack, EntityPlayer par2EntityPlayer, List par3List, boolean par4) - { - par3List.add("Activate to create a bridge"); - par3List.add("beneath your feet."); - - if (!(par1ItemStack.stackTagCompound == null)) - { - if (par1ItemStack.stackTagCompound.getBoolean("isActive")) - { - par3List.add("Activated"); - } else - { - par3List.add("Deactivated"); - } - - par3List.add("Current owner: " + par1ItemStack.stackTagCompound.getString("ownerName")); - } - } - - @Override - @SideOnly(Side.CLIENT) - public void registerIcons(IIconRegister iconRegister) - { - this.itemIcon = iconRegister.registerIcon("AlchemicalWizardry:BridgeSigil_deactivated"); - this.activeIcon = iconRegister.registerIcon("AlchemicalWizardry:BridgeSigil_activated"); - this.passiveIcon = iconRegister.registerIcon("AlchemicalWizardry:BridgeSigil_deactivated"); - } - - @Override - public IIcon getIcon(ItemStack stack, int renderPass, EntityPlayer player, ItemStack usingItem, int useRemaining) - { - if (stack.stackTagCompound == null) - { - stack.setTagCompound(new NBTTagCompound()); - } - - NBTTagCompound tag = stack.stackTagCompound; - - if (tag.getBoolean("isActive")) - { - return this.activeIcon; - } else - { - return this.passiveIcon; - } - } - - @Override - @SideOnly(Side.CLIENT) - public IIcon getIconFromDamage(int par1) - { - if (par1 == 1) - { - return this.activeIcon; - } else - { - return this.passiveIcon; - } - } - -// @Override -// public boolean onItemUse(ItemStack par1ItemStack, EntityPlayer par2EntityPlayer, World par3World, int par4, int par5, int par6, int par7, float par8, float par9, float par10) -// { -// -// if(applyBonemeal(par1ItemStack,par3World,par4,par5,par6,par2EntityPlayer)) -// { -// if (par3World.isRemote) -// { -// par3World.playAuxSFX(2005, par4, par5, par6, 0); -// EnergyItems.syphonBatteries(par1ItemStack, par2EntityPlayer, getEnergyUsed()); -// return true; -// } -// return true; -// } -// return false; -// } - - @Override - public ItemStack onItemRightClick(ItemStack par1ItemStack, World par2World, EntityPlayer par3EntityPlayer) - { - EnergyItems.checkAndSetItemOwner(par1ItemStack, par3EntityPlayer); - - if (par3EntityPlayer.isSneaking()) - { - return par1ItemStack; - } - - if (par1ItemStack.stackTagCompound == null) - { - par1ItemStack.setTagCompound(new NBTTagCompound()); - } - - NBTTagCompound tag = par1ItemStack.stackTagCompound; - tag.setBoolean("isActive", !(tag.getBoolean("isActive"))); - - if (tag.getBoolean("isActive")) - { - par1ItemStack.setItemDamage(1); - tag.setInteger("worldTimeDelay", (int) (par2World.getWorldTime() - 1) % tickDelay); - - if (!par3EntityPlayer.capabilities.isCreativeMode) - { - EnergyItems.syphonBatteries(par1ItemStack, par3EntityPlayer, getEnergyUsed()); - } - } else - { - par1ItemStack.setItemDamage(par1ItemStack.getMaxDamage()); - } - - return par1ItemStack; - } - - @Override - public void onUpdate(ItemStack par1ItemStack, World par2World, Entity par3Entity, int par4, boolean par5) - { - if (!(par3Entity instanceof EntityPlayer)) - { - return; - } - - EntityPlayer par3EntityPlayer = (EntityPlayer) par3Entity; - - if (par1ItemStack.stackTagCompound == null) - { - par1ItemStack.setTagCompound(new NBTTagCompound()); - } - - if (par1ItemStack.stackTagCompound.getBoolean("isActive")) - { - if (par2World.getWorldTime() % tickDelay == par1ItemStack.stackTagCompound.getInteger("worldTimeDelay") && par3Entity instanceof EntityPlayer) - { - EnergyItems.syphonBatteries(par1ItemStack, (EntityPlayer) par3Entity, this.getLPUsed(par1ItemStack)); - this.setLPUsed(par1ItemStack, 0); - } - -// if(par2World.isRemote) -// { -// return; -// } - if (!par3EntityPlayer.onGround && !par3EntityPlayer.isSneaking()) - { - return; - } - - int range = 2; - int verticalOffset = -1; - - if (par3EntityPlayer.isSneaking()) - { - verticalOffset--; - } - - if (par2World.isRemote) - { - verticalOffset--; - } - - int posX = (int) Math.round(par3Entity.posX - 0.5f); - int posY = (int) par3Entity.posY; - int posZ = (int) Math.round(par3Entity.posZ - 0.5f); - int incremented = 0; - - for (int ix = posX - range; ix <= posX + range; ix++) - { - for (int iz = posZ - range; iz <= posZ + range; iz++) - { - //for(int iy=posY-verticalRange;iy<=posY+verticalRange;iy++) - { - Block block = par2World.getBlock(ix, posY + verticalOffset, iz); - - - if (par2World.isAirBlock(ix, posY + verticalOffset, iz)) - { - par2World.setBlock(ix, posY + verticalOffset, iz, ModBlocks.spectralBlock, 0, 3); - - if (par2World.rand.nextInt(2) == 0) - { - incremented++; - } - } - } - } - } - - this.incrimentLPUSed(par1ItemStack, incremented); - } - - return; - } - - public int getLPUsed(ItemStack par1ItemStack) - { - if (par1ItemStack.stackTagCompound == null) - { - par1ItemStack.setTagCompound(new NBTTagCompound()); - } - - return par1ItemStack.stackTagCompound.getInteger("LPUsed"); - } - - public void incrimentLPUSed(ItemStack par1ItemStack, int addedLP) - { - if (par1ItemStack.stackTagCompound == null) - { - par1ItemStack.setTagCompound(new NBTTagCompound()); - } - - par1ItemStack.stackTagCompound.setInteger("LPUsed", par1ItemStack.stackTagCompound.getInteger("LPUsed") + addedLP); - } - - public void setLPUsed(ItemStack par1ItemStack, int newLP) - { - if (par1ItemStack.stackTagCompound == null) - { - par1ItemStack.setTagCompound(new NBTTagCompound()); - } - - par1ItemStack.stackTagCompound.setInteger("LPUsed", newLP); - } - - @Override - public void onArmourUpdate(World world, EntityPlayer player, ItemStack thisItemStack) - { - if (!player.onGround && !player.isSneaking()) - { - return; - } - - int range = 2; - int verticalOffset = -1; - - if (player.isSneaking()) - { - verticalOffset--; - } - - int posX = (int) Math.round(player.posX - 0.5f); - int posY = (int) player.posY; - int posZ = (int) Math.round(player.posZ - 0.5f); - - //int incremented = 0; - - for (int ix = posX - range; ix <= posX + range; ix++) - { - for (int iz = posZ - range; iz <= posZ + range; iz++) - { - //for(int iy=posY-verticalRange;iy<=posY+verticalRange;iy++) - { - Block block = world.getBlock(ix, posY + verticalOffset, iz); - - - if (world.isAirBlock(ix, posY + verticalOffset, iz)) - { - world.setBlock(ix, posY + verticalOffset, iz, ModBlocks.spectralBlock, 0, 3); - } - } - } - } - } - - @Override - public boolean isUpgrade() - { - // TODO Auto-generated method stub - return true; - } - - @Override - public int getEnergyForTenSeconds() - { - // TODO Auto-generated method stub - return 100; - } -} diff --git a/1.7.2/main/java/WayofTime/alchemicalWizardry/common/items/sigil/SigilOfTheFastMiner.java b/1.7.2/main/java/WayofTime/alchemicalWizardry/common/items/sigil/SigilOfTheFastMiner.java deleted file mode 100644 index 4f439bfe..00000000 --- a/1.7.2/main/java/WayofTime/alchemicalWizardry/common/items/sigil/SigilOfTheFastMiner.java +++ /dev/null @@ -1,194 +0,0 @@ -package WayofTime.alchemicalWizardry.common.items.sigil; - -import java.util.List; - -import net.minecraft.client.renderer.texture.IIconRegister; -import net.minecraft.entity.Entity; -import net.minecraft.entity.player.EntityPlayer; -import net.minecraft.item.ItemStack; -import net.minecraft.nbt.NBTTagCompound; -import net.minecraft.potion.Potion; -import net.minecraft.potion.PotionEffect; -import net.minecraft.util.IIcon; -import net.minecraft.world.World; -import WayofTime.alchemicalWizardry.AlchemicalWizardry; -import WayofTime.alchemicalWizardry.api.items.interfaces.ArmourUpgrade; -import WayofTime.alchemicalWizardry.common.items.EnergyItems; -import cpw.mods.fml.relauncher.Side; -import cpw.mods.fml.relauncher.SideOnly; - -public class SigilOfTheFastMiner extends EnergyItems implements ArmourUpgrade -{ - @SideOnly(Side.CLIENT) - private static IIcon activeIcon; - @SideOnly(Side.CLIENT) - private static IIcon passiveIcon; - - public SigilOfTheFastMiner() - { - super(); - this.maxStackSize = 1; - //setMaxDamage(100); - setEnergyUsed(100); - setCreativeTab(AlchemicalWizardry.tabBloodMagic); - } - - @Override - public void addInformation(ItemStack par1ItemStack, EntityPlayer par2EntityPlayer, List par3List, boolean par4) - { - par3List.add("Keep going and going and going..."); - - if (!(par1ItemStack.stackTagCompound == null)) - { - if (par1ItemStack.stackTagCompound.getBoolean("isActive")) - { - par3List.add("Activated"); - } else - { - par3List.add("Deactivated"); - } - - par3List.add("Current owner: " + par1ItemStack.stackTagCompound.getString("ownerName")); - } - } - - @Override - @SideOnly(Side.CLIENT) - public void registerIcons(IIconRegister iconRegister) - { - this.itemIcon = iconRegister.registerIcon("AlchemicalWizardry:SigilOfTheFastMiner"); - this.activeIcon = iconRegister.registerIcon("AlchemicalWizardry:MiningSigil_activated"); - this.passiveIcon = iconRegister.registerIcon("AlchemicalWizardry:MiningSigil_deactivated"); - } - - @Override - public IIcon getIcon(ItemStack stack, int renderPass, EntityPlayer player, ItemStack usingItem, int useRemaining) - { - if (stack.stackTagCompound == null) - { - stack.setTagCompound(new NBTTagCompound()); - } - - NBTTagCompound tag = stack.stackTagCompound; - - if (tag.getBoolean("isActive")) - { - return this.activeIcon; - } else - { - return this.passiveIcon; - } - } - - @Override - @SideOnly(Side.CLIENT) - public IIcon getIconFromDamage(int par1) - { - if (par1 == 1) - { - return this.activeIcon; - } else - { - return this.passiveIcon; - } - } - - @Override - public ItemStack onItemRightClick(ItemStack par1ItemStack, World par2World, EntityPlayer par3EntityPlayer) - { - EnergyItems.checkAndSetItemOwner(par1ItemStack, par3EntityPlayer); - - if (par3EntityPlayer.isSneaking()) - { - return par1ItemStack; - } - - if (par1ItemStack.stackTagCompound == null) - { - par1ItemStack.setTagCompound(new NBTTagCompound()); - } - - NBTTagCompound tag = par1ItemStack.stackTagCompound; - tag.setBoolean("isActive", !(tag.getBoolean("isActive"))); - - if (tag.getBoolean("isActive")) - { - par1ItemStack.setItemDamage(1); - tag.setInteger("worldTimeDelay", (int) (par2World.getWorldTime() - 1) % 200); - par3EntityPlayer.addPotionEffect(new PotionEffect(Potion.digSpeed.id, 2, 1, true)); - - //Test with added health boost - //par3EntityPlayer.addPotionEffect(new PotionEffect(Potion.field_76444_x.id, 2400,99)); - if (!par3EntityPlayer.capabilities.isCreativeMode) - { - if (!EnergyItems.syphonBatteries(par1ItemStack, par3EntityPlayer, getEnergyUsed())) - { - } - } - } else - { - par1ItemStack.setItemDamage(par1ItemStack.getMaxDamage()); - } - - return par1ItemStack; - } - - @Override - public void onUpdate(ItemStack par1ItemStack, World par2World, Entity par3Entity, int par4, boolean par5) - { - if (!(par3Entity instanceof EntityPlayer)) - { - return; - } - - EntityPlayer par3EntityPlayer = (EntityPlayer) par3Entity; - - if (par1ItemStack.stackTagCompound == null) - { - par1ItemStack.setTagCompound(new NBTTagCompound()); - } - - if (par1ItemStack.stackTagCompound.getBoolean("isActive")) - { - par3EntityPlayer.addPotionEffect(new PotionEffect(Potion.digSpeed.id, 2, 1, true)); - } - - if (par2World.getWorldTime() % 200 == par1ItemStack.stackTagCompound.getInteger("worldTimeDelay") && par1ItemStack.stackTagCompound.getBoolean("isActive")) - { - //par3EntityPlayer.addPotionEffect(new PotionEffect(Potion.field_76444_x.id, 2400,99)); - if (!par3EntityPlayer.capabilities.isCreativeMode) - { - if (!EnergyItems.syphonBatteries(par1ItemStack, par3EntityPlayer, getEnergyUsed())) - { - } - } - } - - return; - } - - @Override - public void onArmourUpdate(World world, EntityPlayer player, ItemStack itemStack) - { - if (itemStack.stackTagCompound == null) - { - itemStack.setTagCompound(new NBTTagCompound()); - } - - player.addPotionEffect(new PotionEffect(Potion.digSpeed.id, 3, 1, true)); - } - - @Override - public boolean isUpgrade() - { - // TODO Auto-generated method stub - return true; - } - - @Override - public int getEnergyForTenSeconds() - { - // TODO Auto-generated method stub - return 50; - } -} diff --git a/1.7.2/main/java/WayofTime/alchemicalWizardry/common/items/sigil/SigilOfWind.java b/1.7.2/main/java/WayofTime/alchemicalWizardry/common/items/sigil/SigilOfWind.java deleted file mode 100644 index 752797a7..00000000 --- a/1.7.2/main/java/WayofTime/alchemicalWizardry/common/items/sigil/SigilOfWind.java +++ /dev/null @@ -1,196 +0,0 @@ -package WayofTime.alchemicalWizardry.common.items.sigil; - -import java.util.List; - -import net.minecraft.client.renderer.texture.IIconRegister; -import net.minecraft.entity.Entity; -import net.minecraft.entity.player.EntityPlayer; -import net.minecraft.item.ItemStack; -import net.minecraft.nbt.NBTTagCompound; -import net.minecraft.potion.PotionEffect; -import net.minecraft.util.IIcon; -import net.minecraft.world.World; -import WayofTime.alchemicalWizardry.AlchemicalWizardry; -import WayofTime.alchemicalWizardry.api.items.interfaces.ArmourUpgrade; -import WayofTime.alchemicalWizardry.common.items.EnergyItems; -import cpw.mods.fml.relauncher.Side; -import cpw.mods.fml.relauncher.SideOnly; - -public class SigilOfWind extends EnergyItems implements ArmourUpgrade -{ - @SideOnly(Side.CLIENT) - private static IIcon activeIcon; - @SideOnly(Side.CLIENT) - private static IIcon passiveIcon; - - public SigilOfWind() - { - super(); - this.maxStackSize = 1; - //setMaxDamage(100); - setEnergyUsed(250); - setCreativeTab(AlchemicalWizardry.tabBloodMagic); - } - - @Override - public void addInformation(ItemStack par1ItemStack, EntityPlayer par2EntityPlayer, List par3List, boolean par4) - { - par3List.add("Best not to wear a skirt."); - - if (!(par1ItemStack.stackTagCompound == null)) - { - if (par1ItemStack.stackTagCompound.getBoolean("isActive")) - { - par3List.add("Activated"); - } else - { - par3List.add("Deactivated"); - } - - par3List.add("Current owner: " + par1ItemStack.stackTagCompound.getString("ownerName")); - } - } - - @Override - @SideOnly(Side.CLIENT) - public void registerIcons(IIconRegister iconRegister) - { - this.itemIcon = iconRegister.registerIcon("AlchemicalWizardry:WindSigil_deactivated"); - this.activeIcon = iconRegister.registerIcon("AlchemicalWizardry:WindSigil_activated"); - this.passiveIcon = iconRegister.registerIcon("AlchemicalWizardry:WindSigil_deactivated"); - } - - @Override - public IIcon getIcon(ItemStack stack, int renderPass, EntityPlayer player, ItemStack usingItem, int useRemaining) - { - if (stack.stackTagCompound == null) - { - stack.setTagCompound(new NBTTagCompound()); - } - - NBTTagCompound tag = stack.stackTagCompound; - - if (tag.getBoolean("isActive")) - { - return this.activeIcon; - } else - { - return this.passiveIcon; - } - } - - @Override - @SideOnly(Side.CLIENT) - public IIcon getIconFromDamage(int par1) - { - if (par1 == 1) - { - return this.activeIcon; - } else - { - return this.passiveIcon; - } - } - - @Override - public ItemStack onItemRightClick(ItemStack par1ItemStack, World par2World, EntityPlayer par3EntityPlayer) - { - EnergyItems.checkAndSetItemOwner(par1ItemStack, par3EntityPlayer); - - if (par3EntityPlayer.isSneaking()) - { - return par1ItemStack; - } - - if (par1ItemStack.stackTagCompound == null) - { - par1ItemStack.setTagCompound(new NBTTagCompound()); - } - - NBTTagCompound tag = par1ItemStack.stackTagCompound; - tag.setBoolean("isActive", !(tag.getBoolean("isActive"))); - - if (tag.getBoolean("isActive")) - { - par1ItemStack.setItemDamage(1); - tag.setInteger("worldTimeDelay", (int) (par2World.getWorldTime() - 1) % 200); - par3EntityPlayer.addPotionEffect(new PotionEffect(AlchemicalWizardry.customPotionProjProt.id, 2, 1)); - //par3EntityPlayer.addPotionEffect(new PotionEffect(AlchemicalWizardry.customPotionProjProt.id, 2, 2)); - - //Test with added health boost - //par3EntityPlayer.addPotionEffect(new PotionEffect(Potion.field_76444_x.id, 2400,99)); - if (!par3EntityPlayer.capabilities.isCreativeMode) - { - if (!EnergyItems.syphonBatteries(par1ItemStack, par3EntityPlayer, getEnergyUsed())) - { - } - } - } else - { - par1ItemStack.setItemDamage(par1ItemStack.getMaxDamage()); - } - - return par1ItemStack; - } - - @Override - public void onUpdate(ItemStack par1ItemStack, World par2World, Entity par3Entity, int par4, boolean par5) - { - if (!(par3Entity instanceof EntityPlayer)) - { - return; - } - - EntityPlayer par3EntityPlayer = (EntityPlayer) par3Entity; - - if (par1ItemStack.stackTagCompound == null) - { - par1ItemStack.setTagCompound(new NBTTagCompound()); - } - - if (par1ItemStack.stackTagCompound.getBoolean("isActive")) - { - par3EntityPlayer.addPotionEffect(new PotionEffect(AlchemicalWizardry.customPotionProjProt.id, 2, 1)); - } - - if (par2World.getWorldTime() % 200 == par1ItemStack.stackTagCompound.getInteger("worldTimeDelay") && par1ItemStack.stackTagCompound.getBoolean("isActive")) - { - //par3EntityPlayer.addPotionEffect(new PotionEffect(AlchemicalWizardry.customPotionBoost.id, 205, 1)); - - //par3EntityPlayer.addPotionEffect(new PotionEffect(AlchemicalWizardry.customPotionProjProt.id, 205, 2)); - if (!par3EntityPlayer.capabilities.isCreativeMode) - { - if (!EnergyItems.syphonBatteries(par1ItemStack, par3EntityPlayer, getEnergyUsed())) - { - } - } - } - - return; - } - - @Override - public void onArmourUpdate(World world, EntityPlayer player, ItemStack itemStack) - { - if (itemStack.stackTagCompound == null) - { - itemStack.setTagCompound(new NBTTagCompound()); - } - - player.addPotionEffect(new PotionEffect(AlchemicalWizardry.customPotionProjProt.id, 3, 1)); - } - - @Override - public boolean isUpgrade() - { - // TODO Auto-generated method stub - return true; - } - - @Override - public int getEnergyForTenSeconds() - { - // TODO Auto-generated method stub - return 150; - } -} \ No newline at end of file diff --git a/1.7.2/main/java/WayofTime/alchemicalWizardry/common/items/sigil/VoidSigil.java b/1.7.2/main/java/WayofTime/alchemicalWizardry/common/items/sigil/VoidSigil.java deleted file mode 100644 index 54695d21..00000000 --- a/1.7.2/main/java/WayofTime/alchemicalWizardry/common/items/sigil/VoidSigil.java +++ /dev/null @@ -1,195 +0,0 @@ -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.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; -import WayofTime.alchemicalWizardry.common.items.EnergyItems; -import cpw.mods.fml.relauncher.Side; -import cpw.mods.fml.relauncher.SideOnly; - -public class VoidSigil extends ItemBucket implements ArmourUpgrade -{ - private int isFull; - private int energyUsed; - - public VoidSigil() - { - super(null); - this.maxStackSize = 1; - //setMaxDamage(1000); - setEnergyUsed(50); - isFull = 0; - setCreativeTab(AlchemicalWizardry.tabBloodMagic); - } - - @Override - @SideOnly(Side.CLIENT) - public void registerIcons(IIconRegister iconRegister) - { - this.itemIcon = iconRegister.registerIcon("AlchemicalWizardry:VoidSigil"); - } - - @Override - public void addInformation(ItemStack par1ItemStack, EntityPlayer par2EntityPlayer, List par3List, boolean par4) - { - par3List.add("Better than a Swiffer!"); - - if (!(par1ItemStack.stackTagCompound == null)) - { - par3List.add("Current owner: " + par1ItemStack.stackTagCompound.getString("ownerName")); - } - } - - @Override - public ItemStack getContainerItem(ItemStack itemStack) - { - ItemStack copiedStack = itemStack.copy(); - copiedStack.setItemDamage(copiedStack.getItemDamage() + getEnergyUsed()); - copiedStack.stackSize = 1; - return copiedStack; - } - - protected void setEnergyUsed(int par1int) - { - this.energyUsed = par1int; - } - - protected int getEnergyUsed() - { - return this.energyUsed; - } - - @Override - public ItemStack onItemRightClick(ItemStack par1ItemStack, World par2World, EntityPlayer par3EntityPlayer) - { - EnergyItems.checkAndSetItemOwner(par1ItemStack, par3EntityPlayer); - - if (par3EntityPlayer.isSneaking()) - { - return par1ItemStack; - } - - float f = 1.0F; - double d0 = par3EntityPlayer.prevPosX + (par3EntityPlayer.posX - par3EntityPlayer.prevPosX) * (double) f; - double d1 = par3EntityPlayer.prevPosY + (par3EntityPlayer.posY - par3EntityPlayer.prevPosY) * (double) f + 1.62D - (double) par3EntityPlayer.yOffset; - double d2 = par3EntityPlayer.prevPosZ + (par3EntityPlayer.posZ - par3EntityPlayer.prevPosZ) * (double) f; - boolean flag = this.isFull == 0; - MovingObjectPosition movingobjectposition = this.getMovingObjectPositionFromPlayer(par2World, par3EntityPlayer, flag); - - if (movingobjectposition == null) - { - return par1ItemStack; - } else - { - FillBucketEvent event = new FillBucketEvent(par3EntityPlayer, par1ItemStack, par2World, movingobjectposition); - - if (MinecraftForge.EVENT_BUS.post(event)) - { - return par1ItemStack; - } - - if (movingobjectposition.typeOfHit == MovingObjectPosition.MovingObjectType.BLOCK) - { - int i = movingobjectposition.blockX; - int j = movingobjectposition.blockY; - int k = movingobjectposition.blockZ; - - if (!par2World.canMineBlock(par3EntityPlayer, i, j, k)) - { - 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) - { - if (!par3EntityPlayer.canPlayerEdit(i, j, k, movingobjectposition.sideHit, par1ItemStack)) - { - return par1ItemStack; - } - - if (par2World.getBlock(i, j, k).getMaterial() instanceof MaterialLiquid) - { - par2World.setBlockToAir(i, j, k); - - if (!par3EntityPlayer.capabilities.isCreativeMode) - { - if (!EnergyItems.syphonBatteries(par1ItemStack, par3EntityPlayer, getEnergyUsed())) - { - } - } else - { - return par1ItemStack; - } - } - } - } - - return par1ItemStack; - } - } - - /** - * Attempts to place the liquid contained inside the bucket. - */ - public boolean tryPlaceContainedLiquid(World par1World, double par2, double par4, double par6, int par8, int par9, int par10) - { - return false; - } - - @Override - public void onArmourUpdate(World world, EntityPlayer player, - ItemStack thisItemStack) - { - // TODO Auto-generated method stub - } - - @Override - public boolean isUpgrade() - { - // TODO Auto-generated method stub - return true; - } - - @Override - public int getEnergyForTenSeconds() - { - // TODO Auto-generated method stub - return 25; - } -} diff --git a/1.7.2/main/java/WayofTime/alchemicalWizardry/common/items/sigil/WaterSigil.java b/1.7.2/main/java/WayofTime/alchemicalWizardry/common/items/sigil/WaterSigil.java deleted file mode 100644 index e8378c7a..00000000 --- a/1.7.2/main/java/WayofTime/alchemicalWizardry/common/items/sigil/WaterSigil.java +++ /dev/null @@ -1,285 +0,0 @@ -package WayofTime.alchemicalWizardry.common.items.sigil; - -import java.util.List; - -import net.minecraft.block.Block; -import net.minecraft.client.renderer.texture.IIconRegister; -import net.minecraft.entity.player.EntityPlayer; -import net.minecraft.init.Blocks; -import net.minecraft.item.ItemBucket; -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; -import cpw.mods.fml.relauncher.Side; -import cpw.mods.fml.relauncher.SideOnly; - -public class WaterSigil extends ItemBucket implements ArmourUpgrade -{ - /** - * field for checking if the bucket has been filled. - */ - private Block isFull = Blocks.water; - private int energyUsed; - - public WaterSigil() - { - super(Blocks.water); - this.maxStackSize = 1; - //setMaxDamage(1000); - setEnergyUsed(100); - setCreativeTab(AlchemicalWizardry.tabBloodMagic); - } - - @Override - public void onCreated(ItemStack par1ItemStack, World par2World, EntityPlayer par3EntityPlayer) - { - if (par1ItemStack.stackTagCompound == null) - { - par1ItemStack.setTagCompound(new NBTTagCompound()); - } - } - - @Override - @SideOnly(Side.CLIENT) - public void registerIcons(IIconRegister iconRegister) - { - this.itemIcon = iconRegister.registerIcon("AlchemicalWizardry:WaterSigil"); - } - - @Override - public ItemStack getContainerItem(ItemStack itemStack) - { - ItemStack copiedStack = itemStack.copy(); - copiedStack.setItemDamage(copiedStack.getItemDamage() + 1); - copiedStack.stackSize = 1; - return copiedStack; - } - - @Override - public void addInformation(ItemStack par1ItemStack, EntityPlayer par2EntityPlayer, List par3List, boolean par4) - { - par3List.add("Infinite water, anyone?"); - - if (!(par1ItemStack.stackTagCompound == null)) - { - par3List.add("Current owner: " + par1ItemStack.stackTagCompound.getString("ownerName")); - } - } - - /** - * Called whenever this item is equipped and the right mouse button is pressed. Args: itemStack, world, entityPlayer - */ - public ItemStack onItemRightClick(ItemStack par1ItemStack, World par2World, EntityPlayer par3EntityPlayer) - { - EnergyItems.checkAndSetItemOwner(par1ItemStack, par3EntityPlayer); - - if (par3EntityPlayer.isSneaking()) - { - return par1ItemStack; - } - - float f = 1.0F; - double d0 = par3EntityPlayer.prevPosX + (par3EntityPlayer.posX - par3EntityPlayer.prevPosX) * (double) f; - double d1 = par3EntityPlayer.prevPosY + (par3EntityPlayer.posY - par3EntityPlayer.prevPosY) * (double) f + 1.62D - (double) par3EntityPlayer.yOffset; - double d2 = par3EntityPlayer.prevPosZ + (par3EntityPlayer.posZ - par3EntityPlayer.prevPosZ) * (double) f; - //boolean flag = this.isFull == 0; - MovingObjectPosition movingobjectposition = this.getMovingObjectPositionFromPlayer(par2World, par3EntityPlayer, false); - - if (movingobjectposition == null) - { - return par1ItemStack; - } else - { - if (movingobjectposition.typeOfHit == MovingObjectPosition.MovingObjectType.BLOCK) - { - int i = movingobjectposition.blockX; - int j = movingobjectposition.blockY; - int k = movingobjectposition.blockZ; - - if (!par2World.canMineBlock(par3EntityPlayer, i, j, k)) - { - 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) - { - --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 (!par3EntityPlayer.canPlayerEdit(i, j, k, movingobjectposition.sideHit, par1ItemStack)) - { - return par1ItemStack; - } - - if (this.tryPlaceContainedLiquid(par2World, d0, d1, d2, i, j, k) && !par3EntityPlayer.capabilities.isCreativeMode) - { - if (!par3EntityPlayer.capabilities.isCreativeMode) - { - if (!EnergyItems.syphonBatteries(par1ItemStack, par3EntityPlayer, getEnergyUsed())) - { - } - } else - { - return par1ItemStack; - } - } - } - } - - return par1ItemStack; - } - } - - /** - * Attempts to place the liquid contained inside the bucket. - */ - public boolean tryPlaceContainedLiquid(World par1World, double par2, double par4, double par6, int par8, int par9, int par10) - { - if (!par1World.isAirBlock(par8, par9, par10) && par1World.getBlock(par8, par9, par10).getMaterial().isSolid()) - { - return false; - } else if ((par1World.getBlock(par8, par9, par10) == Blocks.water || par1World.getBlock(par8, par9, par10) == Blocks.flowing_water) && par1World.getBlockMetadata(par8, par9, par10) == 0) - { - return false; - } else - { - if (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, this.isFull, 0, 3); - } - - return true; - } - } - - protected void setEnergyUsed(int par1int) - { - this.energyUsed = par1int; - } - - protected int getEnergyUsed() - { - return this.energyUsed; - } - //Heals the player using the item. If the player is at full health, or if the durability cannot be used any more, - //the item is not used. - -// 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(); -// } -// } - - @Override - public void onArmourUpdate(World world, EntityPlayer player, - ItemStack thisItemStack) - { - // TODO Auto-generated method stub - //PotionEffect effect = new PotionEffect(Potion.waterBreathing.id, 2,9); - player.addPotionEffect(new PotionEffect(Potion.waterBreathing.id, 2, 9,true)); - } - - @Override - public boolean isUpgrade() - { - // TODO Auto-generated method stub - return true; - } - - @Override - public int getEnergyForTenSeconds() - { - // TODO Auto-generated method stub - return 50; - } -} 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 deleted file mode 100644 index 6f1806a1..00000000 --- a/1.7.2/main/java/WayofTime/alchemicalWizardry/common/items/spell/ItemSpellMultiTool.java +++ /dev/null @@ -1,861 +0,0 @@ -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("A mace filled with ancient alchemy"); - - 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.0f; - 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/main/java/WayofTime/alchemicalWizardry/common/items/thaumcraft/FocusBase.java b/1.7.2/main/java/WayofTime/alchemicalWizardry/common/items/thaumcraft/FocusBase.java deleted file mode 100644 index 469c0ff6..00000000 --- a/1.7.2/main/java/WayofTime/alchemicalWizardry/common/items/thaumcraft/FocusBase.java +++ /dev/null @@ -1,169 +0,0 @@ -package WayofTime.alchemicalWizardry.common.items.thaumcraft; - -import java.util.List; - -import javax.swing.Icon; - -import net.minecraft.client.renderer.texture.IIconRegister; -import net.minecraft.entity.player.EntityPlayer; -import net.minecraft.item.EnumRarity; -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 WayofTime.alchemicalWizardry.common.items.EnergyItems; -import cpw.mods.fml.relauncher.Side; -import cpw.mods.fml.relauncher.SideOnly; - -public abstract class FocusBase extends EnergyItems //implements IWandFocus -{ - protected IIcon ornament, depth; - - public FocusBase() - { - super(); - setMaxDamage(1); - setNoRepair(); - setMaxStackSize(1); - } - - boolean hasOrnament() - { - return false; - } - - boolean hasDepth() - { - return false; - } - - @Override - @SideOnly(Side.CLIENT) - public void registerIcons(IIconRegister iconRegister) - { - super.registerIcons(iconRegister); -// if(hasOrnament()) -// { -// ornament = iconRegister.registerIcon("AlchemicalWizardry:" + this.getUnlocalizedName() + "Orn"); -// } -// if(hasDepth()) -// { -// depth = iconRegister.registerIcon("AlchemicalWizardry:" + this.getUnlocalizedName() + "Depth"); -// } - } - - @Override - public boolean isItemTool(ItemStack par1ItemStack) - { - return true; - } - -/*erride - public void addInformation(ItemStack par1ItemStack, EntityPlayer par2EntityPlayer, List par3List, boolean par4) - { - super.addInformation(par1ItemStack, par2EntityPlayer, par3List, par4); - AspectList cost = getVisCost(); - - if (cost != null && cost.size() > 0) - { - par3List.add(StatCollector.translateToLocal(isVisCostPerTick() ? "item.Focus.cost2" : "item.Focus.cost1")); - - for (Aspect aspect : cost.getAspectsSorted()) - { - float amount = cost.getAmount(aspect) / 100.0F; - par3List.add(" " + '\u00a7' + aspect.getChatcolor() + aspect.getName() + '\u00a7' + "r x " + amount); - } - } - } - - @Override - public int getItemEnchantability() - { - return 5; - } - - @Override - public EnumRarity getRarity(ItemStack itemstack) - { - return EnumRarity.rare; - } - - @Override - public Icon getOrnament() - { - return ornament; - } - - @Override - public Icon getFocusDepthLayerIcon() - { - return depth; - } - - @Override - public WandFocusAnimation getAnimation() - { - return WandFocusAnimation.WAVE; - } - - @Override - public boolean isVisCostPerTick() - { - return false; - } - - public boolean isUseItem() - { - return isVisCostPerTick(); - } - - @Override - public ItemStack onFocusRightClick(ItemStack paramItemStack, World paramWorld, EntityPlayer paramEntityPlayer, MovingObjectPosition paramMovingObjectPosition) - { - if (isUseItem()) - { - paramEntityPlayer.setItemInUse(paramItemStack, Integer.MAX_VALUE); - } - - return paramItemStack; - } - - @Override - public void onUsingFocusTick(ItemStack paramItemStack, EntityPlayer paramEntityPlayer, int paramInt) - { - // NO-OP - } - - @Override - public void onPlayerStoppedUsingFocus(ItemStack paramItemStack, World paramWorld, EntityPlayer paramEntityPlayer, int paramInt) - { - // NO-OP - } - - @Override - public String getSortingHelper(ItemStack paramItemStack) - { - return "00"; - } - - @Override - public boolean onFocusBlockStartBreak(ItemStack paramItemStack, int paramInt1, int paramInt2, int paramInt3, EntityPlayer paramEntityPlayer) - { - return false; - } - - @Override - public boolean acceptsEnchant(int id) - { - if (id == ThaumcraftApi.enchantFrugal || - id == ThaumcraftApi.enchantPotency) - { - return true; - } - - return false; - } - - */ -} diff --git a/1.7.2/main/java/WayofTime/alchemicalWizardry/common/items/thaumcraft/FocusBloodBlast.java b/1.7.2/main/java/WayofTime/alchemicalWizardry/common/items/thaumcraft/FocusBloodBlast.java deleted file mode 100644 index 8d377041..00000000 --- a/1.7.2/main/java/WayofTime/alchemicalWizardry/common/items/thaumcraft/FocusBloodBlast.java +++ /dev/null @@ -1,191 +0,0 @@ -package WayofTime.alchemicalWizardry.common.items.thaumcraft; - -import java.lang.reflect.InvocationTargetException; -import java.lang.reflect.Method; -import java.util.HashMap; -import java.util.List; -import java.util.Map; - -import net.minecraft.client.renderer.texture.IIconRegister; -import net.minecraft.entity.player.EntityPlayer; -import net.minecraft.item.Item; -import net.minecraft.item.ItemStack; -import net.minecraft.world.World; -import WayofTime.alchemicalWizardry.AlchemicalWizardry; -import WayofTime.alchemicalWizardry.common.entity.projectile.EnergyBlastProjectile; -import WayofTime.alchemicalWizardry.common.items.EnergyItems; -import cpw.mods.fml.relauncher.Side; -import cpw.mods.fml.relauncher.SideOnly; - -public class FocusBloodBlast extends FocusBase -{ - //private static final AspectList visUsage = new AspectList().add(Aspect.AIR, 15).add(Aspect.ENTROPY, 45); - - private final int maxCooldown = 7; - - public static Map playerCooldown = new HashMap(); - - public FocusBloodBlast() - { - super(); - this.setUnlocalizedName("focusBloodBlast"); - this.setEnergyUsed(100); - } - - @Override - @SideOnly(Side.CLIENT) - public void registerIcons(IIconRegister iconRegister) - { - super.registerIcons(iconRegister); - - if (hasOrnament()) - { - ornament = iconRegister.registerIcon("AlchemicalWizardry:" + "focusBloodBlast" + "Orn"); - } - - if (hasDepth()) - { - depth = iconRegister.registerIcon("AlchemicalWizardry:" + "focusBloodBlast" + "Depth"); - } - } - - @Override - public void addInformation(ItemStack par1ItemStack, EntityPlayer par2EntityPlayer, List par3List, boolean par4) - { - //super.addInformation(par1ItemStack, par2EntityPlayer, par3List, par4); - if (!(par1ItemStack.stackTagCompound == null)) - { - if (!par1ItemStack.stackTagCompound.getString("ownerName").equals("")) - { - par3List.add("Current owner: " + par1ItemStack.stackTagCompound.getString("ownerName")); - } - } - } - - /* - @Override - public void onUsingFocusTick(ItemStack stack, EntityPlayer par3EntityPlayer, int ticks) - { - if (AlchemicalWizardry.isThaumcraftLoaded) - { - Item item = stack.getItem(); - Class clazz = item.getClass(); - - while (!clazz.getName().equals("thaumcraft.common.items.wands.ItemWandCasting")) - { - if (clazz == Object.class) - { - return; - } - - clazz = clazz.getSuperclass(); - } - - //Item testItem = item.set - - //Method consumeAllVis = null; - try - { - if (!playerCooldown.containsKey(par3EntityPlayer.username)) - { - playerCooldown.put(par3EntityPlayer.username, 0); - } - - Method getFocusItem = clazz.getMethod("getFocusItem", ItemStack.class); - ItemStack focusStack = (ItemStack) getFocusItem.invoke(item, stack); - //int potency = EnchantmentHelper.getEnchantmentLevel(ThaumcraftApi.enchantPotency, focusStack); - int cooldown = playerCooldown.get(par3EntityPlayer.username) + 1; - playerCooldown.put(par3EntityPlayer.username, cooldown); - - if (cooldown >= this.maxCooldown) - { - Method consumeAllVis = clazz.getMethod("consumeAllVis", ItemStack.class, EntityPlayer.class, AspectList.class, boolean.class); - - if ((Boolean) consumeAllVis.invoke(item, stack, par3EntityPlayer, getVisCost(), true)) - { - playerCooldown.put(par3EntityPlayer.username, 0); - EnergyItems.checkAndSetItemOwner(focusStack, par3EntityPlayer); - World world = par3EntityPlayer.worldObj; - - if (!par3EntityPlayer.capabilities.isCreativeMode) - { - this.syphonBatteries(focusStack, par3EntityPlayer, 100); - } - - //world.playSoundAtEntity(par3EntityPlayer, "random.bow", 0.5F, 0.4F / (itemRand.nextFloat() * 0.4F + 0.8F)); - world.playSoundAtEntity(par3EntityPlayer, "thaumcraft:wand", 0.5F, 1F); - - if (!world.isRemote) - { - //par2World.spawnEntityInWorld(new EnergyBlastProjectile(par2World, par3EntityPlayer, damage)); - world.spawnEntityInWorld(new EnergyBlastProjectile(world, par3EntityPlayer, (int) (5))); - //this.setDelay(par1ItemStack, maxDelay); - } - } - } - } catch (NoSuchMethodException e1) - { - // TODO Auto-generated catch block - e1.printStackTrace(); - } catch (SecurityException e1) - { - // TODO Auto-generated catch block - e1.printStackTrace(); - } catch (IllegalAccessException e) - { - // TODO Auto-generated catch block - e.printStackTrace(); - } catch (IllegalArgumentException e) - { - // TODO Auto-generated catch block - e.printStackTrace(); - } catch (InvocationTargetException e) - { - // TODO Auto-generated catch block - e.printStackTrace(); - } - } - } - - @Override - public void onPlayerStoppedUsingFocus(ItemStack paramItemStack, World paramWorld, EntityPlayer paramEntityPlayer, int paramInt) - { - playerCooldown.put(paramEntityPlayer.username, 0); - } - - @Override - public String getSortingHelper(ItemStack itemstack) - { - return "BLOODBLAST"; - } - - @Override - public int getFocusColor() - { - return 0x8A0707; - } - - @Override - public AspectList getVisCost() - { - return visUsage; - } - - @Override - public boolean isVisCostPerTick() - { - return true; - } - - @Override - public WandFocusAnimation getAnimation() - { - return WandFocusAnimation.WAVE; - } - - boolean hasOrnament() - { - return true; - } - */ -} diff --git a/1.7.2/main/java/WayofTime/alchemicalWizardry/common/items/thaumcraft/FocusGravityWell.java b/1.7.2/main/java/WayofTime/alchemicalWizardry/common/items/thaumcraft/FocusGravityWell.java deleted file mode 100644 index 8a0e3678..00000000 --- a/1.7.2/main/java/WayofTime/alchemicalWizardry/common/items/thaumcraft/FocusGravityWell.java +++ /dev/null @@ -1,263 +0,0 @@ -package WayofTime.alchemicalWizardry.common.items.thaumcraft; - -import java.util.HashMap; -import java.util.List; -import java.util.Map; - -import net.minecraft.client.renderer.texture.IIconRegister; -import net.minecraft.entity.player.EntityPlayer; -import net.minecraft.item.ItemStack; -import cpw.mods.fml.relauncher.Side; -import cpw.mods.fml.relauncher.SideOnly; - -public class FocusGravityWell extends FocusBase -{ - //private static final AspectList visUsage = new AspectList().add(Aspect.AIR, 5).add(Aspect.ORDER, 5); - - private final int maxCooldown = 1; - - public static Map playerCooldown = new HashMap(); - - public FocusGravityWell() - { - super(); - this.setUnlocalizedName("focusGravityWell"); - this.setEnergyUsed(100); - } - - @Override - @SideOnly(Side.CLIENT) - public void registerIcons(IIconRegister iconRegister) - { - super.registerIcons(iconRegister); - - if (hasOrnament()) - { - ornament = iconRegister.registerIcon("AlchemicalWizardry:" + "focusGravityWell" + "Orn"); - } - - if (hasDepth()) - { - depth = iconRegister.registerIcon("AlchemicalWizardry:" + "focusGravityWell" + "Depth"); - } - } - - @Override - public void addInformation(ItemStack par1ItemStack, EntityPlayer par2EntityPlayer, List par3List, boolean par4) - { - //super.addInformation(par1ItemStack, par2EntityPlayer, par3List, par4); - if (!(par1ItemStack.stackTagCompound == null)) - { - if (!par1ItemStack.stackTagCompound.getString("ownerName").equals("")) - { - par3List.add("Current owner: " + par1ItemStack.stackTagCompound.getString("ownerName")); - } - } - } - - /* - @Override - public void onUsingFocusTick(ItemStack stack, EntityPlayer par3EntityPlayer, int ticks) - { - if (AlchemicalWizardry.isThaumcraftLoaded) - { - Item item = stack.getItem(); - Class clazz = item.getClass(); - - while (!clazz.getName().equals("thaumcraft.common.items.wands.ItemWandCasting")) - { - if (clazz == Object.class) - { - return; - } - - clazz = clazz.getSuperclass(); - } - - //Item testItem = item.set - - //Method consumeAllVis = null; - try - { - if (!playerCooldown.containsKey(par3EntityPlayer.username)) - { - playerCooldown.put(par3EntityPlayer.username, 0); - } - - Method getFocusItem = clazz.getMethod("getFocusItem", ItemStack.class); - ItemStack focusStack = (ItemStack) getFocusItem.invoke(item, stack); - //int potency = EnchantmentHelper.getEnchantmentLevel(ThaumcraftApi.enchantPotency, focusStack); - int cooldown = playerCooldown.get(par3EntityPlayer.username) + 1; - playerCooldown.put(par3EntityPlayer.username, cooldown); - //if(cooldown>=this.maxCooldown) - { - Method consumeAllVis = clazz.getMethod("consumeAllVis", ItemStack.class, EntityPlayer.class, AspectList.class, boolean.class); - - if ((Boolean) consumeAllVis.invoke(item, stack, par3EntityPlayer, getVisCost(), true)) - { - playerCooldown.put(par3EntityPlayer.username, 0); - EnergyItems.checkAndSetItemOwner(focusStack, par3EntityPlayer); - Vec3 vector = par3EntityPlayer.getLookVec(); - float distance = 2; - //if(par3EntityPlayer.worldObj.isRemote) - { - List entities = par3EntityPlayer.worldObj.getEntitiesWithinAABB(Entity.class, AxisAlignedBB.getBoundingBox(par3EntityPlayer.posX + vector.xCoord * distance - 0.5f, par3EntityPlayer.posY + vector.yCoord * distance - 0.5f, par3EntityPlayer.posZ + vector.zCoord * distance - 0.5f, par3EntityPlayer.posX + vector.xCoord * distance + 0.5f, par3EntityPlayer.posY + vector.yCoord * distance + 0.5f, par3EntityPlayer.posZ + vector.zCoord * distance + 0.5f).expand(1, 1, 1)); - - for (Entity entity : entities) - { - if (entity.getEntityName() == par3EntityPlayer.username) - { - continue; - } - - entity.motionX = par3EntityPlayer.posX + vector.xCoord * distance - entity.posX; - entity.motionY = par3EntityPlayer.posY + vector.yCoord * distance - entity.posY; - entity.motionZ = par3EntityPlayer.posZ + vector.zCoord * distance - entity.posZ; - //entity.setVelocity(par3EntityPlayer.posX+vector.xCoord*distance-entity.posX, par3EntityPlayer.posY+vector.yCoord*distance-entity.posY, par3EntityPlayer.posZ+vector.zCoord*distance-entity.posZ); - } - } - World world = par3EntityPlayer.worldObj; - - if (!par3EntityPlayer.capabilities.isCreativeMode) - { - this.syphonBatteriesWithoutParticles(focusStack, par3EntityPlayer, 10, false); - } - } - } - } catch (NoSuchMethodException e1) - { - // TODO Auto-generated catch block - e1.printStackTrace(); - } catch (SecurityException e1) - { - // TODO Auto-generated catch block - e1.printStackTrace(); - } catch (IllegalAccessException e) - { - // TODO Auto-generated catch block - e.printStackTrace(); - } catch (IllegalArgumentException e) - { - // TODO Auto-generated catch block - e.printStackTrace(); - } catch (InvocationTargetException e) - { - // TODO Auto-generated catch block - e.printStackTrace(); - } - } - } - - @Override - public void onPlayerStoppedUsingFocus(ItemStack stack, World paramWorld, EntityPlayer par3EntityPlayer, int paramInt) - { - playerCooldown.put(par3EntityPlayer.username, 0); - - if (AlchemicalWizardry.isThaumcraftLoaded) - { - Item item = stack.getItem(); - Class clazz = item.getClass(); - - while (!clazz.getName().equals("thaumcraft.common.items.wands.ItemWandCasting")) - { - if (clazz == Object.class) - { - return; - } - - clazz = clazz.getSuperclass(); - } - - //Item testItem = item.set - - //Method consumeAllVis = null; - try - { - Method getFocusItem = clazz.getMethod("getFocusItem", ItemStack.class); - ItemStack focusStack = (ItemStack) getFocusItem.invoke(item, stack); - int potency = EnchantmentHelper.getEnchantmentLevel(ThaumcraftApi.enchantPotency, focusStack); - - if (potency > 0) - { - EnergyItems.checkAndSetItemOwner(focusStack, par3EntityPlayer); - Vec3 vector = par3EntityPlayer.getLookVec(); - float distance = 2; - //if(par3EntityPlayer.worldObj.isRemote) - { - List entities = par3EntityPlayer.worldObj.getEntitiesWithinAABB(Entity.class, AxisAlignedBB.getBoundingBox(par3EntityPlayer.posX + vector.xCoord * distance - 0.5f, par3EntityPlayer.posY + vector.yCoord * distance - 0.5f, par3EntityPlayer.posZ + vector.zCoord * distance - 0.5f, par3EntityPlayer.posX + vector.xCoord * distance + 0.5f, par3EntityPlayer.posY + vector.yCoord * distance + 0.5f, par3EntityPlayer.posZ + vector.zCoord * distance + 0.5f).expand(1, 1, 1)); - - for (Entity entity : entities) - { - if (entity.getEntityName() == par3EntityPlayer.username) - { - continue; - } - - float speed = 1.0F * potency; - entity.motionX = vector.xCoord * speed; - entity.motionY = vector.yCoord * speed; - entity.motionZ = vector.zCoord * speed; - //entity.setVelocity(par3EntityPlayer.posX+vector.xCoord*distance-entity.posX, par3EntityPlayer.posY+vector.yCoord*distance-entity.posY, par3EntityPlayer.posZ+vector.zCoord*distance-entity.posZ); - } - } - } - } catch (NoSuchMethodException e1) - { - // TODO Auto-generated catch block - e1.printStackTrace(); - } catch (SecurityException e1) - { - // TODO Auto-generated catch block - e1.printStackTrace(); - } catch (IllegalAccessException e) - { - // TODO Auto-generated catch block - e.printStackTrace(); - } catch (IllegalArgumentException e) - { - // TODO Auto-generated catch block - e.printStackTrace(); - } catch (InvocationTargetException e) - { - // TODO Auto-generated catch block - e.printStackTrace(); - } - } - } - - @Override - public String getSortingHelper(ItemStack itemstack) - { - return "BLOODBLAST"; - } - - @Override - public int getFocusColor() - { - return 0x8A0707; - } - - @Override - public AspectList getVisCost() - { - return visUsage; - } - - @Override - public boolean isVisCostPerTick() - { - return true; - } - - @Override - public WandFocusAnimation getAnimation() - { - return WandFocusAnimation.WAVE; - } - - boolean hasOrnament() - { - return false; - } - */ -} diff --git a/1.7.2/main/java/WayofTime/alchemicalWizardry/common/items/thaumcraft/ItemSanguineArmour.java b/1.7.2/main/java/WayofTime/alchemicalWizardry/common/items/thaumcraft/ItemSanguineArmour.java deleted file mode 100644 index 7cdef813..00000000 --- a/1.7.2/main/java/WayofTime/alchemicalWizardry/common/items/thaumcraft/ItemSanguineArmour.java +++ /dev/null @@ -1,103 +0,0 @@ -package WayofTime.alchemicalWizardry.common.items.thaumcraft; - -import java.util.List; - -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.item.ItemArmor; -import net.minecraft.item.ItemStack; -import net.minecraft.util.IIcon; -import net.minecraft.world.World; -import thaumcraft.api.IGoggles; -import thaumcraft.api.IVisDiscountGear; -import thaumcraft.api.aspects.Aspect; -import thaumcraft.api.nodes.IRevealer; -import WayofTime.alchemicalWizardry.AlchemicalWizardry; -import WayofTime.alchemicalWizardry.ModItems; -import WayofTime.alchemicalWizardry.api.items.interfaces.ArmourUpgrade; -import cpw.mods.fml.relauncher.Side; -import cpw.mods.fml.relauncher.SideOnly; - -public class ItemSanguineArmour extends ItemArmor implements ArmourUpgrade, IGoggles, IVisDiscountGear, IRevealer -{ - private static IIcon helmetIcon; - - public ItemSanguineArmour() - { - super(AlchemicalWizardry.sanguineArmourArmourMaterial, 4, 0); - setCreativeTab(AlchemicalWizardry.tabBloodMagic); - } - - @Override - @SideOnly(Side.CLIENT) - public void registerIcons(IIconRegister iconRegister) - { - //this.itemIcon = iconRegister.registerIcon("AlchemicalWizardry:SheathedItem"); - this.itemIcon = iconRegister.registerIcon("AlchemicalWizardry:SanguineHelmet"); - } - - @Override - public String getArmorTexture(ItemStack stack, Entity entity, int slot, String type) - { - //if(AlchemicalWizardry.isThaumcraftLoaded) - { - if (this == ModItems.sanguineHelmet) - { - return "alchemicalwizardry:models/armor/sanguineArmour_layer_1.png"; - } - } - return null; - } - - @Override - public void addInformation(ItemStack par1ItemStack, EntityPlayer par2EntityPlayer, List par3List, boolean par4) - { - par3List.add("A pair of goggles imbued with power"); - par3List.add("Vis discount: " + 8 + "%"); - } - - -// @Override -// public boolean showNodes(ItemStack itemstack, EntityLivingBase player) -// { -// return true; -// } - - @Override - public void onArmourUpdate(World world, EntityPlayer player, ItemStack thisItemStack) - { - return; - } - - @Override - public boolean isUpgrade() - { - return false; - } - - @Override - public int getEnergyForTenSeconds() - { - return 0; - } - - @Override - public boolean showNodes(ItemStack itemstack, EntityLivingBase player) - { - return true; - } - - @Override - public int getVisDiscount(ItemStack stack, EntityPlayer player, Aspect aspect) - { - return 8; - } - - @Override - public boolean showIngamePopups(ItemStack itemstack, EntityLivingBase player) - { - return true; - } -} diff --git a/1.7.2/main/java/WayofTime/alchemicalWizardry/common/mcmod.info b/1.7.2/main/java/WayofTime/alchemicalWizardry/common/mcmod.info deleted file mode 100644 index cd89dc4c..00000000 --- a/1.7.2/main/java/WayofTime/alchemicalWizardry/common/mcmod.info +++ /dev/null @@ -1,22 +0,0 @@ -[ -{ - "modid": "AWWayofTime", - "name": "Blood Magic: Alchemical Wizardry", - "description": "Gruesome? Probably. Worth it? Definately!", - "version": "0.2.1c", - "url": "", - "updateUrl": "", - "logoFile": "", - "mcversion": "1.6.2", - "authorList": [ - "WayofTime" - ], - "credits": "", - "screenshots": [ - ], - "parent": "", - "dependencies": [ - ] -} -] - diff --git a/1.7.2/main/java/WayofTime/alchemicalWizardry/common/potion/PotionBoost.java b/1.7.2/main/java/WayofTime/alchemicalWizardry/common/potion/PotionBoost.java deleted file mode 100644 index 132205bb..00000000 --- a/1.7.2/main/java/WayofTime/alchemicalWizardry/common/potion/PotionBoost.java +++ /dev/null @@ -1,18 +0,0 @@ -package WayofTime.alchemicalWizardry.common.potion; - -import net.minecraft.potion.Potion; - -public class PotionBoost extends Potion -{ - public PotionBoost(int par1, boolean par2, int par3) - { - super(par1, par2, par3); - } - - @Override - public Potion setIconIndex(int par1, int par2) - { - super.setIconIndex(par1, par2); - return this; - } -} diff --git a/1.7.2/main/java/WayofTime/alchemicalWizardry/common/potion/PotionDrowning.java b/1.7.2/main/java/WayofTime/alchemicalWizardry/common/potion/PotionDrowning.java deleted file mode 100644 index 87558f26..00000000 --- a/1.7.2/main/java/WayofTime/alchemicalWizardry/common/potion/PotionDrowning.java +++ /dev/null @@ -1,18 +0,0 @@ -package WayofTime.alchemicalWizardry.common.potion; - -import net.minecraft.potion.Potion; - -public class PotionDrowning extends Potion -{ - public PotionDrowning(int par1, boolean par2, int par3) - { - super(par1, par2, par3); - } - - @Override - public Potion setIconIndex(int par1, int par2) - { - super.setIconIndex(par1, par2); - return this; - } -} diff --git a/1.7.2/main/java/WayofTime/alchemicalWizardry/common/potion/PotionFireFuse.java b/1.7.2/main/java/WayofTime/alchemicalWizardry/common/potion/PotionFireFuse.java deleted file mode 100644 index 8fe5d527..00000000 --- a/1.7.2/main/java/WayofTime/alchemicalWizardry/common/potion/PotionFireFuse.java +++ /dev/null @@ -1,18 +0,0 @@ -package WayofTime.alchemicalWizardry.common.potion; - -import net.minecraft.potion.Potion; - -public class PotionFireFuse extends Potion -{ - public PotionFireFuse(int par1, boolean par2, int par3) - { - super(par1, par2, par3); - } - - @Override - public Potion setIconIndex(int par1, int par2) - { - super.setIconIndex(par1, par2); - return this; - } -} diff --git a/1.7.2/main/java/WayofTime/alchemicalWizardry/common/potion/PotionFlameCloak.java b/1.7.2/main/java/WayofTime/alchemicalWizardry/common/potion/PotionFlameCloak.java deleted file mode 100644 index b885d240..00000000 --- a/1.7.2/main/java/WayofTime/alchemicalWizardry/common/potion/PotionFlameCloak.java +++ /dev/null @@ -1,18 +0,0 @@ -package WayofTime.alchemicalWizardry.common.potion; - -import net.minecraft.potion.Potion; - -public class PotionFlameCloak extends Potion -{ - public PotionFlameCloak(int par1, boolean par2, int par3) - { - super(par1, par2, par3); - } - - @Override - public Potion setIconIndex(int par1, int par2) - { - super.setIconIndex(par1, par2); - return this; - } -} diff --git a/1.7.2/main/java/WayofTime/alchemicalWizardry/common/potion/PotionFlight.java b/1.7.2/main/java/WayofTime/alchemicalWizardry/common/potion/PotionFlight.java deleted file mode 100644 index 23e93e57..00000000 --- a/1.7.2/main/java/WayofTime/alchemicalWizardry/common/potion/PotionFlight.java +++ /dev/null @@ -1,18 +0,0 @@ -package WayofTime.alchemicalWizardry.common.potion; - -import net.minecraft.potion.Potion; - -public class PotionFlight extends Potion -{ - public PotionFlight(int par1, boolean par2, int par3) - { - super(par1, par2, par3); - } - - @Override - public Potion setIconIndex(int par1, int par2) - { - super.setIconIndex(par1, par2); - return this; - } -} diff --git a/1.7.2/main/java/WayofTime/alchemicalWizardry/common/potion/PotionHeavyHeart.java b/1.7.2/main/java/WayofTime/alchemicalWizardry/common/potion/PotionHeavyHeart.java deleted file mode 100644 index 952fb59c..00000000 --- a/1.7.2/main/java/WayofTime/alchemicalWizardry/common/potion/PotionHeavyHeart.java +++ /dev/null @@ -1,18 +0,0 @@ -package WayofTime.alchemicalWizardry.common.potion; - -import net.minecraft.potion.Potion; - -public class PotionHeavyHeart extends Potion -{ - public PotionHeavyHeart(int par1, boolean par2, int par3) - { - super(par1, par2, par3); - } - - @Override - public Potion setIconIndex(int par1, int par2) - { - super.setIconIndex(par1, par2); - return this; - } -} diff --git a/1.7.2/main/java/WayofTime/alchemicalWizardry/common/potion/PotionIceCloak.java b/1.7.2/main/java/WayofTime/alchemicalWizardry/common/potion/PotionIceCloak.java deleted file mode 100644 index d169b4d9..00000000 --- a/1.7.2/main/java/WayofTime/alchemicalWizardry/common/potion/PotionIceCloak.java +++ /dev/null @@ -1,18 +0,0 @@ -package WayofTime.alchemicalWizardry.common.potion; - -import net.minecraft.potion.Potion; - -public class PotionIceCloak extends Potion -{ - public PotionIceCloak(int par1, boolean par2, int par3) - { - super(par1, par2, par3); - } - - @Override - public Potion setIconIndex(int par1, int par2) - { - super.setIconIndex(par1, par2); - return this; - } -} diff --git a/1.7.2/main/java/WayofTime/alchemicalWizardry/common/potion/PotionInhibit.java b/1.7.2/main/java/WayofTime/alchemicalWizardry/common/potion/PotionInhibit.java deleted file mode 100644 index 2214e105..00000000 --- a/1.7.2/main/java/WayofTime/alchemicalWizardry/common/potion/PotionInhibit.java +++ /dev/null @@ -1,18 +0,0 @@ -package WayofTime.alchemicalWizardry.common.potion; - -import net.minecraft.potion.Potion; - -public class PotionInhibit extends Potion -{ - public PotionInhibit(int par1, boolean par2, int par3) - { - super(par1, par2, par3); - } - - @Override - public Potion setIconIndex(int par1, int par2) - { - super.setIconIndex(par1, par2); - return this; - } -} diff --git a/1.7.2/main/java/WayofTime/alchemicalWizardry/common/potion/PotionPlanarBinding.java b/1.7.2/main/java/WayofTime/alchemicalWizardry/common/potion/PotionPlanarBinding.java deleted file mode 100644 index 54d6cd72..00000000 --- a/1.7.2/main/java/WayofTime/alchemicalWizardry/common/potion/PotionPlanarBinding.java +++ /dev/null @@ -1,18 +0,0 @@ -package WayofTime.alchemicalWizardry.common.potion; - -import net.minecraft.potion.Potion; - -public class PotionPlanarBinding extends Potion -{ - public PotionPlanarBinding(int par1, boolean par2, int par3) - { - super(par1, par2, par3); - } - - @Override - public Potion setIconIndex(int par1, int par2) - { - super.setIconIndex(par1, par2); - return this; - } -} diff --git a/1.7.2/main/java/WayofTime/alchemicalWizardry/common/potion/PotionProjectileProtect.java b/1.7.2/main/java/WayofTime/alchemicalWizardry/common/potion/PotionProjectileProtect.java deleted file mode 100644 index 317edd54..00000000 --- a/1.7.2/main/java/WayofTime/alchemicalWizardry/common/potion/PotionProjectileProtect.java +++ /dev/null @@ -1,18 +0,0 @@ -package WayofTime.alchemicalWizardry.common.potion; - -import net.minecraft.potion.Potion; - -public class PotionProjectileProtect extends Potion -{ - public PotionProjectileProtect(int par1, boolean par2, int par3) - { - super(par1, par2, par3); - } - - @Override - public Potion setIconIndex(int par1, int par2) - { - super.setIconIndex(par1, par2); - return this; - } -} diff --git a/1.7.2/main/java/WayofTime/alchemicalWizardry/common/potion/PotionReciprocation.java b/1.7.2/main/java/WayofTime/alchemicalWizardry/common/potion/PotionReciprocation.java deleted file mode 100644 index ddceed0b..00000000 --- a/1.7.2/main/java/WayofTime/alchemicalWizardry/common/potion/PotionReciprocation.java +++ /dev/null @@ -1,18 +0,0 @@ -package WayofTime.alchemicalWizardry.common.potion; - -import net.minecraft.potion.Potion; - -public class PotionReciprocation extends Potion -{ - public PotionReciprocation(int par1, boolean par2, int par3) - { - super(par1, par2, par3); - } - - @Override - public Potion setIconIndex(int par1, int par2) - { - super.setIconIndex(par1, par2); - return this; - } -} diff --git a/1.7.2/main/java/WayofTime/alchemicalWizardry/common/renderer/block/RenderConduit.java b/1.7.2/main/java/WayofTime/alchemicalWizardry/common/renderer/block/RenderConduit.java deleted file mode 100644 index 6c93e00e..00000000 --- a/1.7.2/main/java/WayofTime/alchemicalWizardry/common/renderer/block/RenderConduit.java +++ /dev/null @@ -1,43 +0,0 @@ -package WayofTime.alchemicalWizardry.common.renderer.block; - -import WayofTime.alchemicalWizardry.common.renderer.model.ModelConduit; -import WayofTime.alchemicalWizardry.common.tileEntity.TEConduit; -import cpw.mods.fml.client.FMLClientHandler; -import net.minecraft.client.renderer.tileentity.TileEntitySpecialRenderer; -import net.minecraft.entity.Entity; -import net.minecraft.tileentity.TileEntity; -import net.minecraft.util.ResourceLocation; -import org.lwjgl.opengl.GL11; - -public class RenderConduit extends TileEntitySpecialRenderer -{ - private ModelConduit modelConduit = new ModelConduit(); - - @Override - public void renderTileEntityAt(TileEntity tileEntity, double d0, double d1, double d2, float f) - { - if (tileEntity instanceof TEConduit) - { - TEConduit tileConduit = (TEConduit) tileEntity; - GL11.glDisable(GL11.GL_LIGHTING); - GL11.glDisable(GL11.GL_CULL_FACE); - /** - * Render the ghost item inside of the Altar, slowly spinning - */ - GL11.glPushMatrix(); - GL11.glTranslatef((float) d0 + 0.5F, (float) d1 + 1.5F, (float) d2 + 0.5F); - ResourceLocation test = new ResourceLocation("alchemicalwizardry:textures/models/Conduit.png"); - FMLClientHandler.instance().getClient().renderEngine.bindTexture(test); - GL11.glPushMatrix(); - GL11.glRotatef(180F, 0.0F, 0.0F, 1.0F); - //GL11.glRotatef(90F, 0.0F, 0.0F, 1.0F); - //A reference to your Model file. Again, very important. - this.modelConduit.render((Entity) null, 0.0F, 0.0F, 0.0F, 0.0F, 0.0F, 0.0625F, tileConduit.getInputDirection(), tileConduit.getOutputDirection()); - //Tell it to stop rendering for both the PushMatrix's - GL11.glPopMatrix(); - GL11.glPopMatrix(); - GL11.glEnable(GL11.GL_CULL_FACE); - GL11.glEnable(GL11.GL_LIGHTING); - } - } -} \ No newline at end of file diff --git a/1.7.2/main/java/WayofTime/alchemicalWizardry/common/renderer/block/RenderPedestal.java b/1.7.2/main/java/WayofTime/alchemicalWizardry/common/renderer/block/RenderPedestal.java deleted file mode 100644 index b1f5b4ec..00000000 --- a/1.7.2/main/java/WayofTime/alchemicalWizardry/common/renderer/block/RenderPedestal.java +++ /dev/null @@ -1,252 +0,0 @@ -package WayofTime.alchemicalWizardry.common.renderer.block; - -import net.minecraft.client.renderer.entity.RenderItem; -import net.minecraft.client.renderer.entity.RenderManager; -import net.minecraft.client.renderer.tileentity.TileEntitySpecialRenderer; -import net.minecraft.entity.Entity; -import net.minecraft.entity.item.EntityItem; -import net.minecraft.item.ItemBlock; -import net.minecraft.item.ItemStack; -import net.minecraft.tileentity.TileEntity; -import net.minecraft.util.ResourceLocation; -import net.minecraftforge.common.util.ForgeDirection; - -import org.lwjgl.opengl.GL11; - -import WayofTime.alchemicalWizardry.common.renderer.model.ModelPedestal; -import WayofTime.alchemicalWizardry.common.tileEntity.TEPedestal; -import cpw.mods.fml.client.FMLClientHandler; - -public class RenderPedestal extends TileEntitySpecialRenderer -{ - private ModelPedestal modelPedestal = new ModelPedestal(); - private final RenderItem customRenderItem; - - public RenderPedestal() - { - customRenderItem = new RenderItem() - { - @Override - public boolean shouldBob() - { - return false; - } - }; - customRenderItem.setRenderManager(RenderManager.instance); - } - - @Override - public void renderTileEntityAt(TileEntity tileEntity, double d0, double d1, double d2, float f) - { - if (tileEntity instanceof TEPedestal) - { - TEPedestal tileAltar = (TEPedestal) tileEntity; - GL11.glDisable(GL11.GL_LIGHTING); - GL11.glDisable(GL11.GL_CULL_FACE); - /** - * Render the ghost item inside of the Altar, slowly spinning - */ - GL11.glPushMatrix(); - GL11.glTranslatef((float) d0 + 0.5F, (float) d1 + 1.5F, (float) d2 + 0.5F); - ResourceLocation test = new ResourceLocation("alchemicalwizardry:textures/models/Pedestal.png"); - FMLClientHandler.instance().getClient().renderEngine.bindTexture(test); - GL11.glPushMatrix(); - GL11.glRotatef(180F, 0.0F, 0.0F, 1.0F); - //A reference to your Model file. Again, very important. - this.modelPedestal.render((Entity) null, 0.0F, 0.0F, -0.1F, 0.0F, 0.0F, 0.0625F); - //Tell it to stop rendering for both the PushMatrix's - GL11.glPopMatrix(); - GL11.glPopMatrix(); - GL11.glPushMatrix(); - - if (tileAltar.getStackInSlot(0) != null) - { - float scaleFactor = getGhostItemScaleFactor(tileAltar.getStackInSlot(0)); - float rotationAngle = (float) (720.0 * (System.currentTimeMillis() & 0x3FFFL) / 0x3FFFL); - EntityItem ghostEntityItem = new EntityItem(tileAltar.getWorldObj()); - ghostEntityItem.hoverStart = 0.0F; - ghostEntityItem.setEntityItemStack(tileAltar.getStackInSlot(0)); - //translateGhostItemByOrientation(ghostEntityItem.getEntityItem(), d0, d1, d2, ForgeDirection.DOWN); - float displacement = 0.2F; - - if (ghostEntityItem.getEntityItem().getItem() instanceof ItemBlock) - { - GL11.glTranslatef((float) d0 + 0.5F, (float) d1 + displacement + 0.7F, (float) d2 + 0.5F); - } else - { - GL11.glTranslatef((float) d0 + 0.5F, (float) d1 + displacement + 0.6F, (float) d2 + 0.5F); - } - - //GL11.glTranslatef((float) tileAltar.xCoord + 0.5F, (float) tileAltar.yCoord + 2.7F, (float) tileAltar.zCoord + 0.5F); - GL11.glScalef(scaleFactor, scaleFactor, scaleFactor); - GL11.glRotatef(rotationAngle, 0.0F, 1.0F, 0.0F); - customRenderItem.doRender(ghostEntityItem, 0, 0, 0, 0, 0); - } - - GL11.glPopMatrix(); - GL11.glEnable(GL11.GL_CULL_FACE); - GL11.glEnable(GL11.GL_LIGHTING); - } - } - - private float getGhostItemScaleFactor(ItemStack itemStack) - { - float scaleFactor = 1.0F; - - if (itemStack != null) - { - if (itemStack.getItem() instanceof ItemBlock) - { - switch (customRenderItem.getMiniBlockCount(itemStack,(byte)1)) - { - case 1: - return 0.90F; - - case 2: - return 0.90F; - - case 3: - return 0.90F; - - case 4: - return 0.90F; - - case 5: - return 0.80F; - - default: - return 0.90F; - } - } else - { - switch (customRenderItem.getMiniItemCount(itemStack,(byte)1)) - { - case 1: - return 0.65F; - - case 2: - return 0.65F; - - case 3: - return 0.65F; - - case 4: - return 0.65F; - - default: - return 0.65F; - } - } - } - - return scaleFactor; - } - - private void translateGhostItemByOrientation(ItemStack ghostItemStack, double x, double y, double z, ForgeDirection forgeDirection) - { - if (ghostItemStack != null) - { - if (ghostItemStack.getItem() instanceof ItemBlock) - { - switch (forgeDirection) - { - case DOWN: - { - GL11.glTranslatef((float) x + 0.5F, (float) y + 2.7F, (float) z + 0.5F); - return; - } - - case UP: - { - GL11.glTranslatef((float) x + 0.5F, (float) y + 0.25F, (float) z + 0.5F); - return; - } - - case NORTH: - { - GL11.glTranslatef((float) x + 0.5F, (float) y + 0.5F, (float) z + 0.7F); - return; - } - - case SOUTH: - { - GL11.glTranslatef((float) x + 0.5F, (float) y + 0.5F, (float) z + 0.3F); - return; - } - - case EAST: - { - GL11.glTranslatef((float) x + 0.3F, (float) y + 0.5F, (float) z + 0.5F); - return; - } - - case WEST: - { - GL11.glTranslatef((float) x + 0.70F, (float) y + 0.5F, (float) z + 0.5F); - return; - } - - case UNKNOWN: - { - return; - } - - default: - { - return; - } - } - } else - { - switch (forgeDirection) - { - case DOWN: - { - GL11.glTranslatef((float) x + 0.5F, (float) y + 0.6F, (float) z + 0.5F); - return; - } - - case UP: - { - GL11.glTranslatef((float) x + 0.5F, (float) y + 0.20F, (float) z + 0.5F); - return; - } - - case NORTH: - { - GL11.glTranslatef((float) x + 0.5F, (float) y + 0.4F, (float) z + 0.7F); - return; - } - - case SOUTH: - { - GL11.glTranslatef((float) x + 0.5F, (float) y + 0.4F, (float) z + 0.3F); - return; - } - - case EAST: - { - GL11.glTranslatef((float) x + 0.3F, (float) y + 0.4F, (float) z + 0.5F); - return; - } - - case WEST: - { - GL11.glTranslatef((float) x + 0.70F, (float) y + 0.4F, (float) z + 0.5F); - return; - } - - case UNKNOWN: - { - return; - } - - default: - { - return; - } - } - } - } - } -} \ No newline at end of file diff --git a/1.7.2/main/java/WayofTime/alchemicalWizardry/common/renderer/block/RenderPlinth.java b/1.7.2/main/java/WayofTime/alchemicalWizardry/common/renderer/block/RenderPlinth.java deleted file mode 100644 index 14063a37..00000000 --- a/1.7.2/main/java/WayofTime/alchemicalWizardry/common/renderer/block/RenderPlinth.java +++ /dev/null @@ -1,256 +0,0 @@ -package WayofTime.alchemicalWizardry.common.renderer.block; - -import net.minecraft.client.renderer.entity.RenderItem; -import net.minecraft.client.renderer.entity.RenderManager; -import net.minecraft.client.renderer.tileentity.TileEntitySpecialRenderer; -import net.minecraft.entity.Entity; -import net.minecraft.entity.item.EntityItem; -import net.minecraft.item.ItemBlock; -import net.minecraft.item.ItemStack; -import net.minecraft.tileentity.TileEntity; -import net.minecraft.util.ResourceLocation; -import net.minecraftforge.common.util.ForgeDirection; - -import org.lwjgl.opengl.GL11; - -import WayofTime.alchemicalWizardry.common.renderer.model.ModelPlinth; -import WayofTime.alchemicalWizardry.common.tileEntity.TEPlinth; -import cpw.mods.fml.client.FMLClientHandler; - -public class RenderPlinth extends TileEntitySpecialRenderer -{ - private ModelPlinth modelPlinth = new ModelPlinth(); - private final RenderItem customRenderItem; - - public RenderPlinth() - { - customRenderItem = new RenderItem() - { - @Override - public boolean shouldBob() - { - return false; - } - }; - customRenderItem.setRenderManager(RenderManager.instance); - } - - @Override - public void renderTileEntityAt(TileEntity tileEntity, double d0, double d1, double d2, float f) - { - if (tileEntity instanceof TEPlinth) - { - TEPlinth tileAltar = (TEPlinth) tileEntity; - GL11.glDisable(GL11.GL_LIGHTING); - GL11.glDisable(GL11.GL_CULL_FACE); - /** - * Render the ghost item inside of the Altar, slowly spinning - */ - GL11.glPushMatrix(); - GL11.glTranslatef((float) d0 + 0.5F, (float) d1 + 1.5F, (float) d2 + 0.5F); - ResourceLocation test = new ResourceLocation("alchemicalwizardry:textures/models/Plinth.png"); - FMLClientHandler.instance().getClient().renderEngine.bindTexture(test); - GL11.glPushMatrix(); - GL11.glRotatef(180F, 0.0F, 0.0F, 1.0F); - //A reference to your Model file. Again, very important. - this.modelPlinth.render((Entity) null, 0.0F, 0.0F, -0.1F, 0.0F, 0.0F, 0.0625F); - //Tell it to stop rendering for both the PushMatrix's - GL11.glPopMatrix(); - GL11.glPopMatrix(); - GL11.glPushMatrix(); - - if (tileAltar.getStackInSlot(0) != null) - { - float scaleFactor = getGhostItemScaleFactor(tileAltar.getStackInSlot(0)); - EntityItem ghostEntityItem = new EntityItem(tileAltar.getWorldObj()); - ghostEntityItem.hoverStart = 0.0F; - ghostEntityItem.setEntityItemStack(tileAltar.getStackInSlot(0)); - //translateGhostItemByOrientation(ghostEntityItem.getEntityItem(), d0, d1, d2, ForgeDirection.DOWN); - float displacement = 0.2F; - - if (ghostEntityItem.getEntityItem().getItem() instanceof ItemBlock) - { - GL11.glTranslatef((float) d0 + 0.5F, (float) d1 + displacement + 0.7F, (float) d2 + 0.5F); - } else - { - GL11.glTranslatef((float) d0 + 0.5F, (float) d1 + displacement + 10.4f / 16.0f, (float) d2 + 0.5F - 0.1875f); - } - - //GL11.glTranslatef((float) tileAltar.xCoord + 0.5F, (float) tileAltar.yCoord + 2.7F, (float) tileAltar.zCoord + 0.5F); - GL11.glScalef(scaleFactor, scaleFactor, scaleFactor); - - if (!(ghostEntityItem.getEntityItem().getItem() instanceof ItemBlock)) - { - GL11.glRotatef(90f, 1.0f, 0.0f, 0.0F); - } - - customRenderItem.doRender(ghostEntityItem, 0, 0, 0, 0, 0); - } - - GL11.glPopMatrix(); - GL11.glEnable(GL11.GL_CULL_FACE); - GL11.glEnable(GL11.GL_LIGHTING); - } - } - - private float getGhostItemScaleFactor(ItemStack itemStack) - { - float scaleFactor = 2.0F / 0.9F; - - if (itemStack != null) - { - if (itemStack.getItem() instanceof ItemBlock) - { - switch (customRenderItem.getMiniBlockCount(itemStack, (byte) 1)) - { - case 1: - return 0.90F * scaleFactor / 2; - - case 2: - return 0.90F * scaleFactor / 2; - - case 3: - return 0.90F * scaleFactor / 2; - - case 4: - return 0.90F * scaleFactor / 2; - - case 5: - return 0.80F * scaleFactor / 2; - - default: - return 0.90F * scaleFactor / 2; - } - } else - { - switch (customRenderItem.getMiniItemCount(itemStack, (byte) 1)) - { - case 1: - return 0.65F * scaleFactor; - - case 2: - return 0.65F * scaleFactor; - - case 3: - return 0.65F * scaleFactor; - - case 4: - return 0.65F * scaleFactor; - - default: - return 0.65F * scaleFactor; - } - } - } - - return scaleFactor; - } - - private void translateGhostItemByOrientation(ItemStack ghostItemStack, double x, double y, double z, ForgeDirection forgeDirection) - { - if (ghostItemStack != null) - { - if (ghostItemStack.getItem() instanceof ItemBlock) - { - switch (forgeDirection) - { - case DOWN: - { - GL11.glTranslatef((float) x + 0.5F, (float) y + 2.7F, (float) z + 0.5F); - return; - } - - case UP: - { - GL11.glTranslatef((float) x + 0.5F, (float) y + 0.25F, (float) z + 0.5F); - return; - } - - case NORTH: - { - GL11.glTranslatef((float) x + 0.5F, (float) y + 0.5F, (float) z + 0.7F); - return; - } - - case SOUTH: - { - GL11.glTranslatef((float) x + 0.5F, (float) y + 0.5F, (float) z + 0.3F); - return; - } - - case EAST: - { - GL11.glTranslatef((float) x + 0.3F, (float) y + 0.5F, (float) z + 0.5F); - return; - } - - case WEST: - { - GL11.glTranslatef((float) x + 0.70F, (float) y + 0.5F, (float) z + 0.5F); - return; - } - - case UNKNOWN: - { - return; - } - - default: - { - return; - } - } - } else - { - switch (forgeDirection) - { - case DOWN: - { - GL11.glTranslatef((float) x + 0.5F, (float) y + 0.6F, (float) z + 0.5F); - return; - } - - case UP: - { - GL11.glTranslatef((float) x + 0.5F, (float) y + 0.20F, (float) z + 0.5F); - return; - } - - case NORTH: - { - GL11.glTranslatef((float) x + 0.5F, (float) y + 0.4F, (float) z + 0.7F); - return; - } - - case SOUTH: - { - GL11.glTranslatef((float) x + 0.5F, (float) y + 0.4F, (float) z + 0.3F); - return; - } - - case EAST: - { - GL11.glTranslatef((float) x + 0.3F, (float) y + 0.4F, (float) z + 0.5F); - return; - } - - case WEST: - { - GL11.glTranslatef((float) x + 0.70F, (float) y + 0.4F, (float) z + 0.5F); - return; - } - - case UNKNOWN: - { - return; - } - - default: - { - return; - } - } - } - } - } -} diff --git a/1.7.2/main/java/WayofTime/alchemicalWizardry/common/renderer/block/RenderSpellEffectBlock.java b/1.7.2/main/java/WayofTime/alchemicalWizardry/common/renderer/block/RenderSpellEffectBlock.java deleted file mode 100644 index 134a3f98..00000000 --- a/1.7.2/main/java/WayofTime/alchemicalWizardry/common/renderer/block/RenderSpellEffectBlock.java +++ /dev/null @@ -1,49 +0,0 @@ -package WayofTime.alchemicalWizardry.common.renderer.block; - -import net.minecraft.client.renderer.tileentity.TileEntitySpecialRenderer; -import net.minecraft.entity.Entity; -import net.minecraft.tileentity.TileEntity; -import net.minecraft.util.ResourceLocation; - -import org.lwjgl.opengl.GL11; - -import WayofTime.alchemicalWizardry.common.renderer.model.ModelSpellEffectBlock; -import WayofTime.alchemicalWizardry.common.tileEntity.TESpellEffectBlock; -import cpw.mods.fml.client.FMLClientHandler; - -public class RenderSpellEffectBlock extends TileEntitySpecialRenderer -{ - private ModelSpellEffectBlock modelSpellEffectBlock = new ModelSpellEffectBlock(); - - @Override - public void renderTileEntityAt(TileEntity tileEntity, double d0, double d1, double d2, float f) - { - if (tileEntity instanceof TESpellEffectBlock) - { - TESpellEffectBlock tileSpellBlock = (TESpellEffectBlock) tileEntity; - GL11.glDisable(GL11.GL_LIGHTING); - GL11.glDisable(GL11.GL_CULL_FACE); - /** - * Render the ghost item inside of the Altar, slowly spinning - */ - GL11.glPushMatrix(); - GL11.glTranslatef((float) d0 + 0.5F, (float) d1 + 1.5F, (float) d2 + 0.5F); - ResourceLocation test = new ResourceLocation("alchemicalwizardry:textures/models/BlockSpellEffect.png"); - int meta = tileEntity.getWorldObj().getBlockMetadata(tileEntity.xCoord, tileEntity.yCoord, tileEntity.zCoord); - String resource = tileSpellBlock.getResourceLocationForMeta(meta); - test = new ResourceLocation(resource); - - FMLClientHandler.instance().getClient().renderEngine.bindTexture(test); - GL11.glPushMatrix(); - GL11.glRotatef(180F, 0.0F, 0.0F, 1.0F); - //GL11.glRotatef(90F, 0.0F, 0.0F, 1.0F); - //A reference to your Model file. Again, very important. - this.modelSpellEffectBlock.render((Entity) null, 0.0F, 0.0F, 0.0F, 0.0F, 0.0F, 0.0625F, tileSpellBlock.getInputDirection(), tileSpellBlock.getOutputDirection()); - //Tell it to stop rendering for both the PushMatrix's - GL11.glPopMatrix(); - GL11.glPopMatrix(); - GL11.glEnable(GL11.GL_CULL_FACE); - GL11.glEnable(GL11.GL_LIGHTING); - } - } -} \ No newline at end of file diff --git a/1.7.2/main/java/WayofTime/alchemicalWizardry/common/renderer/block/RenderSpellEnhancementBlock.java b/1.7.2/main/java/WayofTime/alchemicalWizardry/common/renderer/block/RenderSpellEnhancementBlock.java deleted file mode 100644 index ae2b9f2c..00000000 --- a/1.7.2/main/java/WayofTime/alchemicalWizardry/common/renderer/block/RenderSpellEnhancementBlock.java +++ /dev/null @@ -1,49 +0,0 @@ -package WayofTime.alchemicalWizardry.common.renderer.block; - -import net.minecraft.client.renderer.tileentity.TileEntitySpecialRenderer; -import net.minecraft.entity.Entity; -import net.minecraft.tileentity.TileEntity; -import net.minecraft.util.ResourceLocation; - -import org.lwjgl.opengl.GL11; - -import WayofTime.alchemicalWizardry.common.renderer.model.ModelSpellEnhancementBlock; -import WayofTime.alchemicalWizardry.common.tileEntity.TESpellEnhancementBlock; -import cpw.mods.fml.client.FMLClientHandler; - -public class RenderSpellEnhancementBlock extends TileEntitySpecialRenderer -{ - private ModelSpellEnhancementBlock modelSpellEnhancementBlock = new ModelSpellEnhancementBlock(); - - @Override - public void renderTileEntityAt(TileEntity tileEntity, double d0, double d1, double d2, float f) - { - if (tileEntity instanceof TESpellEnhancementBlock) - { - TESpellEnhancementBlock tileSpellBlock = (TESpellEnhancementBlock) tileEntity; - GL11.glDisable(GL11.GL_LIGHTING); - GL11.glDisable(GL11.GL_CULL_FACE); - /** - * Render the ghost item inside of the Altar, slowly spinning - */ - GL11.glPushMatrix(); - GL11.glTranslatef((float) d0 + 0.5F, (float) d1 + 1.5F, (float) d2 + 0.5F); - ResourceLocation test = new ResourceLocation("alchemicalwizardry:textures/models/BlockSpellEnhancementPower1.png"); - int meta = tileEntity.getWorldObj().getBlockMetadata(tileEntity.xCoord, tileEntity.yCoord, tileEntity.zCoord); - String resource = tileSpellBlock.getResourceLocationForMeta(meta); - test = new ResourceLocation(resource); - - FMLClientHandler.instance().getClient().renderEngine.bindTexture(test); - GL11.glPushMatrix(); - GL11.glRotatef(180F, 0.0F, 0.0F, 1.0F); - //GL11.glRotatef(90F, 0.0F, 0.0F, 1.0F); - //A reference to your Model file. Again, very important. - this.modelSpellEnhancementBlock.render((Entity) null, 0.0F, 0.0F, 0.0F, 0.0F, 0.0F, 0.0625F, tileSpellBlock.getInputDirection(), tileSpellBlock.getOutputDirection()); - //Tell it to stop rendering for both the PushMatrix's - GL11.glPopMatrix(); - GL11.glPopMatrix(); - GL11.glEnable(GL11.GL_CULL_FACE); - GL11.glEnable(GL11.GL_LIGHTING); - } - } -} \ No newline at end of file diff --git a/1.7.2/main/java/WayofTime/alchemicalWizardry/common/renderer/block/RenderSpellModifierBlock.java b/1.7.2/main/java/WayofTime/alchemicalWizardry/common/renderer/block/RenderSpellModifierBlock.java deleted file mode 100644 index a01c0726..00000000 --- a/1.7.2/main/java/WayofTime/alchemicalWizardry/common/renderer/block/RenderSpellModifierBlock.java +++ /dev/null @@ -1,49 +0,0 @@ -package WayofTime.alchemicalWizardry.common.renderer.block; - -import net.minecraft.client.renderer.tileentity.TileEntitySpecialRenderer; -import net.minecraft.entity.Entity; -import net.minecraft.tileentity.TileEntity; -import net.minecraft.util.ResourceLocation; - -import org.lwjgl.opengl.GL11; - -import WayofTime.alchemicalWizardry.common.renderer.model.ModelSpellModifierBlock; -import WayofTime.alchemicalWizardry.common.tileEntity.TESpellModifierBlock; -import cpw.mods.fml.client.FMLClientHandler; - -public class RenderSpellModifierBlock extends TileEntitySpecialRenderer -{ - private ModelSpellModifierBlock modelSpellModifierBlock = new ModelSpellModifierBlock(); - - @Override - public void renderTileEntityAt(TileEntity tileEntity, double d0, double d1, double d2, float f) - { - if (tileEntity instanceof TESpellModifierBlock) - { - TESpellModifierBlock tileSpellBlock = (TESpellModifierBlock) tileEntity; - GL11.glDisable(GL11.GL_LIGHTING); - GL11.glDisable(GL11.GL_CULL_FACE); - /** - * Render the ghost item inside of the Altar, slowly spinning - */ - GL11.glPushMatrix(); - GL11.glTranslatef((float) d0 + 0.5F, (float) d1 + 1.5F, (float) d2 + 0.5F); - ResourceLocation test = new ResourceLocation("alchemicalwizardry:textures/models/BlockSpellModifier.png"); - int meta = tileEntity.getWorldObj().getBlockMetadata(tileEntity.xCoord, tileEntity.yCoord, tileEntity.zCoord); - String resource = tileSpellBlock.getResourceLocationForMeta(meta); - test = new ResourceLocation(resource); - - FMLClientHandler.instance().getClient().renderEngine.bindTexture(test); - GL11.glPushMatrix(); - GL11.glRotatef(180F, 0.0F, 0.0F, 1.0F); - //GL11.glRotatef(90F, 0.0F, 0.0F, 1.0F); - //A reference to your Model file. Again, very important. - this.modelSpellModifierBlock.render((Entity) null, 0.0F, 0.0F, 0.0F, 0.0F, 0.0F, 0.0625F, tileSpellBlock.getInputDirection(), tileSpellBlock.getOutputDirection()); - //Tell it to stop rendering for both the PushMatrix's - GL11.glPopMatrix(); - GL11.glPopMatrix(); - GL11.glEnable(GL11.GL_CULL_FACE); - GL11.glEnable(GL11.GL_LIGHTING); - } - } -} \ No newline at end of file diff --git a/1.7.2/main/java/WayofTime/alchemicalWizardry/common/renderer/block/RenderSpellParadigmBlock.java b/1.7.2/main/java/WayofTime/alchemicalWizardry/common/renderer/block/RenderSpellParadigmBlock.java deleted file mode 100644 index 47a5b271..00000000 --- a/1.7.2/main/java/WayofTime/alchemicalWizardry/common/renderer/block/RenderSpellParadigmBlock.java +++ /dev/null @@ -1,49 +0,0 @@ -package WayofTime.alchemicalWizardry.common.renderer.block; - -import net.minecraft.client.renderer.tileentity.TileEntitySpecialRenderer; -import net.minecraft.entity.Entity; -import net.minecraft.tileentity.TileEntity; -import net.minecraft.util.ResourceLocation; - -import org.lwjgl.opengl.GL11; - -import WayofTime.alchemicalWizardry.common.renderer.model.ModelSpellParadigmBlock; -import WayofTime.alchemicalWizardry.common.tileEntity.TESpellParadigmBlock; -import cpw.mods.fml.client.FMLClientHandler; - -public class RenderSpellParadigmBlock extends TileEntitySpecialRenderer -{ - private ModelSpellParadigmBlock modelSpellParadigmBlock = new ModelSpellParadigmBlock(); - - @Override - public void renderTileEntityAt(TileEntity tileEntity, double d0, double d1, double d2, float f) - { - if (tileEntity instanceof TESpellParadigmBlock) - { - TESpellParadigmBlock tileSpellBlock = (TESpellParadigmBlock) tileEntity; - GL11.glDisable(GL11.GL_LIGHTING); - GL11.glDisable(GL11.GL_CULL_FACE); - /** - * Render the ghost item inside of the Altar, slowly spinning - */ - GL11.glPushMatrix(); - GL11.glTranslatef((float) d0 + 0.5F, (float) d1 + 1.5F, (float) d2 + 0.5F); - ResourceLocation test = new ResourceLocation("alchemicalwizardry:textures/models/BlockSpellParadigm.png"); - int meta = tileEntity.getWorldObj().getBlockMetadata(tileEntity.xCoord, tileEntity.yCoord, tileEntity.zCoord); - String resource = tileSpellBlock.getResourceLocationForMeta(meta); - test = new ResourceLocation(resource); - - FMLClientHandler.instance().getClient().renderEngine.bindTexture(test); - GL11.glPushMatrix(); - GL11.glRotatef(180F, 0.0F, 0.0F, 1.0F); - //GL11.glRotatef(90F, 0.0F, 0.0F, 1.0F); - //A reference to your Model file. Again, very important. - this.modelSpellParadigmBlock.render((Entity) null, 0.0F, 0.0F, 0.0F, 0.0F, 0.0F, 0.0625F, tileSpellBlock.getInputDirection(), tileSpellBlock.getOutputDirection()); - //Tell it to stop rendering for both the PushMatrix's - GL11.glPopMatrix(); - GL11.glPopMatrix(); - GL11.glEnable(GL11.GL_CULL_FACE); - GL11.glEnable(GL11.GL_LIGHTING); - } - } -} \ No newline at end of file diff --git a/1.7.2/main/java/WayofTime/alchemicalWizardry/common/renderer/block/RenderWritingTable.java b/1.7.2/main/java/WayofTime/alchemicalWizardry/common/renderer/block/RenderWritingTable.java deleted file mode 100644 index ef098839..00000000 --- a/1.7.2/main/java/WayofTime/alchemicalWizardry/common/renderer/block/RenderWritingTable.java +++ /dev/null @@ -1,333 +0,0 @@ -package WayofTime.alchemicalWizardry.common.renderer.block; - -import net.minecraft.client.renderer.entity.RenderItem; -import net.minecraft.client.renderer.entity.RenderManager; -import net.minecraft.client.renderer.tileentity.TileEntitySpecialRenderer; -import net.minecraft.entity.Entity; -import net.minecraft.entity.item.EntityItem; -import net.minecraft.item.ItemBlock; -import net.minecraft.item.ItemStack; -import net.minecraft.tileentity.TileEntity; -import net.minecraft.util.ResourceLocation; -import net.minecraftforge.common.util.ForgeDirection; - -import org.lwjgl.opengl.GL11; - -import WayofTime.alchemicalWizardry.common.renderer.model.ModelWritingTable; -import WayofTime.alchemicalWizardry.common.tileEntity.TEWritingTable; -import cpw.mods.fml.client.FMLClientHandler; - -public class RenderWritingTable extends TileEntitySpecialRenderer -{ - private ModelWritingTable modelWritingTable = new ModelWritingTable(); - private final RenderItem customRenderItem; -// private final RenderItem customRenderItem1; -// private final RenderItem customRenderItem2; -// private final RenderItem customRenderItem3; -// private final RenderItem customRenderItem4; -// private final RenderItem customRenderItem5; - - public RenderWritingTable() - { - customRenderItem = new RenderItem() - { - @Override - public boolean shouldBob() - { - return false; - } - }; - customRenderItem.setRenderManager(RenderManager.instance); - } - - @Override - public void renderTileEntityAt(TileEntity tileEntity, double d0, double d1, double d2, float f) - { - if (tileEntity instanceof TEWritingTable) - { - TEWritingTable tileAltar = (TEWritingTable) tileEntity; - GL11.glDisable(GL11.GL_LIGHTING); - GL11.glDisable(GL11.GL_CULL_FACE); - GL11.glPushMatrix(); - GL11.glTranslatef((float) d0 + 0.5F, (float) d1 + 1.5F, (float) d2 + 0.5F); - ResourceLocation test = new ResourceLocation("alchemicalwizardry:textures/models/WritingTable.png"); - FMLClientHandler.instance().getClient().renderEngine.bindTexture(test); - GL11.glPushMatrix(); - GL11.glRotatef(180F, 0.0F, 0.0F, 1.0F); - //A reference to your Model file. Again, very important. - this.modelWritingTable.render((Entity) null, 0.0F, 0.0F, -0.1F, 0.0F, 0.0F, 0.0625F); - //Tell it to stop rendering for both the PushMatrix's - GL11.glPopMatrix(); - GL11.glPopMatrix(); - - for (int i = 1; i <= 6; i++) - { - GL11.glPushMatrix(); - - if (tileAltar.getStackInSlot(i) != null) - { - float scaleFactor = getGhostItemScaleFactor(tileAltar.getStackInSlot(i)); - float rotationAngle = (float) (720.0 * (System.currentTimeMillis() & 0x3FFFL) / 0x3FFFL); - EntityItem ghostEntityItem = new EntityItem(tileAltar.getWorldObj()); - ghostEntityItem.hoverStart = 0.0F; - ghostEntityItem.setEntityItemStack(tileAltar.getStackInSlot(i)); - //translateGhostItemByOrientation(ghostEntityItem.getEntityItem(), d0, d1, d2, ForgeDirection.DOWN); - float displacementX = getXDisplacementForSlot(i); - float displacementY = getYDisplacementForSlot(i); - float displacementZ = getZDisplacementForSlot(i); - - if (ghostEntityItem.getEntityItem().getItem() instanceof ItemBlock) - { - GL11.glTranslatef((float) d0 + 0.5F + displacementX, (float) d1 + displacementY + 0.7F, (float) d2 + 0.5F + displacementZ); - } else - { - GL11.glTranslatef((float) d0 + 0.5F + displacementX, (float) d1 + displacementY + 0.6F, (float) d2 + 0.5F + displacementZ); - } - - //GL11.glTranslatef((float) tileAltar.xCoord + 0.5F, (float) tileAltar.yCoord + 2.7F, (float) tileAltar.zCoord + 0.5F); - GL11.glScalef(scaleFactor, scaleFactor, scaleFactor); - GL11.glRotatef(rotationAngle, 0.0F, 1.0F, 0.0F); - customRenderItem.doRender(ghostEntityItem, 0, 0, 0, 0, 0); - } - - GL11.glPopMatrix(); - } - - GL11.glEnable(GL11.GL_CULL_FACE); - GL11.glEnable(GL11.GL_LIGHTING); - } - } - - private float getGhostItemScaleFactor(ItemStack itemStack) - { - float scaleFactor = 0.8F; - - if (itemStack != null) - { - if (itemStack.getItem() instanceof ItemBlock) - { - switch (customRenderItem.getMiniBlockCount(itemStack,(byte)1)) - { - case 1: - return 0.90F * scaleFactor; - - case 2: - return 0.90F * scaleFactor; - - case 3: - return 0.90F * scaleFactor; - - case 4: - return 0.90F * scaleFactor; - - case 5: - return 0.80F * scaleFactor; - - default: - return 0.90F * scaleFactor; - } - } else - { - switch (customRenderItem.getMiniItemCount(itemStack,(byte)1)) - { - case 1: - return 0.65F * scaleFactor; - - case 2: - return 0.65F * scaleFactor; - - case 3: - return 0.65F * scaleFactor; - - case 4: - return 0.65F * scaleFactor; - - default: - return 0.65F * scaleFactor; - } - } - } - - return scaleFactor; - } - - private float getXDisplacementForSlot(int slot) - { - switch (slot) - { - case 0: - return 0.0f; - - case 1: - return -0.375f; - - case 2: - return -0.125f; - - case 3: - return 0.3125f; - - case 4: - return 0.3125f; - - case 5: - return -0.125f; - - default: - return 0.0f; - } - } - - private float getYDisplacementForSlot(int slot) - { - switch (slot) - { - case 0: - return 0.4f; - - case 1: - return -0.35f; - - case 6: - return 0.4f; - - default: - return -0.35f; - } - } - - private float getZDisplacementForSlot(int slot) - { - switch (slot) - { - case 0: - return 0.0f; - - case 1: - return 0.0f; - - case 2: - return 0.375f; - - case 3: - return 0.25f; - - case 4: - return -0.25f; - - case 5: - return -0.375f; - - default: - return 0.0f; - } - } - - private void translateGhostItemByOrientation(ItemStack ghostItemStack, double x, double y, double z, ForgeDirection forgeDirection) - { - if (ghostItemStack != null) - { - if (ghostItemStack.getItem() instanceof ItemBlock) - { - switch (forgeDirection) - { - case DOWN: - { - GL11.glTranslatef((float) x + 0.5F, (float) y + 2.7F, (float) z + 0.5F); - return; - } - - case UP: - { - GL11.glTranslatef((float) x + 0.5F, (float) y + 0.25F, (float) z + 0.5F); - return; - } - - case NORTH: - { - GL11.glTranslatef((float) x + 0.5F, (float) y + 0.5F, (float) z + 0.7F); - return; - } - - case SOUTH: - { - GL11.glTranslatef((float) x + 0.5F, (float) y + 0.5F, (float) z + 0.3F); - return; - } - - case EAST: - { - GL11.glTranslatef((float) x + 0.3F, (float) y + 0.5F, (float) z + 0.5F); - return; - } - - case WEST: - { - GL11.glTranslatef((float) x + 0.70F, (float) y + 0.5F, (float) z + 0.5F); - return; - } - - case UNKNOWN: - { - return; - } - - default: - { - return; - } - } - } else - { - switch (forgeDirection) - { - case DOWN: - { - GL11.glTranslatef((float) x + 0.5F, (float) y + 0.6F, (float) z + 0.5F); - return; - } - - case UP: - { - GL11.glTranslatef((float) x + 0.5F, (float) y + 0.20F, (float) z + 0.5F); - return; - } - - case NORTH: - { - GL11.glTranslatef((float) x + 0.5F, (float) y + 0.4F, (float) z + 0.7F); - return; - } - - case SOUTH: - { - GL11.glTranslatef((float) x + 0.5F, (float) y + 0.4F, (float) z + 0.3F); - return; - } - - case EAST: - { - GL11.glTranslatef((float) x + 0.3F, (float) y + 0.4F, (float) z + 0.5F); - return; - } - - case WEST: - { - GL11.glTranslatef((float) x + 0.70F, (float) y + 0.4F, (float) z + 0.5F); - return; - } - - case UNKNOWN: - { - return; - } - - default: - { - return; - } - } - } - } - } -} \ No newline at end of file diff --git a/1.7.2/main/java/WayofTime/alchemicalWizardry/common/renderer/block/TEAltarRenderer.java b/1.7.2/main/java/WayofTime/alchemicalWizardry/common/renderer/block/TEAltarRenderer.java deleted file mode 100644 index 20353e77..00000000 --- a/1.7.2/main/java/WayofTime/alchemicalWizardry/common/renderer/block/TEAltarRenderer.java +++ /dev/null @@ -1,241 +0,0 @@ -package WayofTime.alchemicalWizardry.common.renderer.block; - -import net.minecraft.client.renderer.entity.RenderItem; -import net.minecraft.client.renderer.entity.RenderManager; -import net.minecraft.client.renderer.tileentity.TileEntitySpecialRenderer; -import net.minecraft.entity.item.EntityItem; -import net.minecraft.item.ItemBlock; -import net.minecraft.item.ItemStack; -import net.minecraft.tileentity.TileEntity; -import net.minecraftforge.common.util.ForgeDirection; - -import org.lwjgl.opengl.GL11; - -import WayofTime.alchemicalWizardry.common.renderer.model.ModelBloodAltar; -import WayofTime.alchemicalWizardry.common.tileEntity.TEAltar; - -public class TEAltarRenderer extends TileEntitySpecialRenderer -{ - private ModelBloodAltar modelBloodAltar = new ModelBloodAltar(); - private final RenderItem customRenderItem; - - public TEAltarRenderer() - { - customRenderItem = new RenderItem() - { - @Override - public boolean shouldBob() - { - return false; - } - }; - customRenderItem.setRenderManager(RenderManager.instance); - } - - @Override - public void renderTileEntityAt(TileEntity tileEntity, double d0, double d1, double d2, float f) - { - modelBloodAltar.renderBloodAltar((TEAltar) tileEntity, d0, d1, d2); - modelBloodAltar.renderBloodLevel((TEAltar) tileEntity, d0, d1, d2); - - if (tileEntity instanceof TEAltar) - { - TEAltar tileAltar = (TEAltar) tileEntity; - GL11.glDisable(GL11.GL_LIGHTING); - GL11.glDisable(GL11.GL_CULL_FACE); - /** - * Render the ghost item inside of the Altar, slowly spinning - */ - GL11.glPushMatrix(); - - if (tileAltar.getStackInSlot(0) != null) - { - float scaleFactor = getGhostItemScaleFactor(tileAltar.getStackInSlot(0)); - float rotationAngle = (float) (720.0 * (System.currentTimeMillis() & 0x3FFFL) / 0x3FFFL); - EntityItem ghostEntityItem = new EntityItem(tileAltar.getWorldObj()); - ghostEntityItem.hoverStart = 0.0F; - ghostEntityItem.setEntityItemStack(tileAltar.getStackInSlot(0)); - //translateGhostItemByOrientation(ghostEntityItem.getEntityItem(), d0, d1, d2, ForgeDirection.DOWN); - float displacement = 0.2F; - - if (ghostEntityItem.getEntityItem().getItem() instanceof ItemBlock) - { - GL11.glTranslatef((float) d0 + 0.5F, (float) d1 + displacement + 0.7F, (float) d2 + 0.5F); - } else - { - GL11.glTranslatef((float) d0 + 0.5F, (float) d1 + displacement + 0.6F, (float) d2 + 0.5F); - } - - //GL11.glTranslatef((float) tileAltar.xCoord + 0.5F, (float) tileAltar.yCoord + 2.7F, (float) tileAltar.zCoord + 0.5F); - GL11.glScalef(scaleFactor, scaleFactor, scaleFactor); - GL11.glRotatef(rotationAngle, 0.0F, 1.0F, 0.0F); - customRenderItem.doRender(ghostEntityItem, 0, 0, 0, 0, 0); - } - - GL11.glPopMatrix(); - GL11.glEnable(GL11.GL_CULL_FACE); - GL11.glEnable(GL11.GL_LIGHTING); - } - } - - private float getGhostItemScaleFactor(ItemStack itemStack) - { - float scaleFactor = 1.0F; - - if (itemStack != null) - { - if (itemStack.getItem() instanceof ItemBlock) - { - switch (customRenderItem.getMiniBlockCount(itemStack,(byte)1)) - { - case 1: - return 0.90F; - - case 2: - return 0.90F; - - case 3: - return 0.90F; - - case 4: - return 0.90F; - - case 5: - return 0.80F; - - default: - return 0.90F; - } - } else - { - switch (customRenderItem.getMiniItemCount(itemStack,(byte)1)) - { - case 1: - return 0.65F; - - case 2: - return 0.65F; - - case 3: - return 0.65F; - - case 4: - return 0.65F; - - default: - return 0.65F; - } - } - } - - return scaleFactor; - } - - private void translateGhostItemByOrientation(ItemStack ghostItemStack, double x, double y, double z, ForgeDirection forgeDirection) - { - if (ghostItemStack != null) - { - if (ghostItemStack.getItem() instanceof ItemBlock) - { - switch (forgeDirection) - { - case DOWN: - { - GL11.glTranslatef((float) x + 0.5F, (float) y + 2.7F, (float) z + 0.5F); - return; - } - - case UP: - { - GL11.glTranslatef((float) x + 0.5F, (float) y + 0.25F, (float) z + 0.5F); - return; - } - - case NORTH: - { - GL11.glTranslatef((float) x + 0.5F, (float) y + 0.5F, (float) z + 0.7F); - return; - } - - case SOUTH: - { - GL11.glTranslatef((float) x + 0.5F, (float) y + 0.5F, (float) z + 0.3F); - return; - } - - case EAST: - { - GL11.glTranslatef((float) x + 0.3F, (float) y + 0.5F, (float) z + 0.5F); - return; - } - - case WEST: - { - GL11.glTranslatef((float) x + 0.70F, (float) y + 0.5F, (float) z + 0.5F); - return; - } - - case UNKNOWN: - { - return; - } - - default: - { - return; - } - } - } else - { - switch (forgeDirection) - { - case DOWN: - { - GL11.glTranslatef((float) x + 0.5F, (float) y + 0.6F, (float) z + 0.5F); - return; - } - - case UP: - { - GL11.glTranslatef((float) x + 0.5F, (float) y + 0.20F, (float) z + 0.5F); - return; - } - - case NORTH: - { - GL11.glTranslatef((float) x + 0.5F, (float) y + 0.4F, (float) z + 0.7F); - return; - } - - case SOUTH: - { - GL11.glTranslatef((float) x + 0.5F, (float) y + 0.4F, (float) z + 0.3F); - return; - } - - case EAST: - { - GL11.glTranslatef((float) x + 0.3F, (float) y + 0.4F, (float) z + 0.5F); - return; - } - - case WEST: - { - GL11.glTranslatef((float) x + 0.70F, (float) y + 0.4F, (float) z + 0.5F); - return; - } - - case UNKNOWN: - { - return; - } - - default: - { - return; - } - } - } - } - } -} diff --git a/1.7.2/main/java/WayofTime/alchemicalWizardry/common/renderer/block/itemRender/TEAltarItemRenderer.java b/1.7.2/main/java/WayofTime/alchemicalWizardry/common/renderer/block/itemRender/TEAltarItemRenderer.java deleted file mode 100644 index 70cc34f7..00000000 --- a/1.7.2/main/java/WayofTime/alchemicalWizardry/common/renderer/block/itemRender/TEAltarItemRenderer.java +++ /dev/null @@ -1,81 +0,0 @@ -package WayofTime.alchemicalWizardry.common.renderer.block.itemRender; - -import WayofTime.alchemicalWizardry.common.renderer.model.ModelBloodAltar; -import cpw.mods.fml.client.FMLClientHandler; -import net.minecraft.item.ItemStack; -import net.minecraft.util.ResourceLocation; -import net.minecraftforge.client.IItemRenderer; -import org.lwjgl.opengl.GL11; - -public class TEAltarItemRenderer implements IItemRenderer -{ - private ModelBloodAltar modelBloodAltar; - - public TEAltarItemRenderer() - { - modelBloodAltar = new ModelBloodAltar(); - } - - @Override - public boolean handleRenderType(ItemStack item, ItemRenderType type) - { - // TODO Auto-generated method stub - return true; - } - - @Override - public boolean shouldUseRenderHelper(ItemRenderType type, ItemStack item, ItemRendererHelper helper) - { - // TODO Auto-generated method stub - return true; - } - - @Override - public void renderItem(ItemRenderType type, ItemStack item, Object... data) - { - float scale = 0.08f; - - // TODO Auto-generated method stub - switch (type) - { - case ENTITY: - { - renderBloodAltar(0f, 0f, 0f, scale); - return; - } - - case EQUIPPED: - { - renderBloodAltar(0f, 0f, 0f, scale); - return; - } - - case INVENTORY: - { - renderBloodAltar(0f, -0.25f, 0f, scale); - return; - } - - default: - return; - } - } - - private void renderBloodAltar(float x, float y, float z, float scale) - { - GL11.glPushMatrix(); - // Disable Lighting Calculations - GL11.glDisable(GL11.GL_LIGHTING); - GL11.glTranslatef(x, y, z); - GL11.glScalef(scale, scale, scale); - GL11.glRotatef(180f, 0f, 1f, 0f); - //FMLClientHandler.instance().getClient().renderEngine.bindTexture("/mods/OBJTutorial/textures/models/TutBox.png"); - ResourceLocation test = new ResourceLocation("alchemicalwizardry:textures/models/altar.png"); - //FMLClientHandler.instance().getClient().renderEngine.bindTexture("/mods/alchemicalwizardry/textures/models/altar.png"); - FMLClientHandler.instance().getClient().renderEngine.bindTexture(test); - modelBloodAltar.renderBloodAltar(); - // Re-enable Lighting Calculations - GL11.glEnable(GL11.GL_LIGHTING); - GL11.glPopMatrix(); - } -} diff --git a/1.7.2/main/java/WayofTime/alchemicalWizardry/common/renderer/block/itemRender/TEConduitItemRenderer.java b/1.7.2/main/java/WayofTime/alchemicalWizardry/common/renderer/block/itemRender/TEConduitItemRenderer.java deleted file mode 100644 index bf875589..00000000 --- a/1.7.2/main/java/WayofTime/alchemicalWizardry/common/renderer/block/itemRender/TEConduitItemRenderer.java +++ /dev/null @@ -1,95 +0,0 @@ -package WayofTime.alchemicalWizardry.common.renderer.block.itemRender; - -import net.minecraft.block.Block; -import net.minecraft.client.renderer.RenderBlocks; -import net.minecraft.client.renderer.Tessellator; -import net.minecraft.entity.Entity; -import net.minecraft.item.ItemStack; -import net.minecraft.util.IIcon; -import net.minecraft.util.ResourceLocation; -import net.minecraftforge.client.IItemRenderer; -import net.minecraftforge.common.util.ForgeDirection; - -import org.lwjgl.opengl.GL11; - -import WayofTime.alchemicalWizardry.ModBlocks; -import WayofTime.alchemicalWizardry.common.renderer.model.ModelConduit; -import cpw.mods.fml.client.FMLClientHandler; - -public class TEConduitItemRenderer implements IItemRenderer -{ - private ModelConduit modelConduit = new ModelConduit(); - - private void renderConduitItem(RenderBlocks render, ItemStack item, float translateX, float translateY, float translateZ) - { - Tessellator tessellator = Tessellator.instance; - - Block block = ModBlocks.blockConduit; - - GL11.glDisable(GL11.GL_LIGHTING); - GL11.glDisable(GL11.GL_CULL_FACE); - /** - * Render the ghost item inside of the Altar, slowly spinning - */ - GL11.glPushMatrix(); - GL11.glTranslatef((float) translateX + 0.5F, (float) translateY + 1.5F, (float) translateZ + 0.5F); - ResourceLocation test = new ResourceLocation("alchemicalwizardry:textures/models/Conduit.png"); - FMLClientHandler.instance().getClient().renderEngine.bindTexture(test); - GL11.glPushMatrix(); - GL11.glRotatef(180F, 0.0F, 0.0F, 1.0F); - //GL11.glRotatef(90F, 0.0F, 0.0F, 1.0F); - //A reference to your Model file. Again, very important. - this.modelConduit.render((Entity) null, 0.0F, 0.0F, 0.0F, 0.0F, 0.0F, 0.0625F, ForgeDirection.DOWN, ForgeDirection.UP); - //Tell it to stop rendering for both the PushMatrix's - GL11.glPopMatrix(); - GL11.glPopMatrix(); - GL11.glEnable(GL11.GL_CULL_FACE); - GL11.glEnable(GL11.GL_LIGHTING); - } - - - /** - * IItemRenderer implementation * - */ - @Override - public boolean handleRenderType(ItemStack item, ItemRenderType type) { - switch (type) { - case ENTITY: - return true; - case EQUIPPED: - return true; - case EQUIPPED_FIRST_PERSON: - return true; - case INVENTORY: - return true; - default: - return false; - } - } - - - @Override - public boolean shouldUseRenderHelper(ItemRenderType type, ItemStack item, ItemRendererHelper helper) { - return true; - } - - - @Override - public void renderItem(ItemRenderType type, ItemStack item, Object... data) { - switch (type) { - case ENTITY: - renderConduitItem((RenderBlocks) data[0], item, -0.5f, -0.5f, -0.5f); - break; - case EQUIPPED: - renderConduitItem((RenderBlocks) data[0], item, -0.4f, 0.50f, 0.35f); - break; - case EQUIPPED_FIRST_PERSON: - renderConduitItem((RenderBlocks) data[0], item, -0.4f, 0.50f, 0.35f); - break; - case INVENTORY: - renderConduitItem((RenderBlocks) data[0], item, -0.5f, -0.5f, -0.5f); - break; - default: - } - } -} diff --git a/1.7.2/main/java/WayofTime/alchemicalWizardry/common/renderer/block/itemRender/TESpellEffectBlockItemRenderer.java b/1.7.2/main/java/WayofTime/alchemicalWizardry/common/renderer/block/itemRender/TESpellEffectBlockItemRenderer.java deleted file mode 100644 index 30cb938a..00000000 --- a/1.7.2/main/java/WayofTime/alchemicalWizardry/common/renderer/block/itemRender/TESpellEffectBlockItemRenderer.java +++ /dev/null @@ -1,108 +0,0 @@ -package WayofTime.alchemicalWizardry.common.renderer.block.itemRender; - -import net.minecraft.block.Block; -import net.minecraft.client.renderer.RenderBlocks; -import net.minecraft.client.renderer.Tessellator; -import net.minecraft.entity.Entity; -import net.minecraft.item.ItemStack; -import net.minecraft.util.ResourceLocation; -import net.minecraftforge.client.IItemRenderer; -import net.minecraftforge.common.util.ForgeDirection; - -import org.lwjgl.opengl.GL11; - -import WayofTime.alchemicalWizardry.ModBlocks; -import WayofTime.alchemicalWizardry.common.renderer.model.ModelSpellEffectBlock; -import cpw.mods.fml.client.FMLClientHandler; - -public class TESpellEffectBlockItemRenderer implements IItemRenderer -{ - private ModelSpellEffectBlock modelSpellBlock = new ModelSpellEffectBlock(); - - private void renderConduitItem(RenderBlocks render, ItemStack item, float translateX, float translateY, float translateZ) - { - Tessellator tessellator = Tessellator.instance; - - Block block = ModBlocks.blockSpellEffect; - //Icon icon = item.getItem().getIconFromDamage(0); - - GL11.glDisable(GL11.GL_LIGHTING); - GL11.glDisable(GL11.GL_CULL_FACE); - /** - * Render the ghost item inside of the Altar, slowly spinning - */ - GL11.glPushMatrix(); - GL11.glTranslatef((float) translateX + 0.5F, (float) translateY + 1.5F, (float) translateZ + 0.5F); - ResourceLocation test = new ResourceLocation(this.getResourceLocationForMeta(item.getItemDamage())); - - FMLClientHandler.instance().getClient().renderEngine.bindTexture(test); - GL11.glPushMatrix(); - GL11.glRotatef(180F, 0.0F, 0.0F, 1.0F); - //GL11.glRotatef(90F, 0.0F, 0.0F, 1.0F); - //A reference to your Model file. Again, very important. - this.modelSpellBlock.render((Entity) null, 0.0F, 0.0F, 0.0F, 0.0F, 0.0F, 0.0625F, ForgeDirection.DOWN, ForgeDirection.UP); - //Tell it to stop rendering for both the PushMatrix's - GL11.glPopMatrix(); - GL11.glPopMatrix(); - GL11.glEnable(GL11.GL_CULL_FACE); - GL11.glEnable(GL11.GL_LIGHTING); - } - - - /** - * IItemRenderer implementation * - */ - @Override - public boolean handleRenderType(ItemStack item, ItemRenderType type) { - switch (type) { - case ENTITY: - return true; - case EQUIPPED: - return true; - case EQUIPPED_FIRST_PERSON: - return true; - case INVENTORY: - return true; - default: - return false; - } - } - - - @Override - public boolean shouldUseRenderHelper(ItemRenderType type, ItemStack item, ItemRendererHelper helper) { - return true; - } - - - @Override - public void renderItem(ItemRenderType type, ItemStack item, Object... data) { - switch (type) { - case ENTITY: - renderConduitItem((RenderBlocks) data[0], item, -0.5f, -0.5f, -0.5f); - break; - case EQUIPPED: - renderConduitItem((RenderBlocks) data[0], item, -0.4f, 0.50f, 0.35f); - break; - case EQUIPPED_FIRST_PERSON: - renderConduitItem((RenderBlocks) data[0], item, -0.4f, 0.50f, 0.35f); - break; - case INVENTORY: - renderConduitItem((RenderBlocks) data[0], item, -0.5f, -0.5f, -0.5f); - break; - default: - } - } - - public String getResourceLocationForMeta(int meta) - { - switch(meta) - { - case 0: return "alchemicalwizardry:textures/models/SpellEffectFire.png"; - case 1: return "alchemicalwizardry:textures/models/SpellEffectIce.png"; - case 2: return "alchemicalwizardry:textures/models/SpellEffectWind.png"; - case 3: return "alchemicalwizardry:textures/models/SpellEffectEarth.png"; - } - return ""; - } -} diff --git a/1.7.2/main/java/WayofTime/alchemicalWizardry/common/renderer/block/itemRender/TESpellEnhancementBlockItemRenderer.java b/1.7.2/main/java/WayofTime/alchemicalWizardry/common/renderer/block/itemRender/TESpellEnhancementBlockItemRenderer.java deleted file mode 100644 index a25da6d7..00000000 --- a/1.7.2/main/java/WayofTime/alchemicalWizardry/common/renderer/block/itemRender/TESpellEnhancementBlockItemRenderer.java +++ /dev/null @@ -1,114 +0,0 @@ -package WayofTime.alchemicalWizardry.common.renderer.block.itemRender; - -import net.minecraft.block.Block; -import net.minecraft.client.renderer.RenderBlocks; -import net.minecraft.client.renderer.Tessellator; -import net.minecraft.entity.Entity; -import net.minecraft.item.ItemStack; -import net.minecraft.util.ResourceLocation; -import net.minecraftforge.client.IItemRenderer; -import net.minecraftforge.common.util.ForgeDirection; - -import org.lwjgl.opengl.GL11; - -import WayofTime.alchemicalWizardry.ModBlocks; -import WayofTime.alchemicalWizardry.common.renderer.model.ModelSpellEnhancementBlock; -import cpw.mods.fml.client.FMLClientHandler; - -public class TESpellEnhancementBlockItemRenderer implements IItemRenderer -{ - private ModelSpellEnhancementBlock modelSpellBlock = new ModelSpellEnhancementBlock(); - - private void renderConduitItem(RenderBlocks render, ItemStack item, float translateX, float translateY, float translateZ) - { - Tessellator tessellator = Tessellator.instance; - - Block block = ModBlocks.blockSpellEffect; - //Icon icon = item.getItem().getIconFromDamage(0); - - GL11.glDisable(GL11.GL_LIGHTING); - GL11.glDisable(GL11.GL_CULL_FACE); - /** - * Render the ghost item inside of the Altar, slowly spinning - */ - GL11.glPushMatrix(); - GL11.glTranslatef((float) translateX + 0.5F, (float) translateY + 1.5F, (float) translateZ + 0.5F); - ResourceLocation test = new ResourceLocation(this.getResourceLocationForMeta(item.getItemDamage())); - - FMLClientHandler.instance().getClient().renderEngine.bindTexture(test); - GL11.glPushMatrix(); - GL11.glRotatef(180F, 0.0F, 0.0F, 1.0F); - //GL11.glRotatef(90F, 0.0F, 0.0F, 1.0F); - //A reference to your Model file. Again, very important. - this.modelSpellBlock.render((Entity) null, 0.0F, 0.0F, 0.0F, 0.0F, 0.0F, 0.0625F, ForgeDirection.DOWN, ForgeDirection.UP); - //Tell it to stop rendering for both the PushMatrix's - GL11.glPopMatrix(); - GL11.glPopMatrix(); - GL11.glEnable(GL11.GL_CULL_FACE); - GL11.glEnable(GL11.GL_LIGHTING); - } - - - /** - * IItemRenderer implementation * - */ - @Override - public boolean handleRenderType(ItemStack item, ItemRenderType type) { - switch (type) { - case ENTITY: - return true; - case EQUIPPED: - return true; - case EQUIPPED_FIRST_PERSON: - return true; - case INVENTORY: - return true; - default: - return false; - } - } - - - @Override - public boolean shouldUseRenderHelper(ItemRenderType type, ItemStack item, ItemRendererHelper helper) { - return true; - } - - - @Override - public void renderItem(ItemRenderType type, ItemStack item, Object... data) { - switch (type) { - case ENTITY: - renderConduitItem((RenderBlocks) data[0], item, -0.5f, -0.5f, -0.5f); - break; - case EQUIPPED: - renderConduitItem((RenderBlocks) data[0], item, -0.4f, 0.50f, 0.35f); - break; - case EQUIPPED_FIRST_PERSON: - renderConduitItem((RenderBlocks) data[0], item, -0.4f, 0.50f, 0.35f); - break; - case INVENTORY: - renderConduitItem((RenderBlocks) data[0], item, -0.5f, -0.5f, -0.5f); - break; - default: - } - } - - public String getResourceLocationForMeta(int meta) - { - switch(meta) - { - case 0: return "alchemicalwizardry:textures/models/SpellEnhancementPower1.png"; - case 1: return "alchemicalwizardry:textures/models/SpellEnhancementPower2.png"; - case 2: return "alchemicalwizardry:textures/models/SpellEnhancementPower3.png"; - case 5: return "alchemicalwizardry:textures/models/SpellEnhancementCost1.png"; - case 6: return "alchemicalwizardry:textures/models/SpellEnhancementCost2.png"; - case 7: return "alchemicalwizardry:textures/models/SpellEnhancementCost3.png"; - case 10: return "alchemicalwizardry:textures/models/SpellEnhancementPotency1.png"; - case 11: return "alchemicalwizardry:textures/models/SpellEnhancementPotency2.png"; - case 12: return "alchemicalwizardry:textures/models/SpellEnhancementPotency3.png"; - - } - return "alchemicalwizardry:textures/models/SpellEnhancementPower1.png"; - } -} diff --git a/1.7.2/main/java/WayofTime/alchemicalWizardry/common/renderer/block/itemRender/TESpellModifierBlockItemRenderer.java b/1.7.2/main/java/WayofTime/alchemicalWizardry/common/renderer/block/itemRender/TESpellModifierBlockItemRenderer.java deleted file mode 100644 index c7809540..00000000 --- a/1.7.2/main/java/WayofTime/alchemicalWizardry/common/renderer/block/itemRender/TESpellModifierBlockItemRenderer.java +++ /dev/null @@ -1,108 +0,0 @@ -package WayofTime.alchemicalWizardry.common.renderer.block.itemRender; - -import net.minecraft.block.Block; -import net.minecraft.client.renderer.RenderBlocks; -import net.minecraft.client.renderer.Tessellator; -import net.minecraft.entity.Entity; -import net.minecraft.item.ItemStack; -import net.minecraft.util.ResourceLocation; -import net.minecraftforge.client.IItemRenderer; -import net.minecraftforge.common.util.ForgeDirection; - -import org.lwjgl.opengl.GL11; - -import WayofTime.alchemicalWizardry.ModBlocks; -import WayofTime.alchemicalWizardry.common.renderer.model.ModelSpellModifierBlock; -import cpw.mods.fml.client.FMLClientHandler; - -public class TESpellModifierBlockItemRenderer implements IItemRenderer -{ - private ModelSpellModifierBlock modelSpellBlock = new ModelSpellModifierBlock(); - - private void renderConduitItem(RenderBlocks render, ItemStack item, float translateX, float translateY, float translateZ) - { - Tessellator tessellator = Tessellator.instance; - - Block block = ModBlocks.blockSpellEffect; - //Icon icon = item.getItem().getIconFromDamage(0); - - GL11.glDisable(GL11.GL_LIGHTING); - GL11.glDisable(GL11.GL_CULL_FACE); - /** - * Render the ghost item inside of the Altar, slowly spinning - */ - GL11.glPushMatrix(); - GL11.glTranslatef((float) translateX + 0.5F, (float) translateY + 1.5F, (float) translateZ + 0.5F); - ResourceLocation test = new ResourceLocation(this.getResourceLocationForMeta(item.getItemDamage())); - - FMLClientHandler.instance().getClient().renderEngine.bindTexture(test); - GL11.glPushMatrix(); - GL11.glRotatef(180F, 0.0F, 0.0F, 1.0F); - //GL11.glRotatef(90F, 0.0F, 0.0F, 1.0F); - //A reference to your Model file. Again, very important. - this.modelSpellBlock.render((Entity) null, 0.0F, 0.0F, 0.0F, 0.0F, 0.0F, 0.0625F, ForgeDirection.DOWN, ForgeDirection.UP); - //Tell it to stop rendering for both the PushMatrix's - GL11.glPopMatrix(); - GL11.glPopMatrix(); - GL11.glEnable(GL11.GL_CULL_FACE); - GL11.glEnable(GL11.GL_LIGHTING); - } - - - /** - * IItemRenderer implementation * - */ - @Override - public boolean handleRenderType(ItemStack item, ItemRenderType type) { - switch (type) { - case ENTITY: - return true; - case EQUIPPED: - return true; - case EQUIPPED_FIRST_PERSON: - return true; - case INVENTORY: - return true; - default: - return false; - } - } - - - @Override - public boolean shouldUseRenderHelper(ItemRenderType type, ItemStack item, ItemRendererHelper helper) { - return true; - } - - - @Override - public void renderItem(ItemRenderType type, ItemStack item, Object... data) { - switch (type) { - case ENTITY: - renderConduitItem((RenderBlocks) data[0], item, -0.5f, -0.5f, -0.5f); - break; - case EQUIPPED: - renderConduitItem((RenderBlocks) data[0], item, -0.4f, 0.50f, 0.35f); - break; - case EQUIPPED_FIRST_PERSON: - renderConduitItem((RenderBlocks) data[0], item, -0.4f, 0.50f, 0.35f); - break; - case INVENTORY: - renderConduitItem((RenderBlocks) data[0], item, -0.5f, -0.5f, -0.5f); - break; - default: - } - } - - public String getResourceLocationForMeta(int meta) - { - switch(meta) - { - case 0: return "alchemicalwizardry:textures/models/SpellModifierDefault.png"; - case 1: return "alchemicalwizardry:textures/models/SpellModifierOffensive.png"; - case 2: return "alchemicalwizardry:textures/models/SpellModifierDefensive.png"; - case 3: return "alchemicalwizardry:textures/models/SpellModifierEnvironmental.png"; - } - return "alchemicalwizardry:textures/models/SpellModifierDefault.png"; - } -} diff --git a/1.7.2/main/java/WayofTime/alchemicalWizardry/common/renderer/block/itemRender/TESpellParadigmBlockItemRenderer.java b/1.7.2/main/java/WayofTime/alchemicalWizardry/common/renderer/block/itemRender/TESpellParadigmBlockItemRenderer.java deleted file mode 100644 index 848d36ae..00000000 --- a/1.7.2/main/java/WayofTime/alchemicalWizardry/common/renderer/block/itemRender/TESpellParadigmBlockItemRenderer.java +++ /dev/null @@ -1,108 +0,0 @@ -package WayofTime.alchemicalWizardry.common.renderer.block.itemRender; - -import net.minecraft.block.Block; -import net.minecraft.client.renderer.RenderBlocks; -import net.minecraft.client.renderer.Tessellator; -import net.minecraft.entity.Entity; -import net.minecraft.item.ItemStack; -import net.minecraft.util.ResourceLocation; -import net.minecraftforge.client.IItemRenderer; -import net.minecraftforge.common.util.ForgeDirection; - -import org.lwjgl.opengl.GL11; - -import WayofTime.alchemicalWizardry.ModBlocks; -import WayofTime.alchemicalWizardry.common.renderer.model.ModelSpellParadigmBlock; -import cpw.mods.fml.client.FMLClientHandler; - -public class TESpellParadigmBlockItemRenderer implements IItemRenderer -{ - private ModelSpellParadigmBlock modelSpellBlock = new ModelSpellParadigmBlock(); - - private void renderConduitItem(RenderBlocks render, ItemStack item, float translateX, float translateY, float translateZ) - { - Tessellator tessellator = Tessellator.instance; - - Block block = ModBlocks.blockSpellEffect; - //Icon icon = item.getItem().getIconFromDamage(0); - - GL11.glDisable(GL11.GL_LIGHTING); - GL11.glDisable(GL11.GL_CULL_FACE); - /** - * Render the ghost item inside of the Altar, slowly spinning - */ - GL11.glPushMatrix(); - GL11.glTranslatef((float) translateX + 0.5F, (float) translateY + 1.5F, (float) translateZ + 0.5F); - ResourceLocation test = new ResourceLocation(this.getResourceLocationForMeta(item.getItemDamage())); - - FMLClientHandler.instance().getClient().renderEngine.bindTexture(test); - GL11.glPushMatrix(); - GL11.glRotatef(180F, 0.0F, 0.0F, 1.0F); - //GL11.glRotatef(90F, 0.0F, 0.0F, 1.0F); - //A reference to your Model file. Again, very important. - this.modelSpellBlock.render((Entity) null, 0.0F, 0.0F, 0.0F, 0.0F, 0.0F, 0.0625F, ForgeDirection.DOWN, ForgeDirection.UP); - //Tell it to stop rendering for both the PushMatrix's - GL11.glPopMatrix(); - GL11.glPopMatrix(); - GL11.glEnable(GL11.GL_CULL_FACE); - GL11.glEnable(GL11.GL_LIGHTING); - } - - - /** - * IItemRenderer implementation * - */ - @Override - public boolean handleRenderType(ItemStack item, ItemRenderType type) { - switch (type) { - case ENTITY: - return true; - case EQUIPPED: - return true; - case EQUIPPED_FIRST_PERSON: - return true; - case INVENTORY: - return true; - default: - return false; - } - } - - - @Override - public boolean shouldUseRenderHelper(ItemRenderType type, ItemStack item, ItemRendererHelper helper) { - return true; - } - - - @Override - public void renderItem(ItemRenderType type, ItemStack item, Object... data) { - switch (type) { - case ENTITY: - renderConduitItem((RenderBlocks) data[0], item, -0.5f, -0.5f, -0.5f); - break; - case EQUIPPED: - renderConduitItem((RenderBlocks) data[0], item, -0.4f, 0.50f, 0.35f); - break; - case EQUIPPED_FIRST_PERSON: - renderConduitItem((RenderBlocks) data[0], item, -0.4f, 0.50f, 0.35f); - break; - case INVENTORY: - renderConduitItem((RenderBlocks) data[0], item, -0.5f, -0.5f, -0.5f); - break; - default: - } - } - - public String getResourceLocationForMeta(int meta) - { - switch(meta) - { - case 0: return "alchemicalwizardry:textures/models/SpellParadigmProjectile.png"; - case 1: return "alchemicalwizardry:textures/models/SpellParadigmSelf.png"; - case 2: return "alchemicalwizardry:textures/models/SpellParadigmMelee.png"; - case 3: return "alchemicalwizardry:textures/models/SpellParadigmTool.png"; - } - return "alchemicalwizardry:textures/models/SpellParadigmProjectile.png"; - } -} diff --git a/1.7.2/main/java/WayofTime/alchemicalWizardry/common/renderer/block/itemRender/TEWritingTableItemRenderer.java b/1.7.2/main/java/WayofTime/alchemicalWizardry/common/renderer/block/itemRender/TEWritingTableItemRenderer.java deleted file mode 100644 index 9705879c..00000000 --- a/1.7.2/main/java/WayofTime/alchemicalWizardry/common/renderer/block/itemRender/TEWritingTableItemRenderer.java +++ /dev/null @@ -1,82 +0,0 @@ -package WayofTime.alchemicalWizardry.common.renderer.block.itemRender; - -import WayofTime.alchemicalWizardry.common.renderer.model.ModelWritingTable; -import cpw.mods.fml.client.FMLClientHandler; -import net.minecraft.entity.Entity; -import net.minecraft.item.ItemStack; -import net.minecraft.util.ResourceLocation; -import net.minecraftforge.client.IItemRenderer; -import org.lwjgl.opengl.GL11; - -public class TEWritingTableItemRenderer implements IItemRenderer -{ - private ModelWritingTable modelBloodAltar; - - public TEWritingTableItemRenderer() - { - modelBloodAltar = new ModelWritingTable(); - } - - @Override - public boolean handleRenderType(ItemStack item, ItemRenderType type) - { - // TODO Auto-generated method stub - return true; - } - - @Override - public boolean shouldUseRenderHelper(ItemRenderType type, ItemStack item, ItemRendererHelper helper) - { - // TODO Auto-generated method stub - return true; - } - - @Override - public void renderItem(ItemRenderType type, ItemStack item, Object... data) - { - float scale = 0.08f; - - // TODO Auto-generated method stub - switch (type) - { - case ENTITY: - { - renderBloodAltar(0f, 0f, 0f, scale); - return; - } - - case EQUIPPED: - { - renderBloodAltar(0f, 0f, 0f, scale); - return; - } - - case INVENTORY: - { - renderBloodAltar(0f, -0.25f, 0f, scale); - return; - } - - default: - return; - } - } - - private void renderBloodAltar(float x, float y, float z, float scale) - { - GL11.glPushMatrix(); - // Disable Lighting Calculations - GL11.glDisable(GL11.GL_LIGHTING); - GL11.glTranslatef(x, y, z); - GL11.glScalef(scale, scale, scale); - GL11.glRotatef(180f, 0f, 1f, 0f); - //FMLClientHandler.instance().getClient().renderEngine.bindTexture("/mods/OBJTutorial/textures/models/TutBox.png"); - ResourceLocation test = new ResourceLocation("alchemicalwizardry:textures/models/WritingTable.png"); - //FMLClientHandler.instance().getClient().renderEngine.bindTexture("/mods/alchemicalwizardry/textures/models/altar.png"); - FMLClientHandler.instance().getClient().renderEngine.bindTexture(test); - modelBloodAltar.render((Entity) null, 0, 0, 0, 0, 0, 0); - // Re-enable Lighting Calculations - GL11.glEnable(GL11.GL_LIGHTING); - GL11.glPopMatrix(); - } -} \ No newline at end of file diff --git a/1.7.2/main/java/WayofTime/alchemicalWizardry/common/renderer/mob/RenderBileDemon.java b/1.7.2/main/java/WayofTime/alchemicalWizardry/common/renderer/mob/RenderBileDemon.java deleted file mode 100644 index b09c6ca7..00000000 --- a/1.7.2/main/java/WayofTime/alchemicalWizardry/common/renderer/mob/RenderBileDemon.java +++ /dev/null @@ -1,27 +0,0 @@ -package WayofTime.alchemicalWizardry.common.renderer.mob; - -import WayofTime.alchemicalWizardry.common.entity.mob.EntityBileDemon; -import net.minecraft.client.model.ModelBase; -import net.minecraft.client.renderer.entity.RenderLiving; -import net.minecraft.entity.Entity; -import net.minecraft.util.ResourceLocation; - -public class RenderBileDemon extends RenderLiving -{ - private static final ResourceLocation field_110833_a = new ResourceLocation("alchemicalwizardry", "textures/models/BileDemon.png"); //refers to:YourMod/modelsTextureFile/optionalFile/yourTexture.png - - public RenderBileDemon(ModelBase par1ModelBase, float par2) - { - super(par1ModelBase, par2); - } - - public ResourceLocation func_110832_a(EntityBileDemon par1EntityBileDemon) - { - return field_110833_a; - } - - public ResourceLocation getEntityTexture(Entity par1Entity) - { - return this.func_110832_a((EntityBileDemon) par1Entity); - } -} \ No newline at end of file diff --git a/1.7.2/main/java/WayofTime/alchemicalWizardry/common/renderer/mob/RenderBoulderFist.java b/1.7.2/main/java/WayofTime/alchemicalWizardry/common/renderer/mob/RenderBoulderFist.java deleted file mode 100644 index 6db35edd..00000000 --- a/1.7.2/main/java/WayofTime/alchemicalWizardry/common/renderer/mob/RenderBoulderFist.java +++ /dev/null @@ -1,27 +0,0 @@ -package WayofTime.alchemicalWizardry.common.renderer.mob; - -import WayofTime.alchemicalWizardry.common.entity.mob.EntityBoulderFist; -import net.minecraft.client.model.ModelBase; -import net.minecraft.client.renderer.entity.RenderLiving; -import net.minecraft.entity.Entity; -import net.minecraft.util.ResourceLocation; - -public class RenderBoulderFist extends RenderLiving -{ - private static final ResourceLocation field_110833_a = new ResourceLocation("alchemicalwizardry", "textures/models/BoulderFist.png"); //refers to:YourMod/modelsTextureFile/optionalFile/yourTexture.png - - public RenderBoulderFist(ModelBase par1ModelBase, float par2) - { - super(par1ModelBase, par2); - } - - public ResourceLocation func_110832_a(EntityBoulderFist par1EntityBoulderFist) - { - return field_110833_a; - } - - public ResourceLocation getEntityTexture(Entity par1Entity) - { - return this.func_110832_a((EntityBoulderFist) par1Entity); - } -} diff --git a/1.7.2/main/java/WayofTime/alchemicalWizardry/common/renderer/mob/RenderElemental.java b/1.7.2/main/java/WayofTime/alchemicalWizardry/common/renderer/mob/RenderElemental.java deleted file mode 100644 index 485adc3a..00000000 --- a/1.7.2/main/java/WayofTime/alchemicalWizardry/common/renderer/mob/RenderElemental.java +++ /dev/null @@ -1,63 +0,0 @@ -package WayofTime.alchemicalWizardry.common.renderer.mob; - -import WayofTime.alchemicalWizardry.common.EntityAirElemental; -import WayofTime.alchemicalWizardry.common.entity.mob.*; -import net.minecraft.client.model.ModelBase; -import net.minecraft.client.renderer.entity.RenderLiving; -import net.minecraft.entity.Entity; -import net.minecraft.util.ResourceLocation; - -public class RenderElemental extends RenderLiving -{ - private static final ResourceLocation airBeacon = new ResourceLocation("alchemicalwizardry", "textures/models/AirFloatingBeacon.png"); //refers to:YourMod/modelsTextureFile/optionalFile/yourTexture.png - private static final ResourceLocation waterBeacon = new ResourceLocation("alchemicalwizardry", "textures/models/WaterFloatingBeacon.png"); - private static final ResourceLocation earthBeacon = new ResourceLocation("alchemicalwizardry", "textures/models/EarthFloatingBeacon.png"); - private static final ResourceLocation fireBeacon = new ResourceLocation("alchemicalwizardry", "textures/models/FireFloatingBeacon.png"); - private static final ResourceLocation shadeBeacon = new ResourceLocation("alchemicalwizardry", "textures/models/DarkFloatingBeacon.png"); - private static final ResourceLocation holyBeacon = new ResourceLocation("alchemicalwizardry", "textures/models/HolyFloatingBeacon.png"); - - public RenderElemental(ModelBase par1ModelBase, float par2) - { - super(par1ModelBase, par2); - } - - public ResourceLocation func_110832_a(EntityElemental par1EntityElemental) - { - if (par1EntityElemental instanceof EntityAirElemental) - { - return airBeacon; - } - - if (par1EntityElemental instanceof EntityWaterElemental) - { - return waterBeacon; - } - - if (par1EntityElemental instanceof EntityEarthElemental) - { - return earthBeacon; - } - - if (par1EntityElemental instanceof EntityFireElemental) - { - return fireBeacon; - } - - if (par1EntityElemental instanceof EntityShadeElemental) - { - return shadeBeacon; - } - - if (par1EntityElemental instanceof EntityHolyElemental) - { - return holyBeacon; - } - - return airBeacon; - } - - public ResourceLocation getEntityTexture(Entity par1Entity) - { - return this.func_110832_a((EntityElemental) par1Entity); - } -} \ No newline at end of file diff --git a/1.7.2/main/java/WayofTime/alchemicalWizardry/common/renderer/mob/RenderFallenAngel.java b/1.7.2/main/java/WayofTime/alchemicalWizardry/common/renderer/mob/RenderFallenAngel.java deleted file mode 100644 index 28a18eaa..00000000 --- a/1.7.2/main/java/WayofTime/alchemicalWizardry/common/renderer/mob/RenderFallenAngel.java +++ /dev/null @@ -1,30 +0,0 @@ -package WayofTime.alchemicalWizardry.common.renderer.mob; - -import WayofTime.alchemicalWizardry.common.entity.mob.EntityFallenAngel; -import cpw.mods.fml.relauncher.Side; -import cpw.mods.fml.relauncher.SideOnly; -import net.minecraft.client.model.ModelBase; -import net.minecraft.client.renderer.entity.RenderLiving; -import net.minecraft.entity.Entity; -import net.minecraft.util.ResourceLocation; - -@SideOnly(Side.CLIENT) -public class RenderFallenAngel extends RenderLiving -{ - private static final ResourceLocation field_110833_a = new ResourceLocation("alchemicalwizardry", "textures/models/WingedAngel.png"); //refers to:YourMod/modelsTextureFile/optionalFile/yourTexture.png - - public RenderFallenAngel(ModelBase par1ModelBase, float par2) - { - super(par1ModelBase, par2); - } - - public ResourceLocation func_110832_a(EntityFallenAngel par1EntityFallenAngel) - { - return field_110833_a; - } - - public ResourceLocation getEntityTexture(Entity par1Entity) - { - return this.func_110832_a((EntityFallenAngel) par1Entity); - } -} diff --git a/1.7.2/main/java/WayofTime/alchemicalWizardry/common/renderer/mob/RenderIceDemon.java b/1.7.2/main/java/WayofTime/alchemicalWizardry/common/renderer/mob/RenderIceDemon.java deleted file mode 100644 index e7dd7219..00000000 --- a/1.7.2/main/java/WayofTime/alchemicalWizardry/common/renderer/mob/RenderIceDemon.java +++ /dev/null @@ -1,27 +0,0 @@ -package WayofTime.alchemicalWizardry.common.renderer.mob; - -import WayofTime.alchemicalWizardry.common.entity.mob.EntityIceDemon; -import net.minecraft.client.model.ModelBase; -import net.minecraft.client.renderer.entity.RenderLiving; -import net.minecraft.entity.Entity; -import net.minecraft.util.ResourceLocation; - -public class RenderIceDemon extends RenderLiving -{ - private static final ResourceLocation field_110833_a = new ResourceLocation("alchemicalwizardry", "textures/models/IceDemon.png"); //refers to:YourMod/modelsTextureFile/optionalFile/yourTexture.png - - public RenderIceDemon(ModelBase par1ModelBase, float par2) - { - super(par1ModelBase, par2); - } - - public ResourceLocation func_110832_a(EntityIceDemon par1EntityIceDemon) - { - return field_110833_a; - } - - public ResourceLocation getEntityTexture(Entity par1Entity) - { - return this.func_110832_a((EntityIceDemon) par1Entity); - } -} diff --git a/1.7.2/main/java/WayofTime/alchemicalWizardry/common/renderer/mob/RenderLowerGuardian.java b/1.7.2/main/java/WayofTime/alchemicalWizardry/common/renderer/mob/RenderLowerGuardian.java deleted file mode 100644 index 4eeaa4d3..00000000 --- a/1.7.2/main/java/WayofTime/alchemicalWizardry/common/renderer/mob/RenderLowerGuardian.java +++ /dev/null @@ -1,27 +0,0 @@ -package WayofTime.alchemicalWizardry.common.renderer.mob; - -import WayofTime.alchemicalWizardry.common.entity.mob.EntityLowerGuardian; -import net.minecraft.client.model.ModelBase; -import net.minecraft.client.renderer.entity.RenderLiving; -import net.minecraft.entity.Entity; -import net.minecraft.util.ResourceLocation; - -public class RenderLowerGuardian extends RenderLiving -{ - private static final ResourceLocation field_110833_a = new ResourceLocation("alchemicalwizardry", "textures/models/LowerGuardian.png"); //refers to:YourMod/modelsTextureFile/optionalFile/yourTexture.png - - public RenderLowerGuardian(ModelBase par1ModelBase, float par2) - { - super(par1ModelBase, par2); - } - - public ResourceLocation func_110832_a(EntityLowerGuardian par1EntityLowerGuardian) - { - return field_110833_a; - } - - public ResourceLocation getEntityTexture(Entity par1Entity) - { - return this.func_110832_a((EntityLowerGuardian) par1Entity); - } -} diff --git a/1.7.2/main/java/WayofTime/alchemicalWizardry/common/renderer/mob/RenderShade.java b/1.7.2/main/java/WayofTime/alchemicalWizardry/common/renderer/mob/RenderShade.java deleted file mode 100644 index 38868202..00000000 --- a/1.7.2/main/java/WayofTime/alchemicalWizardry/common/renderer/mob/RenderShade.java +++ /dev/null @@ -1,27 +0,0 @@ -package WayofTime.alchemicalWizardry.common.renderer.mob; - -import WayofTime.alchemicalWizardry.common.entity.mob.EntityShade; -import net.minecraft.client.model.ModelBase; -import net.minecraft.client.renderer.entity.RenderLiving; -import net.minecraft.entity.Entity; -import net.minecraft.util.ResourceLocation; - -public class RenderShade extends RenderLiving -{ - private static final ResourceLocation field_110833_a = new ResourceLocation("alchemicalwizardry", "textures/models/ShadeMob.png"); //refers to:YourMod/modelsTextureFile/optionalFile/yourTexture.png - - public RenderShade(ModelBase par1ModelBase, float par2) - { - super(par1ModelBase, par2); - } - - public ResourceLocation func_110832_a(EntityShade par1EntityShade) - { - return field_110833_a; - } - - public ResourceLocation getEntityTexture(Entity par1Entity) - { - return this.func_110832_a((EntityShade) par1Entity); - } -} \ No newline at end of file diff --git a/1.7.2/main/java/WayofTime/alchemicalWizardry/common/renderer/mob/RenderSmallEarthGolem.java b/1.7.2/main/java/WayofTime/alchemicalWizardry/common/renderer/mob/RenderSmallEarthGolem.java deleted file mode 100644 index 16772df4..00000000 --- a/1.7.2/main/java/WayofTime/alchemicalWizardry/common/renderer/mob/RenderSmallEarthGolem.java +++ /dev/null @@ -1,27 +0,0 @@ -package WayofTime.alchemicalWizardry.common.renderer.mob; - -import WayofTime.alchemicalWizardry.common.entity.mob.EntitySmallEarthGolem; -import net.minecraft.client.model.ModelBase; -import net.minecraft.client.renderer.entity.RenderLiving; -import net.minecraft.entity.Entity; -import net.minecraft.util.ResourceLocation; - -public class RenderSmallEarthGolem extends RenderLiving -{ - private static final ResourceLocation field_110833_a = new ResourceLocation("alchemicalwizardry", "textures/models/SmallEarthGolem.png"); //refers to:YourMod/modelsTextureFile/optionalFile/yourTexture.png - - public RenderSmallEarthGolem(ModelBase par1ModelBase, float par2) - { - super(par1ModelBase, par2); - } - - public ResourceLocation func_110832_a(EntitySmallEarthGolem par1EntitySmallEarthGolem) - { - return field_110833_a; - } - - public ResourceLocation getEntityTexture(Entity par1Entity) - { - return this.func_110832_a((EntitySmallEarthGolem) par1Entity); - } -} diff --git a/1.7.2/main/java/WayofTime/alchemicalWizardry/common/renderer/mob/RenderWingedFireDemon.java b/1.7.2/main/java/WayofTime/alchemicalWizardry/common/renderer/mob/RenderWingedFireDemon.java deleted file mode 100644 index 826f7832..00000000 --- a/1.7.2/main/java/WayofTime/alchemicalWizardry/common/renderer/mob/RenderWingedFireDemon.java +++ /dev/null @@ -1,27 +0,0 @@ -package WayofTime.alchemicalWizardry.common.renderer.mob; - -import WayofTime.alchemicalWizardry.common.entity.mob.EntityWingedFireDemon; -import net.minecraft.client.model.ModelBase; -import net.minecraft.client.renderer.entity.RenderLiving; -import net.minecraft.entity.Entity; -import net.minecraft.util.ResourceLocation; - -public class RenderWingedFireDemon extends RenderLiving -{ - private static final ResourceLocation field_110833_a = new ResourceLocation("alchemicalwizardry", "textures/models/WingedFireDemon.png"); //refers to:YourMod/modelsTextureFile/optionalFile/yourTexture.png - - public RenderWingedFireDemon(ModelBase par1ModelBase, float par2) - { - super(par1ModelBase, par2); - } - - public ResourceLocation func_110832_a(EntityWingedFireDemon par1EntityWingedFireDemon) - { - return field_110833_a; - } - - public ResourceLocation getEntityTexture(Entity par1Entity) - { - return this.func_110832_a((EntityWingedFireDemon) par1Entity); - } -} diff --git a/1.7.2/main/java/WayofTime/alchemicalWizardry/common/renderer/model/ModelBileDemon.java b/1.7.2/main/java/WayofTime/alchemicalWizardry/common/renderer/model/ModelBileDemon.java deleted file mode 100644 index e09db58e..00000000 --- a/1.7.2/main/java/WayofTime/alchemicalWizardry/common/renderer/model/ModelBileDemon.java +++ /dev/null @@ -1,181 +0,0 @@ -package WayofTime.alchemicalWizardry.common.renderer.model; - -import net.minecraft.client.model.ModelBase; -import net.minecraft.client.model.ModelRenderer; -import net.minecraft.entity.Entity; -import net.minecraft.util.MathHelper; -import org.lwjgl.opengl.GL11; - -public class ModelBileDemon extends ModelBase -{ - //fields - ModelRenderer belly; - ModelRenderer chest; - ModelRenderer head; - ModelRenderer nose; - ModelRenderer leftHorn; - ModelRenderer leftArmSpacer; - ModelRenderer leftArm; - ModelRenderer leftChain; - ModelRenderer leftBall; - ModelRenderer rightHorn; - ModelRenderer rightChain; - ModelRenderer rightBall; - ModelRenderer rightArmSpacer; - ModelRenderer rightArm; - - public ModelBileDemon() - { - textureWidth = 128; - textureHeight = 64; - belly = new ModelRenderer(this, 0, 31); - belly.addBox(-8F, -1F, -10F, 16, 15, 18); - belly.setRotationPoint(0F, 10F, 0F); - belly.setTextureSize(128, 64); - belly.mirror = true; - setRotation(belly, 0F, 0F, 0F); - chest = new ModelRenderer(this, 70, 46); - chest.addBox(-7F, -4F, -6F, 14, 4, 14); - chest.setRotationPoint(0F, 10F, 0F); - chest.setTextureSize(128, 64); - chest.mirror = true; - setRotation(chest, -0.1115358F, 0F, 0F); - head = new ModelRenderer(this, 0, 0); - head.addBox(-4F, -8F, -4F, 8, 8, 8); - head.setRotationPoint(0F, 6F, 3F); - head.setTextureSize(128, 64); - head.mirror = true; - setRotation(head, 0F, 0F, 0F); - nose = new ModelRenderer(this, 0, 0); - nose.addBox(-1F, -4F, -5F, 2, 1, 1); - nose.setRotationPoint(0F, 6F, 3F); - nose.setTextureSize(128, 64); - nose.mirror = true; - setRotation(nose, 0F, 0F, 0F); - leftHorn = new ModelRenderer(this, 93, 1); - leftHorn.addBox(4F, -7F, 0F, 16, 1, 1); - leftHorn.setRotationPoint(0F, 6F, 3F); - leftHorn.setTextureSize(128, 64); - leftHorn.mirror = true; - setRotation(leftHorn, 0F, 0F, 0F); - leftArmSpacer = new ModelRenderer(this, 80, 1); - leftArmSpacer.addBox(0F, -2F, -2F, 1, 4, 4); - leftArmSpacer.setRotationPoint(7F, 8F, 3F); - leftArmSpacer.setTextureSize(128, 64); - leftArmSpacer.mirror = true; - setRotation(leftArmSpacer, 0F, 0F, 0F); - leftArm = new ModelRenderer(this, 62, 1); - leftArm.addBox(1F, -2F, -2F, 4, 18, 4); - leftArm.setRotationPoint(7F, 8F, 3F); - leftArm.setTextureSize(128, 64); - leftArm.mirror = true; - setRotation(leftArm, 0F, 0F, 0F); - leftChain = new ModelRenderer(this, 95, 5); - leftChain.addBox(17F, -6F, 0F, 1, 6, 1); - leftChain.setRotationPoint(0F, 6F, 3F); - leftChain.setTextureSize(128, 64); - leftChain.mirror = true; - setRotation(leftChain, 0F, 0F, 0F); - leftBall = new ModelRenderer(this, 107, 4); - leftBall.addBox(15F, 0F, -2F, 5, 5, 5); - leftBall.setRotationPoint(0F, 6F, 3F); - leftBall.setTextureSize(128, 64); - leftBall.mirror = true; - setRotation(leftBall, 0F, 0F, 0F); - rightHorn = new ModelRenderer(this, 93, 1); - rightHorn.mirror = true; - rightHorn.addBox(-20F, -7F, 0F, 16, 1, 1); - rightHorn.setRotationPoint(0F, 6F, 3F); - rightHorn.setTextureSize(128, 64); - rightHorn.mirror = true; - setRotation(rightHorn, 0F, 0F, 0F); - rightHorn.mirror = false; - rightChain = new ModelRenderer(this, 95, 5); - rightChain.mirror = true; - rightChain.addBox(-18F, -6F, 0F, 1, 6, 1); - rightChain.setRotationPoint(0F, 6F, 3F); - rightChain.setTextureSize(128, 64); - rightChain.mirror = true; - setRotation(rightChain, 0F, 0F, 0F); - rightChain.mirror = false; - rightBall = new ModelRenderer(this, 107, 4); - rightBall.mirror = true; - rightBall.addBox(-20F, 0F, -2F, 5, 5, 5); - rightBall.setRotationPoint(0F, 6F, 3F); - rightBall.setTextureSize(128, 64); - rightBall.mirror = true; - setRotation(rightBall, 0F, 0F, 0F); - rightBall.mirror = false; - rightArmSpacer = new ModelRenderer(this, 80, 1); - rightArmSpacer.mirror = true; - rightArmSpacer.addBox(-1F, -2F, -2F, 1, 4, 4); - rightArmSpacer.setRotationPoint(-7F, 8F, 3F); - rightArmSpacer.setTextureSize(128, 64); - rightArmSpacer.mirror = true; - setRotation(rightArmSpacer, 0F, 0F, 0F); - rightArmSpacer.mirror = false; - rightArm = new ModelRenderer(this, 62, 1); - rightArm.mirror = true; - rightArm.addBox(-5F, -2F, -2F, 4, 18, 4); - rightArm.setRotationPoint(-7F, 8F, 3F); - rightArm.setTextureSize(128, 64); - rightArm.mirror = true; - setRotation(rightArm, 0F, 0F, 0F); - rightArm.mirror = false; - } - - public void render(Entity entity, float f, float f1, float f2, float f3, float f4, float f5) - { - super.render(entity, f, f1, f2, f3, f4, f5); - setRotationAngles(f, f1, f2, f3, f4, f5, entity); - float scale = 1.3f; - GL11.glScalef(scale, scale, scale); - GL11.glTranslatef(0.0f, -(6.0f / 16.0f), 0.0f); - belly.render(f5); - chest.render(f5); - head.render(f5); - nose.render(f5); - leftHorn.render(f5); - leftArmSpacer.render(f5); - leftArm.render(f5); - leftChain.render(f5); - leftBall.render(f5); - rightHorn.render(f5); - rightChain.render(f5); - rightBall.render(f5); - rightArmSpacer.render(f5); - rightArm.render(f5); - } - - private void setRotation(ModelRenderer model, float x, float y, float z) - { - model.rotateAngleX = x; - model.rotateAngleY = y; - model.rotateAngleZ = z; - } - - public void setRotationAngles(float f, float f1, float f2, float f3, float f4, float f5, Entity entity) - { - super.setRotationAngles(f, f1, f2, f3, f4, f5, entity); - this.head.rotateAngleX = f4 / (180F / (float) Math.PI); - this.head.rotateAngleY = f3 / (180F / (float) Math.PI); - this.rightArm.rotateAngleX = MathHelper.cos(f * 0.3662F + (float) Math.PI) * 1.0F * f1; - this.leftArm.rotateAngleX = MathHelper.cos(f * 0.3662F) * 1.0F * f1; - this.rightArmSpacer.rotateAngleX = MathHelper.cos(f * 0.3662F + (float) Math.PI) * 1.0F * f1; - this.leftArmSpacer.rotateAngleX = MathHelper.cos(f * 0.3662F) * 1.0F * f1; - this.leftBall.rotateAngleX = this.head.rotateAngleX; - this.leftBall.rotateAngleY = this.head.rotateAngleY; - this.rightBall.rotateAngleX = this.head.rotateAngleX; - this.rightBall.rotateAngleY = this.head.rotateAngleY; - this.leftChain.rotateAngleX = this.head.rotateAngleX; - this.leftChain.rotateAngleY = this.head.rotateAngleY; - this.rightChain.rotateAngleX = this.head.rotateAngleX; - this.rightChain.rotateAngleY = this.head.rotateAngleY; - this.leftHorn.rotateAngleX = this.head.rotateAngleX; - this.leftHorn.rotateAngleY = this.head.rotateAngleY; - this.rightHorn.rotateAngleX = this.head.rotateAngleX; - this.rightHorn.rotateAngleY = this.head.rotateAngleY; - this.nose.rotateAngleX = this.head.rotateAngleX; - this.nose.rotateAngleY = this.head.rotateAngleY; - } -} \ No newline at end of file diff --git a/1.7.2/main/java/WayofTime/alchemicalWizardry/common/renderer/model/ModelBloodAltar.java b/1.7.2/main/java/WayofTime/alchemicalWizardry/common/renderer/model/ModelBloodAltar.java deleted file mode 100644 index eba407bb..00000000 --- a/1.7.2/main/java/WayofTime/alchemicalWizardry/common/renderer/model/ModelBloodAltar.java +++ /dev/null @@ -1,72 +0,0 @@ -package WayofTime.alchemicalWizardry.common.renderer.model; - -import net.minecraft.client.model.ModelBase; -import net.minecraft.util.ResourceLocation; -import net.minecraftforge.client.model.AdvancedModelLoader; -import net.minecraftforge.client.model.IModelCustom; - -import org.lwjgl.opengl.GL11; - -import WayofTime.alchemicalWizardry.common.tileEntity.TEAltar; -import cpw.mods.fml.client.FMLClientHandler; - -public class ModelBloodAltar extends ModelBase -{ - private IModelCustom modelBloodAltar; - private IModelCustom modelBloodLevel; //TODO - - public ModelBloodAltar() - { - modelBloodAltar = AdvancedModelLoader.loadModel(new ResourceLocation("alchemicalwizardry:models/bloodaltar-fixeUV.obj")); - modelBloodLevel = AdvancedModelLoader.loadModel(new ResourceLocation("alchemicalwizardry:models/bloodlevel.obj")); - } - - public void renderBloodAltar() - { - modelBloodAltar.renderAll(); - } - - public void renderBloodLevel() - { - modelBloodLevel.renderAll(); - } - - public void renderBloodAltar(TEAltar altar, double x, double y, double z) - { - float scale = 0.1f; - // Push a blank matrix onto the stack - GL11.glPushMatrix(); - // Move the object into the correct position on the block (because the OBJ's origin is the center of the object) - GL11.glTranslatef((float) x + 0.5f, (float) y, (float) z + 0.5f); - // Scale our object to about half-size in all directions (the OBJ file is a little large) - GL11.glScalef(scale, scale, scale); - // Bind the texture, so that OpenGL properly textures our block. - ResourceLocation test = new ResourceLocation("alchemicalwizardry:textures/models/altar.png"); - //FMLClientHandler.instance().getClient().renderEngine.bindTexture("/mods/alchemicalwizardry/textures/models/altar.png"); - FMLClientHandler.instance().getClient().renderEngine.bindTexture(test); - // Render the object, using modelTutBox.renderAll(); - this.renderBloodAltar(); - // Pop this matrix from the stack. - GL11.glPopMatrix(); - } - - public void renderBloodLevel(TEAltar altar, double x, double y, double z) - { - float scale = 0.1f; - // Push a blank matrix onto the stack - GL11.glPushMatrix(); - float level = altar.getFluidAmount(); - // Move the object into the correct position on the block (because the OBJ's origin is the center of the object) - GL11.glTranslatef((float) x + 0.5f, (float) y + 0.6499f + 0.12f * (level / altar.getCapacity()), (float) z + 0.5f); - // Scale our object to about half-size in all directions (the OBJ file is a little large) - GL11.glScalef(scale, scale, scale); - // Bind the texture, so that OpenGL properly textures our block. - ResourceLocation test = new ResourceLocation("alchemicalwizardry:textures/models/blood.png"); - //FMLClientHandler.instance().getClient().renderEngine.bindTexture("/mods/alchemicalwizardry/textures/models/altar.png"); - FMLClientHandler.instance().getClient().renderEngine.bindTexture(test); - // Render the object, using modelTutBox.renderAll(); - this.renderBloodLevel(); - // Pop this matrix from the stack. - GL11.glPopMatrix(); - } -} diff --git a/1.7.2/main/java/WayofTime/alchemicalWizardry/common/renderer/model/ModelBoulderFist.java b/1.7.2/main/java/WayofTime/alchemicalWizardry/common/renderer/model/ModelBoulderFist.java deleted file mode 100644 index a2cebd46..00000000 --- a/1.7.2/main/java/WayofTime/alchemicalWizardry/common/renderer/model/ModelBoulderFist.java +++ /dev/null @@ -1,153 +0,0 @@ -package WayofTime.alchemicalWizardry.common.renderer.model; - -import net.minecraft.client.model.ModelBase; -import net.minecraft.client.model.ModelRenderer; -import net.minecraft.entity.Entity; -import net.minecraft.util.MathHelper; - -public class ModelBoulderFist extends ModelBase -{ - //fields - ModelRenderer leftFist; - ModelRenderer leftArm; - ModelRenderer body; - ModelRenderer leftLeg1; - ModelRenderer leftLeg2; - ModelRenderer leftFoot; - ModelRenderer rightFist; - ModelRenderer rightArm; - ModelRenderer rightLeg1; - ModelRenderer rightLeg2; - ModelRenderer rightFoot; - ModelRenderer head; - - public ModelBoulderFist() - { - textureWidth = 64; - textureHeight = 64; - leftFist = new ModelRenderer(this, 33, 52); - leftFist.addBox(-1F, 12F, -3F, 6, 6, 6); - leftFist.setRotationPoint(5F, 6F, -6F); - leftFist.setTextureSize(64, 64); - leftFist.mirror = true; - setRotation(leftFist, 0F, 0F, 0F); - leftArm = new ModelRenderer(this, 48, 33); - leftArm.addBox(0F, -2F, -2F, 4, 14, 4); - leftArm.setRotationPoint(5F, 6F, -6F); - leftArm.setTextureSize(64, 64); - leftArm.mirror = true; - setRotation(leftArm, 0F, 0F, 0F); - body = new ModelRenderer(this, 0, 40); - body.addBox(-5F, -2F, -3F, 10, 18, 6); - body.setRotationPoint(0F, 6F, -6F); - body.setTextureSize(64, 64); - body.mirror = true; - setRotation(body, 1.22173F, 0F, 0F); - leftLeg1 = new ModelRenderer(this, 0, 25); - leftLeg1.addBox(0F, -1F, -1F, 4, 6, 2); - leftLeg1.setRotationPoint(5F, 11F, 7F); - leftLeg1.setTextureSize(64, 64); - leftLeg1.mirror = true; - setRotation(leftLeg1, -((float) Math.PI / 4F), 0F, 0F); - leftLeg2 = new ModelRenderer(this, 1, 25); - leftLeg2.addBox(0F, 5F, -1F, 4, 2, 12); - leftLeg2.setRotationPoint(5F, 11F, 7F); - leftLeg2.setTextureSize(64, 64); - leftLeg2.mirror = true; - setRotation(leftLeg2, -((float) Math.PI / 4F), 0F, 0F); - leftFoot = new ModelRenderer(this, 22, 25); - leftFoot.addBox(0F, 11F, -1F, 4, 2, 5); - leftFoot.setRotationPoint(5F, 11F, 7F); - leftFoot.setTextureSize(64, 64); - leftFoot.mirror = true; - setRotation(leftFoot, 0F, 0F, 0F); - rightFist = new ModelRenderer(this, 33, 52); - rightFist.mirror = true; - rightFist.addBox(-5F, 12F, -3F, 6, 6, 6); - rightFist.setRotationPoint(-5F, 6F, -6F); - rightFist.setTextureSize(64, 64); - rightFist.mirror = true; - setRotation(rightFist, 0F, 0F, 0F); - rightFist.mirror = false; - rightArm = new ModelRenderer(this, 48, 33); - rightArm.mirror = true; - rightArm.addBox(-4F, -2F, -2F, 4, 14, 4); - rightArm.setRotationPoint(-5F, 6F, -6F); - rightArm.setTextureSize(64, 64); - rightArm.mirror = true; - setRotation(rightArm, 0F, 0F, 0F); - rightArm.mirror = false; - rightLeg1 = new ModelRenderer(this, 0, 25); - rightLeg1.mirror = true; - rightLeg1.addBox(-4F, -1F, -1F, 4, 6, 2); - rightLeg1.setRotationPoint(-5F, 11F, 7F); - rightLeg1.setTextureSize(64, 64); - rightLeg1.mirror = true; - setRotation(rightLeg1, -((float) Math.PI / 4F), 0F, 0F); - rightLeg1.mirror = false; - rightLeg2 = new ModelRenderer(this, 1, 25); - rightLeg2.mirror = true; - rightLeg2.addBox(-4F, 5F, -1F, 4, 2, 12); - rightLeg2.setRotationPoint(-5F, 11F, 7F); - rightLeg2.setTextureSize(64, 64); - rightLeg2.mirror = true; - setRotation(rightLeg2, -((float) Math.PI / 4F), 0F, 0F); - rightLeg2.mirror = false; - rightFoot = new ModelRenderer(this, 22, 25); - rightFoot.mirror = true; - rightFoot.addBox(-4F, 11F, -1F, 4, 2, 5); - rightFoot.setRotationPoint(-5F, 11F, 7F); - rightFoot.setTextureSize(64, 64); - rightFoot.mirror = true; - setRotation(rightFoot, 0F, 0F, 0F); - rightFoot.mirror = false; - head = new ModelRenderer(this, 0, 0); - head.addBox(-3F, -5F, -5F, 6, 6, 6); - head.setRotationPoint(0F, 5F, -7F); - head.setTextureSize(64, 64); - head.mirror = true; - setRotation(head, 0F, 0F, 0F); - } - - public void render(Entity entity, float f, float f1, float f2, float f3, float f4, float f5) - { - super.render(entity, f, f1, f2, f3, f4, f5); - setRotationAngles(f, f1, f2, f3, f4, f5, entity); - leftFist.render(f5); - leftArm.render(f5); - body.render(f5); - leftLeg1.render(f5); - leftLeg2.render(f5); - leftFoot.render(f5); - rightFist.render(f5); - rightArm.render(f5); - rightLeg1.render(f5); - rightLeg2.render(f5); - rightFoot.render(f5); - head.render(f5); - } - - private void setRotation(ModelRenderer model, float x, float y, float z) - { - model.rotateAngleX = x; - model.rotateAngleY = y; - model.rotateAngleZ = z; - } - - public void setRotationAngles(float f, float f1, float f2, float f3, float f4, float f5, Entity entity) - { - super.setRotationAngles(f, f1, f2, f3, f4, f5, entity); - this.head.rotateAngleX = f4 / (180F / (float) Math.PI); - this.head.rotateAngleY = f3 / (180F / (float) Math.PI); - this.leftFoot.rotateAngleX = MathHelper.cos(f * 0.6662F) * 0.8F * f1; - this.rightFoot.rotateAngleX = MathHelper.cos(f * 0.6662F + (float) Math.PI) * 0.8F * f1; - this.leftLeg1.rotateAngleX = leftFoot.rotateAngleX - ((float) Math.PI / 4F); - this.rightLeg1.rotateAngleX = rightFoot.rotateAngleX - ((float) Math.PI / 4F); - this.leftLeg2.rotateAngleX = leftFoot.rotateAngleX - ((float) Math.PI / 4F); - this.rightLeg2.rotateAngleX = rightFoot.rotateAngleX - ((float) Math.PI / 4F); - this.rightArm.rotateAngleX = MathHelper.cos(f * 0.6662F + (float) Math.PI) * 0.9f * f1; - this.leftArm.rotateAngleX = MathHelper.cos(f * 0.6662F) * 0.9f * f1; - this.leftFist.rotateAngleX = leftArm.rotateAngleX; - this.rightFist.rotateAngleX = rightArm.rotateAngleX; - } -} \ No newline at end of file diff --git a/1.7.2/main/java/WayofTime/alchemicalWizardry/common/renderer/model/ModelConduit.java b/1.7.2/main/java/WayofTime/alchemicalWizardry/common/renderer/model/ModelConduit.java deleted file mode 100644 index a6a510c4..00000000 --- a/1.7.2/main/java/WayofTime/alchemicalWizardry/common/renderer/model/ModelConduit.java +++ /dev/null @@ -1,287 +0,0 @@ -package WayofTime.alchemicalWizardry.common.renderer.model; - -//Date: 11/26/2013 1:57:16 PM -//Template version 1.1 -//Java generated by Techne -//Keep in mind that you still need to fill in some blanks -//- ZeuX - -import net.minecraft.client.model.ModelBase; -import net.minecraft.client.model.ModelRenderer; -import net.minecraft.entity.Entity; -import net.minecraftforge.common.util.ForgeDirection; - -public class ModelConduit extends ModelBase -{ - //fields - ModelRenderer curvedInput; - ModelRenderer curvedOutput; - ModelRenderer straightBar1; - ModelRenderer curvedBar1; - ModelRenderer spacer1; - ModelRenderer straightBar2; - ModelRenderer curvedBar2; - ModelRenderer spacer2; - ModelRenderer straightBar3; - ModelRenderer curvedBar3; - ModelRenderer straightBar4; - ModelRenderer curvedBar4; - ModelRenderer spacer3; - ModelRenderer spacer4; - ModelRenderer spacer5; - ModelRenderer spacer6; - ModelRenderer spacer7; - ModelRenderer spacer8; - - public ModelConduit() - { - textureWidth = 64; - textureHeight = 32; - curvedInput = new ModelRenderer(this, 0, 0); - curvedInput.addBox(-2F, -2F, -8F, 4, 4, 10); - curvedInput.setRotationPoint(0F, 16F, 0F); - curvedInput.setTextureSize(64, 32); - curvedInput.mirror = true; - setRotation(curvedInput, 0F, 0F, 0F); - curvedOutput = new ModelRenderer(this, 18, 0); - curvedOutput.addBox(2F, -2F, -2F, 6, 4, 4); - curvedOutput.setRotationPoint(0F, 16F, 0F); - curvedOutput.setTextureSize(64, 32); - curvedOutput.mirror = true; - setRotation(curvedOutput, 0F, 0F, 0F); - straightBar1 = new ModelRenderer(this, 0, 17); - straightBar1.addBox(-5F, 3F, -8F, 2, 2, 13); - straightBar1.setRotationPoint(0F, 16F, 0F); - straightBar1.setTextureSize(64, 32); - straightBar1.mirror = true; - setRotation(straightBar1, 0F, 0F, 0F); - curvedBar1 = new ModelRenderer(this, 29, 10); - curvedBar1.addBox(-5F, 3F, 3F, 13, 2, 2); - curvedBar1.setRotationPoint(0F, 16F, 0F); - curvedBar1.setTextureSize(64, 32); - curvedBar1.mirror = true; - setRotation(curvedBar1, 0F, 0F, 0F); - spacer1 = new ModelRenderer(this, 40, 0); - spacer1.addBox(-5.5F, 2.5F, 2.5F, 3, 3, 3); - spacer1.setRotationPoint(0F, 16F, 0F); - spacer1.setTextureSize(64, 32); - spacer1.mirror = true; - setRotation(spacer1, 0F, 0F, 0F); - straightBar2 = new ModelRenderer(this, 0, 17); - straightBar2.addBox(-5F, -5F, -8F, 2, 2, 13); - straightBar2.setRotationPoint(0F, 16F, 0F); - straightBar2.setTextureSize(64, 32); - straightBar2.mirror = true; - setRotation(straightBar2, 0F, 0F, 0F); - curvedBar2 = new ModelRenderer(this, 29, 10); - curvedBar2.addBox(-5F, -5F, 3F, 13, 2, 2); - curvedBar2.setRotationPoint(0F, 16F, 0F); - curvedBar2.setTextureSize(64, 32); - curvedBar2.mirror = true; - setRotation(curvedBar2, 0F, 0F, 0F); - spacer2 = new ModelRenderer(this, 40, 0); - spacer2.addBox(-5.5F, -5.5F, 2.5F, 3, 3, 3); - spacer2.setRotationPoint(0F, 16F, 0F); - spacer2.setTextureSize(64, 32); - spacer2.mirror = true; - setRotation(spacer2, 0F, 0F, 0F); - straightBar3 = new ModelRenderer(this, 0, 17); - straightBar3.addBox(3F, 3F, -8F, 2, 2, 13); - straightBar3.setRotationPoint(0F, 16F, 0F); - straightBar3.setTextureSize(64, 32); - straightBar3.mirror = true; - setRotation(straightBar3, 0F, 0F, 0F); - curvedBar3 = new ModelRenderer(this, 29, 10); - curvedBar3.addBox(-5F, 3F, -5F, 13, 2, 2); - curvedBar3.setRotationPoint(0F, 16F, 0F); - curvedBar3.setTextureSize(64, 32); - curvedBar3.mirror = true; - setRotation(curvedBar3, 0F, 0F, 0F); - straightBar4 = new ModelRenderer(this, 0, 17); - straightBar4.addBox(3F, -5F, -8F, 2, 2, 13); - straightBar4.setRotationPoint(0F, 16F, 0F); - straightBar4.setTextureSize(64, 32); - straightBar4.mirror = true; - setRotation(straightBar4, 0F, 0F, 0F); - curvedBar4 = new ModelRenderer(this, 29, 10); - curvedBar4.addBox(-5F, -5F, -5F, 13, 2, 2); - curvedBar4.setRotationPoint(0F, 16F, 0F); - curvedBar4.setTextureSize(64, 32); - curvedBar4.mirror = true; - setRotation(curvedBar4, 0F, 0F, 0F); - spacer3 = new ModelRenderer(this, 40, 0); - spacer3.addBox(2.5F, 2.5F, 2.5F, 3, 3, 3); - spacer3.setRotationPoint(0F, 16F, 0F); - spacer3.setTextureSize(64, 32); - spacer3.mirror = true; - setRotation(spacer3, 0F, 0F, 0F); - spacer4 = new ModelRenderer(this, 40, 0); - spacer4.addBox(2.5F, 2.5F, -5.5F, 3, 3, 3); - spacer4.setRotationPoint(0F, 16F, 0F); - spacer4.setTextureSize(64, 32); - spacer4.mirror = true; - setRotation(spacer4, 0F, 0F, 0F); - spacer5 = new ModelRenderer(this, 40, 0); - spacer5.addBox(-5.5F, 2.5F, -5.484F, 3, 3, 3); - spacer5.setRotationPoint(0F, 16F, 0F); - spacer5.setTextureSize(64, 32); - spacer5.mirror = true; - setRotation(spacer5, 0F, 0F, 0F); - spacer6 = new ModelRenderer(this, 40, 0); - spacer6.addBox(2.5F, -5.5F, 2.5F, 3, 3, 3); - spacer6.setRotationPoint(0F, 16F, 0F); - spacer6.setTextureSize(64, 32); - spacer6.mirror = true; - setRotation(spacer6, 0F, 0F, 0F); - spacer7 = new ModelRenderer(this, 40, 0); - spacer7.addBox(2.5F, -5.5F, -5.5F, 3, 3, 3); - spacer7.setRotationPoint(0F, 16F, 0F); - spacer7.setTextureSize(64, 32); - spacer7.mirror = true; - setRotation(spacer7, 0F, 0F, 0F); - spacer8 = new ModelRenderer(this, 40, 0); - spacer8.addBox(-5.5F, -5.5F, -5.5F, 3, 3, 3); - spacer8.setRotationPoint(0F, 16F, 0F); - spacer8.setTextureSize(64, 32); - spacer8.mirror = true; - setRotation(spacer8, 0F, 0F, 0F); - } - - public void render(Entity entity, float f, float f1, float f2, float f3, float f4, float f5, ForgeDirection input, ForgeDirection output) - { - super.render(entity, f, f1, f2, f3, f4, f5); - setRotationAngles(f, f1, f2, f3, f4, f5, entity); - float xInputRot = 0.0f; - float yInputRot = 0.0f; - float zInputRot = 0.0f; - float xOutputRot = 0.0f; - float yOutputRot = 0.0f; - float zOutputRot = 0.0f; - - switch (input) - { - case NORTH: - xInputRot = 0.0f; - yInputRot = 0.0f; - zInputRot = 0.0f; - break; - - case EAST: - xInputRot = 0.0f; - yInputRot = (float) (0.5f * Math.PI); - zInputRot = 0.0f; - break; - - case SOUTH: - xInputRot = 0.0f; - yInputRot = (float) (1.0f * Math.PI); - zInputRot = 0.0f; - break; - - case WEST: - xInputRot = 0.0f; - yInputRot = (float) (-0.5f * Math.PI); - zInputRot = 0.0f; - break; - - case UP: - xInputRot = (float) (-0.5f * Math.PI); - yInputRot = 0.0f; - zInputRot = 0.0f; - break; - - case DOWN: - xInputRot = (float) (0.5f * Math.PI); - yInputRot = 0.0f; - zInputRot = 0.0f; - break; - - default: - break; - } - - switch (output) - { - case NORTH: - xOutputRot = 0.0f; - yOutputRot = (float) (0.5f * Math.PI); - zOutputRot = 0.0f; - break; - - case EAST: - xOutputRot = 0.0f; - yOutputRot = (float) (1.0f * Math.PI); - zOutputRot = 0.0f; - break; - - case SOUTH: - xOutputRot = 0.0f; - yOutputRot = (float) (-0.5f * Math.PI); - zOutputRot = 0.0f; - break; - - case WEST: - xOutputRot = 0.0f; - yOutputRot = 0.0f; - zOutputRot = 0.0f; - break; - - case UP: - xOutputRot = 0.0f; - yOutputRot = 0.0f; - zOutputRot = (float) (-0.5f * Math.PI); - break; - - case DOWN: - xOutputRot = 0.0f; - yOutputRot = 0.0f; - zOutputRot = (float) (0.5f * Math.PI); - break; - - default: - break; - } - - this.setRotation(curvedInput, xInputRot, yInputRot, zInputRot); - this.setRotation(curvedOutput, xOutputRot, yOutputRot, zOutputRot); - this.setRotation(straightBar1, xInputRot, yInputRot, zInputRot); - this.setRotation(curvedBar1, xOutputRot, yOutputRot, zOutputRot); - this.setRotation(straightBar2, xInputRot, yInputRot, zInputRot); - this.setRotation(curvedBar2, xOutputRot, yOutputRot, zOutputRot); - this.setRotation(straightBar3, xInputRot, yInputRot, zInputRot); - this.setRotation(curvedBar3, xOutputRot, yOutputRot, zOutputRot); - this.setRotation(straightBar4, xInputRot, yInputRot, zInputRot); - this.setRotation(curvedBar4, xOutputRot, yOutputRot, zOutputRot); - curvedInput.render(f5); - curvedOutput.render(f5); - //setRotation(curvedOutput,0F,-(float)(Math.PI/2),0F); - straightBar1.render(f5); - curvedBar1.render(f5); - spacer1.render(f5); - straightBar2.render(f5); - curvedBar2.render(f5); - spacer2.render(f5); - straightBar3.render(f5); - curvedBar3.render(f5); - straightBar4.render(f5); - curvedBar4.render(f5); - spacer3.render(f5); - spacer4.render(f5); - spacer5.render(f5); - spacer6.render(f5); - spacer7.render(f5); - spacer8.render(f5); - } - - private void setRotation(ModelRenderer model, float x, float y, float z) - { - model.rotateAngleX = x; - model.rotateAngleY = y; - model.rotateAngleZ = z; - } - - public void setRotationAngles(float f, float f1, float f2, float f3, float f4, float f5, Entity entity) - { - super.setRotationAngles(f, f1, f2, f3, f4, f5, entity); - } -} diff --git a/1.7.2/main/java/WayofTime/alchemicalWizardry/common/renderer/model/ModelElemental.java b/1.7.2/main/java/WayofTime/alchemicalWizardry/common/renderer/model/ModelElemental.java deleted file mode 100644 index 25cb2814..00000000 --- a/1.7.2/main/java/WayofTime/alchemicalWizardry/common/renderer/model/ModelElemental.java +++ /dev/null @@ -1,81 +0,0 @@ -package WayofTime.alchemicalWizardry.common.renderer.model; - -import net.minecraft.client.model.ModelBase; -import net.minecraft.client.model.ModelRenderer; -import net.minecraft.entity.Entity; -import net.minecraft.entity.monster.EntityBlaze; -import net.minecraft.world.World; - -public class ModelElemental extends ModelBase -{ - //fields - ModelRenderer body; - ModelRenderer Shape2; - ModelRenderer Shape1; - ModelRenderer Shape3; - - public ModelElemental() - { - textureWidth = 64; - textureHeight = 32; - body = new ModelRenderer(this, 33, 0); - body.addBox(-3F, -3F, -3F, 6, 6, 6); - body.setRotationPoint(0F, 14F, 0F); - body.setTextureSize(64, 32); - body.mirror = true; - setRotation(body, 0F, 0F, 0F); - Shape2 = new ModelRenderer(this, 0, 0); - Shape2.addBox(-4F, -4F, -4F, 8, 8, 8); - Shape2.setRotationPoint(0F, 14F, 0F); - Shape2.setTextureSize(64, 32); - Shape2.mirror = true; - setRotation(Shape2, ((float) Math.PI / 4F), ((float) Math.PI / 4F), 0F); - Shape1 = new ModelRenderer(this, 0, 0); - Shape1.addBox(-4F, -4F, -4F, 8, 8, 8); - Shape1.setRotationPoint(0F, 14F, 0F); - Shape1.setTextureSize(64, 32); - Shape1.mirror = true; - setRotation(Shape1, 0F, ((float) Math.PI / 4F), ((float) Math.PI / 4F)); - Shape3 = new ModelRenderer(this, 0, 0); - Shape3.addBox(-4F, -4F, -4F, 8, 8, 8); - Shape3.setRotationPoint(0F, 14F, 0F); - Shape3.setTextureSize(64, 32); - Shape3.mirror = true; - setRotation(Shape3, ((float) Math.PI / 4F), 0F, ((float) Math.PI / 4F)); - } - - public void render(Entity entity, float f, float f1, float f2, float f3, float f4, float f5) - { - super.render(entity, f, f1, f2, f3, f4, f5); - setRotationAngles(f, f1, f2, f3, f4, f5, entity); - body.render(f5); - Shape2.render(f5); - Shape1.render(f5); - Shape3.render(f5); - } - - private void setRotation(ModelRenderer model, float x, float y, float z) - { - model.rotateAngleX = x; - model.rotateAngleY = y; - model.rotateAngleZ = z; - } - - public void setRotationAngles(float f, float f1, float f2, float f3, float f4, float f5, Entity entity) - { - super.setRotationAngles(f, f1, f2, f3, f4, f5, entity); - World world = entity.worldObj; - - if (world == null) - { - return; - } - - int ratio = 20; - float rot = (entity.worldObj.getWorldTime() % ratio) / ratio; - Shape1.rotateAngleX = f / 5; - Shape2.rotateAngleZ = f / 5; - Shape3.rotateAngleY = f / 5; - EntityBlaze d; - } -} diff --git a/1.7.2/main/java/WayofTime/alchemicalWizardry/common/renderer/model/ModelEnergyBazookaMainProjectile.java b/1.7.2/main/java/WayofTime/alchemicalWizardry/common/renderer/model/ModelEnergyBazookaMainProjectile.java deleted file mode 100644 index de8e7e6b..00000000 --- a/1.7.2/main/java/WayofTime/alchemicalWizardry/common/renderer/model/ModelEnergyBazookaMainProjectile.java +++ /dev/null @@ -1,122 +0,0 @@ -package WayofTime.alchemicalWizardry.common.renderer.model; - -import net.minecraft.client.model.ModelBase; -import net.minecraft.client.model.ModelRenderer; -import net.minecraft.entity.Entity; - -public class ModelEnergyBazookaMainProjectile extends ModelBase -{ - //fields - ModelRenderer thirdWarHead; - ModelRenderer firstWarHead; - ModelRenderer secondWarHead; - ModelRenderer support1; - ModelRenderer mainBody; - ModelRenderer support2; - ModelRenderer support3; - ModelRenderer support4; - ModelRenderer base1; - ModelRenderer base2; - ModelRenderer base3; - - public ModelEnergyBazookaMainProjectile() - { - textureWidth = 64; - textureHeight = 32; - thirdWarHead = new ModelRenderer(this, 43, 0); - thirdWarHead.addBox(-1F, -1F, -9F, 2, 2, 1); - thirdWarHead.setRotationPoint(0F, 0F, 0F); - thirdWarHead.setTextureSize(64, 32); - thirdWarHead.mirror = true; - setRotation(thirdWarHead, 0F, 0F, 0F); - firstWarHead = new ModelRenderer(this, 52, 0); - firstWarHead.addBox(-2F, -2F, -8F, 4, 4, 2); - firstWarHead.setRotationPoint(0F, 0F, 0F); - firstWarHead.setTextureSize(64, 32); - firstWarHead.mirror = true; - setRotation(firstWarHead, 0F, 0F, 0F); - secondWarHead = new ModelRenderer(this, 48, 8); - secondWarHead.addBox(-3F, -3F, -6F, 6, 6, 2); - secondWarHead.setRotationPoint(0F, 0F, 0F); - secondWarHead.setTextureSize(64, 32); - secondWarHead.mirror = true; - setRotation(secondWarHead, 0F, 0F, 0F); - support1 = new ModelRenderer(this, 0, 0); - support1.addBox(2F, 2F, -4F, 1, 1, 9); - support1.setRotationPoint(0F, 0F, 0F); - support1.setTextureSize(64, 32); - support1.mirror = true; - setRotation(support1, 0F, 0F, 0F); - mainBody = new ModelRenderer(this, 0, 19); - mainBody.addBox(-2F, -2F, -4F, 4, 4, 9); - mainBody.setRotationPoint(0F, 0F, 0F); - mainBody.setTextureSize(64, 32); - mainBody.mirror = true; - setRotation(mainBody, 0F, 0F, 0F); - support2 = new ModelRenderer(this, 0, 0); - support2.addBox(-3F, 2F, -4F, 1, 1, 9); - support2.setRotationPoint(0F, 0F, 0F); - support2.setTextureSize(64, 32); - support2.mirror = true; - setRotation(support2, 0F, 0F, 0F); - support3 = new ModelRenderer(this, 0, 0); - support3.addBox(-3F, -3F, -4F, 1, 1, 9); - support3.setRotationPoint(0F, 0F, 0F); - support3.setTextureSize(64, 32); - support3.mirror = true; - setRotation(support3, 0F, 0F, 0F); - support4 = new ModelRenderer(this, 0, 0); - support4.addBox(2F, -3F, -4F, 1, 1, 9); - support4.setRotationPoint(0F, 0F, 0F); - support4.setTextureSize(64, 32); - support4.mirror = true; - setRotation(support4, 0F, 0F, 0F); - base1 = new ModelRenderer(this, 28, 0); - base1.addBox(-3F, -3F, 5F, 6, 6, 1); - base1.setRotationPoint(0F, 0F, 0F); - base1.setTextureSize(64, 32); - base1.mirror = true; - setRotation(base1, 0F, 0F, 0F); - base2 = new ModelRenderer(this, 28, 9); - base2.addBox(-2F, -2F, 6F, 4, 4, 1); - base2.setRotationPoint(0F, 0F, 0F); - base2.setTextureSize(64, 32); - base2.mirror = true; - setRotation(base2, 0F, 0F, 0F); - base3 = new ModelRenderer(this, 28, 15); - base3.addBox(-3F, -3F, 7F, 6, 6, 1); - base3.setRotationPoint(0F, 0F, 0F); - base3.setTextureSize(64, 32); - base3.mirror = true; - setRotation(base3, 0F, 0F, 0F); - } - - public void render(Entity entity, float f, float f1, float f2, float f3, float f4, float f5) - { - super.render(entity, f, f1, f2, f3, f4, f5); - setRotationAngles(f, f1, f2, f3, f4, f5, entity); - thirdWarHead.render(f5); - firstWarHead.render(f5); - secondWarHead.render(f5); - support1.render(f5); - mainBody.render(f5); - support2.render(f5); - support3.render(f5); - support4.render(f5); - base1.render(f5); - base2.render(f5); - base3.render(f5); - } - - private void setRotation(ModelRenderer model, float x, float y, float z) - { - model.rotateAngleX = x; - model.rotateAngleY = y; - model.rotateAngleZ = z; - } - - public void setRotationAngles(float f, float f1, float f2, float f3, float f4, float f5, Entity entity) - { - super.setRotationAngles(f, f1, f2, f3, f4, f5, entity); - } -} \ No newline at end of file diff --git a/1.7.2/main/java/WayofTime/alchemicalWizardry/common/renderer/model/ModelFallenAngel.java b/1.7.2/main/java/WayofTime/alchemicalWizardry/common/renderer/model/ModelFallenAngel.java deleted file mode 100644 index aacef80d..00000000 --- a/1.7.2/main/java/WayofTime/alchemicalWizardry/common/renderer/model/ModelFallenAngel.java +++ /dev/null @@ -1,113 +0,0 @@ -package WayofTime.alchemicalWizardry.common.renderer.model; - -import net.minecraft.client.model.ModelBase; -import net.minecraft.client.model.ModelRenderer; -import net.minecraft.entity.Entity; -import net.minecraft.util.MathHelper; - -public class ModelFallenAngel extends ModelBase -{ - //fields - ModelRenderer leftWing; - ModelRenderer rightWing; - ModelRenderer head; - ModelRenderer body; - ModelRenderer rightarm; - ModelRenderer leftarm; - ModelRenderer rightleg; - ModelRenderer leftleg; - - public ModelFallenAngel() - { - textureWidth = 64; - textureHeight = 32; - leftWing = new ModelRenderer(this, 33, 8); - leftWing.mirror = true; - leftWing.addBox(0F, 0F, 0F, 10, 7, 0); - leftWing.setRotationPoint(0F, 1F, 2F); - leftWing.setTextureSize(64, 32); - leftWing.mirror = true; - setRotation(leftWing, 0F, 0F, 0F); - rightWing = new ModelRenderer(this, 33, 8); - rightWing.addBox(-10F, 0F, 0F, 10, 7, 0); - rightWing.setRotationPoint(0F, 1F, 2F); - rightWing.setTextureSize(64, 32); - rightWing.mirror = true; - setRotation(rightWing, 0F, 0F, 0F); - rightWing.mirror = false; - head = new ModelRenderer(this, 0, 0); - head.addBox(-4F, -8F, -4F, 8, 8, 8); - head.setRotationPoint(0F, 0F, 0F); - head.setTextureSize(64, 32); - head.mirror = true; - setRotation(head, 0F, 0F, 0F); - body = new ModelRenderer(this, 16, 16); - body.addBox(-4F, 0F, -2F, 8, 12, 4); - body.setRotationPoint(0F, 0F, 0F); - body.setTextureSize(64, 32); - body.mirror = true; - setRotation(body, 0F, 0F, 0F); - rightarm = new ModelRenderer(this, 40, 16); - rightarm.addBox(-3F, -2F, -2F, 4, 12, 4); - rightarm.setRotationPoint(-5F, 2F, 0F); - rightarm.setTextureSize(64, 32); - rightarm.mirror = true; - setRotation(rightarm, 0F, 0F, 0F); - rightarm.mirror = false; - leftarm = new ModelRenderer(this, 40, 16); - leftarm.mirror = true; - leftarm.addBox(-1F, -2F, -2F, 4, 12, 4); - leftarm.setRotationPoint(5F, 2F, 0F); - leftarm.setTextureSize(64, 32); - leftarm.mirror = true; - setRotation(leftarm, 0F, 0F, 0F); - rightleg = new ModelRenderer(this, 0, 16); - rightleg.addBox(-2F, 0F, -2F, 4, 12, 4); - rightleg.setRotationPoint(-2F, 12F, 0F); - rightleg.setTextureSize(64, 32); - rightleg.mirror = true; - setRotation(rightleg, 0F, 0F, 0F); - rightleg.mirror = false; - leftleg = new ModelRenderer(this, 0, 16); - leftleg.mirror = true; - leftleg.addBox(-2F, 0F, -2F, 4, 12, 4); - leftleg.setRotationPoint(2F, 12F, 0F); - leftleg.setTextureSize(64, 32); - leftleg.mirror = true; - setRotation(leftleg, 0F, 0F, 0F); - } - - public void render(Entity entity, float f, float f1, float f2, float f3, float f4, float f5) - { - super.render(entity, f, f1, f2, f3, f4, f5); - setRotationAngles(f, f1, f2, f3, f4, f5, entity); - leftWing.render(f5); - rightWing.render(f5); - head.render(f5); - body.render(f5); - rightarm.render(f5); - leftarm.render(f5); - rightleg.render(f5); - leftleg.render(f5); - } - - private void setRotation(ModelRenderer model, float x, float y, float z) - { - model.rotateAngleX = x; - model.rotateAngleY = y; - model.rotateAngleZ = z; - } - - public void setRotationAngles(float f, float f1, float f2, float f3, float f4, float f5, Entity entity) - { - super.setRotationAngles(f, f1, f2, f3, f4, f5, entity); - this.head.rotateAngleX = f4 / (180F / (float) Math.PI); - this.head.rotateAngleY = f3 / (180F / (float) Math.PI); - this.leftleg.rotateAngleX = MathHelper.cos(f * 0.6662F) * 1.4F * f1; - this.rightleg.rotateAngleX = MathHelper.cos(f * 0.6662F + (float) Math.PI) * 1.4F * f1; - this.rightarm.rotateAngleX = MathHelper.cos(f * 0.6662F + (float) Math.PI) * 1.4F * f1; - this.leftarm.rotateAngleX = MathHelper.cos(f * 0.6662F) * 1.4F * f1; - this.rightWing.rotateAngleY = MathHelper.cos(0.1662F); - this.leftWing.rotateAngleY = MathHelper.cos(0.1662F + (float) Math.PI); - } -} diff --git a/1.7.2/main/java/WayofTime/alchemicalWizardry/common/renderer/model/ModelIceDemon.java b/1.7.2/main/java/WayofTime/alchemicalWizardry/common/renderer/model/ModelIceDemon.java deleted file mode 100644 index 9c6d3c32..00000000 --- a/1.7.2/main/java/WayofTime/alchemicalWizardry/common/renderer/model/ModelIceDemon.java +++ /dev/null @@ -1,197 +0,0 @@ -package WayofTime.alchemicalWizardry.common.renderer.model; - -import net.minecraft.client.model.ModelBase; -import net.minecraft.client.model.ModelRenderer; -import net.minecraft.entity.Entity; -import net.minecraft.util.MathHelper; - -public class ModelIceDemon extends ModelBase -{ - //fields - ModelRenderer head; - ModelRenderer leftHorn; - ModelRenderer rightHorn; - ModelRenderer body; - ModelRenderer leftArm; - ModelRenderer leftWrist; - ModelRenderer leftIcicle1; - ModelRenderer leftIcicle2; - ModelRenderer leftIcicle3; - ModelRenderer leftLeg; - ModelRenderer rightArm; - ModelRenderer rightWrist; - ModelRenderer rightIcicle1; - ModelRenderer rightIcicle2; - ModelRenderer rightIcicle3; - ModelRenderer rightLeg; - ModelRenderer Shape1; - - public ModelIceDemon() - { - textureWidth = 64; - textureHeight = 64; - head = new ModelRenderer(this, 40, 0); - head.addBox(-3F, -8F, -3F, 6, 8, 6); - head.setRotationPoint(0F, -3F, 0F); - head.setTextureSize(64, 64); - head.mirror = true; - setRotation(head, 0F, 0F, 0F); - leftHorn = new ModelRenderer(this, 0, 0); - leftHorn.addBox(3F, -7F, 2F, 1, 1, 10); - leftHorn.setRotationPoint(0F, -3F, 0F); - leftHorn.setTextureSize(64, 64); - leftHorn.mirror = true; - setRotation(leftHorn, 0.4363323F, 0F, 0F); - rightHorn = new ModelRenderer(this, 0, 0); - rightHorn.mirror = true; - rightHorn.addBox(-4F, -7F, 2F, 1, 1, 10); - rightHorn.setRotationPoint(0F, -3F, 0F); - rightHorn.setTextureSize(64, 64); - rightHorn.mirror = true; - setRotation(rightHorn, 0.4363323F, 0F, 0F); - rightHorn.mirror = false; - body = new ModelRenderer(this, 40, 15); - body.addBox(-4F, 0F, -2F, 8, 13, 4); - body.setRotationPoint(0F, -3F, 0F); - body.setTextureSize(64, 64); - body.mirror = true; - setRotation(body, 0F, 0F, 0F); - leftArm = new ModelRenderer(this, 0, 48); - leftArm.addBox(0F, -2F, -2F, 4, 12, 4); - leftArm.setRotationPoint(4F, -1F, 0F); - leftArm.setTextureSize(64, 64); - leftArm.mirror = true; - setRotation(leftArm, 0F, 0F, 0F); - leftWrist = new ModelRenderer(this, 32, 57); - leftWrist.addBox(0F, 6F, -2.5F, 5, 2, 5); - leftWrist.setRotationPoint(4F, -1F, 0F); - leftWrist.setTextureSize(64, 64); - leftWrist.mirror = true; - setRotation(leftWrist, 0F, 0F, 0F); - leftIcicle1 = new ModelRenderer(this, 0, 0); - leftIcicle1.addBox(4.9F, 0F, -0.5F, 1, 6, 1); - leftIcicle1.setRotationPoint(4F, -1F, 0F); - leftIcicle1.setTextureSize(64, 64); - leftIcicle1.mirror = true; - setRotation(leftIcicle1, 0F, 0F, 0.1396263F); - leftIcicle2 = new ModelRenderer(this, 0, 0); - leftIcicle2.addBox(5F, 0F, 0F, 1, 6, 1); - leftIcicle2.setRotationPoint(4F, -1F, 0F); - leftIcicle2.setTextureSize(64, 64); - leftIcicle2.mirror = true; - setRotation(leftIcicle2, 0F, 0.5585054F, 0.1919862F); - leftIcicle3 = new ModelRenderer(this, 0, 0); - leftIcicle3.addBox(5F, 0F, -1F, 1, 6, 1); - leftIcicle3.setRotationPoint(4F, -1F, 0F); - leftIcicle3.setTextureSize(64, 64); - leftIcicle3.mirror = true; - setRotation(leftIcicle3, 0F, -0.5585054F, 0.1919862F); - leftLeg = new ModelRenderer(this, 16, 46); - leftLeg.addBox(-2F, 0F, -2F, 4, 14, 4); - leftLeg.setRotationPoint(2F, 10F, 0F); - leftLeg.setTextureSize(64, 64); - leftLeg.mirror = true; - setRotation(leftLeg, 0F, 0F, 0F); - rightArm = new ModelRenderer(this, 0, 48); - rightArm.mirror = true; - rightArm.addBox(-4F, -2F, -2F, 4, 12, 4); - rightArm.setRotationPoint(-4F, -1F, 0F); - rightArm.setTextureSize(64, 64); - rightArm.mirror = true; - setRotation(rightArm, 0F, 0F, 0F); - rightArm.mirror = false; - rightWrist = new ModelRenderer(this, 32, 57); - rightWrist.mirror = true; - rightWrist.addBox(-5F, 6F, -2.5F, 5, 2, 5); - rightWrist.setRotationPoint(-4F, -1F, 0F); - rightWrist.setTextureSize(64, 64); - rightWrist.mirror = true; - setRotation(rightWrist, 0F, 0F, 0F); - rightWrist.mirror = false; - rightIcicle1 = new ModelRenderer(this, 0, 0); - rightIcicle1.addBox(-5.9F, 0F, -0.5F, 1, 6, 1); - rightIcicle1.setRotationPoint(-4F, -1F, 0F); - rightIcicle1.setTextureSize(64, 64); - rightIcicle1.mirror = true; - setRotation(rightIcicle1, 0F, 0F, -0.1396263F); - rightIcicle2 = new ModelRenderer(this, 0, 0); - rightIcicle2.addBox(-6F, 0F, 0F, 1, 6, 1); - rightIcicle2.setRotationPoint(-4F, -1F, 0F); - rightIcicle2.setTextureSize(64, 64); - rightIcicle2.mirror = true; - setRotation(rightIcicle2, 0F, -0.5585054F, -0.1919862F); - rightIcicle3 = new ModelRenderer(this, 0, 0); - rightIcicle3.addBox(-6F, 0F, -1F, 1, 6, 1); - rightIcicle3.setRotationPoint(-4F, -1F, 0F); - rightIcicle3.setTextureSize(64, 64); - rightIcicle3.mirror = true; - setRotation(rightIcicle3, 0F, 0.5585054F, -0.1919862F); - rightLeg = new ModelRenderer(this, 16, 46); - rightLeg.mirror = true; - rightLeg.addBox(-2F, 0F, -2F, 4, 14, 4); - rightLeg.setRotationPoint(-2F, 10F, 0F); - rightLeg.setTextureSize(64, 64); - rightLeg.mirror = true; - setRotation(rightLeg, 0F, 0F, 0F); - rightLeg.mirror = false; - Shape1 = new ModelRenderer(this, 0, 12); - Shape1.addBox(-0.5F, 0F, -0.5F, 1, 10, 1); - Shape1.setRotationPoint(0F, 8F, 1.5F); - Shape1.setTextureSize(64, 64); - Shape1.mirror = true; - setRotation(Shape1, 0.5948578F, 0F, 0F); - } - - public void render(Entity entity, float f, float f1, float f2, float f3, float f4, float f5) - { - super.render(entity, f, f1, f2, f3, f4, f5); - setRotationAngles(f, f1, f2, f3, f4, f5, entity); - head.render(f5); - leftHorn.render(f5); - rightHorn.render(f5); - body.render(f5); - leftArm.render(f5); - leftWrist.render(f5); - leftIcicle1.render(f5); - leftIcicle2.render(f5); - leftIcicle3.render(f5); - leftLeg.render(f5); - rightArm.render(f5); - rightWrist.render(f5); - rightIcicle1.render(f5); - rightIcicle2.render(f5); - rightIcicle3.render(f5); - rightLeg.render(f5); - Shape1.render(f5); - } - - private void setRotation(ModelRenderer model, float x, float y, float z) - { - model.rotateAngleX = x; - model.rotateAngleY = y; - model.rotateAngleZ = z; - } - - public void setRotationAngles(float f, float f1, float f2, float f3, float f4, float f5, Entity entity) - { - super.setRotationAngles(f, f1, f2, f3, f4, f5, entity); - this.head.rotateAngleX = f4 / (180F / (float) Math.PI); - this.head.rotateAngleY = f3 / (180F / (float) Math.PI); - this.leftLeg.rotateAngleX = MathHelper.cos(f * 0.6662F) * 1.4F * f1; - this.rightLeg.rotateAngleX = MathHelper.cos(f * 0.6662F + (float) Math.PI) * 1.4F * f1; - this.rightArm.rotateAngleX = MathHelper.cos(f * 0.6662F + (float) Math.PI) * 1.4F * f1; - this.leftArm.rotateAngleX = MathHelper.cos(f * 0.6662F) * 1.4F * f1; - this.leftHorn.rotateAngleX = head.rotateAngleX + 0.4363323F; - this.leftHorn.rotateAngleY = head.rotateAngleY; - this.rightHorn.rotateAngleX = head.rotateAngleX + 0.4363323F; - this.rightHorn.rotateAngleY = head.rotateAngleY; - this.rightIcicle1.rotateAngleX = rightArm.rotateAngleX; - this.rightIcicle2.rotateAngleX = rightArm.rotateAngleX; - this.rightIcicle3.rotateAngleX = rightArm.rotateAngleX; - this.leftIcicle1.rotateAngleX = leftArm.rotateAngleX; - this.leftIcicle2.rotateAngleX = leftArm.rotateAngleX; - this.leftIcicle3.rotateAngleX = leftArm.rotateAngleX; - this.rightWrist.rotateAngleX = rightArm.rotateAngleX; - this.leftWrist.rotateAngleX = leftArm.rotateAngleX; - } -} diff --git a/1.7.2/main/java/WayofTime/alchemicalWizardry/common/renderer/model/ModelLowerGuardian.java b/1.7.2/main/java/WayofTime/alchemicalWizardry/common/renderer/model/ModelLowerGuardian.java deleted file mode 100644 index 61d7b85d..00000000 --- a/1.7.2/main/java/WayofTime/alchemicalWizardry/common/renderer/model/ModelLowerGuardian.java +++ /dev/null @@ -1,207 +0,0 @@ -package WayofTime.alchemicalWizardry.common.renderer.model; - -import WayofTime.alchemicalWizardry.common.entity.mob.EntityLowerGuardian; -import net.minecraft.client.model.ModelBase; -import net.minecraft.client.model.ModelRenderer; -import net.minecraft.entity.Entity; -import net.minecraft.entity.EntityLivingBase; -import net.minecraft.util.MathHelper; - -public class ModelLowerGuardian extends ModelBase -{ - //fields - ModelRenderer Body; - ModelRenderer Torso; - ModelRenderer Head; - ModelRenderer leftArm; - ModelRenderer rightArm; - ModelRenderer leftLeg; - ModelRenderer leftFoot; - ModelRenderer rightLeg; - ModelRenderer rightFoot; - ModelRenderer leftHorn; - ModelRenderer hornAppendage1; - ModelRenderer hornAppendage2; - ModelRenderer rightHorn; - ModelRenderer hornAppendage3; - ModelRenderer hornAppendage4; - - public ModelLowerGuardian() - { - textureWidth = 64; - textureHeight = 64; - Body = new ModelRenderer(this, 0, 0); - Body.addBox(-8F, -7F, -4F, 16, 14, 8); - Body.setRotationPoint(0F, -3F, 0F); - Body.setTextureSize(64, 64); - Body.mirror = true; - setRotation(Body, 0F, 0F, 0F); - Torso = new ModelRenderer(this, 0, 25); - Torso.addBox(-4F, 0F, -3F, 8, 4, 6); - Torso.setRotationPoint(0F, 4F, 0F); - Torso.setTextureSize(64, 64); - Torso.mirror = true; - setRotation(Torso, 0F, 0F, 0F); - Head = new ModelRenderer(this, 29, 25); - Head.addBox(-4F, -8F, -4F, 8, 8, 8); - Head.setRotationPoint(0F, -10F, 0F); - Head.setTextureSize(64, 64); - Head.mirror = true; - setRotation(Head, 0F, 0F, 0F); - leftArm = new ModelRenderer(this, 17, 42); - leftArm.addBox(0F, -2F, -2F, 4, 18, 4); - leftArm.setRotationPoint(8F, -8F, 0F); - leftArm.setTextureSize(64, 64); - leftArm.mirror = true; - setRotation(leftArm, 0F, 0F, 0F); - rightArm = new ModelRenderer(this, 17, 42); - rightArm.mirror = true; - rightArm.addBox(-4F, -2F, -2F, 4, 18, 4); - rightArm.setRotationPoint(-8F, -8F, 0F); - rightArm.setTextureSize(64, 64); - rightArm.mirror = true; - setRotation(rightArm, 0F, 0F, 0F); - rightArm.mirror = false; - leftLeg = new ModelRenderer(this, 0, 42); - leftLeg.addBox(0F, -2F, -2F, 4, 17, 4); - leftLeg.setRotationPoint(4F, 6F, 0F); - leftLeg.setTextureSize(64, 64); - leftLeg.mirror = true; - setRotation(leftLeg, 0F, 0F, 0F); - leftFoot = new ModelRenderer(this, 34, 42); - leftFoot.addBox(0F, 15F, -6F, 4, 3, 8); - leftFoot.setRotationPoint(4F, 6F, 0F); - leftFoot.setTextureSize(64, 64); - leftFoot.mirror = true; - setRotation(leftFoot, 0F, 0F, 0F); - rightLeg = new ModelRenderer(this, 0, 42); - rightLeg.mirror = true; - rightLeg.addBox(-4F, -2F, -2F, 4, 17, 4); - rightLeg.setRotationPoint(-4F, 6F, 0F); - rightLeg.setTextureSize(64, 64); - rightLeg.mirror = true; - setRotation(rightLeg, 0F, 0F, 0F); - rightLeg.mirror = false; - rightFoot = new ModelRenderer(this, 34, 42); - rightFoot.mirror = true; - rightFoot.addBox(-4F, 15F, -6F, 4, 3, 8); - rightFoot.setRotationPoint(-4F, 6F, 0F); - rightFoot.setTextureSize(64, 64); - rightFoot.mirror = true; - setRotation(rightFoot, 0F, 0F, 0F); - rightFoot.mirror = false; - leftHorn = new ModelRenderer(this, 0, 0); - leftHorn.addBox(4F, -11F, 0F, 1, 6, 1); - leftHorn.setRotationPoint(0F, -10F, 0F); - leftHorn.setTextureSize(64, 64); - leftHorn.mirror = true; - setRotation(leftHorn, 0F, 0F, 0F); - hornAppendage1 = new ModelRenderer(this, 0, 0); - hornAppendage1.addBox(4F, -7F, -1F, 1, 1, 1); - hornAppendage1.setRotationPoint(0F, -10F, 0F); - hornAppendage1.setTextureSize(64, 64); - hornAppendage1.mirror = true; - setRotation(hornAppendage1, 0F, 0F, 0F); - hornAppendage2 = new ModelRenderer(this, 0, 0); - hornAppendage2.addBox(4F, -6F, 1F, 1, 1, 1); - hornAppendage2.setRotationPoint(0F, -10F, 0F); - hornAppendage2.setTextureSize(64, 64); - hornAppendage2.mirror = true; - setRotation(hornAppendage2, 0F, 0F, 0F); - rightHorn = new ModelRenderer(this, 0, 0); - rightHorn.mirror = true; - rightHorn.addBox(-5F, -11F, 0F, 1, 6, 1); - rightHorn.setRotationPoint(0F, -10F, 0F); - rightHorn.setTextureSize(64, 64); - rightHorn.mirror = true; - setRotation(rightHorn, 0F, 0F, 0F); - rightHorn.mirror = false; - hornAppendage3 = new ModelRenderer(this, 0, 0); - hornAppendage3.mirror = true; - hornAppendage3.addBox(-5F, -7F, -1F, 1, 1, 1); - hornAppendage3.setRotationPoint(0F, -10F, 0F); - hornAppendage3.setTextureSize(64, 64); - hornAppendage3.mirror = true; - setRotation(hornAppendage3, 0F, 0F, 0F); - hornAppendage3.mirror = false; - hornAppendage4 = new ModelRenderer(this, 0, 0); - hornAppendage4.mirror = true; - hornAppendage4.addBox(-5F, -6F, 1F, 1, 1, 1); - hornAppendage4.setRotationPoint(0F, -10F, 0F); - hornAppendage4.setTextureSize(64, 64); - hornAppendage4.mirror = true; - setRotation(hornAppendage4, 0F, 0F, 0F); - hornAppendage4.mirror = false; - } - - public void render(Entity entity, float f, float f1, float f2, float f3, float f4, float f5) - { - super.render(entity, f, f1, f2, f3, f4, f5); - setRotationAngles(f, f1, f2, f3, f4, f5, entity); - Body.render(f5); - Torso.render(f5); - Head.render(f5); - leftArm.render(f5); - rightArm.render(f5); - leftLeg.render(f5); - leftFoot.render(f5); - rightLeg.render(f5); - rightFoot.render(f5); - leftHorn.render(f5); - hornAppendage1.render(f5); - hornAppendage2.render(f5); - rightHorn.render(f5); - hornAppendage3.render(f5); - hornAppendage4.render(f5); - } - - private void setRotation(ModelRenderer model, float x, float y, float z) - { - model.rotateAngleX = x; - model.rotateAngleY = y; - model.rotateAngleZ = z; - } - - public void setLivingAnimations(EntityLivingBase par1EntityLivingBase, float par2, float par3, float par4) - { - EntityLowerGuardian entityLowerGuardian = (EntityLowerGuardian) par1EntityLivingBase; - int i = entityLowerGuardian.getAttackTimer(); - - if (i > 0) - { - this.rightLeg.rotateAngleX = -2.0F + 1.5F * this.func_78172_a((float) i - par4, 10.0F); - this.rightFoot.rotateAngleX = -2.0F + 1.5F * this.func_78172_a((float) i - par4, 10.0F); - //this.ironGolemLeftArm.rotateAngleX = -2.0F + 1.5F * this.func_78172_a((float)i - par4, 10.0F); - } - } - - private float func_78172_a(float par1, float par2) - { - return (Math.abs(par1 % par2 - par2 * 0.5F) - par2 * 0.25F) / (par2 * 0.25F); - } - - public void setRotationAngles(float f, float f1, float f2, float f3, float f4, float f5, Entity entity) - { - super.setRotationAngles(f, f1, f2, f3, f4, f5, entity); - this.Head.rotateAngleX = f4 / (180F / (float) Math.PI); - this.Head.rotateAngleY = f3 / (180F / (float) Math.PI); - this.leftLeg.rotateAngleX = MathHelper.cos(f * 0.3662F) * 1.0F * f1; - this.rightLeg.rotateAngleX = MathHelper.cos(f * 0.3662F + (float) Math.PI) * 1.0F * f1; - this.leftFoot.rotateAngleX = MathHelper.cos(f * 0.3662F) * 1.0F * f1; - this.rightFoot.rotateAngleX = MathHelper.cos(f * 0.3662F + (float) Math.PI) * 1.0F * f1; - this.rightArm.rotateAngleX = MathHelper.cos(f * 0.3662F + (float) Math.PI) * 1.0F * f1; - this.leftArm.rotateAngleX = MathHelper.cos(f * 0.3662F) * 1.0F * f1; - this.hornAppendage1.rotateAngleX = this.Head.rotateAngleX; - this.hornAppendage1.rotateAngleY = this.Head.rotateAngleY; - this.hornAppendage2.rotateAngleX = this.Head.rotateAngleX; - this.hornAppendage2.rotateAngleY = this.Head.rotateAngleY; - this.hornAppendage3.rotateAngleX = this.Head.rotateAngleX; - this.hornAppendage3.rotateAngleY = this.Head.rotateAngleY; - this.hornAppendage4.rotateAngleX = this.Head.rotateAngleX; - this.hornAppendage4.rotateAngleY = this.Head.rotateAngleY; - this.leftHorn.rotateAngleX = this.Head.rotateAngleX; - this.leftHorn.rotateAngleY = this.Head.rotateAngleY; - this.rightHorn.rotateAngleX = this.Head.rotateAngleX; - this.rightHorn.rotateAngleY = this.Head.rotateAngleY; - } -} diff --git a/1.7.2/main/java/WayofTime/alchemicalWizardry/common/renderer/model/ModelMeteor.java b/1.7.2/main/java/WayofTime/alchemicalWizardry/common/renderer/model/ModelMeteor.java deleted file mode 100644 index 26a94989..00000000 --- a/1.7.2/main/java/WayofTime/alchemicalWizardry/common/renderer/model/ModelMeteor.java +++ /dev/null @@ -1,90 +0,0 @@ -package WayofTime.alchemicalWizardry.common.renderer.model; - -import net.minecraft.client.model.ModelBase; -import net.minecraft.client.model.ModelRenderer; -import net.minecraft.entity.Entity; - -public class ModelMeteor extends ModelBase -{ - //fields - ModelRenderer Shape1; - ModelRenderer Shape2; - ModelRenderer Shape3; - ModelRenderer Shape4; - ModelRenderer Shape5; - ModelRenderer Shape6; - ModelRenderer Shape7; - - public ModelMeteor() - { - textureWidth = 64; - textureHeight = 64; - Shape1 = new ModelRenderer(this, 0, 0); - Shape1.addBox(-8F, -8F, -8F, 16, 16, 16); - Shape1.setRotationPoint(0F, 0F, 0F); - Shape1.setTextureSize(64, 64); - Shape1.mirror = true; - setRotation(Shape1, 0F, 0F, 0F); - Shape2 = new ModelRenderer(this, 0, 32); - Shape2.addBox(3F, -10F, -1F, 12, 12, 12); - Shape2.setRotationPoint(0F, 0F, 0F); - Shape2.setTextureSize(64, 64); - Shape2.mirror = true; - setRotation(Shape2, 0F, 0F, 0F); - Shape3 = new ModelRenderer(this, 0, 32); - Shape3.addBox(0F, 0F, -10F, 12, 12, 12); - Shape3.setRotationPoint(0F, 0F, 0F); - Shape3.setTextureSize(64, 64); - Shape3.mirror = true; - setRotation(Shape3, 0F, 0F, 0F); - Shape4 = new ModelRenderer(this, 0, 32); - Shape4.addBox(1F, 2F, 2F, 12, 12, 12); - Shape4.setRotationPoint(0F, 0F, 0F); - Shape4.setTextureSize(64, 64); - Shape4.mirror = true; - setRotation(Shape4, 0F, 0F, 0F); - Shape5 = new ModelRenderer(this, 0, 32); - Shape5.addBox(-12F, -5F, 0F, 12, 12, 12); - Shape5.setRotationPoint(0F, 0F, 0F); - Shape5.setTextureSize(64, 64); - Shape5.mirror = true; - setRotation(Shape5, 0F, 0F, 0F); - Shape6 = new ModelRenderer(this, 0, 32); - Shape6.addBox(-13F, -2F, -11F, 12, 12, 12); - Shape6.setRotationPoint(0F, 0F, 0F); - Shape6.setTextureSize(64, 64); - Shape6.mirror = true; - setRotation(Shape6, 0F, 0F, 0F); - Shape7 = new ModelRenderer(this, 0, 32); - Shape7.addBox(-6F, -14F, -9F, 12, 12, 12); - Shape7.setRotationPoint(0F, 0F, 0F); - Shape7.setTextureSize(64, 64); - Shape7.mirror = true; - setRotation(Shape7, 0F, 0F, 0F); - } - - public void render(Entity entity, float f, float f1, float f2, float f3, float f4, float f5) - { - super.render(entity, f, f1, f2, f3, f4, f5); - setRotationAngles(f, f1, f2, f3, f4, f5, entity); - Shape1.render(f5); - Shape2.render(f5); - Shape3.render(f5); - Shape4.render(f5); - Shape5.render(f5); - Shape6.render(f5); - Shape7.render(f5); - } - - private void setRotation(ModelRenderer model, float x, float y, float z) - { - model.rotateAngleX = x; - model.rotateAngleY = y; - model.rotateAngleZ = z; - } - - public void setRotationAngles(float f, float f1, float f2, float f3, float f4, float f5, Entity entity) - { - super.setRotationAngles(f, f1, f2, f3, f4, f5, entity); - } -} diff --git a/1.7.2/main/java/WayofTime/alchemicalWizardry/common/renderer/model/ModelPedestal.java b/1.7.2/main/java/WayofTime/alchemicalWizardry/common/renderer/model/ModelPedestal.java deleted file mode 100644 index 753df6a5..00000000 --- a/1.7.2/main/java/WayofTime/alchemicalWizardry/common/renderer/model/ModelPedestal.java +++ /dev/null @@ -1,58 +0,0 @@ -package WayofTime.alchemicalWizardry.common.renderer.model; - -import net.minecraft.client.model.ModelBase; -import net.minecraft.client.model.ModelRenderer; -import net.minecraft.entity.Entity; - -public class ModelPedestal extends ModelBase -{ - //fields - ModelRenderer base; - ModelRenderer top; - ModelRenderer middle; - - public ModelPedestal() - { - textureWidth = 64; - textureHeight = 32; - base = new ModelRenderer(this, 0, 0); - base.addBox(0F, 0F, 0F, 10, 1, 10); - base.setRotationPoint(-5F, 23F, -5F); - base.setTextureSize(64, 32); - base.mirror = true; - setRotation(base, 0F, 0F, 0F); - top = new ModelRenderer(this, 0, 19); - top.addBox(0F, 0F, 0F, 6, 1, 6); - top.setRotationPoint(-3F, 14F, -3F); - top.setTextureSize(64, 32); - top.mirror = true; - setRotation(top, 0F, 0F, 0F); - middle = new ModelRenderer(this, 50, 0); - middle.addBox(0F, 0F, 0F, 2, 8, 2); - middle.setRotationPoint(-1F, 15F, -1F); - middle.setTextureSize(64, 32); - middle.mirror = true; - setRotation(middle, 0F, 0F, 0F); - } - - public void render(Entity entity, float f, float f1, float f2, float f3, float f4, float f5) - { - super.render(entity, f, f1, f2, f3, f4, f5); - setRotationAngles(f, f1, f2, f3, f4, f5, entity); - base.render(f5); - top.render(f5); - middle.render(f5); - } - - private void setRotation(ModelRenderer model, float x, float y, float z) - { - model.rotateAngleX = x; - model.rotateAngleY = y; - model.rotateAngleZ = z; - } - - public void setRotationAngles(float f, float f1, float f2, float f3, float f4, float f5, Entity entity) - { - super.setRotationAngles(f, f1, f2, f3, f4, f5, entity); - } -} diff --git a/1.7.2/main/java/WayofTime/alchemicalWizardry/common/renderer/model/ModelPlinth.java b/1.7.2/main/java/WayofTime/alchemicalWizardry/common/renderer/model/ModelPlinth.java deleted file mode 100644 index f4190b5d..00000000 --- a/1.7.2/main/java/WayofTime/alchemicalWizardry/common/renderer/model/ModelPlinth.java +++ /dev/null @@ -1,90 +0,0 @@ -package WayofTime.alchemicalWizardry.common.renderer.model; - -import net.minecraft.client.model.ModelBase; -import net.minecraft.client.model.ModelRenderer; -import net.minecraft.entity.Entity; - -public class ModelPlinth extends ModelBase -{ - //fields - ModelRenderer base; - ModelRenderer table; - ModelRenderer pillar; - ModelRenderer edge1; - ModelRenderer edge2; - ModelRenderer edge3; - ModelRenderer edge4; - - public ModelPlinth() - { - textureWidth = 64; - textureHeight = 64; - base = new ModelRenderer(this, 0, 16); - base.addBox(0F, 0F, 0F, 10, 2, 10); - base.setRotationPoint(-5F, 22F, -5F); - base.setTextureSize(64, 64); - base.mirror = true; - setRotation(base, 0F, 0F, 0F); - table = new ModelRenderer(this, 0, 0); - table.addBox(0F, 0F, 0F, 14, 1, 14); - table.setRotationPoint(-7F, 11F, -7F); - table.setTextureSize(64, 64); - table.mirror = true; - setRotation(table, 0F, 0F, 0F); - pillar = new ModelRenderer(this, 0, 32); - pillar.addBox(0F, 0F, 0F, 6, 10, 6); - pillar.setRotationPoint(-3F, 12F, -3F); - pillar.setTextureSize(64, 64); - pillar.mirror = true; - setRotation(pillar, 0F, 0F, 0F); - edge1 = new ModelRenderer(this, 0, 29); - edge1.addBox(0F, 0F, 0F, 14, 1, 1); - edge1.setRotationPoint(-7F, 10F, 6F); - edge1.setTextureSize(64, 64); - edge1.mirror = true; - setRotation(edge1, 0F, 0F, 0F); - edge2 = new ModelRenderer(this, 0, 29); - edge2.addBox(0F, 0F, 0F, 14, 1, 1); - edge2.setRotationPoint(-7F, 10F, -7F); - edge2.setTextureSize(64, 64); - edge2.mirror = true; - setRotation(edge2, 0F, 0F, 0F); - edge3 = new ModelRenderer(this, 25, 32); - edge3.addBox(0F, 0F, 0F, 1, 1, 12); - edge3.setRotationPoint(-7F, 10F, -6F); - edge3.setTextureSize(64, 64); - edge3.mirror = true; - setRotation(edge3, 0F, 0F, 0F); - edge4 = new ModelRenderer(this, 25, 32); - edge4.addBox(0F, 0F, 0F, 1, 1, 12); - edge4.setRotationPoint(6F, 10F, -6F); - edge4.setTextureSize(64, 64); - edge4.mirror = true; - setRotation(edge4, 0F, 0F, 0F); - } - - public void render(Entity entity, float f, float f1, float f2, float f3, float f4, float f5) - { - super.render(entity, f, f1, f2, f3, f4, f5); - setRotationAngles(f, f1, f2, f3, f4, f5, entity); - base.render(f5); - table.render(f5); - pillar.render(f5); - edge1.render(f5); - edge2.render(f5); - edge3.render(f5); - edge4.render(f5); - } - - private void setRotation(ModelRenderer model, float x, float y, float z) - { - model.rotateAngleX = x; - model.rotateAngleY = y; - model.rotateAngleZ = z; - } - - public void setRotationAngles(float f, float f1, float f2, float f3, float f4, float f5, Entity entity) - { - super.setRotationAngles(f, f1, f2, f3, f4, f5, entity); - } -} diff --git a/1.7.2/main/java/WayofTime/alchemicalWizardry/common/renderer/model/ModelShade.java b/1.7.2/main/java/WayofTime/alchemicalWizardry/common/renderer/model/ModelShade.java deleted file mode 100644 index 8a7f2632..00000000 --- a/1.7.2/main/java/WayofTime/alchemicalWizardry/common/renderer/model/ModelShade.java +++ /dev/null @@ -1,86 +0,0 @@ -package WayofTime.alchemicalWizardry.common.renderer.model; - -import net.minecraft.client.model.ModelBase; -import net.minecraft.client.model.ModelRenderer; -import net.minecraft.entity.Entity; - -public class ModelShade extends ModelBase -{ - //fields - ModelRenderer body; - ModelRenderer tail1; - ModelRenderer leftArm; - ModelRenderer rightArm; - ModelRenderer tail2; - ModelRenderer head; - - public ModelShade() - { - textureWidth = 64; - textureHeight = 64; - body = new ModelRenderer(this, 0, 45); - body.addBox(-6F, 0F, -3F, 12, 12, 6); - body.setRotationPoint(0F, -4F, 0F); - body.setTextureSize(64, 64); - body.mirror = true; - setRotation(body, 0F, 0F, 0F); - tail1 = new ModelRenderer(this, 37, 43); - tail1.addBox(-2F, 1F, -2F, 4, 6, 4); - tail1.setRotationPoint(0F, 8F, 0F); - tail1.setTextureSize(64, 64); - tail1.mirror = true; - setRotation(tail1, 0.122173F, 0F, 0F); - leftArm = new ModelRenderer(this, 0, 0); - leftArm.addBox(0F, -4F, -2F, 4, 20, 4); - leftArm.setRotationPoint(6F, -2F, 0F); - leftArm.setTextureSize(64, 64); - leftArm.mirror = true; - setRotation(leftArm, 0F, 0F, 0F); - rightArm = new ModelRenderer(this, 0, 0); - rightArm.mirror = true; - rightArm.addBox(-4F, -4F, -2F, 4, 20, 4); - rightArm.setRotationPoint(-6F, -2F, 0F); - rightArm.setTextureSize(64, 64); - rightArm.mirror = true; - setRotation(rightArm, 0F, 0F, 0F); - rightArm.mirror = false; - tail2 = new ModelRenderer(this, 37, 54); - tail2.addBox(-1.5F, 6F, -3F, 3, 6, 3); - tail2.setRotationPoint(0F, 8F, 0F); - tail2.setTextureSize(64, 64); - tail2.mirror = true; - setRotation(tail2, 0.4363323F, 0F, 0F); - head = new ModelRenderer(this, 17, 0); - head.addBox(-4F, -8F, -4F, 8, 8, 8); - head.setRotationPoint(0F, -4F, -1F); - head.setTextureSize(64, 64); - head.mirror = true; - setRotation(head, 0F, 0F, 0F); - } - - public void render(Entity entity, float f, float f1, float f2, float f3, float f4, float f5) - { - super.render(entity, f, f1, f2, f3, f4, f5); - setRotationAngles(f, f1, f2, f3, f4, f5, entity); - body.render(f5); - tail1.render(f5); - leftArm.render(f5); - rightArm.render(f5); - tail2.render(f5); - head.render(f5); - } - - private void setRotation(ModelRenderer model, float x, float y, float z) - { - model.rotateAngleX = x; - model.rotateAngleY = y; - model.rotateAngleZ = z; - } - - public void setRotationAngles(float f, float f1, float f2, float f3, float f4, float f5, Entity entity) - { - super.setRotationAngles(f, f1, f2, f3, f4, f5, entity); - this.head.rotateAngleX = f4 / (180F / (float) Math.PI); - this.head.rotateAngleY = f3 / (180F / (float) Math.PI); - } -} diff --git a/1.7.2/main/java/WayofTime/alchemicalWizardry/common/renderer/model/ModelSmallEarthGolem.java b/1.7.2/main/java/WayofTime/alchemicalWizardry/common/renderer/model/ModelSmallEarthGolem.java deleted file mode 100644 index 45a232de..00000000 --- a/1.7.2/main/java/WayofTime/alchemicalWizardry/common/renderer/model/ModelSmallEarthGolem.java +++ /dev/null @@ -1,127 +0,0 @@ -package WayofTime.alchemicalWizardry.common.renderer.model; - -import net.minecraft.client.model.ModelBase; -import net.minecraft.client.model.ModelRenderer; -import net.minecraft.entity.Entity; -import net.minecraft.util.MathHelper; - -public class ModelSmallEarthGolem extends ModelBase -{ - //fields - ModelRenderer leftLeg; - ModelRenderer rightLeg; - ModelRenderer body; - ModelRenderer head; - ModelRenderer chest1; - ModelRenderer chest2; - ModelRenderer chest3; - ModelRenderer leftArm; - ModelRenderer rightArm; - ModelRenderer back1; - - public ModelSmallEarthGolem() - { - textureWidth = 32; - textureHeight = 32; - leftLeg = new ModelRenderer(this, 13, 0); - leftLeg.addBox(-1F, 0F, -1F, 2, 5, 2); - leftLeg.setRotationPoint(1F, 19F, 0F); - leftLeg.setTextureSize(32, 32); - leftLeg.mirror = true; - setRotation(leftLeg, 0F, 0F, 0F); - rightLeg = new ModelRenderer(this, 13, 0); - rightLeg.mirror = true; - rightLeg.addBox(-1F, 0F, -1F, 2, 5, 2); - rightLeg.setRotationPoint(-1F, 19F, 0F); - rightLeg.setTextureSize(32, 32); - rightLeg.mirror = true; - setRotation(rightLeg, 0F, 0F, 0F); - rightLeg.mirror = false; - body = new ModelRenderer(this, 0, 7); - body.addBox(-2F, 0F, -1F, 4, 5, 2); - body.setRotationPoint(0F, 14F, 0F); - body.setTextureSize(32, 32); - body.mirror = true; - setRotation(body, 0F, 0F, 0F); - head = new ModelRenderer(this, 0, 0); - head.addBox(-1.5F, -3F, -2F, 3, 3, 3); - head.setRotationPoint(0F, 14F, 0F); - head.setTextureSize(32, 32); - head.mirror = true; - setRotation(head, 0F, 0F, 0F); - chest1 = new ModelRenderer(this, 22, 0); - chest1.addBox(-1F, 0.5F, -2F, 2, 3, 1); - chest1.setRotationPoint(0F, 14F, 0F); - chest1.setTextureSize(32, 32); - chest1.mirror = true; - setRotation(chest1, 0F, 0F, 0F); - chest2 = new ModelRenderer(this, 22, 5); - chest2.addBox(1F, 1.5F, -2F, 1, 1, 1); - chest2.setRotationPoint(0F, 14F, 0F); - chest2.setTextureSize(32, 32); - chest2.mirror = true; - setRotation(chest2, 0F, 0F, 0F); - chest3 = new ModelRenderer(this, 22, 5); - chest3.mirror = true; - chest3.addBox(-2F, 1.5F, -2F, 1, 1, 1); - chest3.setRotationPoint(0F, 14F, 0F); - chest3.setTextureSize(32, 32); - chest3.mirror = true; - setRotation(chest3, 0F, 0F, 0F); - chest3.mirror = false; - leftArm = new ModelRenderer(this, 13, 7); - leftArm.addBox(0F, -1F, -1F, 2, 5, 2); - leftArm.setRotationPoint(2F, 15F, 0F); - leftArm.setTextureSize(32, 32); - leftArm.mirror = true; - setRotation(leftArm, 0F, 0F, 0F); - rightArm = new ModelRenderer(this, 13, 7); - rightArm.mirror = true; - rightArm.addBox(-2F, -1F, -1F, 2, 5, 2); - rightArm.setRotationPoint(-2F, 15F, 0F); - rightArm.setTextureSize(32, 32); - rightArm.mirror = true; - setRotation(rightArm, 0F, 0F, 0F); - rightArm.mirror = false; - back1 = new ModelRenderer(this, 22, 8); - back1.addBox(-1.5F, 1.5F, 1F, 3, 1, 1); - back1.setRotationPoint(0F, 14F, 0F); - back1.setTextureSize(32, 32); - back1.mirror = true; - setRotation(back1, 0F, 0F, 0F); - } - - public void render(Entity entity, float f, float f1, float f2, float f3, float f4, float f5) - { - super.render(entity, f, f1, f2, f3, f4, f5); - setRotationAngles(f, f1, f2, f3, f4, f5, entity); - leftLeg.render(f5); - rightLeg.render(f5); - body.render(f5); - head.render(f5); - chest1.render(f5); - chest2.render(f5); - chest3.render(f5); - leftArm.render(f5); - rightArm.render(f5); - back1.render(f5); - } - - private void setRotation(ModelRenderer model, float x, float y, float z) - { - model.rotateAngleX = x; - model.rotateAngleY = y; - model.rotateAngleZ = z; - } - - public void setRotationAngles(float f, float f1, float f2, float f3, float f4, float f5, Entity entity) - { - super.setRotationAngles(f, f1, f2, f3, f4, f5, entity); - this.head.rotateAngleX = f4 / (180F / (float) Math.PI); - this.head.rotateAngleY = f3 / (180F / (float) Math.PI); - this.leftLeg.rotateAngleX = MathHelper.cos(f * 0.6662F) * 1.4F * f1; - this.rightLeg.rotateAngleX = MathHelper.cos(f * 0.6662F + (float) Math.PI) * 1.4F * f1; - this.rightArm.rotateAngleX = MathHelper.cos(f * 0.6662F + (float) Math.PI) * 1.4F * f1; - this.leftArm.rotateAngleX = MathHelper.cos(f * 0.6662F) * 1.4F * f1; - } -} \ No newline at end of file diff --git a/1.7.2/main/java/WayofTime/alchemicalWizardry/common/renderer/model/ModelSpellEffectBlock.java b/1.7.2/main/java/WayofTime/alchemicalWizardry/common/renderer/model/ModelSpellEffectBlock.java deleted file mode 100644 index 61110926..00000000 --- a/1.7.2/main/java/WayofTime/alchemicalWizardry/common/renderer/model/ModelSpellEffectBlock.java +++ /dev/null @@ -1,332 +0,0 @@ -package WayofTime.alchemicalWizardry.common.renderer.model; - -import net.minecraft.client.model.ModelBase; -import net.minecraft.client.model.ModelRenderer; -import net.minecraft.entity.Entity; -import net.minecraftforge.common.util.ForgeDirection; - -public class ModelSpellEffectBlock extends ModelBase -{ - //fields - ModelRenderer core; - ModelRenderer frame1; - ModelRenderer frame2; - ModelRenderer frame3; - ModelRenderer frame4; - ModelRenderer frame5; - ModelRenderer frame6; - ModelRenderer frame7; - ModelRenderer frame8; - ModelRenderer frame9; - ModelRenderer frame10; - ModelRenderer frame11; - ModelRenderer frame12; - ModelRenderer inputSpacer1; - ModelRenderer inputFace; - ModelRenderer inputSpacer2; - ModelRenderer inputSpacer3; - ModelRenderer inputSpacer4; - ModelRenderer outputFace; - ModelRenderer outputPlug; - ModelRenderer outputSpacer1; - ModelRenderer outputSpacer2; - ModelRenderer outputSpacer3; - ModelRenderer outputSpacer4; - - public ModelSpellEffectBlock() - { - textureWidth = 64; - textureHeight = 64; - - core = new ModelRenderer(this, 0, 0); - core.addBox(-3F, -3F, -3F, 6, 6, 6); - core.setRotationPoint(0F, 16F, 0F); - core.setTextureSize(64, 64); - core.mirror = true; - setRotation(core, 0F, 0F, 0F); - frame1 = new ModelRenderer(this, 16, 18); - frame1.addBox(3F, -3F, -5F, 2, 6, 2); - frame1.setRotationPoint(0F, 16F, 0F); - frame1.setTextureSize(64, 64); - frame1.mirror = true; - setRotation(frame1, 0F, 0F, 0F); - frame2 = new ModelRenderer(this, 0, 18); - frame2.addBox(-5F, -3F, -5F, 2, 6, 2); - frame2.setRotationPoint(0F, 16F, 0F); - frame2.setTextureSize(64, 64); - frame2.mirror = true; - setRotation(frame2, 0F, 0F, 0F); - frame3 = new ModelRenderer(this, 0, 13); - frame3.addBox(-5F, -5F, -5F, 10, 2, 2); - frame3.setRotationPoint(0F, 16F, 0F); - frame3.setTextureSize(64, 64); - frame3.mirror = true; - setRotation(frame3, 0F, 0F, 0F); - frame4 = new ModelRenderer(this, 0, 27); - frame4.addBox(-5F, 3F, -5F, 10, 2, 2); - frame4.setRotationPoint(0F, 16F, 0F); - frame4.setTextureSize(64, 64); - frame4.mirror = true; - setRotation(frame4, 0F, 0F, 0F); - frame5 = new ModelRenderer(this, 0, 34); - frame5.addBox(-5F, -5F, 3F, 10, 2, 2); - frame5.setRotationPoint(0F, 16F, 0F); - frame5.setTextureSize(64, 64); - frame5.mirror = true; - setRotation(frame5, 0F, 0F, 0F); - frame6 = new ModelRenderer(this, 0, 48); - frame6.addBox(-5F, 3F, 3F, 10, 2, 2); - frame6.setRotationPoint(0F, 16F, 0F); - frame6.setTextureSize(64, 64); - frame6.mirror = true; - setRotation(frame6, 0F, 0F, 0F); - frame7 = new ModelRenderer(this, 16, 39); - frame7.addBox(-5F, -3F, 3F, 2, 6, 2); - frame7.setRotationPoint(0F, 16F, 0F); - frame7.setTextureSize(64, 64); - frame7.mirror = true; - setRotation(frame7, 0F, 0F, 0F); - frame8 = new ModelRenderer(this, 0, 39); - frame8.addBox(3F, -3F, 3F, 2, 6, 2); - frame8.setRotationPoint(0F, 16F, 0F); - frame8.setTextureSize(64, 64); - frame8.mirror = true; - setRotation(frame8, 0F, 0F, 0F); - frame9 = new ModelRenderer(this, 25, 9); - frame9.addBox(-5F, 3F, -3F, 2, 2, 6); - frame9.setRotationPoint(0F, 16F, 0F); - frame9.setTextureSize(64, 64); - frame9.mirror = true; - setRotation(frame9, 0F, 0F, 0F); - frame10 = new ModelRenderer(this, 25, 0); - frame10.addBox(-5F, -5F, -3F, 2, 2, 6); - frame10.setRotationPoint(0F, 16F, 0F); - frame10.setTextureSize(64, 64); - frame10.mirror = true; - setRotation(frame10, 0F, 0F, 0F); - frame11 = new ModelRenderer(this, 42, 0); - frame11.addBox(3F, -5F, -3F, 2, 2, 6); - frame11.setRotationPoint(0F, 16F, 0F); - frame11.setTextureSize(64, 64); - frame11.mirror = true; - setRotation(frame11, 0F, 0F, 0F); - frame12 = new ModelRenderer(this, 42, 9); - frame12.addBox(3F, 3F, -3F, 2, 2, 6); - frame12.setRotationPoint(0F, 16F, 0F); - frame12.setTextureSize(64, 64); - frame12.mirror = true; - setRotation(frame12, 0F, 0F, 0F); - inputSpacer1 = new ModelRenderer(this, 25, 27); - inputSpacer1.addBox(3F, -5F, -8F, 2, 2, 3); - inputSpacer1.setRotationPoint(0F, 16F, 0F); - inputSpacer1.setTextureSize(64, 64); - inputSpacer1.mirror = true; - setRotation(inputSpacer1, 0F, 0F, 0F); - inputFace = new ModelRenderer(this, 38, 27); - inputFace.addBox(-2F, -2F, -8F, 4, 4, 5); - inputFace.setRotationPoint(0F, 16F, 0F); - inputFace.setTextureSize(64, 64); - inputFace.mirror = true; - setRotation(inputFace, 0F, 0F, 0F); - inputSpacer2 = new ModelRenderer(this, 25, 27); - inputSpacer2.addBox(-5F, -5F, -8F, 2, 2, 3); - inputSpacer2.setRotationPoint(0F, 16F, 0F); - inputSpacer2.setTextureSize(64, 64); - inputSpacer2.mirror = true; - setRotation(inputSpacer2, 0F, 0F, 0F); - inputSpacer3 = new ModelRenderer(this, 25, 27); - inputSpacer3.addBox(3F, 3F, -8F, 2, 2, 3); - inputSpacer3.setRotationPoint(0F, 16F, 0F); - inputSpacer3.setTextureSize(64, 64); - inputSpacer3.mirror = true; - setRotation(inputSpacer3, 0F, 0F, 0F); - inputSpacer4 = new ModelRenderer(this, 25, 27); - inputSpacer4.addBox(-5F, 3F, -8F, 2, 2, 3); - inputSpacer4.setRotationPoint(0F, 16F, 0F); - inputSpacer4.setTextureSize(64, 64); - inputSpacer4.mirror = true; - setRotation(inputSpacer4, 0F, 0F, 0F); - outputFace = new ModelRenderer(this, 38, 37); - outputFace.addBox(6F, -2F, -2F, 2, 4, 4); - outputFace.setRotationPoint(0F, 16F, 0F); - outputFace.setTextureSize(64, 64); - outputFace.mirror = true; - setRotation(outputFace, 0F, 0F, 0F); - outputPlug = new ModelRenderer(this, 36, 48); - outputPlug.addBox(3F, -3F, -3F, 2, 6, 6); - outputPlug.setRotationPoint(0F, 16F, 0F); - outputPlug.setTextureSize(64, 64); - outputPlug.mirror = true; - setRotation(outputPlug, 0F, 0F, 0F); - outputSpacer1 = new ModelRenderer(this, 25, 48); - outputSpacer1.addBox(5F, -5F, -5F, 3, 2, 2); - outputSpacer1.setRotationPoint(0F, 16F, 0F); - outputSpacer1.setTextureSize(64, 64); - outputSpacer1.mirror = true; - setRotation(outputSpacer1, 0F, 0F, 0F); - outputSpacer2 = new ModelRenderer(this, 25, 48); - outputSpacer2.addBox(5F, -5F, 3F, 3, 2, 2); - outputSpacer2.setRotationPoint(0F, 16F, 0F); - outputSpacer2.setTextureSize(64, 64); - outputSpacer2.mirror = true; - setRotation(outputSpacer2, 0F, 0F, 0F); - outputSpacer3 = new ModelRenderer(this, 25, 48); - outputSpacer3.addBox(5F, 3F, -5F, 3, 2, 2); - outputSpacer3.setRotationPoint(0F, 16F, 0F); - outputSpacer3.setTextureSize(64, 64); - outputSpacer3.mirror = true; - setRotation(outputSpacer3, 0F, 0F, 0F); - outputSpacer4 = new ModelRenderer(this, 25, 48); - outputSpacer4.addBox(5F, 3F, 3F, 3, 2, 2); - outputSpacer4.setRotationPoint(0F, 16F, 0F); - outputSpacer4.setTextureSize(64, 64); - outputSpacer4.mirror = true; - setRotation(outputSpacer4, 0F, 0F, 0F); - } - - public void render(Entity entity, float f, float f1, float f2, float f3, float f4, float f5, ForgeDirection input, ForgeDirection output) - { - super.render(entity, f, f1, f2, f3, f4, f5); - setRotationAngles(f, f1, f2, f3, f4, f5, entity); - float xInputRot = 0.0f; - float yInputRot = 0.0f; - float zInputRot = 0.0f; - float xOutputRot = 0.0f; - float yOutputRot = 0.0f; - float zOutputRot = 0.0f; - - switch (input) - { - case NORTH: - xInputRot = 0.0f; - yInputRot = 0.0f; - zInputRot = 0.0f; - break; - - case EAST: - xInputRot = 0.0f; - yInputRot = (float) (0.5f * Math.PI); - zInputRot = 0.0f; - break; - - case SOUTH: - xInputRot = 0.0f; - yInputRot = (float) (1.0f * Math.PI); - zInputRot = 0.0f; - break; - - case WEST: - xInputRot = 0.0f; - yInputRot = (float) (-0.5f * Math.PI); - zInputRot = 0.0f; - break; - - case UP: - xInputRot = (float) (-0.5f * Math.PI); - yInputRot = 0.0f; - zInputRot = 0.0f; - break; - - case DOWN: - xInputRot = (float) (0.5f * Math.PI); - yInputRot = 0.0f; - zInputRot = 0.0f; - break; - - default: - break; - } - - switch (output) - { - case NORTH: - xOutputRot = 0.0f; - yOutputRot = (float) (0.5f * Math.PI); - zOutputRot = 0.0f; - break; - - case EAST: - xOutputRot = 0.0f; - yOutputRot = (float) (1.0f * Math.PI); - zOutputRot = 0.0f; - break; - - case SOUTH: - xOutputRot = 0.0f; - yOutputRot = (float) (-0.5f * Math.PI); - zOutputRot = 0.0f; - break; - - case WEST: - xOutputRot = 0.0f; - yOutputRot = 0.0f; - zOutputRot = 0.0f; - break; - - case UP: - xOutputRot = 0.0f; - yOutputRot = 0.0f; - zOutputRot = (float) (-0.5f * Math.PI); - break; - - case DOWN: - xOutputRot = 0.0f; - yOutputRot = 0.0f; - zOutputRot = (float) (0.5f * Math.PI); - break; - - default: - break; - } - - this.setRotation(inputFace, xInputRot, yInputRot, zInputRot); - this.setRotation(outputFace, xOutputRot, yOutputRot, zOutputRot); - this.setRotation(inputSpacer1, xInputRot, yInputRot, zInputRot); - this.setRotation(inputSpacer2, xInputRot, yInputRot, zInputRot); - this.setRotation(inputSpacer3, xInputRot, yInputRot, zInputRot); - this.setRotation(inputSpacer4, xInputRot, yInputRot, zInputRot); - this.setRotation(outputPlug, xOutputRot, yOutputRot, zOutputRot); - this.setRotation(outputSpacer1, xOutputRot, yOutputRot, zOutputRot); - this.setRotation(outputSpacer2, xOutputRot, yOutputRot, zOutputRot); - this.setRotation(outputSpacer3, xOutputRot, yOutputRot, zOutputRot); - this.setRotation(outputSpacer4, xOutputRot, yOutputRot, zOutputRot); - - core.render(f5); - frame1.render(f5); - frame2.render(f5); - frame3.render(f5); - frame4.render(f5); - frame5.render(f5); - frame6.render(f5); - frame7.render(f5); - frame8.render(f5); - frame9.render(f5); - frame10.render(f5); - frame11.render(f5); - frame12.render(f5); - inputSpacer1.render(f5); - inputFace.render(f5); - inputSpacer2.render(f5); - inputSpacer3.render(f5); - inputSpacer4.render(f5); - outputFace.render(f5); - outputPlug.render(f5); - outputSpacer1.render(f5); - outputSpacer2.render(f5); - outputSpacer3.render(f5); - outputSpacer4.render(f5); - } - - private void setRotation(ModelRenderer model, float x, float y, float z) - { - model.rotateAngleX = x; - model.rotateAngleY = y; - model.rotateAngleZ = z; - } - - public void setRotationAngles(float f, float f1, float f2, float f3, float f4, float f5, Entity entity) - { - super.setRotationAngles(f, f1, f2, f3, f4, f5, entity); - } - -} diff --git a/1.7.2/main/java/WayofTime/alchemicalWizardry/common/renderer/model/ModelSpellEnhancementBlock.java b/1.7.2/main/java/WayofTime/alchemicalWizardry/common/renderer/model/ModelSpellEnhancementBlock.java deleted file mode 100644 index f56dca24..00000000 --- a/1.7.2/main/java/WayofTime/alchemicalWizardry/common/renderer/model/ModelSpellEnhancementBlock.java +++ /dev/null @@ -1,334 +0,0 @@ -package WayofTime.alchemicalWizardry.common.renderer.model; - -import net.minecraft.client.model.ModelBase; -import net.minecraft.client.model.ModelRenderer; -import net.minecraft.entity.Entity; -import net.minecraftforge.common.util.ForgeDirection; - - -public class ModelSpellEnhancementBlock extends ModelBase -{ - //fields - ModelRenderer core; - ModelRenderer frame1; - ModelRenderer frame2; - ModelRenderer frame3; - ModelRenderer frame4; - ModelRenderer frame5; - ModelRenderer frame6; - ModelRenderer frame7; - ModelRenderer frame8; - ModelRenderer frame9; - ModelRenderer frame10; - ModelRenderer frame11; - ModelRenderer frame12; - ModelRenderer outputMain; - ModelRenderer inputMain; - ModelRenderer output1; - ModelRenderer output2; - ModelRenderer output3; - ModelRenderer output4; - ModelRenderer input1; - ModelRenderer input2; - ModelRenderer input3; - ModelRenderer input4; - ModelRenderer outputSecond; - - public ModelSpellEnhancementBlock() - { - textureWidth = 128; - textureHeight = 64; - - core = new ModelRenderer(this, 0, 0); - core.addBox(-3F, -3F, -3F, 6, 6, 6); - core.setRotationPoint(0F, 16F, 0F); - core.setTextureSize(128, 64); - core.mirror = true; - setRotation(core, 0F, 0F, 0F); - frame1 = new ModelRenderer(this, 0, 32); - frame1.addBox(-7F, 5F, -7F, 14, 2, 2); - frame1.setRotationPoint(0F, 16F, 0F); - frame1.setTextureSize(128, 64); - frame1.mirror = true; - setRotation(frame1, 0F, 0F, 0F); - frame2 = new ModelRenderer(this, 24, 19); - frame2.addBox(5F, -5F, -7F, 2, 10, 2); - frame2.setRotationPoint(0F, 16F, 0F); - frame2.setTextureSize(128, 64); - frame2.mirror = true; - setRotation(frame2, 0F, 0F, 0F); - frame3 = new ModelRenderer(this, 0, 19); - frame3.addBox(-7F, -5F, -7F, 2, 10, 2); - frame3.setRotationPoint(0F, 16F, 0F); - frame3.setTextureSize(128, 64); - frame3.mirror = true; - setRotation(frame3, 0F, 0F, 0F); - frame4 = new ModelRenderer(this, 0, 14); - frame4.addBox(-7F, -7F, -7F, 14, 2, 2); - frame4.setRotationPoint(0F, 16F, 0F); - frame4.setTextureSize(128, 64); - frame4.mirror = true; - setRotation(frame4, 0F, 0F, 0F); - frame5 = new ModelRenderer(this, 0, 57); - frame5.addBox(-7F, 5F, 5F, 14, 2, 2); - frame5.setRotationPoint(0F, 16F, 0F); - frame5.setTextureSize(128, 64); - frame5.mirror = true; - setRotation(frame5, 0F, 0F, 0F); - frame6 = new ModelRenderer(this, 0, 44); - frame6.addBox(5F, -5F, 5F, 2, 10, 2); - frame6.setRotationPoint(0F, 16F, 0F); - frame6.setTextureSize(128, 64); - frame6.mirror = true; - setRotation(frame6, 0F, 0F, 0F); - frame7 = new ModelRenderer(this, 24, 44); - frame7.addBox(-7F, -5F, 5F, 2, 10, 2); - frame7.setRotationPoint(0F, 16F, 0F); - frame7.setTextureSize(128, 64); - frame7.mirror = true; - setRotation(frame7, 0F, 0F, 0F); - frame8 = new ModelRenderer(this, 0, 39); - frame8.addBox(-7F, -7F, 5F, 14, 2, 2); - frame8.setRotationPoint(0F, 16F, 0F); - frame8.setTextureSize(128, 64); - frame8.mirror = true; - setRotation(frame8, 0F, 0F, 0F); - frame9 = new ModelRenderer(this, 66, 14); - frame9.addBox(5F, 5F, -5F, 2, 2, 10); - frame9.setRotationPoint(0F, 16F, 0F); - frame9.setTextureSize(128, 64); - frame9.mirror = true; - setRotation(frame9, 0F, 0F, 0F); - frame10 = new ModelRenderer(this, 40, 14); - frame10.addBox(-7F, 5F, -5F, 2, 2, 10); - frame10.setRotationPoint(0F, 16F, 0F); - frame10.setTextureSize(128, 64); - frame10.mirror = true; - setRotation(frame10, 0F, 0F, 0F); - frame11 = new ModelRenderer(this, 66, 0); - frame11.addBox(5F, -7F, -5F, 2, 2, 10); - frame11.setRotationPoint(0F, 16F, 0F); - frame11.setTextureSize(128, 64); - frame11.mirror = true; - setRotation(frame11, 0F, 0F, 0F); - frame12 = new ModelRenderer(this, 40, 0); - frame12.addBox(-7F, -7F, -5F, 2, 2, 10); - frame12.setRotationPoint(0F, 16F, 0F); - frame12.setTextureSize(128, 64); - frame12.mirror = true; - setRotation(frame12, 0F, 0F, 0F); - outputMain = new ModelRenderer(this, 78, 36); - outputMain.addBox(6F, -2F, -2F, 2, 4, 4); - outputMain.setRotationPoint(0F, 16F, 0F); - outputMain.setTextureSize(128, 64); - outputMain.mirror = true; - setRotation(outputMain, 0F, 0F, 0F); - inputMain = new ModelRenderer(this, 40, 36); - inputMain.addBox(-2F, -2F, -8F, 4, 4, 5); - inputMain.setRotationPoint(0F, 16F, 0F); - inputMain.setTextureSize(128, 64); - inputMain.mirror = true; - setRotation(inputMain, 0F, 0F, 0F); - output1 = new ModelRenderer(this, 80, 30); - output1.addBox(5F, -5F, -5F, 3, 2, 2); - output1.setRotationPoint(0F, 16F, 0F); - output1.setTextureSize(128, 64); - output1.mirror = true; - setRotation(output1, 0F, 0F, 0F); - output2 = new ModelRenderer(this, 80, 30); - output2.addBox(5F, -5F, 3F, 3, 2, 2); - output2.setRotationPoint(0F, 16F, 0F); - output2.setTextureSize(128, 64); - output2.mirror = true; - setRotation(output2, 0F, 0F, 0F); - output3 = new ModelRenderer(this, 80, 30); - output3.addBox(5F, 3F, -5F, 3, 2, 2); - output3.setRotationPoint(0F, 16F, 0F); - output3.setTextureSize(128, 64); - output3.mirror = true; - setRotation(output3, 0F, 0F, 0F); - output4 = new ModelRenderer(this, 80, 30); - output4.addBox(5F, 3F, 3F, 3, 2, 2); - output4.setRotationPoint(0F, 16F, 0F); - output4.setTextureSize(128, 64); - output4.mirror = true; - setRotation(output4, 0F, 0F, 0F); - input1 = new ModelRenderer(this, 40, 27); - input1.addBox(3F, -5F, -8F, 2, 2, 5); - input1.setRotationPoint(0F, 16F, 0F); - input1.setTextureSize(128, 64); - input1.mirror = true; - setRotation(input1, 0F, 0F, 0F); - input2 = new ModelRenderer(this, 40, 27); - input2.addBox(-5F, -5F, -8F, 2, 2, 5); - input2.setRotationPoint(0F, 16F, 0F); - input2.setTextureSize(128, 64); - input2.mirror = true; - setRotation(input2, 0F, 0F, 0F); - input3 = new ModelRenderer(this, 40, 27); - input3.addBox(3F, 3F, -8F, 2, 2, 5); - input3.setRotationPoint(0F, 16F, 0F); - input3.setTextureSize(128, 64); - input3.mirror = true; - setRotation(input3, 0F, 0F, 0F); - input4 = new ModelRenderer(this, 40, 27); - input4.addBox(-5F, 3F, -8F, 2, 2, 5); - input4.setRotationPoint(0F, 16F, 0F); - input4.setTextureSize(128, 64); - input4.mirror = true; - setRotation(input4, 0F, 0F, 0F); - outputSecond = new ModelRenderer(this, 78, 47); - outputSecond.addBox(4F, -3F, -3F, 1, 6, 6); - outputSecond.setRotationPoint(0F, 16F, 0F); - outputSecond.setTextureSize(128, 64); - outputSecond.mirror = true; - setRotation(outputSecond, 0F, 0F, 0F); - } - - public void render(Entity entity, float f, float f1, float f2, float f3, float f4, float f5, ForgeDirection input, ForgeDirection output) - { - super.render(entity, f, f1, f2, f3, f4, f5); - setRotationAngles(f, f1, f2, f3, f4, f5, entity); - - float xInputRot = 0.0f; - float yInputRot = 0.0f; - float zInputRot = 0.0f; - float xOutputRot = 0.0f; - float yOutputRot = 0.0f; - float zOutputRot = 0.0f; - - switch (input) - { - case NORTH: - xInputRot = 0.0f; - yInputRot = 0.0f; - zInputRot = 0.0f; - break; - - case EAST: - xInputRot = 0.0f; - yInputRot = (float) (0.5f * Math.PI); - zInputRot = 0.0f; - break; - - case SOUTH: - xInputRot = 0.0f; - yInputRot = (float) (1.0f * Math.PI); - zInputRot = 0.0f; - break; - - case WEST: - xInputRot = 0.0f; - yInputRot = (float) (-0.5f * Math.PI); - zInputRot = 0.0f; - break; - - case UP: - xInputRot = (float) (-0.5f * Math.PI); - yInputRot = 0.0f; - zInputRot = 0.0f; - break; - - case DOWN: - xInputRot = (float) (0.5f * Math.PI); - yInputRot = 0.0f; - zInputRot = 0.0f; - break; - - default: - break; - } - - switch (output) - { - case NORTH: - xOutputRot = 0.0f; - yOutputRot = (float) (0.5f * Math.PI); - zOutputRot = 0.0f; - break; - - case EAST: - xOutputRot = 0.0f; - yOutputRot = (float) (1.0f * Math.PI); - zOutputRot = 0.0f; - break; - - case SOUTH: - xOutputRot = 0.0f; - yOutputRot = (float) (-0.5f * Math.PI); - zOutputRot = 0.0f; - break; - - case WEST: - xOutputRot = 0.0f; - yOutputRot = 0.0f; - zOutputRot = 0.0f; - break; - - case UP: - xOutputRot = 0.0f; - yOutputRot = 0.0f; - zOutputRot = (float) (-0.5f * Math.PI); - break; - - case DOWN: - xOutputRot = 0.0f; - yOutputRot = 0.0f; - zOutputRot = (float) (0.5f * Math.PI); - break; - - default: - break; - } - - this.setRotation(inputMain, xInputRot, yInputRot, zInputRot); - this.setRotation(outputMain, xOutputRot, yOutputRot, zOutputRot); - this.setRotation(input1, xInputRot, yInputRot, zInputRot); - this.setRotation(input2, xInputRot, yInputRot, zInputRot); - this.setRotation(input3, xInputRot, yInputRot, zInputRot); - this.setRotation(input4, xInputRot, yInputRot, zInputRot); - this.setRotation(outputSecond, xOutputRot, yOutputRot, zOutputRot); - this.setRotation(output1, xOutputRot, yOutputRot, zOutputRot); - this.setRotation(output2, xOutputRot, yOutputRot, zOutputRot); - this.setRotation(output3, xOutputRot, yOutputRot, zOutputRot); - this.setRotation(output4, xOutputRot, yOutputRot, zOutputRot); - - core.render(f5); - frame1.render(f5); - frame2.render(f5); - frame3.render(f5); - frame4.render(f5); - frame5.render(f5); - frame6.render(f5); - frame7.render(f5); - frame8.render(f5); - frame9.render(f5); - frame10.render(f5); - frame11.render(f5); - frame12.render(f5); - outputMain.render(f5); - inputMain.render(f5); - output1.render(f5); - output2.render(f5); - output3.render(f5); - output4.render(f5); - input1.render(f5); - input2.render(f5); - input3.render(f5); - input4.render(f5); - outputSecond.render(f5); - } - - private void setRotation(ModelRenderer model, float x, float y, float z) - { - model.rotateAngleX = x; - model.rotateAngleY = y; - model.rotateAngleZ = z; - } - - public void setRotationAngles(float f, float f1, float f2, float f3, float f4, float f5, Entity entity) - { - super.setRotationAngles(f, f1, f2, f3, f4, f5, entity); - } - -} diff --git a/1.7.2/main/java/WayofTime/alchemicalWizardry/common/renderer/model/ModelSpellModifierBlock.java b/1.7.2/main/java/WayofTime/alchemicalWizardry/common/renderer/model/ModelSpellModifierBlock.java deleted file mode 100644 index 3ceed7e9..00000000 --- a/1.7.2/main/java/WayofTime/alchemicalWizardry/common/renderer/model/ModelSpellModifierBlock.java +++ /dev/null @@ -1,303 +0,0 @@ -package WayofTime.alchemicalWizardry.common.renderer.model; - -import net.minecraft.client.model.ModelBase; -import net.minecraft.client.model.ModelRenderer; -import net.minecraft.entity.Entity; -import net.minecraftforge.common.util.ForgeDirection; - -public class ModelSpellModifierBlock extends ModelBase -{ - //fields - ModelRenderer core; - ModelRenderer inputMain; - ModelRenderer Shape2; - ModelRenderer Shape3; - ModelRenderer Shape4; - ModelRenderer Shape5; - ModelRenderer Shape6; - ModelRenderer Shape7; - ModelRenderer Shape8; - ModelRenderer Shape9; - ModelRenderer outputMain; - ModelRenderer Shape11; - ModelRenderer Shape12; - ModelRenderer Shape13; - ModelRenderer Shape14; - ModelRenderer output1; - ModelRenderer output2; - ModelRenderer output3; - ModelRenderer output4; - - public ModelSpellModifierBlock() - { - textureWidth = 64; - textureHeight = 64; - - core = new ModelRenderer(this, 0, 0); - core.addBox(-3F, -3F, -3F, 6, 6, 6); - core.setRotationPoint(0F, 16F, 0F); - core.setTextureSize(64, 64); - core.mirror = true; - setRotation(core, 0F, 0F, 0F); - inputMain = new ModelRenderer(this, 25, 18); - inputMain.addBox(-2F, -2F, -8F, 4, 4, 1); - inputMain.setRotationPoint(0F, 16F, 0F); - inputMain.setTextureSize(64, 64); - inputMain.mirror = true; - setRotation(inputMain, 0F, 0F, 0F); - Shape2 = new ModelRenderer(this, 0, 13); - Shape2.addBox(-5F, -5F, -8F, 10, 2, 2); - Shape2.setRotationPoint(0F, 16F, 0F); - Shape2.setTextureSize(64, 64); - Shape2.mirror = true; - setRotation(Shape2, 0F, 0F, 0F); - Shape3 = new ModelRenderer(this, 0, 27); - Shape3.addBox(-5F, 3F, -8F, 10, 2, 2); - Shape3.setRotationPoint(0F, 16F, 0F); - Shape3.setTextureSize(64, 64); - Shape3.mirror = true; - setRotation(Shape3, 0F, 0F, 0F); - Shape4 = new ModelRenderer(this, 16, 18); - Shape4.addBox(3F, -3F, -8F, 2, 6, 2); - Shape4.setRotationPoint(0F, 16F, 0F); - Shape4.setTextureSize(64, 64); - Shape4.mirror = true; - setRotation(Shape4, 0F, 0F, 0F); - Shape5 = new ModelRenderer(this, 0, 18); - Shape5.addBox(-5F, -3F, -8F, 2, 6, 2); - Shape5.setRotationPoint(0F, 16F, 0F); - Shape5.setTextureSize(64, 64); - Shape5.mirror = true; - setRotation(Shape5, 0F, 0F, 0F); - Shape6 = new ModelRenderer(this, 0, 32); - Shape6.addBox(-1F, -6F, -7F, 2, 1, 5); - Shape6.setRotationPoint(0F, 16F, 0F); - Shape6.setTextureSize(64, 64); - Shape6.mirror = true; - setRotation(Shape6, 0F, 0F, 0F); - Shape7 = new ModelRenderer(this, 15, 32); - Shape7.addBox(-2F, -6F, -2F, 4, 1, 4); - Shape7.setRotationPoint(0F, 16F, 0F); - Shape7.setTextureSize(64, 64); - Shape7.mirror = true; - setRotation(Shape7, 0F, 0F, 0F); - Shape8 = new ModelRenderer(this, 15, 39); - Shape8.addBox(-2F, 5F, -2F, 4, 1, 4); - Shape8.setRotationPoint(0F, 16F, 0F); - Shape8.setTextureSize(64, 64); - Shape8.mirror = true; - setRotation(Shape8, 0F, 0F, 0F); - Shape9 = new ModelRenderer(this, 0, 39); - Shape9.addBox(-1F, 5F, -7F, 2, 1, 5); - Shape9.setRotationPoint(0F, 16F, 0F); - Shape9.setTextureSize(64, 64); - Shape9.mirror = true; - setRotation(Shape9, 0F, 0F, 0F); - outputMain = new ModelRenderer(this, 51, 23); - outputMain.addBox(7F, -2F, -2F, 1, 4, 4); - outputMain.setRotationPoint(0F, 16F, 0F); - outputMain.setTextureSize(64, 64); - outputMain.mirror = true; - setRotation(outputMain, 0F, 0F, 0F); - Shape11 = new ModelRenderer(this, 13, 46); - Shape11.addBox(5F, -2F, -2F, 1, 4, 4); - Shape11.setRotationPoint(0F, 16F, 0F); - Shape11.setTextureSize(64, 64); - Shape11.mirror = true; - setRotation(Shape11, 0F, 0F, 0F); - Shape12 = new ModelRenderer(this, 0, 46); - Shape12.addBox(5F, -1F, -7F, 1, 2, 5); - Shape12.setRotationPoint(0F, 16F, 0F); - Shape12.setTextureSize(64, 64); - Shape12.mirror = true; - setRotation(Shape12, 0F, 0F, 0F); - Shape13 = new ModelRenderer(this, 0, 56); - Shape13.addBox(-6F, -1F, -7F, 1, 2, 5); - Shape13.setRotationPoint(0F, 16F, 0F); - Shape13.setTextureSize(64, 64); - Shape13.mirror = true; - setRotation(Shape13, 0F, 0F, 0F); - Shape14 = new ModelRenderer(this, 13, 56); - Shape14.addBox(-6F, -2F, -2F, 1, 4, 4); - Shape14.setRotationPoint(0F, 16F, 0F); - Shape14.setTextureSize(64, 64); - Shape14.mirror = true; - setRotation(Shape14, 0F, 0F, 0F); - output1 = new ModelRenderer(this, 51, 18); - output1.addBox(5F, -5F, -5F, 3, 2, 2); - output1.setRotationPoint(0F, 16F, 0F); - output1.setTextureSize(64, 64); - output1.mirror = true; - setRotation(output1, 0F, 0F, 0F); - output2 = new ModelRenderer(this, 51, 18); - output2.addBox(5F, -5F, 3F, 3, 2, 2); - output2.setRotationPoint(0F, 16F, 0F); - output2.setTextureSize(64, 64); - output2.mirror = true; - setRotation(output2, 0F, 0F, 0F); - output3 = new ModelRenderer(this, 51, 18); - output3.addBox(5F, 3F, -5F, 3, 2, 2); - output3.setRotationPoint(0F, 16F, 0F); - output3.setTextureSize(64, 64); - output3.mirror = true; - setRotation(output3, 0F, 0F, 0F); - output4 = new ModelRenderer(this, 51, 18); - output4.addBox(5F, 3F, 3F, 3, 2, 2); - output4.setRotationPoint(0F, 16F, 0F); - output4.setTextureSize(64, 64); - output4.mirror = true; - setRotation(output4, 0F, 0F, 0F); - } - - public void render(Entity entity, float f, float f1, float f2, float f3, float f4, float f5, ForgeDirection input, ForgeDirection output) - { - super.render(entity, f, f1, f2, f3, f4, f5); - setRotationAngles(f, f1, f2, f3, f4, f5, entity); - - float xInputRot = 0.0f; - float yInputRot = 0.0f; - float zInputRot = 0.0f; - float xOutputRot = 0.0f; - float yOutputRot = 0.0f; - float zOutputRot = 0.0f; - - switch (input) - { - case NORTH: - xInputRot = 0.0f; - yInputRot = 0.0f; - zInputRot = 0.0f; - break; - - case EAST: - xInputRot = 0.0f; - yInputRot = (float) (0.5f * Math.PI); - zInputRot = 0.0f; - break; - - case SOUTH: - xInputRot = 0.0f; - yInputRot = (float) (1.0f * Math.PI); - zInputRot = 0.0f; - break; - - case WEST: - xInputRot = 0.0f; - yInputRot = (float) (-0.5f * Math.PI); - zInputRot = 0.0f; - break; - - case UP: - xInputRot = (float) (-0.5f * Math.PI); - yInputRot = 0.0f; - zInputRot = 0.0f; - break; - - case DOWN: - xInputRot = (float) (0.5f * Math.PI); - yInputRot = 0.0f; - zInputRot = 0.0f; - break; - - default: - break; - } - - switch (output) - { - case NORTH: - xOutputRot = 0.0f; - yOutputRot = (float) (0.5f * Math.PI); - zOutputRot = 0.0f; - break; - - case EAST: - xOutputRot = 0.0f; - yOutputRot = (float) (1.0f * Math.PI); - zOutputRot = 0.0f; - break; - - case SOUTH: - xOutputRot = 0.0f; - yOutputRot = (float) (-0.5f * Math.PI); - zOutputRot = 0.0f; - break; - - case WEST: - xOutputRot = 0.0f; - yOutputRot = 0.0f; - zOutputRot = 0.0f; - break; - - case UP: - xOutputRot = 0.0f; - yOutputRot = 0.0f; - zOutputRot = (float) (-0.5f * Math.PI); - break; - - case DOWN: - xOutputRot = 0.0f; - yOutputRot = 0.0f; - zOutputRot = (float) (0.5f * Math.PI); - break; - - default: - break; - } - - this.setRotation(inputMain, xInputRot, yInputRot, zInputRot); - this.setRotation(Shape2, xInputRot, yInputRot, zInputRot); - this.setRotation(Shape3, xInputRot, yInputRot, zInputRot); - this.setRotation(Shape4, xInputRot, yInputRot, zInputRot); - this.setRotation(Shape5, xInputRot, yInputRot, zInputRot); - this.setRotation(Shape6, xInputRot, yInputRot, zInputRot); - this.setRotation(Shape7, xInputRot, yInputRot, zInputRot); - this.setRotation(Shape8, xInputRot, yInputRot, zInputRot); - this.setRotation(Shape9, xInputRot, yInputRot, zInputRot); - this.setRotation(Shape12, xInputRot, yInputRot, zInputRot); - this.setRotation(Shape11, xInputRot, yInputRot, zInputRot); - this.setRotation(Shape13, xInputRot, yInputRot, zInputRot); - this.setRotation(Shape14, xInputRot, yInputRot, zInputRot); - - this.setRotation(outputMain, xOutputRot, yOutputRot, zOutputRot); - this.setRotation(output1, xOutputRot, yOutputRot, zOutputRot); - this.setRotation(output2, xOutputRot, yOutputRot, zOutputRot); - this.setRotation(output3, xOutputRot, yOutputRot, zOutputRot); - this.setRotation(output4, xOutputRot, yOutputRot, zOutputRot); - - - core.render(f5); - inputMain.render(f5); - Shape2.render(f5); - Shape3.render(f5); - Shape4.render(f5); - Shape5.render(f5); - Shape6.render(f5); - Shape7.render(f5); - Shape8.render(f5); - Shape9.render(f5); - outputMain.render(f5); - Shape11.render(f5); - Shape12.render(f5); - Shape13.render(f5); - Shape14.render(f5); - output1.render(f5); - output2.render(f5); - output3.render(f5); - output4.render(f5); - } - - private void setRotation(ModelRenderer model, float x, float y, float z) - { - model.rotateAngleX = x; - model.rotateAngleY = y; - model.rotateAngleZ = z; - } - - public void setRotationAngles(float f, float f1, float f2, float f3, float f4, float f5, Entity entity) - { - super.setRotationAngles(f, f1, f2, f3, f4, f5, entity); - } - -} - diff --git a/1.7.2/main/java/WayofTime/alchemicalWizardry/common/renderer/model/ModelSpellParadigmBlock.java b/1.7.2/main/java/WayofTime/alchemicalWizardry/common/renderer/model/ModelSpellParadigmBlock.java deleted file mode 100644 index da48b87d..00000000 --- a/1.7.2/main/java/WayofTime/alchemicalWizardry/common/renderer/model/ModelSpellParadigmBlock.java +++ /dev/null @@ -1,234 +0,0 @@ -package WayofTime.alchemicalWizardry.common.renderer.model; - -//Date: 07/03/2014 9:30:25 PM -//Template version 1.1 -//Java generated by Techne -//Keep in mind that you still need to fill in some blanks -//- ZeuX - - - -import net.minecraft.client.model.ModelBase; -import net.minecraft.client.model.ModelRenderer; -import net.minecraft.entity.Entity; -import net.minecraftforge.common.util.ForgeDirection; - -public class ModelSpellParadigmBlock extends ModelBase -{ -//fields - ModelRenderer core; - ModelRenderer outputMain; - ModelRenderer output1; - ModelRenderer output2; - ModelRenderer output3; - ModelRenderer output4; - ModelRenderer Shape1; - ModelRenderer Shape2; - ModelRenderer Shape3; - ModelRenderer Shape4; - ModelRenderer Shape5; - -public ModelSpellParadigmBlock() -{ - textureWidth = 64; - textureHeight = 64; - - core = new ModelRenderer(this, 0, 0); - core.addBox(-3F, -3F, -3F, 6, 6, 6); - core.setRotationPoint(0F, 16F, 0F); - core.setTextureSize(64, 64); - core.mirror = true; - setRotation(core, 0F, 0F, 0F); - outputMain = new ModelRenderer(this, 0, 13); - outputMain.addBox(6F, -2F, -2F, 2, 4, 4); - outputMain.setRotationPoint(0F, 16F, 0F); - outputMain.setTextureSize(64, 64); - outputMain.mirror = true; - setRotation(outputMain, 0F, 0F, 0F); - output1 = new ModelRenderer(this, 0, 22); - output1.addBox(5F, -5F, -5F, 3, 2, 2); - output1.setRotationPoint(0F, 16F, 0F); - output1.setTextureSize(64, 64); - output1.mirror = true; - setRotation(output1, 0F, 0F, 0F); - output2 = new ModelRenderer(this, 0, 22); - output2.addBox(5F, -5F, 3F, 3, 2, 2); - output2.setRotationPoint(0F, 16F, 0F); - output2.setTextureSize(64, 64); - output2.mirror = true; - setRotation(output2, 0F, 0F, 0F); - output3 = new ModelRenderer(this, 0, 22); - output3.addBox(5F, 3F, -5F, 3, 2, 2); - output3.setRotationPoint(0F, 16F, 0F); - output3.setTextureSize(64, 64); - output3.mirror = true; - setRotation(output3, 0F, 0F, 0F); - output4 = new ModelRenderer(this, 0, 22); - output4.addBox(5F, 3F, 3F, 3, 2, 2); - output4.setRotationPoint(0F, 16F, 0F); - output4.setTextureSize(64, 64); - output4.mirror = true; - setRotation(output4, 0F, 0F, 0F); - Shape1 = new ModelRenderer(this, 0, 28); - Shape1.addBox(-5F, -5F, -1F, 10, 1, 2); - Shape1.setRotationPoint(0F, 16F, 0F); - Shape1.setTextureSize(64, 64); - Shape1.mirror = true; - setRotation(Shape1, 0F, 0F, 0F); - Shape2 = new ModelRenderer(this, 25, 28); - Shape2.addBox(-5F, -4F, -4F, 1, 8, 8); - Shape2.setRotationPoint(0F, 16F, 0F); - Shape2.setTextureSize(64, 64); - Shape2.mirror = true; - setRotation(Shape2, 0F, 0F, 0F); - Shape3 = new ModelRenderer(this, 0, 33); - Shape3.addBox(-5F, 4F, -1F, 10, 1, 2); - Shape3.setRotationPoint(0F, 16F, 0F); - Shape3.setTextureSize(64, 64); - Shape3.mirror = true; - setRotation(Shape3, 0F, 0F, 0F); - Shape4 = new ModelRenderer(this, 0, 38); - Shape4.addBox(-5F, -1F, -5F, 10, 2, 1); - Shape4.setRotationPoint(0F, 16F, 0F); - Shape4.setTextureSize(64, 64); - Shape4.mirror = true; - setRotation(Shape4, 0F, 0F, 0F); - Shape5 = new ModelRenderer(this, 0, 43); - Shape5.addBox(-5F, -1F, 4F, 10, 2, 1); - Shape5.setRotationPoint(0F, 16F, 0F); - Shape5.setTextureSize(64, 64); - Shape5.mirror = true; - setRotation(Shape5, 0F, 0F, 0F); -} - -public void render(Entity entity, float f, float f1, float f2, float f3, float f4, float f5, ForgeDirection input, ForgeDirection output) -{ - super.render(entity, f, f1, f2, f3, f4, f5); - setRotationAngles(f, f1, f2, f3, f4, f5, entity); - float xInputRot = 0.0f; - float yInputRot = 0.0f; - float zInputRot = 0.0f; - float xOutputRot = 0.0f; - float yOutputRot = 0.0f; - float zOutputRot = 0.0f; - - switch (input) - { - case NORTH: - xInputRot = 0.0f; - yInputRot = 0.0f; - zInputRot = 0.0f; - break; - - case EAST: - xInputRot = 0.0f; - yInputRot = (float) (0.5f * Math.PI); - zInputRot = 0.0f; - break; - - case SOUTH: - xInputRot = 0.0f; - yInputRot = (float) (1.0f * Math.PI); - zInputRot = 0.0f; - break; - - case WEST: - xInputRot = 0.0f; - yInputRot = (float) (-0.5f * Math.PI); - zInputRot = 0.0f; - break; - - case UP: - xInputRot = (float) (-0.5f * Math.PI); - yInputRot = 0.0f; - zInputRot = 0.0f; - break; - - case DOWN: - xInputRot = (float) (0.5f * Math.PI); - yInputRot = 0.0f; - zInputRot = 0.0f; - break; - - default: - break; - } - - switch (output) - { - case NORTH: - xOutputRot = 0.0f; - yOutputRot = (float) (0.5f * Math.PI); - zOutputRot = 0.0f; - break; - - case EAST: - xOutputRot = 0.0f; - yOutputRot = (float) (1.0f * Math.PI); - zOutputRot = 0.0f; - break; - - case SOUTH: - xOutputRot = 0.0f; - yOutputRot = (float) (-0.5f * Math.PI); - zOutputRot = 0.0f; - break; - - case WEST: - xOutputRot = 0.0f; - yOutputRot = 0.0f; - zOutputRot = 0.0f; - break; - - case UP: - xOutputRot = 0.0f; - yOutputRot = 0.0f; - zOutputRot = (float) (-0.5f * Math.PI); - break; - - case DOWN: - xOutputRot = 0.0f; - yOutputRot = 0.0f; - zOutputRot = (float) (0.5f * Math.PI); - break; - - default: - break; - } - - this.setRotation(outputMain, xOutputRot, yOutputRot, zOutputRot); - this.setRotation(output1, xOutputRot, yOutputRot, zOutputRot); - this.setRotation(output2, xOutputRot, yOutputRot, zOutputRot); - this.setRotation(output3, xOutputRot, yOutputRot, zOutputRot); - this.setRotation(output4, xOutputRot, yOutputRot, zOutputRot); - this.setRotation(Shape1, xOutputRot, yOutputRot, zOutputRot); - this.setRotation(Shape2, xOutputRot, yOutputRot, zOutputRot); - this.setRotation(Shape3, xOutputRot, yOutputRot, zOutputRot); - this.setRotation(Shape4, xOutputRot, yOutputRot, zOutputRot); - this.setRotation(Shape5, xOutputRot, yOutputRot, zOutputRot); - core.render(f5); - outputMain.render(f5); - output1.render(f5); - output2.render(f5); - output3.render(f5); - output4.render(f5); - Shape1.render(f5); - Shape2.render(f5); - Shape3.render(f5); - Shape4.render(f5); - Shape5.render(f5); -} - -private void setRotation(ModelRenderer model, float x, float y, float z) -{ - model.rotateAngleX = x; - model.rotateAngleY = y; - model.rotateAngleZ = z; -} - -public void setRotationAngles(float f, float f1, float f2, float f3, float f4, float f5, Entity entity) -{ - super.setRotationAngles(f, f1, f2, f3, f4, f5, entity); -} - -} diff --git a/1.7.2/main/java/WayofTime/alchemicalWizardry/common/renderer/model/ModelWingedFireDemon.java b/1.7.2/main/java/WayofTime/alchemicalWizardry/common/renderer/model/ModelWingedFireDemon.java deleted file mode 100644 index 07164ffd..00000000 --- a/1.7.2/main/java/WayofTime/alchemicalWizardry/common/renderer/model/ModelWingedFireDemon.java +++ /dev/null @@ -1,203 +0,0 @@ -package WayofTime.alchemicalWizardry.common.renderer.model; - -import net.minecraft.client.model.ModelBase; -import net.minecraft.client.model.ModelRenderer; -import net.minecraft.entity.Entity; -import net.minecraft.util.MathHelper; - -public class ModelWingedFireDemon extends ModelBase -{ - //fields - ModelRenderer leftLegPlate; - ModelRenderer leftLeg; - ModelRenderer codPiece; - ModelRenderer rightLegPlate; - ModelRenderer rightLeg; - ModelRenderer body; - ModelRenderer leftShoulder; - ModelRenderer leftArm; - ModelRenderer head; - ModelRenderer rightShoulder; - ModelRenderer rightArm; - ModelRenderer leftWing; - ModelRenderer rightWing; - ModelRenderer leftHorn1; - ModelRenderer rightHorn1; - ModelRenderer leftHorn2; - ModelRenderer rightHorn2; - - public ModelWingedFireDemon() - { - textureWidth = 64; - textureHeight = 64; - leftLegPlate = new ModelRenderer(this, 40, 36); - leftLegPlate.addBox(0F, -3F, -3F, 6, 6, 6); - leftLegPlate.setRotationPoint(2F, 5F, 0F); - leftLegPlate.setTextureSize(64, 64); - leftLegPlate.mirror = true; - setRotation(leftLegPlate, 0F, 0F, 0F); - leftLeg = new ModelRenderer(this, 48, 16); - leftLeg.addBox(1F, 3F, -2F, 4, 16, 4); - leftLeg.setRotationPoint(2F, 5F, 0F); - leftLeg.setTextureSize(64, 64); - leftLeg.mirror = true; - setRotation(leftLeg, 0F, 0F, 0F); - codPiece = new ModelRenderer(this, 48, 0); - codPiece.addBox(-2F, 0F, -2F, 4, 6, 4); - codPiece.setRotationPoint(0F, 1F, 0F); - codPiece.setTextureSize(64, 64); - codPiece.mirror = true; - setRotation(codPiece, 0F, 0F, 0F); - rightLegPlate = new ModelRenderer(this, 40, 36); - rightLegPlate.mirror = true; - rightLegPlate.addBox(-6F, -3F, -3F, 6, 6, 6); - rightLegPlate.setRotationPoint(-2F, 5F, 0F); - rightLegPlate.setTextureSize(64, 64); - rightLegPlate.mirror = true; - setRotation(rightLegPlate, 0F, 0F, 0F); - rightLegPlate.mirror = false; - rightLeg = new ModelRenderer(this, 48, 16); - rightLeg.mirror = true; - rightLeg.addBox(-5F, 3F, -2F, 4, 16, 4); - rightLeg.setRotationPoint(-2F, 5F, 0F); - rightLeg.setTextureSize(64, 64); - rightLeg.mirror = true; - setRotation(rightLeg, 0F, 0F, 0F); - rightLeg.mirror = false; - body = new ModelRenderer(this, 0, 44); - body.addBox(-5F, -14F, -3F, 10, 14, 6); - body.setRotationPoint(0F, 1F, 0F); - body.setTextureSize(64, 64); - body.mirror = true; - setRotation(body, 0F, 0F, 0F); - leftShoulder = new ModelRenderer(this, 0, 29); - leftShoulder.addBox(0F, -5F, -4F, 8, 7, 8); - leftShoulder.setRotationPoint(5F, -10F, 0F); - leftShoulder.setTextureSize(64, 64); - leftShoulder.mirror = true; - setRotation(leftShoulder, 0F, 0F, 0F); - leftArm = new ModelRenderer(this, 32, 0); - leftArm.addBox(3F, 2F, -2F, 4, 12, 4); - leftArm.setRotationPoint(5F, -10F, 0F); - leftArm.setTextureSize(64, 64); - leftArm.mirror = true; - setRotation(leftArm, 0F, 0F, 0F); - head = new ModelRenderer(this, 32, 48); - head.addBox(-4F, -7F, -4F, 8, 8, 8); - head.setRotationPoint(0F, -14F, -1F); - head.setTextureSize(64, 64); - head.mirror = true; - setRotation(head, 0F, 0F, 0F); - rightShoulder = new ModelRenderer(this, 0, 29); - rightShoulder.mirror = true; - rightShoulder.mirror = true; - rightShoulder.addBox(-8F, -5F, -4F, 8, 7, 8); - rightShoulder.setRotationPoint(-5F, -10F, 0F); - rightShoulder.setTextureSize(64, 64); - rightShoulder.mirror = true; - setRotation(rightShoulder, 0F, 0F, 0F); - rightShoulder.mirror = false; - rightArm = new ModelRenderer(this, 32, 0); - rightArm.mirror = true; - rightArm.mirror = true; - rightArm.addBox(-7F, 2F, -2F, 4, 12, 4); - rightArm.setRotationPoint(-5F, -10F, 0F); - rightArm.setTextureSize(64, 64); - rightArm.mirror = true; - setRotation(rightArm, 0F, 0F, 0F); - rightArm.mirror = false; - leftWing = new ModelRenderer(this, 0, 0); - leftWing.addBox(0F, -2F, 0F, 16, 12, 0); - leftWing.setRotationPoint(0F, -11F, 3F); - leftWing.setTextureSize(64, 64); - leftWing.mirror = true; - setRotation(leftWing, 0F, -0.5061455F, 0F); - rightWing = new ModelRenderer(this, 0, 0); - rightWing.mirror = true; - rightWing.addBox(-16F, -2F, 0F, 16, 12, 0); - rightWing.setRotationPoint(0F, -11F, 3F); - rightWing.setTextureSize(64, 64); - rightWing.mirror = true; - setRotation(rightWing, 0F, 0.5061455F, 0F); - rightWing.mirror = false; - leftHorn1 = new ModelRenderer(this, 0, 12); - leftHorn1.addBox(4F, -9F, -1F, 1, 5, 1); - leftHorn1.setRotationPoint(0F, -14F, -1F); - leftHorn1.setTextureSize(64, 64); - leftHorn1.mirror = true; - setRotation(leftHorn1, 0F, 0F, 0F); - rightHorn1 = new ModelRenderer(this, 0, 12); - rightHorn1.mirror = true; - rightHorn1.addBox(-5F, -9F, -1F, 1, 5, 1); - rightHorn1.setRotationPoint(0F, -14F, -1F); - rightHorn1.setTextureSize(64, 64); - rightHorn1.mirror = true; - setRotation(rightHorn1, 0F, 0F, 0F); - rightHorn1.mirror = false; - leftHorn2 = new ModelRenderer(this, 4, 12); - leftHorn2.addBox(4F, -10F, 0F, 1, 5, 1); - leftHorn2.setRotationPoint(0F, -14F, -1F); - leftHorn2.setTextureSize(64, 64); - leftHorn2.mirror = true; - setRotation(leftHorn2, 0F, 0F, 0F); - rightHorn2 = new ModelRenderer(this, 4, 12); - rightHorn2.mirror = true; - rightHorn2.addBox(-5F, -10F, 0F, 1, 5, 1); - rightHorn2.setRotationPoint(0F, -14F, -1F); - rightHorn2.setTextureSize(64, 64); - rightHorn2.mirror = true; - setRotation(rightHorn2, 0F, 0F, 0F); - rightHorn2.mirror = false; - } - - public void render(Entity entity, float f, float f1, float f2, float f3, float f4, float f5) - { - super.render(entity, f, f1, f2, f3, f4, f5); - setRotationAngles(f, f1, f2, f3, f4, f5, entity); - leftLegPlate.render(f5); - leftLeg.render(f5); - codPiece.render(f5); - rightLegPlate.render(f5); - rightLeg.render(f5); - body.render(f5); - leftShoulder.render(f5); - leftArm.render(f5); - head.render(f5); - rightShoulder.render(f5); - rightArm.render(f5); - leftWing.render(f5); - rightWing.render(f5); - leftHorn1.render(f5); - rightHorn1.render(f5); - leftHorn2.render(f5); - rightHorn2.render(f5); - } - - private void setRotation(ModelRenderer model, float x, float y, float z) - { - model.rotateAngleX = x; - model.rotateAngleY = y; - model.rotateAngleZ = z; - } - - public void setRotationAngles(float f, float f1, float f2, float f3, float f4, float f5, Entity entity) - { - super.setRotationAngles(f, f1, f2, f3, f4, f5, entity); - this.head.rotateAngleX = f4 / (180F / (float) Math.PI); - this.head.rotateAngleY = f3 / (180F / (float) Math.PI); - this.leftHorn1.rotateAngleX = head.rotateAngleX; - this.leftHorn1.rotateAngleY = head.rotateAngleY; - this.leftHorn2.rotateAngleX = head.rotateAngleX; - this.leftHorn2.rotateAngleY = head.rotateAngleY; - this.rightHorn1.rotateAngleX = head.rotateAngleX; - this.rightHorn1.rotateAngleY = head.rotateAngleY; - this.rightHorn2.rotateAngleX = head.rotateAngleX; - this.rightHorn2.rotateAngleY = head.rotateAngleY; - this.leftLeg.rotateAngleX = MathHelper.cos(f * 0.6662F) * 1.4F * f1; - this.rightLeg.rotateAngleX = MathHelper.cos(f * 0.6662F + (float) Math.PI) * 1.0F * f1; - this.rightArm.rotateAngleX = MathHelper.cos(f * 0.6662F + (float) Math.PI) * 1.0F * f1; - this.leftArm.rotateAngleX = MathHelper.cos(f * 0.6662F) * 1.4F * f1; - this.leftShoulder.rotateAngleX = this.leftArm.rotateAngleX; - this.rightShoulder.rotateAngleX = this.rightArm.rotateAngleX; - } -} \ No newline at end of file diff --git a/1.7.2/main/java/WayofTime/alchemicalWizardry/common/renderer/model/ModelWritingTable.java b/1.7.2/main/java/WayofTime/alchemicalWizardry/common/renderer/model/ModelWritingTable.java deleted file mode 100644 index 15dede34..00000000 --- a/1.7.2/main/java/WayofTime/alchemicalWizardry/common/renderer/model/ModelWritingTable.java +++ /dev/null @@ -1,138 +0,0 @@ -package WayofTime.alchemicalWizardry.common.renderer.model; - -import net.minecraft.client.model.ModelBase; -import net.minecraft.client.model.ModelRenderer; -import net.minecraft.entity.Entity; - -public class ModelWritingTable extends ModelBase -{ - //fields - ModelRenderer base; - ModelRenderer support; - ModelRenderer appendage1; - ModelRenderer appendage2; - ModelRenderer appendage3; - ModelRenderer appendage4; - ModelRenderer appendage5; - ModelRenderer outputPad; - ModelRenderer input1; - ModelRenderer input5; - ModelRenderer input4; - ModelRenderer input3; - ModelRenderer Shape1; - - public ModelWritingTable() - { - textureWidth = 64; - textureHeight = 64; - base = new ModelRenderer(this, 0, 0); - base.addBox(0F, 0F, 0F, 16, 2, 16); - base.setRotationPoint(-8F, 22F, -8F); - base.setTextureSize(64, 32); - base.mirror = true; - setRotation(base, 0F, 0F, 0F); - support = new ModelRenderer(this, 0, 0); - support.addBox(0F, 0F, 0F, 2, 12, 2); - support.setRotationPoint(-1F, 10F, -1F); - support.setTextureSize(64, 32); - support.mirror = true; - setRotation(support, 0F, 0F, 0F); - appendage1 = new ModelRenderer(this, 48, 0); - appendage1.addBox(1F, 0F, 0F, 7, 11, 0); - appendage1.setRotationPoint(0F, 10F, 0F); - appendage1.setTextureSize(64, 32); - appendage1.mirror = true; - setRotation(appendage1, 0F, 0F, 0F); - appendage2 = new ModelRenderer(this, 48, 0); - appendage2.addBox(1F, 0F, 0F, 7, 11, 0); - appendage2.setRotationPoint(0F, 10F, 0F); - appendage2.setTextureSize(64, 32); - appendage2.mirror = true; - setRotation(appendage2, 0F, ((float) Math.PI * 2F / 5F), 0F); - appendage3 = new ModelRenderer(this, 48, 0); - appendage3.addBox(1F, 0F, 0F, 7, 11, 0); - appendage3.setRotationPoint(0F, 10F, 0F); - appendage3.setTextureSize(64, 32); - appendage3.mirror = true; - setRotation(appendage3, 0F, 2.513274F, 0F); - appendage4 = new ModelRenderer(this, 48, 0); - appendage4.addBox(1F, 0F, 0F, 7, 11, 0); - appendage4.setRotationPoint(0F, 10F, 0F); - appendage4.setTextureSize(64, 32); - appendage4.mirror = true; - setRotation(appendage4, 0F, -2.513274F, 0F); - appendage5 = new ModelRenderer(this, 48, 0); - appendage5.addBox(1F, 0F, 0F, 7, 11, 0); - appendage5.setRotationPoint(0F, 10F, 0F); - appendage5.setTextureSize(64, 32); - appendage5.mirror = true; - setRotation(appendage5, 0F, -((float) Math.PI * 2F / 5F), 0F); - outputPad = new ModelRenderer(this, 0, 20); - outputPad.addBox(0F, 0F, 0F, 4, 1, 4); - outputPad.setRotationPoint(-2F, 9F, -2F); - outputPad.setTextureSize(64, 64); - outputPad.mirror = true; - setRotation(outputPad, 0F, 0F, 0F); - input1 = new ModelRenderer(this, 0, 20); - input1.addBox(4F, 0F, -2F, 4, 1, 4); - input1.setRotationPoint(0F, 21F, 0F); - input1.setTextureSize(64, 64); - input1.mirror = true; - setRotation(input1, 0F, 0F, 0F); - input5 = new ModelRenderer(this, 0, 20); - input5.addBox(0F, 0F, 0F, 4, 1, 4); - input5.setRotationPoint(0F, 21F, -8F); - input5.setTextureSize(64, 64); - input5.mirror = true; - setRotation(input5, 0F, 0F, 0F); - input4 = new ModelRenderer(this, 0, 20); - input4.addBox(-7F, 0F, -6F, 4, 1, 4); - input4.setRotationPoint(0F, 21F, 0F); - input4.setTextureSize(64, 64); - input4.mirror = true; - setRotation(input4, 0F, 0F, 0F); - input3 = new ModelRenderer(this, 0, 20); - input3.addBox(-7F, 0F, 2F, 4, 1, 4); - input3.setRotationPoint(0F, 21F, 0F); - input3.setTextureSize(64, 64); - input3.mirror = true; - setRotation(input3, 0F, 0F, 0F); - Shape1 = new ModelRenderer(this, 0, 20); - Shape1.addBox(0F, 0F, 4F, 4, 1, 4); - Shape1.setRotationPoint(0F, 21F, 0F); - Shape1.setTextureSize(64, 64); - Shape1.mirror = true; - setRotation(Shape1, 0F, 0F, 0F); - } - - public void render(Entity entity, float f, float f1, float f2, float f3, float f4, float f5) - { - super.render(entity, f, f1, f2, f3, f4, f5); - setRotationAngles(f, f1, f2, f3, f4, f5, entity); - base.render(f5); - support.render(f5); - appendage1.render(f5); - appendage2.render(f5); - appendage3.render(f5); - appendage4.render(f5); - appendage5.render(f5); - outputPad.render(f5); - input1.render(f5); - input5.render(f5); - input4.render(f5); - input3.render(f5); - Shape1.render(f5); - } - - private void setRotation(ModelRenderer model, float x, float y, float z) - { - model.rotateAngleX = x; - model.rotateAngleY = y; - model.rotateAngleZ = z; - } - - public void setRotationAngles(float f, float f1, float f2, float f3, float f4, float f5, Entity entity) - { - super.setRotationAngles(f, f1, f2, f3, f4, f5, entity); - } -} diff --git a/1.7.2/main/java/WayofTime/alchemicalWizardry/common/renderer/projectile/RenderEnergyBazookaMainProjectile.java b/1.7.2/main/java/WayofTime/alchemicalWizardry/common/renderer/projectile/RenderEnergyBazookaMainProjectile.java deleted file mode 100644 index 57df9912..00000000 --- a/1.7.2/main/java/WayofTime/alchemicalWizardry/common/renderer/projectile/RenderEnergyBazookaMainProjectile.java +++ /dev/null @@ -1,39 +0,0 @@ -package WayofTime.alchemicalWizardry.common.renderer.projectile; - -import WayofTime.alchemicalWizardry.common.renderer.model.ModelEnergyBazookaMainProjectile; -import net.minecraft.client.model.ModelBase; -import net.minecraft.client.renderer.entity.Render; -import net.minecraft.entity.Entity; -import net.minecraft.util.ResourceLocation; -import org.lwjgl.opengl.GL11; -import org.lwjgl.opengl.GL12; - -public class RenderEnergyBazookaMainProjectile extends Render -{ - public ModelBase model = new ModelEnergyBazookaMainProjectile(); - private static final ResourceLocation field_110833_a = new ResourceLocation("alchemicalwizardry", "textures/models/EnergyBazookaMainProjectile.png"); //refers to:YourMod/modelsTextureFile/optionalFile/yourTexture.png - private float scale = 1.0f; - - @Override - public void doRender(Entity entity, double d0, double d1, double d2, float f, float f1) - { - GL11.glPushMatrix(); - GL11.glTranslatef((float) d0, (float) d1, (float) d2); - GL11.glEnable(GL12.GL_RESCALE_NORMAL); - GL11.glScalef(scale, scale, scale); - this.bindTexture(this.getEntityTexture(entity)); - GL11.glRotatef(entity.prevRotationYaw + (entity.rotationYaw - entity.prevRotationYaw) * f1, 0.0F, 1.0F, 0.0F); - GL11.glRotatef(180.0f - entity.prevRotationPitch + (entity.rotationPitch - entity.prevRotationPitch) * f1, 1.0F, 0.0F, 0.0f); - model.render(entity, 0, (float) d0, (float) d1, (float) d2, f, f1); - //GL11.glRotatef(entity.getRotationYawHead(), 0.0F, 1.0F, 0.0F); - GL11.glDisable(GL12.GL_RESCALE_NORMAL); - GL11.glPopMatrix(); - } - - @Override - protected ResourceLocation getEntityTexture(Entity entity) - { - // TODO Auto-generated method stub - return field_110833_a; - } -} diff --git a/1.7.2/main/java/WayofTime/alchemicalWizardry/common/renderer/projectile/RenderEnergyBlastProjectile.java b/1.7.2/main/java/WayofTime/alchemicalWizardry/common/renderer/projectile/RenderEnergyBlastProjectile.java deleted file mode 100644 index 5e988929..00000000 --- a/1.7.2/main/java/WayofTime/alchemicalWizardry/common/renderer/projectile/RenderEnergyBlastProjectile.java +++ /dev/null @@ -1,101 +0,0 @@ -package WayofTime.alchemicalWizardry.common.renderer.projectile; - -import net.minecraft.client.renderer.Tessellator; -import net.minecraft.client.renderer.entity.Render; -import net.minecraft.entity.Entity; -import net.minecraft.entity.IProjectile; -import net.minecraft.util.ResourceLocation; - -import org.lwjgl.opengl.GL11; -import org.lwjgl.opengl.GL12; - -import WayofTime.alchemicalWizardry.common.entity.projectile.ExplosionProjectile; -import WayofTime.alchemicalWizardry.common.entity.projectile.FireProjectile; -import WayofTime.alchemicalWizardry.common.entity.projectile.HolyProjectile; -import WayofTime.alchemicalWizardry.common.entity.projectile.IceProjectile; -import WayofTime.alchemicalWizardry.common.entity.projectile.LightningBoltProjectile; -import WayofTime.alchemicalWizardry.common.entity.projectile.MudProjectile; -import WayofTime.alchemicalWizardry.common.entity.projectile.WaterProjectile; -import WayofTime.alchemicalWizardry.common.entity.projectile.WindGustProjectile; -import cpw.mods.fml.relauncher.Side; -import cpw.mods.fml.relauncher.SideOnly; - -@SideOnly(Side.CLIENT) -public class RenderEnergyBlastProjectile extends Render -{ - public void doRenderEnergyBlastProjectile(Entity entityShot, double par2, double par4, double par6, float par8, float par9) - { - GL11.glPushMatrix(); - GL11.glTranslatef((float) par2, (float) par4, (float) par6); - GL11.glEnable(GL12.GL_RESCALE_NORMAL); - GL11.glScalef(0.1F, 0.1F, 0.1F); - this.bindTexture(this.getEntityTexture(entityShot)); - Tessellator var12 = Tessellator.instance; - GL11.glRotatef(180.0F - renderManager.playerViewY, 0.0F, 1.0F, 0.0F); - GL11.glRotatef(-renderManager.playerViewX, 1.0F, 0.0F, 0.0F); - var12.startDrawingQuads(); - var12.setNormal(0.0F, 1.0F, 0.0F); - var12.addVertexWithUV(-0.5F, -0.25F, 0.0D, 0, 1); - var12.addVertexWithUV(0.5F, -0.25F, 0.0D, 1, 1); - var12.addVertexWithUV(0.5F, 0.75F, 0.0D, 1, 0); - var12.addVertexWithUV(-0.5F, 0.75F, 0.0D, 0, 0); - var12.draw(); - GL11.glDisable(GL12.GL_RESCALE_NORMAL); - GL11.glPopMatrix(); - } - - @Override - public void doRender(Entity par1Entity, double par2, double par4, double par6, float par8, float par9) - { - if (par1Entity instanceof IProjectile) - { - this.doRenderEnergyBlastProjectile(par1Entity, par2, par4, par6, par8, par9); - } - } - - @Override - protected ResourceLocation getEntityTexture(Entity entity) - { - if (entity instanceof IceProjectile) - { - return new ResourceLocation("alchemicalwizardry", "textures/entities/iceProjectile.png"); - } - - if (entity instanceof FireProjectile) - { - return new ResourceLocation("alchemicalwizardry", "textures/entities/fireProjectile.png"); - } - - if (entity instanceof ExplosionProjectile) - { - return new ResourceLocation("alchemicalwizardry", "textures/entities/explosionProjectile.png"); - } - - if (entity instanceof HolyProjectile) - { - return new ResourceLocation("alchemicalwizardry", "textures/entities/holyProjectile.png"); - } - - if (entity instanceof WindGustProjectile) - { - return new ResourceLocation("alchemicalwizardry", "textures/entities/windGustProjectile.png"); - } - - if (entity instanceof LightningBoltProjectile) - { - return new ResourceLocation("alchemicalwizardry", "textures/entities/lightningProjectile.png"); - } - - if (entity instanceof WaterProjectile) - { - return new ResourceLocation("alchemicalwizardry", "textures/entities/waterProjectile.png"); - } - - if (entity instanceof MudProjectile) - { - return new ResourceLocation("alchemicalwizardry", "textures/entities/mudProjectile.png"); - } - - return new ResourceLocation("alchemicalwizardry", "textures/entities/energyBlastProjectile.png"); - } -} diff --git a/1.7.2/main/java/WayofTime/alchemicalWizardry/common/renderer/projectile/RenderFireProjectile.java b/1.7.2/main/java/WayofTime/alchemicalWizardry/common/renderer/projectile/RenderFireProjectile.java deleted file mode 100644 index cda739fe..00000000 --- a/1.7.2/main/java/WayofTime/alchemicalWizardry/common/renderer/projectile/RenderFireProjectile.java +++ /dev/null @@ -1,41 +0,0 @@ -package WayofTime.alchemicalWizardry.common.renderer.projectile; - -import cpw.mods.fml.relauncher.Side; -import cpw.mods.fml.relauncher.SideOnly; - -@SideOnly(Side.CLIENT) -public class RenderFireProjectile -{ -// public void doRenderProjectile(FireProjectile entityShot, double par2, double par4, double par6, float par8, float par9) -// { -// GL11.glPushMatrix(); -// GL11.glTranslatef((float)par2, (float)par4, (float)par6); -// GL11.glEnable(GL12.GL_RESCALE_NORMAL); -// GL11.glScalef(0.1F, 0.1F, 0.1F); -// this.func_110776_a(this.func_110775_a(entityShot)); -// Tessellator var12 = Tessellator.instance; -// GL11.glRotatef(180.0F - renderManager.playerViewY, 0.0F, 1.0F, 0.0F); -// GL11.glRotatef(-renderManager.playerViewX, 1.0F, 0.0F, 0.0F); -// var12.startDrawingQuads(); -// var12.setNormal(0.0F, 1.0F, 0.0F); -// var12.addVertexWithUV(-0.5F, -0.25F, 0.0D, 0, 1); -// var12.addVertexWithUV(0.5F, -0.25F, 0.0D, 1, 1); -// var12.addVertexWithUV(0.5F, 0.75F, 0.0D, 1, 0); -// var12.addVertexWithUV(-0.5F, 0.75F, 0.0D, 0, 0); -// var12.draw(); -// GL11.glDisable(GL12.GL_RESCALE_NORMAL); -// GL11.glPopMatrix(); -// } -// -// @Override -// public void doRender(Entity par1Entity, double par2, double par4, double par6, float par8, float par9) -// { -// this.doRenderProjectile((FireProjectile)par1Entity, par2, par4, par6, par8, par9); -// } -// -// @Override -// protected ResourceLocation func_110775_a(Entity entity) -// { -// return new ResourceLocation("alchemicalwizardry:/textures/entities/fireProjectile.png"); -// } -} diff --git a/1.7.2/main/java/WayofTime/alchemicalWizardry/common/renderer/projectile/RenderMeteor.java b/1.7.2/main/java/WayofTime/alchemicalWizardry/common/renderer/projectile/RenderMeteor.java deleted file mode 100644 index c39dcb11..00000000 --- a/1.7.2/main/java/WayofTime/alchemicalWizardry/common/renderer/projectile/RenderMeteor.java +++ /dev/null @@ -1,39 +0,0 @@ -package WayofTime.alchemicalWizardry.common.renderer.projectile; - -import WayofTime.alchemicalWizardry.common.renderer.model.ModelMeteor; -import net.minecraft.client.model.ModelBase; -import net.minecraft.client.renderer.entity.Render; -import net.minecraft.entity.Entity; -import net.minecraft.util.ResourceLocation; -import org.lwjgl.opengl.GL11; -import org.lwjgl.opengl.GL12; - -public class RenderMeteor extends Render -{ - public ModelBase model = new ModelMeteor(); - private static final ResourceLocation field_110833_a = new ResourceLocation("alchemicalwizardry", "textures/models/Meteor.png"); //refers to:YourMod/modelsTextureFile/optionalFile/yourTexture.png - private float scale = 1.0f; - - @Override - public void doRender(Entity entity, double d0, double d1, double d2, float f, float f1) - { - GL11.glPushMatrix(); - GL11.glTranslatef((float) d0, (float) d1, (float) d2); - GL11.glEnable(GL12.GL_RESCALE_NORMAL); - GL11.glScalef(scale, scale, scale); - this.bindTexture(this.getEntityTexture(entity)); - GL11.glRotatef(entity.prevRotationYaw + (entity.rotationYaw - entity.prevRotationYaw) * f1, 0.0F, 1.0F, 0.0F); - GL11.glRotatef(180.0f - entity.prevRotationPitch + (entity.rotationPitch - entity.prevRotationPitch) * f1, 1.0F, 0.0F, 0.0f); - model.render(entity, 0, (float) d0, (float) d1, (float) d2, f, f1); - //GL11.glRotatef(entity.getRotationYawHead(), 0.0F, 1.0F, 0.0F); - GL11.glDisable(GL12.GL_RESCALE_NORMAL); - GL11.glPopMatrix(); - } - - @Override - protected ResourceLocation getEntityTexture(Entity entity) - { - // TODO Auto-generated method stub - return field_110833_a; - } -} diff --git a/1.7.2/main/java/WayofTime/alchemicalWizardry/common/rituals/RitualEffectAnimalGrowth.java b/1.7.2/main/java/WayofTime/alchemicalWizardry/common/rituals/RitualEffectAnimalGrowth.java deleted file mode 100644 index 1f6709b3..00000000 --- a/1.7.2/main/java/WayofTime/alchemicalWizardry/common/rituals/RitualEffectAnimalGrowth.java +++ /dev/null @@ -1,119 +0,0 @@ -package WayofTime.alchemicalWizardry.common.rituals; - -import java.util.ArrayList; -import java.util.Iterator; -import java.util.List; - -import net.minecraft.entity.EntityAgeable; -import net.minecraft.entity.player.EntityPlayer; -import net.minecraft.potion.Potion; -import net.minecraft.potion.PotionEffect; -import net.minecraft.server.MinecraftServer; -import net.minecraft.util.AxisAlignedBB; -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; - -public class RitualEffectAnimalGrowth 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(); - - if (world.getWorldTime() % 20 != 0) - { - return; - } - - int d0 = 2; - AxisAlignedBB axisalignedbb = AxisAlignedBB.getAABBPool().getAABB((double) x, (double) y + 1, (double) z, (double) (x + 1), (double) (y + 3), (double) (z + 1)).expand(d0, 0, d0); - List list = world.getEntitiesWithinAABB(EntityAgeable.class, axisalignedbb); - Iterator iterator1 = list.iterator(); - EntityAgeable entity; - int entityCount = 0; - boolean flag = false; - - while (iterator1.hasNext()) - { - entity = (EntityAgeable) iterator1.next(); - entityCount++; - } - - if (currentEssence < this.getCostPerRefresh() * entityCount) - { - EntityPlayer entityOwner = MinecraftServer.getServer().getConfigurationManager().getPlayerForUsername(owner); - - if (entityOwner == null) - { - return; - } - - entityOwner.addPotionEffect(new PotionEffect(Potion.confusion.id, 80)); - } else - { - Iterator iterator2 = list.iterator(); - entityCount = 0; - - while (iterator2.hasNext()) - { - entity = (EntityAgeable) iterator2.next(); - - if (entity.getGrowingAge() < 0) - { - entity.addGrowth(5); - entityCount++; - } - } - - data.currentEssence = currentEssence - this.getCostPerRefresh() * entityCount; - data.markDirty(); - } - } - - @Override - public int getCostPerRefresh() - { - - return 2; - } - - @Override - public List getRitualComponentList() - { - ArrayList animalGrowthRitual = new ArrayList(); - animalGrowthRitual.add(new RitualComponent(0, 0, 2, RitualComponent.DUSK)); - animalGrowthRitual.add(new RitualComponent(2, 0, 0, RitualComponent.DUSK)); - animalGrowthRitual.add(new RitualComponent(0, 0, -2, RitualComponent.DUSK)); - animalGrowthRitual.add(new RitualComponent(-2, 0, 0, RitualComponent.DUSK)); - animalGrowthRitual.add(new RitualComponent(0, 0, 1, RitualComponent.WATER)); - animalGrowthRitual.add(new RitualComponent(1, 0, 0, RitualComponent.WATER)); - animalGrowthRitual.add(new RitualComponent(0, 0, -1, RitualComponent.WATER)); - animalGrowthRitual.add(new RitualComponent(-1, 0, 0, RitualComponent.WATER)); - animalGrowthRitual.add(new RitualComponent(1, 0, 2, RitualComponent.EARTH)); - animalGrowthRitual.add(new RitualComponent(-1, 0, 2, RitualComponent.EARTH)); - animalGrowthRitual.add(new RitualComponent(1, 0, -2, RitualComponent.EARTH)); - animalGrowthRitual.add(new RitualComponent(-1, 0, -2, RitualComponent.EARTH)); - animalGrowthRitual.add(new RitualComponent(2, 0, 1, RitualComponent.AIR)); - animalGrowthRitual.add(new RitualComponent(2, 0, -1, RitualComponent.AIR)); - animalGrowthRitual.add(new RitualComponent(-2, 0, 1, RitualComponent.AIR)); - animalGrowthRitual.add(new RitualComponent(-2, 0, -1, RitualComponent.AIR)); - return animalGrowthRitual; - } -} diff --git a/1.7.2/main/java/WayofTime/alchemicalWizardry/common/rituals/RitualEffectApiaryOverclock.java b/1.7.2/main/java/WayofTime/alchemicalWizardry/common/rituals/RitualEffectApiaryOverclock.java deleted file mode 100644 index af4cfc98..00000000 --- a/1.7.2/main/java/WayofTime/alchemicalWizardry/common/rituals/RitualEffectApiaryOverclock.java +++ /dev/null @@ -1,99 +0,0 @@ -package WayofTime.alchemicalWizardry.common.rituals; - -import java.util.ArrayList; -import java.util.List; - -import net.minecraft.entity.player.EntityPlayer; -import net.minecraft.potion.Potion; -import net.minecraft.potion.PotionEffect; -import net.minecraft.server.MinecraftServer; -import net.minecraft.world.World; -import WayofTime.alchemicalWizardry.api.rituals.IMasterRitualStone; -import WayofTime.alchemicalWizardry.api.rituals.RitualComponent; -import WayofTime.alchemicalWizardry.api.rituals.RitualEffect; -import WayofTime.alchemicalWizardry.api.soulNetwork.LifeEssenceNetwork; - -public class RitualEffectApiaryOverclock 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(); - - - if (currentEssence < this.getCostPerRefresh()) - { - EntityPlayer entityOwner = MinecraftServer.getServer().getConfigurationManager().getPlayerForUsername(owner); - - if (entityOwner == null) - { - return; - } - - entityOwner.addPotionEffect(new PotionEffect(Potion.confusion.id, 80)); - } else - { -// TileEntity tile = world.getTileEntity(x, y+1, z); -// -// try{ -// if(tile instanceof IBeeHousing && tile.getClass().getName().contains("Apiary")) -// { -// for (int i = 0; i < 10; i++) -// { -// PacketDispatcher.sendPacketToAllPlayers(TEAltar.getParticlePacket(x, y+1, z, (short) 3)); -// } -// -// for(int i=0; i<9; i++) -// { -// tile.updateEntity(); -// } -// -// data.currentEssence = currentEssence - this.getCostPerRefresh(); -// data.markDirty(); -// } -// }catch (Exception e) -// { -// -// } - - - } - - } - - @Override - public int getCostPerRefresh() - { - // TODO Auto-generated method stub - return 10; - } - - @Override - public List getRitualComponentList() - { - ArrayList apiaryRitual = new ArrayList(); - apiaryRitual.add(new RitualComponent(1,0,0, RitualComponent.DUSK)); - apiaryRitual.add(new RitualComponent(1,0,1, RitualComponent.DUSK)); - apiaryRitual.add(new RitualComponent(1,0,-1, RitualComponent.DUSK)); - apiaryRitual.add(new RitualComponent(-1,0,-1, RitualComponent.DUSK)); - apiaryRitual.add(new RitualComponent(-1,0,1, RitualComponent.DUSK)); - apiaryRitual.add(new RitualComponent(-1,0,0, RitualComponent.DUSK)); - apiaryRitual.add(new RitualComponent(0,0,-1, RitualComponent.DUSK)); - apiaryRitual.add(new RitualComponent(0,0,1, RitualComponent.DUSK)); - return apiaryRitual; - } -} diff --git a/1.7.2/main/java/WayofTime/alchemicalWizardry/common/rituals/RitualEffectAutoAlchemy.java b/1.7.2/main/java/WayofTime/alchemicalWizardry/common/rituals/RitualEffectAutoAlchemy.java deleted file mode 100644 index bbe93c15..00000000 --- a/1.7.2/main/java/WayofTime/alchemicalWizardry/common/rituals/RitualEffectAutoAlchemy.java +++ /dev/null @@ -1,430 +0,0 @@ -package WayofTime.alchemicalWizardry.common.rituals; - -import java.util.ArrayList; -import java.util.List; - -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 net.minecraftforge.oredict.OreDictionary; -import WayofTime.alchemicalWizardry.api.alchemy.AlchemyRecipeRegistry; -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.tileEntity.TEAltar; -import WayofTime.alchemicalWizardry.common.tileEntity.TEWritingTable; - -public class RitualEffectAutoAlchemy 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(); - - if (currentEssence < this.getCostPerRefresh()*6) - { - EntityPlayer entityOwner = MinecraftServer.getServer().getConfigurationManager().getPlayerForUsername(owner); - - if (entityOwner == null) - { - return; - } - - entityOwner.addPotionEffect(new PotionEffect(Potion.confusion.id, 80)); - } else - { - int flag = 0; - - TileEntity topEntity = world.getTileEntity(x, y+1, z); - if(!(topEntity instanceof TEAltar)) - { - return; - } - - TEAltar tileAltar = (TEAltar)topEntity; - ItemStack targetStack = tileAltar.getStackInSlot(0); - if(targetStack == null) - { - return; - } - - ItemStack[] recipe = AlchemyRecipeRegistry.getRecipeForItemStack(targetStack); - if(recipe!=null) - { - TEWritingTable alchemyEntity; - IInventory outputInv = null; - IInventory inputInv1 = null; - IInventory inputInv2 = null; - - TileEntity northEntity = world.getTileEntity(x,y,z-1); - TileEntity southEntity = world.getTileEntity(x,y,z+1); - TileEntity eastEntity = world.getTileEntity(x+1,y,z); - TileEntity westEntity = world.getTileEntity(x-1,y,z); - - if(northEntity instanceof TEWritingTable) - { - alchemyEntity = (TEWritingTable)northEntity; - if(southEntity instanceof IInventory && !(southEntity instanceof TEWritingTable)) - { - outputInv = (IInventory)southEntity; - } - if(eastEntity instanceof IInventory && !(eastEntity instanceof TEWritingTable)) - { - inputInv1 = (IInventory)eastEntity; - } - if(westEntity instanceof IInventory && !(westEntity instanceof TEWritingTable)) - { - inputInv2 = (IInventory)westEntity; - } - }else if(southEntity instanceof TEWritingTable) - { - alchemyEntity = (TEWritingTable)southEntity; - if(northEntity instanceof IInventory && !(northEntity instanceof TEWritingTable)) - { - outputInv = (IInventory)northEntity; - } - if(eastEntity instanceof IInventory && !(eastEntity instanceof TEWritingTable)) - { - inputInv1 = (IInventory)eastEntity; - } - if(westEntity instanceof IInventory && !(westEntity instanceof TEWritingTable)) - { - inputInv2 = (IInventory)westEntity; - } - }else if(eastEntity instanceof TEWritingTable) - { - alchemyEntity = (TEWritingTable)eastEntity; - if(westEntity instanceof IInventory && !(westEntity instanceof TEWritingTable)) - { - outputInv = (IInventory)westEntity; - } - if(northEntity instanceof IInventory && !(northEntity instanceof TEWritingTable)) - { - inputInv1 = (IInventory)northEntity; - } - if(southEntity instanceof IInventory && !(southEntity instanceof TEWritingTable)) - { - inputInv2 = (IInventory)southEntity; - } - }else if(westEntity instanceof TEWritingTable) - { - alchemyEntity = (TEWritingTable)westEntity; - if(eastEntity instanceof IInventory && !(eastEntity instanceof TEWritingTable)) - { - outputInv = (IInventory)eastEntity; - } - if(northEntity instanceof IInventory && !(northEntity instanceof TEWritingTable)) - { - inputInv1 = (IInventory)northEntity; - } - if(southEntity instanceof IInventory && !(southEntity instanceof TEWritingTable)) - { - inputInv2 = (IInventory)southEntity; - } - }else - { - return; - } - - if(outputInv!=null) - { - ItemStack outputStack = alchemyEntity.getStackInSlot(6); - if(outputStack!=null) - { - for(int i=0; i=alchStack.getMaxStackSize())) - { - continue; - } - - for(int j=0;j=alchStack.getMaxStackSize())) - { - continue; - } - - for(int j=0;j0) - { - world.markBlockForUpdate(x, y, z+1); - world.markBlockForUpdate(x, y, z-1); - world.markBlockForUpdate(x+1, y, z); - world.markBlockForUpdate(x-1, y, z); - data.currentEssence = currentEssence - this.getCostPerRefresh()*flag; - data.markDirty(); - } - } - } - - @Override - public int getCostPerRefresh() - { - return 10; - } - - @Override - public List getRitualComponentList() - { - ArrayList autoAlchemyRitual = new ArrayList(); - autoAlchemyRitual.add(new RitualComponent(1,0,1, RitualComponent.DUSK)); - autoAlchemyRitual.add(new RitualComponent(1,0,-1, RitualComponent.DUSK)); - autoAlchemyRitual.add(new RitualComponent(-1,0,-1, RitualComponent.DUSK)); - autoAlchemyRitual.add(new RitualComponent(-1,0,1, RitualComponent.DUSK)); - autoAlchemyRitual.add(new RitualComponent(2,0,2, RitualComponent.WATER)); - autoAlchemyRitual.add(new RitualComponent(2,0,-2, RitualComponent.WATER)); - autoAlchemyRitual.add(new RitualComponent(-2,0,-2, RitualComponent.WATER)); - autoAlchemyRitual.add(new RitualComponent(-2,0,2, RitualComponent.WATER)); - autoAlchemyRitual.add(new RitualComponent(-3,0,-2, RitualComponent.FIRE)); - autoAlchemyRitual.add(new RitualComponent(-2,0,-3, RitualComponent.FIRE)); - autoAlchemyRitual.add(new RitualComponent(-3,0,2, RitualComponent.FIRE)); - autoAlchemyRitual.add(new RitualComponent(-2,0,3, RitualComponent.FIRE)); - autoAlchemyRitual.add(new RitualComponent(3,0,-2, RitualComponent.FIRE)); - autoAlchemyRitual.add(new RitualComponent(2,0,-3, RitualComponent.FIRE)); - autoAlchemyRitual.add(new RitualComponent(3,0,2, RitualComponent.FIRE)); - autoAlchemyRitual.add(new RitualComponent(2,0,3, RitualComponent.FIRE)); - return autoAlchemyRitual; - } - - public boolean areItemStacksEqualWithWildcard(ItemStack recipeStack, ItemStack comparedStack) - { - return recipeStack.isItemEqual(comparedStack) || (recipeStack.getItemDamage() == OreDictionary.WILDCARD_VALUE && recipeStack.getItem() == comparedStack.getItem()); - } -} diff --git a/1.7.2/main/java/WayofTime/alchemicalWizardry/common/rituals/RitualEffectBiomeChanger.java b/1.7.2/main/java/WayofTime/alchemicalWizardry/common/rituals/RitualEffectBiomeChanger.java deleted file mode 100644 index c49432b2..00000000 --- a/1.7.2/main/java/WayofTime/alchemicalWizardry/common/rituals/RitualEffectBiomeChanger.java +++ /dev/null @@ -1,447 +0,0 @@ -package WayofTime.alchemicalWizardry.common.rituals; - -import java.util.ArrayList; -import java.util.List; - -import net.minecraft.block.Block; -import net.minecraft.entity.effect.EntityLightningBolt; -import net.minecraft.entity.player.EntityPlayer; -import net.minecraft.init.Blocks; -import net.minecraft.init.Items; -import net.minecraft.item.Item; -import net.minecraft.item.ItemBlock; -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 net.minecraft.world.biome.BiomeGenBase; -import net.minecraft.world.chunk.Chunk; -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.tileEntity.TEPlinth; - -public class RitualEffectBiomeChanger 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 cooldown = ritualStone.getCooldown(); - World world = ritualStone.getWorld(); - int x = ritualStone.getXCoord(); - int y = ritualStone.getYCoord(); - int z = ritualStone.getZCoord(); - if (cooldown > 0) - { - ritualStone.setCooldown(cooldown - 1); - - if (world.rand.nextInt(15) == 0) - { - world.addWeatherEffect(new EntityLightningBolt(world, x - 1 + world.rand.nextInt(3), y + 1, z - 1 + world.rand.nextInt(3))); - } - - return; - } - - int currentEssence = data.currentEssence; - - - int range = 10; - - if (currentEssence < this.getCostPerRefresh()) - { - EntityPlayer entityOwner = MinecraftServer.getServer().getConfigurationManager().getPlayerForUsername(owner); - - if (entityOwner == null) - { - return; - } - - entityOwner.addPotionEffect(new PotionEffect(Potion.confusion.id, 80)); - } else - { - boolean[][] boolList = new boolean[range * 2 + 1][range * 2 + 1]; - - for (int i = 0; i < 2 * range + 1; i++) - { - for (int j = 0; j < 2 * range + 1; j++) - { - boolList[i][j] = false; - } - } - - boolList[range][range] = true; - boolean isReady = false; - - while (!isReady) - { - isReady = true; - - for (int i = 0; i < 2 * range + 1; i++) - { - for (int j = 0; j < 2 * range + 1; j++) - { - if (boolList[i][j]) - { - if (i - 1 >= 0 && !boolList[i - 1][j]) - { - Block block = world.getBlock(x - range + i - 1, y + 1, z - range + j); - - if (!ModBlocks.largeBloodStoneBrick.equals(block) && !ModBlocks.bloodStoneBrick.equals(block)) - { - boolList[i - 1][j] = true; - isReady = false; - } - } - - if (j - 1 >= 0 && !boolList[i][j - 1]) - { - Block block = world.getBlock(x - range + i, y + 1, z - range + j - 1); - - if (!ModBlocks.largeBloodStoneBrick.equals(block) && !ModBlocks.bloodStoneBrick.equals(block)) - { - boolList[i][j - 1] = true; - isReady = false; - } - } - - if (i + 1 <= 2 * range && !boolList[i + 1][j]) - { - Block block = world.getBlock(x - range + i + 1, y + 1, z - range + j); - - if (!ModBlocks.largeBloodStoneBrick.equals(block) && !ModBlocks.bloodStoneBrick.equals(block)) - { - boolList[i + 1][j] = true; - isReady = false; - } - } - - if (j + 1 <= 2 * range && !boolList[i][j + 1]) - { - Block block = world.getBlock(x - range + i, y + 1, z - range + j + 1); - - if (!ModBlocks.largeBloodStoneBrick.equals(block) && !ModBlocks.bloodStoneBrick.equals(block)) - { - boolList[i][j + 1] = true; - isReady = false; - } - } - } - } - } - } - - float temperature = 0.5f; - float humidity = 0.5f; - float acceptableRange = 0.1f; - - for (int i = -1; i <= 1; i++) - { - for (int j = -1; j <= 1; j++) - { - if (i == 0 && j == 0) - { - continue; - } - - boolean isItemConsumed = false; - TileEntity tileEntity = world.getTileEntity(x + i, y, z + j); - - if (!(tileEntity instanceof TEPlinth)) - { - continue; - } - - TEPlinth tilePlinth = (TEPlinth) tileEntity; - ItemStack itemStack = tilePlinth.getStackInSlot(0); - - if (itemStack != null) - { - Item itemTest = itemStack.getItem(); - - if (itemTest != null) - { - if (itemTest instanceof ItemBlock) - { - Block item = ((ItemBlock)itemTest).field_150939_a; - if (item == (Blocks.sand)) - { - humidity -= 0.1f; - isItemConsumed = true; - } else if (item == (Blocks.lapis_block)) - { - humidity += 0.4f; - isItemConsumed = true; - } else if (item == (Blocks.sand)) - { - humidity -= 0.1f; - isItemConsumed = true; - } else if (item == (Blocks.sandstone)) - { - humidity -= 0.2f; - isItemConsumed = true; - } else if (item == (Blocks.netherrack)) - { - humidity -= 0.4f; - isItemConsumed = true; - } else if (item == (Blocks.coal_block)) - { - temperature += 0.2f; - isItemConsumed = true; - } else if (item == (Blocks.ice)) - { - temperature -= 0.4f; - isItemConsumed = true; - } else if (item == (Blocks.snow)) - { - temperature -= 0.2f; - isItemConsumed = true; - } - } else if (itemTest.equals(Items.dye) && itemStack.getItemDamage() == 4) - { - humidity += 0.1f; - isItemConsumed = true; - } else if (itemTest.equals(Items.lava_bucket)) - { - temperature += 0.4f; - isItemConsumed = true; - } else if (itemTest.equals(Items.water_bucket)) - { - humidity += 0.2f; - isItemConsumed = true; - } else if (itemTest.equals(Items.coal)) - { - temperature += 0.1f; - isItemConsumed = true; - } else if (itemTest.equals(Items.snowball)) - { - temperature -= 0.1f; - isItemConsumed = true; - } - } - } - - if (isItemConsumed) - { - tilePlinth.setInventorySlotContents(0, null); - world.markBlockForUpdate(x + i, y, z + j); - world.addWeatherEffect(new EntityLightningBolt(world, x + i, y + 1, z + j)); - } - } - } - - boolean wantsSnow = false; - boolean wantsRain = true; - int biomeID = 1; - BiomeGenBase[] biomeList = BiomeGenBase.getBiomeGenArray(); - int iteration = 0; - - for (BiomeGenBase biome : biomeList) - { - if (biome == null) - { - continue; - } - - float temp = biome.temperature; - float rainfall = biome.rainfall; - temperature = Math.min(2.0f, Math.max(0.0f, temperature)); - humidity = Math.min(2.0f, Math.max(0.0f, humidity)); - - if (Math.abs(rainfall - humidity) < acceptableRange && Math.abs(temperature - temp) < acceptableRange) - { - //if(biome.getEnableSnow()==wantsSnow) - { - biomeID = iteration; - break; - } - } - - iteration++; - } - - for (int i = 0; i < 2 * range + 1; i++) - { - for (int j = 0; j < 2 * range + 1; j++) - { - //Testing of traversal of boolean matrix - if (boolList[i][j]) - { - Chunk chunk = world.getChunkFromBlockCoords(x - range + i, z - range + j); - byte[] byteArray = chunk.getBiomeArray(); - int moduX = (x - range + i) % 16; - int moduZ = (z - range + j) % 16; - - if (moduX < 0) - { - moduX = moduX + 16; - } - - if (moduZ < 0) - { - moduZ = moduZ + 16; - } - - byteArray[moduZ * 16 + moduX] = (byte) biomeID; - chunk.setBiomeArray(byteArray); - //world.setBlock(x-range+i, y+1, z-range+j, Block.blockClay); - } - } - } - - data.currentEssence = currentEssence - this.getCostPerRefresh(); - data.markDirty(); - ritualStone.setActive(false); - } - } - - @Override - public int getCostPerRefresh() - { - // TODO Auto-generated method stub - return 0; - } - - @Override - public int getInitialCooldown() - { - return 200; - } - - @Override - public List getRitualComponentList() - { - ArrayList biomeChangerRitual = new ArrayList(); - biomeChangerRitual.add(new RitualComponent(1, 0, -2, RitualComponent.AIR)); - biomeChangerRitual.add(new RitualComponent(1, 0, -3, RitualComponent.AIR)); - biomeChangerRitual.add(new RitualComponent(2, 0, -1, RitualComponent.AIR)); - biomeChangerRitual.add(new RitualComponent(3, 0, -1, RitualComponent.AIR)); - biomeChangerRitual.add(new RitualComponent(1, 0, 2, RitualComponent.AIR)); - biomeChangerRitual.add(new RitualComponent(1, 0, 3, RitualComponent.AIR)); - biomeChangerRitual.add(new RitualComponent(2, 0, 1, RitualComponent.AIR)); - biomeChangerRitual.add(new RitualComponent(3, 0, 1, RitualComponent.AIR)); - biomeChangerRitual.add(new RitualComponent(-1, 0, -2, RitualComponent.AIR)); - biomeChangerRitual.add(new RitualComponent(-1, 0, -3, RitualComponent.AIR)); - biomeChangerRitual.add(new RitualComponent(-2, 0, -1, RitualComponent.AIR)); - biomeChangerRitual.add(new RitualComponent(-3, 0, -1, RitualComponent.AIR)); - biomeChangerRitual.add(new RitualComponent(-1, 0, 2, RitualComponent.AIR)); - biomeChangerRitual.add(new RitualComponent(-1, 0, 3, RitualComponent.AIR)); - biomeChangerRitual.add(new RitualComponent(-2, 0, 1, RitualComponent.AIR)); - biomeChangerRitual.add(new RitualComponent(-3, 0, 1, RitualComponent.AIR)); - biomeChangerRitual.add(new RitualComponent(3, 0, -3, RitualComponent.EARTH)); - biomeChangerRitual.add(new RitualComponent(3, 0, -4, RitualComponent.EARTH)); - biomeChangerRitual.add(new RitualComponent(4, 0, -3, RitualComponent.EARTH)); - biomeChangerRitual.add(new RitualComponent(4, 0, -5, RitualComponent.FIRE)); - biomeChangerRitual.add(new RitualComponent(5, 0, -4, RitualComponent.FIRE)); - biomeChangerRitual.add(new RitualComponent(3, 0, 3, RitualComponent.EARTH)); - biomeChangerRitual.add(new RitualComponent(3, 0, 4, RitualComponent.EARTH)); - biomeChangerRitual.add(new RitualComponent(4, 0, 3, RitualComponent.EARTH)); - biomeChangerRitual.add(new RitualComponent(4, 0, 5, RitualComponent.FIRE)); - biomeChangerRitual.add(new RitualComponent(5, 0, 4, RitualComponent.FIRE)); - biomeChangerRitual.add(new RitualComponent(-3, 0, 3, RitualComponent.EARTH)); - biomeChangerRitual.add(new RitualComponent(-3, 0, 4, RitualComponent.EARTH)); - biomeChangerRitual.add(new RitualComponent(-4, 0, 3, RitualComponent.EARTH)); - biomeChangerRitual.add(new RitualComponent(-4, 0, 5, RitualComponent.FIRE)); - biomeChangerRitual.add(new RitualComponent(-5, 0, 4, RitualComponent.FIRE)); - biomeChangerRitual.add(new RitualComponent(-3, 0, -3, RitualComponent.EARTH)); - biomeChangerRitual.add(new RitualComponent(-3, 0, -4, RitualComponent.EARTH)); - biomeChangerRitual.add(new RitualComponent(-4, 0, -3, RitualComponent.EARTH)); - biomeChangerRitual.add(new RitualComponent(-4, 0, -5, RitualComponent.FIRE)); - biomeChangerRitual.add(new RitualComponent(-5, 0, -4, RitualComponent.FIRE)); - biomeChangerRitual.add(new RitualComponent(0, 0, -5, RitualComponent.WATER)); - biomeChangerRitual.add(new RitualComponent(-1, 0, -6, RitualComponent.WATER)); - biomeChangerRitual.add(new RitualComponent(1, 0, -6, RitualComponent.WATER)); - biomeChangerRitual.add(new RitualComponent(-1, 0, -8, RitualComponent.BLANK)); - biomeChangerRitual.add(new RitualComponent(0, 0, -8, RitualComponent.BLANK)); - biomeChangerRitual.add(new RitualComponent(1, 0, -8, RitualComponent.BLANK)); - biomeChangerRitual.add(new RitualComponent(-1, 0, -10, RitualComponent.DUSK)); - biomeChangerRitual.add(new RitualComponent(0, 0, -10, RitualComponent.DUSK)); - biomeChangerRitual.add(new RitualComponent(1, 0, -10, RitualComponent.DUSK)); - biomeChangerRitual.add(new RitualComponent(0, 0, 5, RitualComponent.WATER)); - biomeChangerRitual.add(new RitualComponent(-1, 0, 6, RitualComponent.WATER)); - biomeChangerRitual.add(new RitualComponent(1, 0, 6, RitualComponent.WATER)); - biomeChangerRitual.add(new RitualComponent(-1, 0, 8, RitualComponent.BLANK)); - biomeChangerRitual.add(new RitualComponent(0, 0, 8, RitualComponent.BLANK)); - biomeChangerRitual.add(new RitualComponent(1, 0, 8, RitualComponent.BLANK)); - biomeChangerRitual.add(new RitualComponent(-1, 0, 10, RitualComponent.DUSK)); - biomeChangerRitual.add(new RitualComponent(0, 0, 10, RitualComponent.DUSK)); - biomeChangerRitual.add(new RitualComponent(1, 0, 10, RitualComponent.DUSK)); - biomeChangerRitual.add(new RitualComponent(-5, 0, 0, RitualComponent.WATER)); - biomeChangerRitual.add(new RitualComponent(-6, 0, -1, RitualComponent.WATER)); - biomeChangerRitual.add(new RitualComponent(-6, 0, 1, RitualComponent.WATER)); - biomeChangerRitual.add(new RitualComponent(-8, 0, -1, RitualComponent.BLANK)); - biomeChangerRitual.add(new RitualComponent(-8, 0, 0, RitualComponent.BLANK)); - biomeChangerRitual.add(new RitualComponent(-8, 0, 1, RitualComponent.BLANK)); - biomeChangerRitual.add(new RitualComponent(-10, 0, -1, RitualComponent.DUSK)); - biomeChangerRitual.add(new RitualComponent(-10, 0, 0, RitualComponent.DUSK)); - biomeChangerRitual.add(new RitualComponent(-10, 0, 1, RitualComponent.DUSK)); - biomeChangerRitual.add(new RitualComponent(5, 0, 0, RitualComponent.WATER)); - biomeChangerRitual.add(new RitualComponent(6, 0, -1, RitualComponent.WATER)); - biomeChangerRitual.add(new RitualComponent(6, 0, 1, RitualComponent.WATER)); - biomeChangerRitual.add(new RitualComponent(8, 0, -1, RitualComponent.BLANK)); - biomeChangerRitual.add(new RitualComponent(8, 0, 0, RitualComponent.BLANK)); - biomeChangerRitual.add(new RitualComponent(8, 0, 1, RitualComponent.BLANK)); - biomeChangerRitual.add(new RitualComponent(10, 0, -1, RitualComponent.DUSK)); - biomeChangerRitual.add(new RitualComponent(10, 0, 0, RitualComponent.DUSK)); - biomeChangerRitual.add(new RitualComponent(10, 0, 1, RitualComponent.DUSK)); - biomeChangerRitual.add(new RitualComponent(6, 0, -6, RitualComponent.AIR)); - biomeChangerRitual.add(new RitualComponent(6, 0, -7, RitualComponent.AIR)); - biomeChangerRitual.add(new RitualComponent(7, 0, -6, RitualComponent.AIR)); - biomeChangerRitual.add(new RitualComponent(7, 0, -5, RitualComponent.EARTH)); - biomeChangerRitual.add(new RitualComponent(5, 0, -7, RitualComponent.EARTH)); - biomeChangerRitual.add(new RitualComponent(8, 0, -5, RitualComponent.DUSK)); - biomeChangerRitual.add(new RitualComponent(8, 0, -4, RitualComponent.EARTH)); - biomeChangerRitual.add(new RitualComponent(9, 0, -4, RitualComponent.EARTH)); - biomeChangerRitual.add(new RitualComponent(5, 0, -8, RitualComponent.DUSK)); - biomeChangerRitual.add(new RitualComponent(4, 0, -8, RitualComponent.EARTH)); - biomeChangerRitual.add(new RitualComponent(4, 0, -9, RitualComponent.EARTH)); - biomeChangerRitual.add(new RitualComponent(-6, 0, 6, RitualComponent.AIR)); - biomeChangerRitual.add(new RitualComponent(-6, 0, 7, RitualComponent.AIR)); - biomeChangerRitual.add(new RitualComponent(-7, 0, 6, RitualComponent.AIR)); - biomeChangerRitual.add(new RitualComponent(-7, 0, 5, RitualComponent.EARTH)); - biomeChangerRitual.add(new RitualComponent(-5, 0, 7, RitualComponent.EARTH)); - biomeChangerRitual.add(new RitualComponent(-8, 0, 5, RitualComponent.DUSK)); - biomeChangerRitual.add(new RitualComponent(-8, 0, 4, RitualComponent.EARTH)); - biomeChangerRitual.add(new RitualComponent(-9, 0, 4, RitualComponent.EARTH)); - biomeChangerRitual.add(new RitualComponent(-5, 0, 8, RitualComponent.DUSK)); - biomeChangerRitual.add(new RitualComponent(-4, 0, 8, RitualComponent.EARTH)); - biomeChangerRitual.add(new RitualComponent(-4, 0, 9, RitualComponent.EARTH)); - biomeChangerRitual.add(new RitualComponent(6, 0, 6, RitualComponent.FIRE)); - biomeChangerRitual.add(new RitualComponent(6, 0, 7, RitualComponent.FIRE)); - biomeChangerRitual.add(new RitualComponent(7, 0, 6, RitualComponent.FIRE)); - biomeChangerRitual.add(new RitualComponent(7, 0, 5, RitualComponent.WATER)); - biomeChangerRitual.add(new RitualComponent(5, 0, 7, RitualComponent.WATER)); - biomeChangerRitual.add(new RitualComponent(8, 0, 5, RitualComponent.DUSK)); - biomeChangerRitual.add(new RitualComponent(8, 0, 4, RitualComponent.WATER)); - biomeChangerRitual.add(new RitualComponent(9, 0, 4, RitualComponent.WATER)); - biomeChangerRitual.add(new RitualComponent(5, 0, 8, RitualComponent.DUSK)); - biomeChangerRitual.add(new RitualComponent(4, 0, 8, RitualComponent.WATER)); - biomeChangerRitual.add(new RitualComponent(4, 0, 9, RitualComponent.WATER)); - biomeChangerRitual.add(new RitualComponent(-6, 0, -6, RitualComponent.FIRE)); - biomeChangerRitual.add(new RitualComponent(-6, 0, -7, RitualComponent.FIRE)); - biomeChangerRitual.add(new RitualComponent(-7, 0, -6, RitualComponent.FIRE)); - biomeChangerRitual.add(new RitualComponent(-7, 0, -5, RitualComponent.WATER)); - biomeChangerRitual.add(new RitualComponent(-5, 0, -7, RitualComponent.WATER)); - biomeChangerRitual.add(new RitualComponent(-8, 0, -5, RitualComponent.DUSK)); - biomeChangerRitual.add(new RitualComponent(-8, 0, -4, RitualComponent.WATER)); - biomeChangerRitual.add(new RitualComponent(-9, 0, -4, RitualComponent.WATER)); - biomeChangerRitual.add(new RitualComponent(-5, 0, -8, RitualComponent.DUSK)); - biomeChangerRitual.add(new RitualComponent(-4, 0, -8, RitualComponent.WATER)); - biomeChangerRitual.add(new RitualComponent(-4, 0, -9, RitualComponent.WATER)); - return biomeChangerRitual; - } -} diff --git a/1.7.2/main/java/WayofTime/alchemicalWizardry/common/rituals/RitualEffectContainment.java b/1.7.2/main/java/WayofTime/alchemicalWizardry/common/rituals/RitualEffectContainment.java deleted file mode 100644 index 42fa5b9a..00000000 --- a/1.7.2/main/java/WayofTime/alchemicalWizardry/common/rituals/RitualEffectContainment.java +++ /dev/null @@ -1,127 +0,0 @@ -package WayofTime.alchemicalWizardry.common.rituals; - -import java.util.ArrayList; -import java.util.Iterator; -import java.util.List; - -import net.minecraft.entity.EntityLivingBase; -import net.minecraft.entity.player.EntityPlayer; -import net.minecraft.potion.Potion; -import net.minecraft.potion.PotionEffect; -import net.minecraft.server.MinecraftServer; -import net.minecraft.util.AxisAlignedBB; -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 RitualEffectContainment 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(); - - if (currentEssence < this.getCostPerRefresh()) - { - EntityPlayer entityOwner = MinecraftServer.getServer().getConfigurationManager().getPlayerForUsername(owner); - - if (entityOwner == null) - { - return; - } - - entityOwner.addPotionEffect(new PotionEffect(Potion.confusion.id, 80)); - } else - { - int d0 = 5; - AxisAlignedBB axisalignedbb = AxisAlignedBB.getAABBPool().getAABB((double) x, (double) y, (double) z, (double) (x + 1), (double) (y + 1), (double) (z + 1)).expand(d0, d0, d0); - List list = world.getEntitiesWithinAABB(EntityLivingBase.class, axisalignedbb); - Iterator iterator = list.iterator(); - EntityLivingBase livingEntity; - boolean flag = false; - - while (iterator.hasNext()) - { - livingEntity = (EntityLivingBase) iterator.next(); - - if (livingEntity instanceof EntityPlayer) - { - continue; - } - - //if (!(livingEntity.getEntityName().equals(owner))) - { - double xDif = livingEntity.posX - (x + 0.5); - double yDif = livingEntity.posY - (y + 3); - double zDif = livingEntity.posZ - (z + 0.5); - livingEntity.motionX = -0.05 * xDif; - livingEntity.motionY = -0.05 * yDif; - livingEntity.motionZ = -0.05 * zDif; - flag = true; - //livingEntity.setVelocity(-0.05 * xDif, -0.05 * yDif, -0.05 * zDif); - - if (world.rand.nextInt(10) == 0) - { - //PacketDispatcher.sendPacketToAllPlayers(TEAltar.getParticlePacket(livingEntity.posX, livingEntity.posY, livingEntity.posZ, (short) 1)); - SpellHelper.sendIndexedParticleToAllAround(world, x, y, z, 20, world.provider.dimensionId, 1, x, y, z); - } - - livingEntity.fallDistance = 0; - //entityplayer.addPotionEffect(new PotionEffect(Potion.confusion.id, 80)); - } - } - - if (world.getWorldTime() % 2 == 0 && flag) - { - data.currentEssence = currentEssence - this.getCostPerRefresh(); - data.markDirty(); - } - } - } - - @Override - public int getCostPerRefresh() - { - return 1; - } - - @Override - public List getRitualComponentList() - { - ArrayList containmentRitual = new ArrayList(); - containmentRitual.add(new RitualComponent(1, 0, 0, 3)); - containmentRitual.add(new RitualComponent(-1, 0, 0, 3)); - containmentRitual.add(new RitualComponent(0, 0, 1, 3)); - containmentRitual.add(new RitualComponent(0, 0, -1, 3)); - containmentRitual.add(new RitualComponent(2, 0, 2, 3)); - containmentRitual.add(new RitualComponent(2, 0, -2, 3)); - containmentRitual.add(new RitualComponent(-2, 0, 2, 3)); - containmentRitual.add(new RitualComponent(-2, 0, -2, 3)); - containmentRitual.add(new RitualComponent(1, 5, 0, 3)); - containmentRitual.add(new RitualComponent(-1, 5, 0, 3)); - containmentRitual.add(new RitualComponent(0, 5, 1, 3)); - containmentRitual.add(new RitualComponent(0, 5, -1, 3)); - containmentRitual.add(new RitualComponent(2, 5, 2, 3)); - containmentRitual.add(new RitualComponent(2, 5, -2, 3)); - containmentRitual.add(new RitualComponent(-2, 5, 2, 3)); - containmentRitual.add(new RitualComponent(-2, 5, -2, 3)); - return containmentRitual; - } -} diff --git a/1.7.2/main/java/WayofTime/alchemicalWizardry/common/rituals/RitualEffectCrushing.java b/1.7.2/main/java/WayofTime/alchemicalWizardry/common/rituals/RitualEffectCrushing.java deleted file mode 100644 index ae2af3ea..00000000 --- a/1.7.2/main/java/WayofTime/alchemicalWizardry/common/rituals/RitualEffectCrushing.java +++ /dev/null @@ -1,300 +0,0 @@ -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; - -public class RitualEffectCrushing 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(); - - if (world.getWorldTime() % 40 != 20) - { - return; - } - - - 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; - } - - boolean isSilkTouch = this.isSilkTouch(world, x, y, z); - int fortuneLevel = this.getFortuneLevel(world, x, y, z); - - if (currentEssence < this.getCostPerRefresh()) - { - EntityPlayer entityOwner = MinecraftServer.getServer().getConfigurationManager().getPlayerForUsername(owner); - - if (entityOwner == null) - { - return; - } - - entityOwner.addPotionEffect(new PotionEffect(Potion.confusion.id, 80)); - } else - { - //boolean flag = false; - for (int j = -3; j < 0; j++) - { - for (int i = -1; i <= 1; i++) - { - for (int k = -1; k <= 1; k++) - { - Block block = world.getBlock(x + i, y + j, z + k); - int meta = world.getBlockMetadata(x + i, y + j, z + k); - - if (block != null && !world.isAirBlock(x + i, y + j, z + k)) - { - if ((block.equals(ModBlocks.ritualStone) || block.equals(ModBlocks.blockMasterStone))) - { - continue; - } - - if(isSilkTouch && block.canSilkHarvest(world, null, x + i, y + j, z + k, meta)) - { - int invSize = tileEntity.getSizeInventory(); - - ItemStack item = new ItemStack(block,1,meta); - ItemStack copyStack = item.copyItemStack(item); - - 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()) && itemStack.getItemDamage() == copyStack.getItemDamage()) - { - 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) - { - world.spawnEntityInWorld(new EntityItem(world, x + 0.4, y + 2, z + 0.5, copyStack)); - //flag=true; - } - - } - else - { - ArrayList itemDropList = block.getDrops(world, x + i, y + j, z + k, meta, fortuneLevel); - - if (itemDropList != null) - { - int invSize = tileEntity.getSizeInventory(); - - for (ItemStack item : itemDropList) - { - ItemStack copyStack = item.copyItemStack(item); - - 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()) && itemStack.getItemDamage() == copyStack.getItemDamage()) - { - 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) - { - world.spawnEntityInWorld(new EntityItem(world, x + 0.4, y + 2, z + 0.5, copyStack)); - //flag=true; - } - } - } - - } - - //if(flag) - world.setBlockToAir(x + i, y + j, z + k); - world.playSoundEffect(x + i, y + j, z + k, "mob.endermen.portal", 1.0F, 1.0F); - data.currentEssence = currentEssence - this.getCostPerRefresh(); - data.markDirty(); - return; - } - } - } - } - } - } - - public boolean isSilkTouch(World world, int x, int y, int z) - { - int index = 0; - for(int i=-2; i<=2; i++) - { - for(int j=-2; j<=2; j++) - { - int index1 = Math.abs(i); - int index2 = Math.abs(j); - - if((index1 == 2 && (index2 == 2 || index2 == 1)) || (index1 == 1 && index2 == 2)) - { - Block block = world.getBlock(x + i, y + 1, z + j); - if(block == Blocks.gold_block) - { - index++; - } - } - } - } - - return index>=12; - } - - public int getFortuneLevel(World world, int x, int y, int z) - { - int index = 0; - for(int i=-2; i<=2; i++) - { - for(int j=-2; j<=2; j++) - { - int index1 = Math.abs(i); - int index2 = Math.abs(j); - - 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 || block == Blocks.diamond_block) - { - index++; - } - } - } - } - - if(index>=12) - { - return 3; - }else if(index>=8) - { - return 2; - }else if(index>=4) - { - return 1; - } - - return 0; - } - - @Override - public int getCostPerRefresh() - { - return 7; - } - - @Override - public List getRitualComponentList() - { - ArrayList crushingRitual = new ArrayList(); - crushingRitual.add(new RitualComponent(0, 0, 1, RitualComponent.EARTH)); - crushingRitual.add(new RitualComponent(1, 0, 0, RitualComponent.EARTH)); - crushingRitual.add(new RitualComponent(0, 0, -1, RitualComponent.EARTH)); - crushingRitual.add(new RitualComponent(-1, 0, 0, RitualComponent.EARTH)); - crushingRitual.add(new RitualComponent(2, 0, 0, RitualComponent.FIRE)); - crushingRitual.add(new RitualComponent(0, 0, 2, RitualComponent.FIRE)); - crushingRitual.add(new RitualComponent(-2, 0, 0, RitualComponent.FIRE)); - crushingRitual.add(new RitualComponent(0, 0, -2, RitualComponent.FIRE)); - crushingRitual.add(new RitualComponent(2, 0, 2, RitualComponent.DUSK)); - crushingRitual.add(new RitualComponent(2, 0, -2, RitualComponent.DUSK)); - crushingRitual.add(new RitualComponent(-2, 0, 2, RitualComponent.DUSK)); - crushingRitual.add(new RitualComponent(-2, 0, -2, RitualComponent.DUSK)); - crushingRitual.add(new RitualComponent(2, 1, 0, RitualComponent.AIR)); - crushingRitual.add(new RitualComponent(-2, 1, 0, RitualComponent.AIR)); - crushingRitual.add(new RitualComponent(0, 1, 2, RitualComponent.AIR)); - crushingRitual.add(new RitualComponent(0, 1, -2, RitualComponent.AIR)); - return crushingRitual; - } -} diff --git a/1.7.2/main/java/WayofTime/alchemicalWizardry/common/rituals/RitualEffectExpulsion.java b/1.7.2/main/java/WayofTime/alchemicalWizardry/common/rituals/RitualEffectExpulsion.java deleted file mode 100644 index 947d6a94..00000000 --- a/1.7.2/main/java/WayofTime/alchemicalWizardry/common/rituals/RitualEffectExpulsion.java +++ /dev/null @@ -1,286 +0,0 @@ -package WayofTime.alchemicalWizardry.common.rituals; - -import java.util.ArrayList; -import java.util.Iterator; -import java.util.List; -import java.util.Random; - -import net.minecraft.block.Block; -import net.minecraft.entity.Entity; -import net.minecraft.entity.EntityLivingBase; -import net.minecraft.entity.player.EntityPlayer; -import net.minecraft.entity.player.EntityPlayerMP; -import net.minecraft.potion.Potion; -import net.minecraft.potion.PotionEffect; -import net.minecraft.server.MinecraftServer; -import net.minecraft.util.AxisAlignedBB; -import net.minecraft.util.MathHelper; -import net.minecraft.world.World; -import net.minecraftforge.common.MinecraftForge; -import net.minecraftforge.event.entity.living.EnderTeleportEvent; -import WayofTime.alchemicalWizardry.AlchemicalWizardry; -import WayofTime.alchemicalWizardry.api.rituals.IMasterRitualStone; -import WayofTime.alchemicalWizardry.api.rituals.RitualComponent; -import WayofTime.alchemicalWizardry.api.rituals.RitualEffect; -import WayofTime.alchemicalWizardry.api.soulNetwork.LifeEssenceNetwork; -import WayofTime.alchemicalWizardry.common.spell.complex.effect.SpellHelper; -import WayofTime.alchemicalWizardry.common.spell.simple.SpellTeleport; - -public class RitualEffectExpulsion 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(); - - if (currentEssence < this.getCostPerRefresh()) - { - EntityPlayer entityOwner = MinecraftServer.getServer().getConfigurationManager().getPlayerForUsername(owner); - - if (entityOwner == null) - { - return; - } - - entityOwner.addPotionEffect(new PotionEffect(Potion.confusion.id, 80)); - } else - { - int d0 = 25; - AxisAlignedBB axisalignedbb = AxisAlignedBB.getAABBPool().getAABB((double) x, (double) y, (double) z, (double) (x + 1), (double) (y + 1), (double) (z + 1)).expand(d0, d0, d0); - axisalignedbb.maxY = Math.min((double) world.getHeight(), (double) (y + 1 + d0)); - List list = world.getEntitiesWithinAABB(EntityPlayer.class, axisalignedbb); - Iterator iterator = list.iterator(); - EntityPlayer entityplayer; - boolean flag = false; - - while (iterator.hasNext()) - { - entityplayer = (EntityPlayer) iterator.next(); - - if (!(SpellHelper.getUsername(entityplayer).equals(owner))) - { - if(entityplayer.isPotionActive(AlchemicalWizardry.customPotionPlanarBinding)||entityplayer.capabilities.isCreativeMode) - { - continue; - } - - flag = teleportRandomly(entityplayer,100); - } - } - - if (flag) - { - data.currentEssence = currentEssence - this.getCostPerRefresh(); - data.markDirty(); - } - } - } - - @Override - public int getCostPerRefresh() - { - return 1000; - } - - public boolean teleportRandomly(EntityLivingBase entityLiving, double distance) - { - double x = entityLiving.posX; - double y = entityLiving.posY; - double z = entityLiving.posZ; - Random rand = new Random(); - double d0 = x + (rand.nextDouble() - 0.5D) * distance; - double d1 = y + (double) (rand.nextInt((int) distance) - (distance) / 2); - double d2 = z + (rand.nextDouble() - 0.5D) * distance; - int i = 0; - - while (!teleportTo(entityLiving, d0, d1, d2, x, y, z) && i < 100) - { - d0 = x + (rand.nextDouble() - 0.5D) * distance; - d1 = y + (double) (rand.nextInt((int) distance) - (distance) / 2); - d2 = z + (rand.nextDouble() - 0.5D) * distance; - i++; - } - - if (i >= 100) - { - return false; - } - - return true; - //return SpellTeleport.teleportTo(entityLiving, d0, d1, d2,x,y,z); - } - - public boolean teleportTo(EntityLivingBase entityLiving, double par1, double par3, double par5, double lastX, double lastY, double lastZ) - { - EnderTeleportEvent event = new EnderTeleportEvent(entityLiving, par1, par3, par5, 0); - - if (MinecraftForge.EVENT_BUS.post(event)) - { - return false; - } - - double d3 = lastX; - double d4 = lastY; - double d5 = lastZ; - SpellTeleport.moveEntityViaTeleport(entityLiving, event.targetX, event.targetY, event.targetZ); - boolean flag = false; - int i = MathHelper.floor_double(entityLiving.posX); - int j = MathHelper.floor_double(entityLiving.posY); - int k = MathHelper.floor_double(entityLiving.posZ); - int l; - - if (entityLiving.worldObj.blockExists(i, j, k)) - { - boolean flag1 = false; - - while (!flag1 && j > 0) - { - Block block = entityLiving.worldObj.getBlock(i, j - 1, k); - - if (block != null && block.getMaterial().blocksMovement()) - { - flag1 = true; - } else - { - --entityLiving.posY; - --j; - } - } - - if (flag1) - { - SpellTeleport.moveEntityViaTeleport(entityLiving, entityLiving.posX, entityLiving.posY, entityLiving.posZ); - - if (entityLiving.worldObj.getCollidingBoundingBoxes(entityLiving, entityLiving.boundingBox).isEmpty() && !entityLiving.worldObj.isAnyLiquid(entityLiving.boundingBox)) - { - flag = true; - } - } - } - - if (!flag) - { - SpellTeleport.moveEntityViaTeleport(entityLiving, d3, d4, d5); - return false; - } else - { - short short1 = 128; - - for (l = 0; l < short1; ++l) - { - double d6 = (double) l / ((double) short1 - 1.0D); - float f = (entityLiving.worldObj.rand.nextFloat() - 0.5F) * 0.2F; - float f1 = (entityLiving.worldObj.rand.nextFloat() - 0.5F) * 0.2F; - float f2 = (entityLiving.worldObj.rand.nextFloat() - 0.5F) * 0.2F; - double d7 = d3 + (entityLiving.posX - d3) * d6 + (entityLiving.worldObj.rand.nextDouble() - 0.5D) * (double) entityLiving.width * 2.0D; - double d8 = d4 + (entityLiving.posY - d4) * d6 + entityLiving.worldObj.rand.nextDouble() * (double) entityLiving.height; - double d9 = d5 + (entityLiving.posZ - d5) * d6 + (entityLiving.worldObj.rand.nextDouble() - 0.5D) * (double) entityLiving.width * 2.0D; - entityLiving.worldObj.spawnParticle("portal", d7, d8, d9, (double) f, (double) f1, (double) f2); - } - -// this.worldObj.playSoundEffect(d3, d4, d5, "mob.endermen.portal", 1.0F, 1.0F); -// this.playSound("mob.endermen.portal", 1.0F, 1.0F); - return true; - } - } - - public void moveEntityViaTeleport(EntityLivingBase entityLiving, double x, double y, double z) - { - if (entityLiving instanceof EntityPlayer) - { - if (entityLiving != null && entityLiving instanceof EntityPlayerMP) - { - EntityPlayerMP entityplayermp = (EntityPlayerMP) entityLiving; - - if (entityplayermp.worldObj == entityLiving.worldObj) - { - EnderTeleportEvent event = new EnderTeleportEvent(entityplayermp, x, y, z, 5.0F); - - if (!MinecraftForge.EVENT_BUS.post(event)) - { - if (entityLiving.isRiding()) - { - entityLiving.mountEntity((Entity) null); - } - - entityLiving.setPositionAndUpdate(event.targetX, event.targetY, event.targetZ); -// this.getThrower().fallDistance = 0.0F; -// this.getThrower().attackEntityFrom(DamageSource.fall, event.attackDamage); - } - } - } - } else if (entityLiving != null) - { - entityLiving.setPosition(x, y, z); - } - } - - @Override - public List getRitualComponentList() - { - ArrayList expulsionRitual = new ArrayList(); - expulsionRitual.add(new RitualComponent(2,0,2, RitualComponent.EARTH)); - expulsionRitual.add(new RitualComponent(2,0,1, RitualComponent.EARTH)); - expulsionRitual.add(new RitualComponent(1,0,2, RitualComponent.EARTH)); - expulsionRitual.add(new RitualComponent(2,0,-2, RitualComponent.EARTH)); - expulsionRitual.add(new RitualComponent(2,0,-1, RitualComponent.EARTH)); - expulsionRitual.add(new RitualComponent(-1,0,2, RitualComponent.EARTH)); - expulsionRitual.add(new RitualComponent(-2,0,2, RitualComponent.EARTH)); - expulsionRitual.add(new RitualComponent(-2,0,1, RitualComponent.EARTH)); - expulsionRitual.add(new RitualComponent(1,0,-2, RitualComponent.EARTH)); - expulsionRitual.add(new RitualComponent(-2,0,-2, RitualComponent.EARTH)); - expulsionRitual.add(new RitualComponent(-2,0,-1, RitualComponent.EARTH)); - expulsionRitual.add(new RitualComponent(-1,0,-2, RitualComponent.EARTH)); - expulsionRitual.add(new RitualComponent(4,0,2, RitualComponent.AIR)); - expulsionRitual.add(new RitualComponent(5,0,2, RitualComponent.AIR)); - expulsionRitual.add(new RitualComponent(4,0,-2, RitualComponent.AIR)); - expulsionRitual.add(new RitualComponent(5,0,-2, RitualComponent.AIR)); - expulsionRitual.add(new RitualComponent(-4,0,2, RitualComponent.AIR)); - expulsionRitual.add(new RitualComponent(-5,0,2, RitualComponent.AIR)); - expulsionRitual.add(new RitualComponent(-4,0,-2, RitualComponent.AIR)); - expulsionRitual.add(new RitualComponent(-5,0,-2, RitualComponent.AIR)); - expulsionRitual.add(new RitualComponent(2,0,4, RitualComponent.AIR)); - expulsionRitual.add(new RitualComponent(2,0,5, RitualComponent.AIR)); - expulsionRitual.add(new RitualComponent(-2,0,4, RitualComponent.AIR)); - expulsionRitual.add(new RitualComponent(-2,0,5, RitualComponent.AIR)); - expulsionRitual.add(new RitualComponent(2,0,-4, RitualComponent.AIR)); - expulsionRitual.add(new RitualComponent(2,0,-5, RitualComponent.AIR)); - expulsionRitual.add(new RitualComponent(-2,0,-4, RitualComponent.AIR)); - expulsionRitual.add(new RitualComponent(-2,0,-5, RitualComponent.AIR)); - expulsionRitual.add(new RitualComponent(0,0,6, RitualComponent.EARTH)); - expulsionRitual.add(new RitualComponent(0,0,-6, RitualComponent.EARTH)); - expulsionRitual.add(new RitualComponent(6,0,0, RitualComponent.EARTH)); - expulsionRitual.add(new RitualComponent(-6,0,0, RitualComponent.EARTH)); - expulsionRitual.add(new RitualComponent(-5,0,0, RitualComponent.DUSK)); - expulsionRitual.add(new RitualComponent(-6,0,1, RitualComponent.DUSK)); - expulsionRitual.add(new RitualComponent(-6,0,-1, RitualComponent.DUSK)); - expulsionRitual.add(new RitualComponent(5,0,0, RitualComponent.DUSK)); - expulsionRitual.add(new RitualComponent(6,0,1, RitualComponent.DUSK)); - expulsionRitual.add(new RitualComponent(6,0,-1, RitualComponent.DUSK)); - expulsionRitual.add(new RitualComponent(0,0,5, RitualComponent.DUSK)); - expulsionRitual.add(new RitualComponent(1,0,6, RitualComponent.DUSK)); - expulsionRitual.add(new RitualComponent(-1,0,6, RitualComponent.DUSK)); - expulsionRitual.add(new RitualComponent(0,0,-5, RitualComponent.DUSK)); - expulsionRitual.add(new RitualComponent(1,0,-6, RitualComponent.DUSK)); - expulsionRitual.add(new RitualComponent(-1,0,-6, RitualComponent.DUSK)); - expulsionRitual.add(new RitualComponent(4,0,4, RitualComponent.FIRE)); - expulsionRitual.add(new RitualComponent(4,0,-4, RitualComponent.FIRE)); - expulsionRitual.add(new RitualComponent(-4,0,4, RitualComponent.FIRE)); - expulsionRitual.add(new RitualComponent(-4,0,-4, RitualComponent.FIRE)); - return expulsionRitual; - } -} diff --git a/1.7.2/main/java/WayofTime/alchemicalWizardry/common/rituals/RitualEffectFeatheredEarth.java b/1.7.2/main/java/WayofTime/alchemicalWizardry/common/rituals/RitualEffectFeatheredEarth.java deleted file mode 100644 index b9d466e6..00000000 --- a/1.7.2/main/java/WayofTime/alchemicalWizardry/common/rituals/RitualEffectFeatheredEarth.java +++ /dev/null @@ -1,140 +0,0 @@ -package WayofTime.alchemicalWizardry.common.rituals; - -import java.util.ArrayList; -import java.util.List; - -import net.minecraft.entity.EntityLivingBase; -import net.minecraft.entity.effect.EntityLightningBolt; -import net.minecraft.entity.player.EntityPlayer; -import net.minecraft.potion.Potion; -import net.minecraft.potion.PotionEffect; -import net.minecraft.server.MinecraftServer; -import net.minecraft.util.AxisAlignedBB; -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; - -public class RitualEffectFeatheredEarth extends RitualEffect //Nullifies all fall damage in the area of effect -{ - @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(); - - if (ritualStone.getCooldown() > 0) - { - world.addWeatherEffect(new EntityLightningBolt(world, x + 4, y + 5, z + 4)); - world.addWeatherEffect(new EntityLightningBolt(world, x + 4, y + 5, z - 4)); - world.addWeatherEffect(new EntityLightningBolt(world, x - 4, y + 5, z - 4)); - world.addWeatherEffect(new EntityLightningBolt(world, x - 4, y + 5, z + 4)); - ritualStone.setCooldown(0); - } - - int range = 20; - int verticalRange = 30; - List entities = world.getEntitiesWithinAABB(EntityLivingBase.class, AxisAlignedBB.getBoundingBox(x, y, z, x + 1, y + 1, z + 1).expand(range, verticalRange, range)); - int entityCount = 0; - boolean flag = false; - - for (EntityLivingBase entity : entities) - { - entityCount++; - } - - if (currentEssence < this.getCostPerRefresh() * entityCount) - { - EntityPlayer entityOwner = MinecraftServer.getServer().getConfigurationManager().getPlayerForUsername(owner); - - if (entityOwner == null) - { - return; - } - - entityOwner.addPotionEffect(new PotionEffect(Potion.confusion.id, 80)); - } else - { - for (EntityLivingBase entity : entities) - { - entity.fallDistance = 0; - } - - data.currentEssence = currentEssence - this.getCostPerRefresh() * entityCount; - data.markDirty(); - } - } - - @Override - public int getCostPerRefresh() - { - return 0; - } - - @Override - public int getInitialCooldown() - { - return 1; - } - - @Override - public List getRitualComponentList() - { - ArrayList featheredEarthRitual = new ArrayList(); - featheredEarthRitual.add(new RitualComponent(1, 0, 0, RitualComponent.DUSK)); - featheredEarthRitual.add(new RitualComponent(-1, 0, 0, RitualComponent.DUSK)); - featheredEarthRitual.add(new RitualComponent(0, 0, 1, RitualComponent.DUSK)); - featheredEarthRitual.add(new RitualComponent(0, 0, -1, RitualComponent.DUSK)); - featheredEarthRitual.add(new RitualComponent(2, 0, 2, RitualComponent.AIR)); - featheredEarthRitual.add(new RitualComponent(-2, 0, 2, RitualComponent.AIR)); - featheredEarthRitual.add(new RitualComponent(-2, 0, -2, RitualComponent.AIR)); - featheredEarthRitual.add(new RitualComponent(2, 0, -2, RitualComponent.AIR)); - featheredEarthRitual.add(new RitualComponent(1, 0, 3, RitualComponent.EARTH)); - featheredEarthRitual.add(new RitualComponent(0, 0, 3, RitualComponent.EARTH)); - featheredEarthRitual.add(new RitualComponent(-1, 0, 3, RitualComponent.EARTH)); - featheredEarthRitual.add(new RitualComponent(1, 0, -3, RitualComponent.EARTH)); - featheredEarthRitual.add(new RitualComponent(0, 0, -3, RitualComponent.EARTH)); - featheredEarthRitual.add(new RitualComponent(-1, 0, -3, RitualComponent.EARTH)); - featheredEarthRitual.add(new RitualComponent(3, 0, 1, RitualComponent.EARTH)); - featheredEarthRitual.add(new RitualComponent(3, 0, 0, RitualComponent.EARTH)); - featheredEarthRitual.add(new RitualComponent(3, 0, -1, RitualComponent.EARTH)); - featheredEarthRitual.add(new RitualComponent(-3, 0, 1, RitualComponent.EARTH)); - featheredEarthRitual.add(new RitualComponent(-3, 0, 0, RitualComponent.EARTH)); - featheredEarthRitual.add(new RitualComponent(-3, 0, -1, RitualComponent.EARTH)); - featheredEarthRitual.add(new RitualComponent(4, 4, 4, RitualComponent.FIRE)); - featheredEarthRitual.add(new RitualComponent(-4, 4, 4, RitualComponent.FIRE)); - featheredEarthRitual.add(new RitualComponent(-4, 4, -4, RitualComponent.FIRE)); - featheredEarthRitual.add(new RitualComponent(4, 4, -4, RitualComponent.FIRE)); - featheredEarthRitual.add(new RitualComponent(4, 5, 5, RitualComponent.AIR)); - featheredEarthRitual.add(new RitualComponent(4, 5, 3, RitualComponent.AIR)); - featheredEarthRitual.add(new RitualComponent(5, 5, 4, RitualComponent.AIR)); - featheredEarthRitual.add(new RitualComponent(3, 5, 4, RitualComponent.AIR)); - featheredEarthRitual.add(new RitualComponent(-4, 5, 5, RitualComponent.AIR)); - featheredEarthRitual.add(new RitualComponent(-4, 5, 3, RitualComponent.AIR)); - featheredEarthRitual.add(new RitualComponent(-5, 5, 4, RitualComponent.AIR)); - featheredEarthRitual.add(new RitualComponent(-3, 5, 4, RitualComponent.AIR)); - featheredEarthRitual.add(new RitualComponent(4, 5, -5, RitualComponent.AIR)); - featheredEarthRitual.add(new RitualComponent(4, 5, -3, RitualComponent.AIR)); - featheredEarthRitual.add(new RitualComponent(5, 5, -4, RitualComponent.AIR)); - featheredEarthRitual.add(new RitualComponent(3, 5, -4, RitualComponent.AIR)); - featheredEarthRitual.add(new RitualComponent(-4, 5, -5, RitualComponent.AIR)); - featheredEarthRitual.add(new RitualComponent(-4, 5, -3, RitualComponent.AIR)); - featheredEarthRitual.add(new RitualComponent(-5, 5, -4, RitualComponent.AIR)); - featheredEarthRitual.add(new RitualComponent(-3, 5, -4, RitualComponent.AIR)); - return featheredEarthRitual; - } -} diff --git a/1.7.2/main/java/WayofTime/alchemicalWizardry/common/rituals/RitualEffectFeatheredKnife.java b/1.7.2/main/java/WayofTime/alchemicalWizardry/common/rituals/RitualEffectFeatheredKnife.java deleted file mode 100644 index 85f505e3..00000000 --- a/1.7.2/main/java/WayofTime/alchemicalWizardry/common/rituals/RitualEffectFeatheredKnife.java +++ /dev/null @@ -1,191 +0,0 @@ -package WayofTime.alchemicalWizardry.common.rituals; - -import java.util.ArrayList; -import java.util.Iterator; -import java.util.List; - -import net.minecraft.entity.player.EntityPlayer; -import net.minecraft.entity.player.EntityPlayerMP; -import net.minecraft.potion.Potion; -import net.minecraft.potion.PotionEffect; -import net.minecraft.server.MinecraftServer; -import net.minecraft.util.AxisAlignedBB; -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.tileEntity.TEAltar; - -public class RitualEffectFeatheredKnife extends RitualEffect -{ - public final int timeDelay = 20; - public final int amount = 100; - - @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(); - - if (world.getWorldTime() % this.timeDelay != 0) - { - return; - } - -// if(!(world.getBlockTileEntity(x, y-1, z) instanceof TEAltar)) -// { -// return; -// } - TEAltar tileAltar = null; - boolean testFlag = false; - - for (int i = -5; i <= 5; i++) - { - for (int j = -5; j <= 5; j++) - { - for (int k = -10; k <= 10; k++) - { - if (world.getTileEntity(x + i, y + k, z + j) instanceof TEAltar) - { - tileAltar = (TEAltar) world.getTileEntity(x + i, y + k, z + j); - testFlag = true; - } - } - } - } - - if (!testFlag) - { - return; - } - - //tileAltar = (TEAltar)world.getBlockTileEntity(x,y-1,z); - int d0 = 15; - int vertRange = 20; - AxisAlignedBB axisalignedbb = AxisAlignedBB.getAABBPool().getAABB((double) x, (double) y, (double) z, (double) (x + 1), (double) (y + 1), (double) (z + 1)).expand(d0, vertRange, d0); - List list = world.getEntitiesWithinAABB(EntityPlayer.class, axisalignedbb); - Iterator iterator1 = list.iterator(); - EntityPlayer entity; - int entityCount = 0; - boolean flag = false; - - while (iterator1.hasNext()) - { - entity = (EntityPlayer) iterator1.next(); - - if (entity.getClass().equals(EntityPlayerMP.class) || entity.getClass().equals(EntityPlayer.class)) - { - entityCount++; - } - } - - if (currentEssence < this.getCostPerRefresh() * entityCount) - { - EntityPlayer entityOwner = MinecraftServer.getServer().getConfigurationManager().getPlayerForUsername(owner); - - if (entityOwner == null) - { - return; - } - - entityOwner.addPotionEffect(new PotionEffect(Potion.confusion.id, 80)); - } else - { - Iterator iterator2 = list.iterator(); - entityCount = 0; - - while (iterator2.hasNext()) - { - entity = (EntityPlayer) iterator2.next(); - - //entity = (EntityPlayer)iterator1.next(); - if (entity.getClass().equals(EntityPlayerMP.class) || entity.getClass().equals(EntityPlayer.class)) - { - if (entity.getHealth() > 6.2f) - { - entity.setHealth(entity.getHealth() - 1); - entityCount++; - tileAltar.sacrificialDaggerCall(this.amount, false); - } - } - - //entity.setHealth(entity.getHealth()-1); -// if(entity.getHealth()<=0.2f) -// { -// entity.onDeath(DamageSource.inFire); -// } - } - - data.currentEssence = currentEssence - this.getCostPerRefresh() * entityCount; - data.markDirty(); - } - } - - @Override - public int getCostPerRefresh() - { - // TODO Auto-generated method stub - return 20; - } - - @Override - public List getRitualComponentList() - { - ArrayList featheredKnifeRitual = new ArrayList(); - featheredKnifeRitual.add(new RitualComponent(1, 0, 0, RitualComponent.DUSK)); - featheredKnifeRitual.add(new RitualComponent(-1, 0, 0, RitualComponent.DUSK)); - featheredKnifeRitual.add(new RitualComponent(0, 0, 1, RitualComponent.DUSK)); - featheredKnifeRitual.add(new RitualComponent(0, 0, -1, RitualComponent.DUSK)); - featheredKnifeRitual.add(new RitualComponent(2, -1, 0, RitualComponent.WATER)); - featheredKnifeRitual.add(new RitualComponent(-2, -1, 0, RitualComponent.WATER)); - featheredKnifeRitual.add(new RitualComponent(0, -1, 2, RitualComponent.WATER)); - featheredKnifeRitual.add(new RitualComponent(0, -1, -2, RitualComponent.WATER)); - featheredKnifeRitual.add(new RitualComponent(1, -1, 1, RitualComponent.AIR)); - featheredKnifeRitual.add(new RitualComponent(1, -1, -1, RitualComponent.AIR)); - featheredKnifeRitual.add(new RitualComponent(-1, -1, 1, RitualComponent.AIR)); - featheredKnifeRitual.add(new RitualComponent(-1, -1, -1, RitualComponent.AIR)); - featheredKnifeRitual.add(new RitualComponent(4, -1, 2, RitualComponent.FIRE)); - featheredKnifeRitual.add(new RitualComponent(2, -1, 4, RitualComponent.FIRE)); - featheredKnifeRitual.add(new RitualComponent(-4, -1, 2, RitualComponent.FIRE)); - featheredKnifeRitual.add(new RitualComponent(2, -1, -4, RitualComponent.FIRE)); - featheredKnifeRitual.add(new RitualComponent(4, -1, -2, RitualComponent.FIRE)); - featheredKnifeRitual.add(new RitualComponent(-2, -1, 4, RitualComponent.FIRE)); - featheredKnifeRitual.add(new RitualComponent(-4, -1, -2, RitualComponent.FIRE)); - featheredKnifeRitual.add(new RitualComponent(-2, -1, -4, RitualComponent.FIRE)); - featheredKnifeRitual.add(new RitualComponent(4, 0, 2, RitualComponent.EARTH)); - featheredKnifeRitual.add(new RitualComponent(2, 0, 4, RitualComponent.EARTH)); - featheredKnifeRitual.add(new RitualComponent(-4, 0, 2, RitualComponent.EARTH)); - featheredKnifeRitual.add(new RitualComponent(2, 0, -4, RitualComponent.EARTH)); - featheredKnifeRitual.add(new RitualComponent(4, 0, -2, RitualComponent.EARTH)); - featheredKnifeRitual.add(new RitualComponent(-2, 0, 4, RitualComponent.EARTH)); - featheredKnifeRitual.add(new RitualComponent(-4, 0, -2, RitualComponent.EARTH)); - featheredKnifeRitual.add(new RitualComponent(-2, 0, -4, RitualComponent.EARTH)); - featheredKnifeRitual.add(new RitualComponent(4, 0, 3, RitualComponent.EARTH)); - featheredKnifeRitual.add(new RitualComponent(3, 0, 4, RitualComponent.EARTH)); - featheredKnifeRitual.add(new RitualComponent(-4, 0, 3, RitualComponent.EARTH)); - featheredKnifeRitual.add(new RitualComponent(3, 0, -4, RitualComponent.EARTH)); - featheredKnifeRitual.add(new RitualComponent(4, 0, -3, RitualComponent.EARTH)); - featheredKnifeRitual.add(new RitualComponent(-3, 0, 4, RitualComponent.EARTH)); - featheredKnifeRitual.add(new RitualComponent(-4, 0, -3, RitualComponent.EARTH)); - featheredKnifeRitual.add(new RitualComponent(-3, 0, -4, RitualComponent.EARTH)); - featheredKnifeRitual.add(new RitualComponent(3, 0, 3, RitualComponent.AIR)); - featheredKnifeRitual.add(new RitualComponent(3, 0, -3, RitualComponent.AIR)); - featheredKnifeRitual.add(new RitualComponent(-3, 0, 3, RitualComponent.AIR)); - featheredKnifeRitual.add(new RitualComponent(-3, 0, -3, RitualComponent.AIR)); - return featheredKnifeRitual; - } -} diff --git a/1.7.2/main/java/WayofTime/alchemicalWizardry/common/rituals/RitualEffectFlight.java b/1.7.2/main/java/WayofTime/alchemicalWizardry/common/rituals/RitualEffectFlight.java deleted file mode 100644 index 0dba9fcb..00000000 --- a/1.7.2/main/java/WayofTime/alchemicalWizardry/common/rituals/RitualEffectFlight.java +++ /dev/null @@ -1,179 +0,0 @@ -package WayofTime.alchemicalWizardry.common.rituals; - -import java.util.ArrayList; -import java.util.List; - -import net.minecraft.entity.player.EntityPlayer; -import net.minecraft.potion.Potion; -import net.minecraft.potion.PotionEffect; -import net.minecraft.server.MinecraftServer; -import net.minecraft.util.AxisAlignedBB; -import net.minecraft.world.World; -import WayofTime.alchemicalWizardry.AlchemicalWizardry; -import WayofTime.alchemicalWizardry.api.rituals.IMasterRitualStone; -import WayofTime.alchemicalWizardry.api.rituals.RitualComponent; -import WayofTime.alchemicalWizardry.api.rituals.RitualEffect; -import WayofTime.alchemicalWizardry.api.soulNetwork.LifeEssenceNetwork; - -public class RitualEffectFlight 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(); - - if (ritualStone.getCooldown() > 0) - { - //TODO Cool stuffs - ritualStone.setCooldown(0); - } - - int range = 20; - int verticalRange = 30; - AxisAlignedBB axis = AxisAlignedBB.getBoundingBox(x, y, z, x + 1, y + 1, z + 1).expand(range, verticalRange, range); - axis.maxY = 256; - axis.minY = 0; - List entities = world.getEntitiesWithinAABB(EntityPlayer.class, axis); - int entityCount = 0; - - for (EntityPlayer entity : entities) - { - entityCount++; - } - - if (currentEssence < this.getCostPerRefresh() * entityCount) - { - EntityPlayer entityOwner = MinecraftServer.getServer().getConfigurationManager().getPlayerForUsername(owner); - - if (entityOwner == null) - { - return; - } - - entityOwner.addPotionEffect(new PotionEffect(Potion.confusion.id, 80)); - } else - { - for (EntityPlayer entity : entities) - { - entity.addPotionEffect(new PotionEffect(AlchemicalWizardry.customPotionFlight.id, 20, 0)); - } - - data.currentEssence = currentEssence - this.getCostPerRefresh() * entityCount; - data.markDirty(); - } - } - - @Override - public int getCostPerRefresh() - { - return 0; - } - - @Override - public int getInitialCooldown() - { - return 1; - } - - @Override - public List getRitualComponentList() - { - ArrayList flightRitual = new ArrayList(); - flightRitual.add(new RitualComponent(1, 0, 0, RitualComponent.DUSK)); - flightRitual.add(new RitualComponent(-1, 0, 0, RitualComponent.DUSK)); - flightRitual.add(new RitualComponent(0, 0, 1, RitualComponent.DUSK)); - flightRitual.add(new RitualComponent(0, 0, -1, RitualComponent.DUSK)); - flightRitual.add(new RitualComponent(2, 0, 2, RitualComponent.AIR)); - flightRitual.add(new RitualComponent(-2, 0, 2, RitualComponent.AIR)); - flightRitual.add(new RitualComponent(-2, 0, -2, RitualComponent.AIR)); - flightRitual.add(new RitualComponent(2, 0, -2, RitualComponent.AIR)); - flightRitual.add(new RitualComponent(1, 0, 3, RitualComponent.EARTH)); - flightRitual.add(new RitualComponent(0, 0, 3, RitualComponent.EARTH)); - flightRitual.add(new RitualComponent(-1, 0, 3, RitualComponent.EARTH)); - flightRitual.add(new RitualComponent(1, 0, -3, RitualComponent.EARTH)); - flightRitual.add(new RitualComponent(0, 0, -3, RitualComponent.EARTH)); - flightRitual.add(new RitualComponent(-1, 0, -3, RitualComponent.EARTH)); - flightRitual.add(new RitualComponent(3, 0, 1, RitualComponent.EARTH)); - flightRitual.add(new RitualComponent(3, 0, 0, RitualComponent.EARTH)); - flightRitual.add(new RitualComponent(3, 0, -1, RitualComponent.EARTH)); - flightRitual.add(new RitualComponent(-3, 0, 1, RitualComponent.EARTH)); - flightRitual.add(new RitualComponent(-3, 0, 0, RitualComponent.EARTH)); - flightRitual.add(new RitualComponent(-3, 0, -1, RitualComponent.EARTH)); - flightRitual.add(new RitualComponent(-3, 0, -4, RitualComponent.WATER)); - flightRitual.add(new RitualComponent(-4, 0, -3, RitualComponent.WATER)); - flightRitual.add(new RitualComponent(-3, 0, 4, RitualComponent.WATER)); - flightRitual.add(new RitualComponent(4, 0, -3, RitualComponent.WATER)); - flightRitual.add(new RitualComponent(3, 0, -4, RitualComponent.WATER)); - flightRitual.add(new RitualComponent(-4, 0, 3, RitualComponent.WATER)); - flightRitual.add(new RitualComponent(3, 0, 4, RitualComponent.WATER)); - flightRitual.add(new RitualComponent(4, 0, 3, RitualComponent.WATER)); - flightRitual.add(new RitualComponent(-1, 1, 0, RitualComponent.FIRE)); - flightRitual.add(new RitualComponent(1, 1, 0, RitualComponent.FIRE)); - flightRitual.add(new RitualComponent(0, 1, -1, RitualComponent.FIRE)); - flightRitual.add(new RitualComponent(0, 1, 1, RitualComponent.FIRE)); - flightRitual.add(new RitualComponent(-2, 1, 0, RitualComponent.BLANK)); - flightRitual.add(new RitualComponent(2, 1, 0, RitualComponent.BLANK)); - flightRitual.add(new RitualComponent(0, 1, -2, RitualComponent.BLANK)); - flightRitual.add(new RitualComponent(0, 1, 2, RitualComponent.BLANK)); - flightRitual.add(new RitualComponent(-4, 1, 0, RitualComponent.BLANK)); - flightRitual.add(new RitualComponent(4, 1, 0, RitualComponent.BLANK)); - flightRitual.add(new RitualComponent(0, 1, -4, RitualComponent.BLANK)); - flightRitual.add(new RitualComponent(0, 1, 4, RitualComponent.BLANK)); - flightRitual.add(new RitualComponent(-5, 1, 0, RitualComponent.AIR)); - flightRitual.add(new RitualComponent(5, 1, 0, RitualComponent.AIR)); - flightRitual.add(new RitualComponent(0, 1, -5, RitualComponent.AIR)); - flightRitual.add(new RitualComponent(0, 1, 5, RitualComponent.AIR)); - flightRitual.add(new RitualComponent(5, 0, 0, RitualComponent.DUSK)); - flightRitual.add(new RitualComponent(-5, 0, 0, RitualComponent.DUSK)); - flightRitual.add(new RitualComponent(0, 0, 5, RitualComponent.DUSK)); - flightRitual.add(new RitualComponent(0, 0, -5, RitualComponent.DUSK)); - - for (int i = 2; i <= 4; i++) - { - flightRitual.add(new RitualComponent(-i, 2, 0, RitualComponent.EARTH)); - flightRitual.add(new RitualComponent(i, 2, 0, RitualComponent.EARTH)); - flightRitual.add(new RitualComponent(0, 2, -i, RitualComponent.EARTH)); - flightRitual.add(new RitualComponent(0, 2, i, RitualComponent.EARTH)); - } - - flightRitual.add(new RitualComponent(2, 4, 1, RitualComponent.FIRE)); - flightRitual.add(new RitualComponent(1, 4, 2, RitualComponent.FIRE)); - flightRitual.add(new RitualComponent(-2, 4, 1, RitualComponent.FIRE)); - flightRitual.add(new RitualComponent(1, 4, -2, RitualComponent.FIRE)); - flightRitual.add(new RitualComponent(2, 4, -1, RitualComponent.FIRE)); - flightRitual.add(new RitualComponent(-1, 4, 2, RitualComponent.FIRE)); - flightRitual.add(new RitualComponent(-2, 4, -1, RitualComponent.FIRE)); - flightRitual.add(new RitualComponent(-1, 4, -2, RitualComponent.FIRE)); - flightRitual.add(new RitualComponent(2, 4, 2, RitualComponent.AIR)); - flightRitual.add(new RitualComponent(-2, 4, 2, RitualComponent.AIR)); - flightRitual.add(new RitualComponent(2, 4, -2, RitualComponent.AIR)); - flightRitual.add(new RitualComponent(-2, 4, -2, RitualComponent.AIR)); - flightRitual.add(new RitualComponent(-4, 2, -4, RitualComponent.FIRE)); - flightRitual.add(new RitualComponent(4, 2, 4, RitualComponent.FIRE)); - flightRitual.add(new RitualComponent(4, 2, -4, RitualComponent.FIRE)); - flightRitual.add(new RitualComponent(-4, 2, 4, RitualComponent.FIRE)); - - for (int i = -1; i <= 1; i++) - { - flightRitual.add(new RitualComponent(3, 4, i, RitualComponent.EARTH)); - flightRitual.add(new RitualComponent(-3, 4, i, RitualComponent.EARTH)); - flightRitual.add(new RitualComponent(i, 4, 3, RitualComponent.EARTH)); - flightRitual.add(new RitualComponent(i, 4, -3, RitualComponent.EARTH)); - } - return flightRitual; - } -} diff --git a/1.7.2/main/java/WayofTime/alchemicalWizardry/common/rituals/RitualEffectGrowth.java b/1.7.2/main/java/WayofTime/alchemicalWizardry/common/rituals/RitualEffectGrowth.java deleted file mode 100644 index 4e56380c..00000000 --- a/1.7.2/main/java/WayofTime/alchemicalWizardry/common/rituals/RitualEffectGrowth.java +++ /dev/null @@ -1,104 +0,0 @@ -package WayofTime.alchemicalWizardry.common.rituals; - -import java.util.ArrayList; -import java.util.List; - -import net.minecraft.block.Block; -import net.minecraft.entity.player.EntityPlayer; -import net.minecraft.potion.Potion; -import net.minecraft.potion.PotionEffect; -import net.minecraft.server.MinecraftServer; -import net.minecraft.world.World; -import net.minecraftforge.common.IPlantable; -import WayofTime.alchemicalWizardry.api.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 RitualEffectGrowth 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(); - - if (currentEssence < this.getCostPerRefresh()) - { - EntityPlayer entityOwner = MinecraftServer.getServer().getConfigurationManager().getPlayerForUsername(owner); - - if (entityOwner == null) - { - return; - } - - entityOwner.addPotionEffect(new PotionEffect(Potion.confusion.id, 80)); - } else - { - if (world.getWorldTime() % 20 != 0) - { - return; - } - - boolean flag = false; - - for (int i = -1; i <= 1; i++) - { - for (int j = -1; j <= 1; j++) - { - Block block = world.getBlock(x + i, y + 2, z + j); - - if (block instanceof IPlantable) - { - { - SpellHelper.sendIndexedParticleToAllAround(world, x, y, z, 20, world.provider.dimensionId, 3, x, y, z); - block.updateTick(world, x + i, y + 2, z + j, world.rand); - flag = true; - } - } - } - } - - if (flag) - { - data.currentEssence = currentEssence - this.getCostPerRefresh(); - data.markDirty(); - } - } - } - - @Override - public int getCostPerRefresh() - { - return 25; - } - - @Override - public List getRitualComponentList() - { - ArrayList growthRitual = new ArrayList(); - growthRitual.add(new RitualComponent(1, 0, 0, 1)); - growthRitual.add(new RitualComponent(-1, 0, 0, 1)); - growthRitual.add(new RitualComponent(0, 0, 1, 1)); - growthRitual.add(new RitualComponent(0, 0, -1, 1)); - growthRitual.add(new RitualComponent(-1, 0, 1, 3)); - growthRitual.add(new RitualComponent(1, 0, 1, 3)); - growthRitual.add(new RitualComponent(-1, 0, -1, 3)); - growthRitual.add(new RitualComponent(1, 0, -1, 3)); - return growthRitual; - } -} diff --git a/1.7.2/main/java/WayofTime/alchemicalWizardry/common/rituals/RitualEffectHarvest.java b/1.7.2/main/java/WayofTime/alchemicalWizardry/common/rituals/RitualEffectHarvest.java deleted file mode 100644 index 42564449..00000000 --- a/1.7.2/main/java/WayofTime/alchemicalWizardry/common/rituals/RitualEffectHarvest.java +++ /dev/null @@ -1,123 +0,0 @@ -package WayofTime.alchemicalWizardry.common.rituals; - -import java.util.ArrayList; -import java.util.List; - -import net.minecraft.block.Block; -import net.minecraft.entity.player.EntityPlayer; -import net.minecraft.potion.Potion; -import net.minecraft.potion.PotionEffect; -import net.minecraft.server.MinecraftServer; -import net.minecraft.world.World; -import net.minecraftforge.common.IPlantable; -import WayofTime.alchemicalWizardry.api.harvest.HarvestRegistry; -import WayofTime.alchemicalWizardry.api.rituals.IMasterRitualStone; -import WayofTime.alchemicalWizardry.api.rituals.RitualComponent; -import WayofTime.alchemicalWizardry.api.rituals.RitualEffect; -import WayofTime.alchemicalWizardry.api.soulNetwork.LifeEssenceNetwork; -import WayofTime.alchemicalWizardry.common.spell.complex.effect.SpellHelper; - -public class RitualEffectHarvest extends RitualEffect -{ - @Override - public void performEffect(IMasterRitualStone ritualStone) - { - String owner = ritualStone.getOwner(); - World worldSave = MinecraftServer.getServer().worldServers[0]; - LifeEssenceNetwork data = (LifeEssenceNetwork) worldSave.loadItemData(LifeEssenceNetwork.class, owner); - - if (data == null) - { - data = new LifeEssenceNetwork(owner); - worldSave.setItemData(owner, data); - } - - int currentEssence = data.currentEssence; - World world = ritualStone.getWorld(); - int x = ritualStone.getXCoord(); - int y = ritualStone.getYCoord(); - int z = ritualStone.getZCoord(); - int maxCount = 9; - - if (currentEssence < this.getCostPerRefresh() * maxCount) - { - EntityPlayer entityOwner = MinecraftServer.getServer().getConfigurationManager().getPlayerForUsername(owner); - - if (entityOwner == null) - { - return; - } - - entityOwner.addPotionEffect(new PotionEffect(Potion.confusion.id, 80)); - } else - { - if (world.getWorldTime() % 20 != 0) - { - return; - } - - int flag = 0; - int range = 4; - - for (int i = -range; i <= range; i++) - { - for (int j = -range; j <= range; j++) - { - for(int k = -range; k<=range; k++) - { - if(HarvestRegistry.harvestBlock(world, x + i, y + j, z + k)) - { - flag++; - } - } - } - } - - if (flag > 0) - { - data.currentEssence = currentEssence - this.getCostPerRefresh() * Math.min(maxCount, flag); - data.markDirty(); - } - } - } - - @Override - public int getCostPerRefresh() - { - return 20; - } - - @Override - public List getRitualComponentList() - { - ArrayList harvestRitual = new ArrayList(); - - harvestRitual.add(new RitualComponent(1,0,1,RitualComponent.DUSK)); - harvestRitual.add(new RitualComponent(1,0,-1,RitualComponent.DUSK)); - harvestRitual.add(new RitualComponent(-1,0,-1,RitualComponent.DUSK)); - harvestRitual.add(new RitualComponent(-1,0,1,RitualComponent.DUSK)); - harvestRitual.add(new RitualComponent(2,0,0,RitualComponent.EARTH)); - harvestRitual.add(new RitualComponent(-2,0,0,RitualComponent.EARTH)); - harvestRitual.add(new RitualComponent(0,0,2,RitualComponent.EARTH)); - harvestRitual.add(new RitualComponent(0,0,-2,RitualComponent.EARTH)); - harvestRitual.add(new RitualComponent(3,0,1,RitualComponent.EARTH)); - harvestRitual.add(new RitualComponent(3,0,-1,RitualComponent.EARTH)); - harvestRitual.add(new RitualComponent(-3,0,1,RitualComponent.EARTH)); - harvestRitual.add(new RitualComponent(-3,0,-1,RitualComponent.EARTH)); - harvestRitual.add(new RitualComponent(1,0,3,RitualComponent.EARTH)); - harvestRitual.add(new RitualComponent(-1,0,3,RitualComponent.EARTH)); - harvestRitual.add(new RitualComponent(1,0,-3,RitualComponent.EARTH)); - harvestRitual.add(new RitualComponent(-1,0,-3,RitualComponent.EARTH)); - harvestRitual.add(new RitualComponent(2,0,3,RitualComponent.WATER)); - harvestRitual.add(new RitualComponent(3,0,2,RitualComponent.WATER)); - harvestRitual.add(new RitualComponent(2,0,-3,RitualComponent.WATER)); - harvestRitual.add(new RitualComponent(-3,0,2,RitualComponent.WATER)); - harvestRitual.add(new RitualComponent(-2,0,3,RitualComponent.WATER)); - harvestRitual.add(new RitualComponent(3,0,-2,RitualComponent.WATER)); - harvestRitual.add(new RitualComponent(-2,0,-3,RitualComponent.WATER)); - harvestRitual.add(new RitualComponent(-3,0,-2,RitualComponent.WATER)); - - - return harvestRitual; - } -} diff --git a/1.7.2/main/java/WayofTime/alchemicalWizardry/common/rituals/RitualEffectHealing.java b/1.7.2/main/java/WayofTime/alchemicalWizardry/common/rituals/RitualEffectHealing.java deleted file mode 100644 index 1e4bec32..00000000 --- a/1.7.2/main/java/WayofTime/alchemicalWizardry/common/rituals/RitualEffectHealing.java +++ /dev/null @@ -1,180 +0,0 @@ -package WayofTime.alchemicalWizardry.common.rituals; - -import java.util.ArrayList; -import java.util.Iterator; -import java.util.List; - -import net.minecraft.entity.EntityLivingBase; -import net.minecraft.entity.player.EntityPlayer; -import net.minecraft.potion.Potion; -import net.minecraft.potion.PotionEffect; -import net.minecraft.server.MinecraftServer; -import net.minecraft.util.AxisAlignedBB; -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; - -public class RitualEffectHealing extends RitualEffect -{ - public final int timeDelay = 50; - //public final int amount = 10; - - @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(); - - if (world.getWorldTime() % this.timeDelay != 0) - { - return; - } - -// if(!(world.getBlockTileEntity(x, y-1, z) instanceof TEAltar)) -// { -// return; -// } - //tileAltar = (TEAltar)world.getBlockTileEntity(x,y-1,z); - int d0 = 10; - int vertRange = 10; - AxisAlignedBB axisalignedbb = AxisAlignedBB.getAABBPool().getAABB((double) x, (double) y, (double) z, (double) (x + 1), (double) (y + 1), (double) (z + 1)).expand(d0, vertRange, d0); - List list = world.getEntitiesWithinAABB(EntityLivingBase.class, axisalignedbb); - Iterator iterator1 = list.iterator(); - EntityLivingBase entity; - int entityCount = 0; - boolean flag = false; - - while (iterator1.hasNext()) - { - entity = (EntityLivingBase) iterator1.next(); - - if (entity instanceof EntityPlayer) - { - entityCount += 10; - } else - { - entityCount++; - } - } - - if (currentEssence < this.getCostPerRefresh() * entityCount) - { - EntityPlayer entityOwner = MinecraftServer.getServer().getConfigurationManager().getPlayerForUsername(owner); - - if (entityOwner == null) - { - return; - } - - entityOwner.addPotionEffect(new PotionEffect(Potion.confusion.id, 80)); - } else - { - Iterator iterator2 = list.iterator(); - entityCount = 0; - - while (iterator2.hasNext()) - { - entity = (EntityLivingBase) iterator2.next(); - - if (entity.getHealth() + 0.1f < entity.getMaxHealth()) - { - entity.addPotionEffect(new PotionEffect(Potion.regeneration.id, timeDelay + 2, 0)); - - //entity.setHealth(entity.getHealth()-1); - - //entity.attackEntityFrom(DamageSource.outOfWorld, 1); - - if (entity instanceof EntityPlayer) - { - entityCount += 10; - } else - { - entityCount++; - } - } - -// if(entity.getHealth()<=0.2f) -// { -// entity.onDeath(DamageSource.inFire); -// } - //tileAltar.sacrificialDaggerCall(this.amount, true); - } - - data.currentEssence = currentEssence - this.getCostPerRefresh() * entityCount; - data.markDirty(); - } - } - - @Override - public int getCostPerRefresh() - { - // TODO Auto-generated method stub - return 20; - } - - @Override - public List getRitualComponentList() - { - ArrayList healingRitual = new ArrayList(); - healingRitual.add(new RitualComponent(4, 0, 0, RitualComponent.AIR)); - healingRitual.add(new RitualComponent(5, 0, -1, RitualComponent.AIR)); - healingRitual.add(new RitualComponent(5, 0, 1, RitualComponent.AIR)); - healingRitual.add(new RitualComponent(-4, 0, 0, RitualComponent.AIR)); - healingRitual.add(new RitualComponent(-5, 0, -1, RitualComponent.AIR)); - healingRitual.add(new RitualComponent(-5, 0, 1, RitualComponent.AIR)); - healingRitual.add(new RitualComponent(0, 0, 4, RitualComponent.FIRE)); - healingRitual.add(new RitualComponent(-1, 0, 5, RitualComponent.FIRE)); - healingRitual.add(new RitualComponent(1, 0, 5, RitualComponent.FIRE)); - healingRitual.add(new RitualComponent(0, 0, -4, RitualComponent.FIRE)); - healingRitual.add(new RitualComponent(-1, 0, -5, RitualComponent.FIRE)); - healingRitual.add(new RitualComponent(1, 0, -5, RitualComponent.FIRE)); - healingRitual.add(new RitualComponent(3, 0, 5, RitualComponent.WATER)); - healingRitual.add(new RitualComponent(5, 0, 3, RitualComponent.WATER)); - healingRitual.add(new RitualComponent(3, 0, -5, RitualComponent.WATER)); - healingRitual.add(new RitualComponent(5, 0, -3, RitualComponent.WATER)); - healingRitual.add(new RitualComponent(-3, 0, 5, RitualComponent.WATER)); - healingRitual.add(new RitualComponent(-5, 0, 3, RitualComponent.WATER)); - healingRitual.add(new RitualComponent(-3, 0, -5, RitualComponent.WATER)); - healingRitual.add(new RitualComponent(-5, 0, -3, RitualComponent.WATER)); - healingRitual.add(new RitualComponent(-3, 0, -3, RitualComponent.DUSK)); - healingRitual.add(new RitualComponent(-3, 0, 3, RitualComponent.DUSK)); - healingRitual.add(new RitualComponent(3, 0, -3, RitualComponent.DUSK)); - healingRitual.add(new RitualComponent(3, 0, 3, RitualComponent.DUSK)); - healingRitual.add(new RitualComponent(4, 0, 5, RitualComponent.EARTH)); - healingRitual.add(new RitualComponent(4, -1, 5, RitualComponent.EARTH)); - healingRitual.add(new RitualComponent(5, 0, 4, RitualComponent.EARTH)); - healingRitual.add(new RitualComponent(5, -1, 4, RitualComponent.EARTH)); - healingRitual.add(new RitualComponent(5, 0, 5, RitualComponent.EARTH)); - healingRitual.add(new RitualComponent(4, 0, -5, RitualComponent.EARTH)); - healingRitual.add(new RitualComponent(4, -1, -5, RitualComponent.EARTH)); - healingRitual.add(new RitualComponent(5, 0, -4, RitualComponent.EARTH)); - healingRitual.add(new RitualComponent(5, -1, -4, RitualComponent.EARTH)); - healingRitual.add(new RitualComponent(5, 0, -5, RitualComponent.EARTH)); - healingRitual.add(new RitualComponent(-4, 0, 5, RitualComponent.EARTH)); - healingRitual.add(new RitualComponent(-4, -1, 5, RitualComponent.EARTH)); - healingRitual.add(new RitualComponent(-5, 0, 4, RitualComponent.EARTH)); - healingRitual.add(new RitualComponent(-5, -1, 4, RitualComponent.EARTH)); - healingRitual.add(new RitualComponent(-5, 0, 5, RitualComponent.EARTH)); - healingRitual.add(new RitualComponent(-4, 0, -5, RitualComponent.EARTH)); - healingRitual.add(new RitualComponent(-4, -1, -5, RitualComponent.EARTH)); - healingRitual.add(new RitualComponent(-5, 0, -4, RitualComponent.EARTH)); - healingRitual.add(new RitualComponent(-5, -1, -4, RitualComponent.EARTH)); - healingRitual.add(new RitualComponent(-5, 0, -5, RitualComponent.EARTH)); - return healingRitual; - } -} diff --git a/1.7.2/main/java/WayofTime/alchemicalWizardry/common/rituals/RitualEffectInterdiction.java b/1.7.2/main/java/WayofTime/alchemicalWizardry/common/rituals/RitualEffectInterdiction.java deleted file mode 100644 index 9ddce8ca..00000000 --- a/1.7.2/main/java/WayofTime/alchemicalWizardry/common/rituals/RitualEffectInterdiction.java +++ /dev/null @@ -1,112 +0,0 @@ -package WayofTime.alchemicalWizardry.common.rituals; - -import java.util.ArrayList; -import java.util.Iterator; -import java.util.List; - -import net.minecraft.entity.EntityLivingBase; -import net.minecraft.entity.player.EntityPlayer; -import net.minecraft.potion.Potion; -import net.minecraft.potion.PotionEffect; -import net.minecraft.server.MinecraftServer; -import net.minecraft.util.AxisAlignedBB; -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 RitualEffectInterdiction 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(); - - if (currentEssence < this.getCostPerRefresh()) - { - EntityPlayer entityOwner = MinecraftServer.getServer().getConfigurationManager().getPlayerForUsername(owner); - - if (entityOwner == null) - { - return; - } - - entityOwner.addPotionEffect(new PotionEffect(Potion.confusion.id, 80)); - } else - { - int d0 = 5; - AxisAlignedBB axisalignedbb = AxisAlignedBB.getAABBPool().getAABB((double) x, (double) y, (double) z, (double) (x + 1), (double) (y + 1), (double) (z + 1)).expand(d0, d0, d0); - axisalignedbb.maxY = Math.min((double) world.getHeight(), (double) (y + 1 + d0)); - List list = world.getEntitiesWithinAABB(EntityLivingBase.class, axisalignedbb); - Iterator iterator = list.iterator(); - EntityLivingBase entityplayer; - boolean flag = false; - - while (iterator.hasNext()) - { - entityplayer = (EntityLivingBase) iterator.next(); - - if (!(entityplayer instanceof EntityPlayer && (SpellHelper.getUsername((EntityPlayer)entityplayer).equals(owner)))) - { - double xDif = entityplayer.posX - x; - double yDif = entityplayer.posY - (y + 1); - double zDif = entityplayer.posZ - z; - entityplayer.motionX = 0.1 * xDif; - entityplayer.motionY = 0.1 * yDif; - entityplayer.motionZ = 0.1 * zDif; - entityplayer.fallDistance = 0; - - if (!(entityplayer instanceof EntityPlayer)) - { - flag = true; - } - - //entityplayer.addPotionEffect(new PotionEffect(Potion.confusion.id, 80)); - } - } - - if (world.getWorldTime() % 2 == 0 && flag) - { - data.currentEssence = currentEssence - this.getCostPerRefresh(); - data.markDirty(); - } - } - } - - @Override - public int getCostPerRefresh() - { - return 1; - } - - @Override - public List getRitualComponentList() - { - ArrayList interdictionRitual = new ArrayList(); - interdictionRitual.add(new RitualComponent(1, 0, 0, 4)); - interdictionRitual.add(new RitualComponent(-1, 0, 0, 4)); - interdictionRitual.add(new RitualComponent(0, 0, 1, 4)); - interdictionRitual.add(new RitualComponent(0, 0, -1, 4)); - interdictionRitual.add(new RitualComponent(-1, 0, 1, 4)); - interdictionRitual.add(new RitualComponent(1, 0, 1, 4)); - interdictionRitual.add(new RitualComponent(-1, 0, -1, 4)); - interdictionRitual.add(new RitualComponent(1, 0, -1, 4)); - return interdictionRitual; - } -} 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 deleted file mode 100644 index d405b21f..00000000 --- a/1.7.2/main/java/WayofTime/alchemicalWizardry/common/rituals/RitualEffectItemSuction.java +++ /dev/null @@ -1,215 +0,0 @@ -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.nbt.NBTTagCompound; -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.getTileEntity(x, y + 1, z); - IInventory tileEntity; - - if (tile instanceof IInventory) - { - tileEntity = (IInventory) tile; - } else - { - return; - } - - if (tileEntity.getSizeInventory() <= 0) - { - return; - } - - Block block = world.getBlock(x, y-1, z); - int range = this.getRange(block); - int refCost = this.getCostMod(block); - - if (currentEssence < this.getCostPerRefresh()*100*refCost) - { - 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, range, range); - - 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 - { - NBTTagCompound data1 = itemStack.getTagCompound(); - NBTTagCompound data2 = copyStack.getTagCompound(); - //TODO - if (itemStack.getItem().equals(copyStack.getItem()) && itemStack.getItemDamage() == copyStack.getItemDamage() && ((data1 == null && data2 == null) || (data1 != null && data1.equals(data2)))) - { - 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) - { - itemEntity.getEntityItem().stackSize = copyStack.stackSize; - } - } - } - - if(count>0) - { - data.currentEssence = currentEssence - this.getCostPerRefresh()*Math.min(count, 100)*refCost; - data.markDirty(); - return; - } - } - } - - @Override - public int getCostPerRefresh() - { - return 5; - } - - public int getRange(Block block) - { - if(block == null) - { - return 10; - } - if(block == Blocks.iron_block) - { - return 15; - } - if(block == Blocks.gold_block) - { - return 25; - } - if(block == Blocks.diamond_block) - { - return 40; - } - return 10; - } - - public int getCostMod(Block block) - { - if(block == null) - { - return 1; - } - if(block == Blocks.iron_block) - { - return 2; - } - if(block == Blocks.gold_block) - { - return 3; - } - if(block == Blocks.diamond_block) - { - return 4; - } - return 1; - } - - @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/main/java/WayofTime/alchemicalWizardry/common/rituals/RitualEffectJumping.java b/1.7.2/main/java/WayofTime/alchemicalWizardry/common/rituals/RitualEffectJumping.java deleted file mode 100644 index 044de29e..00000000 --- a/1.7.2/main/java/WayofTime/alchemicalWizardry/common/rituals/RitualEffectJumping.java +++ /dev/null @@ -1,114 +0,0 @@ -package WayofTime.alchemicalWizardry.common.rituals; - -import java.util.ArrayList; -import java.util.Iterator; -import java.util.List; - -import net.minecraft.entity.EntityLivingBase; -import net.minecraft.entity.player.EntityPlayer; -import net.minecraft.potion.Potion; -import net.minecraft.potion.PotionEffect; -import net.minecraft.server.MinecraftServer; -import net.minecraft.util.AxisAlignedBB; -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 RitualEffectJumping 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(); - - if (currentEssence < this.getCostPerRefresh()) - { - EntityPlayer entityOwner = MinecraftServer.getServer().getConfigurationManager().getPlayerForUsername(owner); - - if (entityOwner == null) - { - return; - } - - entityOwner.addPotionEffect(new PotionEffect(Potion.confusion.id, 80)); - } else - { - int d0 = 0; - AxisAlignedBB axisalignedbb = AxisAlignedBB.getAABBPool().getAABB((double) x, (double) y + 1, (double) z, (double) (x + 1), (double) (y + 2), (double) (z + 1)).expand(d0, d0, d0); - List list = world.getEntitiesWithinAABB(EntityLivingBase.class, axisalignedbb); - Iterator iterator = list.iterator(); - EntityLivingBase entityplayer; - boolean flag = false; - - while (iterator.hasNext()) - { - entityplayer = (EntityLivingBase) iterator.next(); - - if (entityplayer instanceof EntityPlayer) - { - //PacketDispatcher.sendPacketToPlayer(PacketHandler.getPlayerVelocitySettingPacket(entityplayer.motionX, 1.5, entityplayer.motionZ), (Player) entityplayer); - SpellHelper.setPlayerSpeedFromServer((EntityPlayer)entityplayer, entityplayer.motionX, 1.5, entityplayer.motionZ); - entityplayer.motionY = 1.5; - entityplayer.fallDistance = 0; - flag = true; - } else - //if (!(entityplayer.getEntityName().equals(owner))) - { -// double xDif = entityplayer.posX - xCoord; -// double yDif = entityplayer.posY - (yCoord + 1); -// double zDif = entityplayer.posZ - zCoord; - //entityplayer.motionX=0.1*xDif; - entityplayer.motionY = 1.5; - //entityplayer.motionZ=0.1*zDif; - entityplayer.fallDistance = 0; - flag = true; - //entityplayer.addPotionEffect(new PotionEffect(Potion.confusion.id, 80)); - } - } - - if (flag) - { - data.currentEssence = currentEssence - this.getCostPerRefresh(); - data.markDirty(); - } - } - } - - @Override - public int getCostPerRefresh() - { - return 5; - } - - @Override - public List getRitualComponentList() - { - ArrayList jumpingRitual = new ArrayList(); - - for (int i = -1; i <= 1; i++) - { - jumpingRitual.add(new RitualComponent(1, i, 1, RitualComponent.AIR)); - jumpingRitual.add(new RitualComponent(-1, i, 1, RitualComponent.AIR)); - jumpingRitual.add(new RitualComponent(-1, i, -1, RitualComponent.AIR)); - jumpingRitual.add(new RitualComponent(1, i, -1, RitualComponent.AIR)); - } - return jumpingRitual; - } -} diff --git a/1.7.2/main/java/WayofTime/alchemicalWizardry/common/rituals/RitualEffectLava.java b/1.7.2/main/java/WayofTime/alchemicalWizardry/common/rituals/RitualEffectLava.java deleted file mode 100644 index 498291bf..00000000 --- a/1.7.2/main/java/WayofTime/alchemicalWizardry/common/rituals/RitualEffectLava.java +++ /dev/null @@ -1,86 +0,0 @@ -package WayofTime.alchemicalWizardry.common.rituals; - -import java.util.ArrayList; -import java.util.List; - -import net.minecraft.block.Block; -import net.minecraft.entity.player.EntityPlayer; -import net.minecraft.init.Blocks; -import net.minecraft.potion.Potion; -import net.minecraft.potion.PotionEffect; -import net.minecraft.server.MinecraftServer; -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.block.BlockSpectralContainer; -import WayofTime.alchemicalWizardry.common.spell.complex.effect.SpellHelper; - -public class RitualEffectLava 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(); - - Block block = world.getBlock(x, y + 1, z); - - if (world.isAirBlock(x, y + 1, z) && !(block instanceof BlockSpectralContainer)) - { - if (currentEssence < this.getCostPerRefresh()) - { - EntityPlayer entityOwner = MinecraftServer.getServer().getConfigurationManager().getPlayerForUsername(owner); - - if (entityOwner == null) - { - return; - } - - entityOwner.addPotionEffect(new PotionEffect(Potion.confusion.id, 80)); - } else - { - for (int i = 0; i < 10; i++) - { - SpellHelper.sendIndexedParticleToAllAround(world, x, y, z, 20, world.provider.dimensionId, 3, x, y, z); - } - - world.setBlock(x, y + 1, z, Blocks.lava, 0, 3); - data.currentEssence = currentEssence - this.getCostPerRefresh(); - data.markDirty(); - } - } - } - - @Override - public int getCostPerRefresh() - { - // TODO Auto-generated method stub - return 500; - } - - @Override - public List getRitualComponentList() - { - ArrayList lavaRitual = new ArrayList(); - lavaRitual.add(new RitualComponent(1, 0, 0, 2)); - lavaRitual.add(new RitualComponent(-1, 0, 0, 2)); - lavaRitual.add(new RitualComponent(0, 0, 1, 2)); - lavaRitual.add(new RitualComponent(0, 0, -1, 2)); - return lavaRitual; - } -} diff --git a/1.7.2/main/java/WayofTime/alchemicalWizardry/common/rituals/RitualEffectLeap.java b/1.7.2/main/java/WayofTime/alchemicalWizardry/common/rituals/RitualEffectLeap.java deleted file mode 100644 index 3e8c939b..00000000 --- a/1.7.2/main/java/WayofTime/alchemicalWizardry/common/rituals/RitualEffectLeap.java +++ /dev/null @@ -1,158 +0,0 @@ -package WayofTime.alchemicalWizardry.common.rituals; - -import java.util.ArrayList; -import java.util.Iterator; -import java.util.List; - -import net.minecraft.entity.EntityLivingBase; -import net.minecraft.entity.player.EntityPlayer; -import net.minecraft.potion.Potion; -import net.minecraft.potion.PotionEffect; -import net.minecraft.server.MinecraftServer; -import net.minecraft.util.AxisAlignedBB; -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 RitualEffectLeap 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(); - - if (currentEssence < this.getCostPerRefresh()) - { - EntityPlayer entityOwner = MinecraftServer.getServer().getConfigurationManager().getPlayerForUsername(owner); - - if (entityOwner == null) - { - return; - } - - entityOwner.addPotionEffect(new PotionEffect(Potion.confusion.id, 80)); - } else - { - int direction = ritualStone.getDirection(); - int d0 = 2; - AxisAlignedBB axisalignedbb = AxisAlignedBB.getAABBPool().getAABB((double) x, (double) y - 1, (double) z, (double) (x + 1), (double) (y + 2), (double) (z + 1)).expand(d0, 0, d0); - List list = world.getEntitiesWithinAABB(EntityLivingBase.class, axisalignedbb); - Iterator iterator = list.iterator(); - EntityLivingBase entityplayer; - boolean flag = false; - - while (iterator.hasNext()) - { - entityplayer = (EntityLivingBase) iterator.next(); - - if (entityplayer instanceof EntityPlayer) - { - entityplayer.motionY = 1.2; - entityplayer.fallDistance = 0; - - switch (direction) - { - case 1: - SpellHelper.setPlayerSpeedFromServer((EntityPlayer)entityplayer, 0, 1.2, -3.0); - break; - - case 2: - SpellHelper.setPlayerSpeedFromServer((EntityPlayer)entityplayer, 3.0, 1.2, 0); - break; - - case 3: - SpellHelper.setPlayerSpeedFromServer((EntityPlayer)entityplayer, 0, 1.2, 3.0); - break; - - case 4: - SpellHelper.setPlayerSpeedFromServer((EntityPlayer)entityplayer, -3.0, 1.2, 0); - break; - } - - flag = true; - } else - //if (!(entityplayer.getEntityName().equals(owner))) - { -// double xDif = entityplayer.posX - xCoord; -// double yDif = entityplayer.posY - (yCoord + 1); -// double zDif = entityplayer.posZ - zCoord; - //entityplayer.motionX=0.1*xDif; - entityplayer.motionY = 1.2; - - switch (direction) - { - case 1: - entityplayer.motionX = 0.0; - entityplayer.motionZ = -3.0; - break; - - case 2: - entityplayer.motionX = 3.0; - entityplayer.motionZ = 0.0; - break; - - case 3: - entityplayer.motionX = 0.0; - entityplayer.motionZ = -3.0; - break; - - case 4: - entityplayer.motionX = -3.0; - entityplayer.motionZ = 0.0; - break; - } - - //entityplayer.motionZ=0.1*zDif; - entityplayer.fallDistance = 0; - flag = true; - //entityplayer.addPotionEffect(new PotionEffect(Potion.confusion.id, 80)); - } - } - - if (flag) - { - data.currentEssence = currentEssence - this.getCostPerRefresh(); - data.markDirty(); - } - } - } - - @Override - public int getCostPerRefresh() - { - return 5; - } - - @Override - public List getRitualComponentList() - { - ArrayList leapingRitual = new ArrayList(); - leapingRitual.add(new RitualComponent(0, 0, -2, RitualComponent.DUSK)); - leapingRitual.add(new RitualComponent(1, 0, -1, RitualComponent.AIR)); - leapingRitual.add(new RitualComponent(-1, 0, -1, RitualComponent.AIR)); - - for (int i = 0; i <= 2; i++) - { - leapingRitual.add(new RitualComponent(2, 0, i, RitualComponent.AIR)); - leapingRitual.add(new RitualComponent(-2, 0, i, RitualComponent.AIR)); - } - return leapingRitual; - } -} diff --git a/1.7.2/main/java/WayofTime/alchemicalWizardry/common/rituals/RitualEffectLifeConduit.java b/1.7.2/main/java/WayofTime/alchemicalWizardry/common/rituals/RitualEffectLifeConduit.java deleted file mode 100644 index b7b93f4d..00000000 --- a/1.7.2/main/java/WayofTime/alchemicalWizardry/common/rituals/RitualEffectLifeConduit.java +++ /dev/null @@ -1,180 +0,0 @@ -package WayofTime.alchemicalWizardry.common.rituals; - -import java.util.ArrayList; -import java.util.Iterator; -import java.util.List; - -import net.minecraft.entity.player.EntityPlayer; -import net.minecraft.server.MinecraftServer; -import net.minecraft.util.AxisAlignedBB; -import net.minecraft.world.World; -import net.minecraftforge.common.util.ForgeDirection; -import net.minecraftforge.fluids.FluidStack; -import WayofTime.alchemicalWizardry.AlchemicalWizardry; -import WayofTime.alchemicalWizardry.api.rituals.IMasterRitualStone; -import WayofTime.alchemicalWizardry.api.rituals.RitualComponent; -import WayofTime.alchemicalWizardry.api.rituals.RitualEffect; -import WayofTime.alchemicalWizardry.api.soulNetwork.LifeEssenceNetwork; -import WayofTime.alchemicalWizardry.common.spell.complex.effect.SpellHelper; -import WayofTime.alchemicalWizardry.common.tileEntity.TEAltar; - -public class RitualEffectLifeConduit extends RitualEffect -{ - @Override - public void performEffect(IMasterRitualStone ritualStone) - { - String owner = ritualStone.getOwner(); - World worldSave = MinecraftServer.getServer().worldServers[0]; - LifeEssenceNetwork data = (LifeEssenceNetwork) worldSave.loadItemData(LifeEssenceNetwork.class, owner); - - if (data == null) - { - data = new LifeEssenceNetwork(owner); - worldSave.setItemData(owner, data); - } - - int currentEssence = data.currentEssence; - World world = ritualStone.getWorld(); - int x = ritualStone.getXCoord(); - int y = ritualStone.getYCoord(); - int z = ritualStone.getZCoord(); - - TEAltar tileAltar = null; - boolean testFlag = false; - - for (int i = -5; i <= 5; i++) - { - for (int j = -5; j <= 5; j++) - { - for (int k = -10; k <= 10; k++) - { - if (world.getTileEntity(x + i, y + k, z + j) instanceof TEAltar) - { - tileAltar = (TEAltar) world.getTileEntity(x + i, y + k, z + j); - testFlag = true; - } - } - } - } - - if (!testFlag) - { - return; - } - - //tileAltar = (TEAltar)world.getBlockTileEntity(x,y-1,z); - int d0 = 15; - int vertRange = 20; - - EntityPlayer entityOwner = null; - List list = SpellHelper.getPlayersInRange(world, x, y, z, d0, vertRange); - - for(EntityPlayer player : list) - { - if(SpellHelper.getUsername(player).equals(owner)) - { - entityOwner = player; - } - } - - if (entityOwner == null) - { - return; - } - - int fillAmount = Math.min(currentEssence/2,tileAltar.fill(ForgeDirection.UP, new FluidStack(AlchemicalWizardry.lifeEssenceFluid,10000), false)); - - { - tileAltar.fill(ForgeDirection.UP, new FluidStack(AlchemicalWizardry.lifeEssenceFluid,fillAmount), true); - if(entityOwner.getHealth() > 2.0f && fillAmount != 0) - { - entityOwner.setHealth(2.0f); - } - data.currentEssence = currentEssence - fillAmount*2; - } - } - - @Override - public int getCostPerRefresh() - { - return 0; - } - - @Override - public List getRitualComponentList() - { - ArrayList conduitRitual = new ArrayList(); - - conduitRitual.add(new RitualComponent(-1,0,-1,RitualComponent.FIRE)); - conduitRitual.add(new RitualComponent(-1,0,1,RitualComponent.FIRE)); - conduitRitual.add(new RitualComponent(1,0,1,RitualComponent.FIRE)); - conduitRitual.add(new RitualComponent(1,0,-1,RitualComponent.FIRE)); - - for(int i=0; i<4; i++) - { - conduitRitual.add(new RitualComponent(-2,i,-2,RitualComponent.AIR)); - conduitRitual.add(new RitualComponent(-2,i,2,RitualComponent.AIR)); - conduitRitual.add(new RitualComponent(2,i,2,RitualComponent.AIR)); - conduitRitual.add(new RitualComponent(2,i,-2,RitualComponent.AIR)); - } - - conduitRitual.add(new RitualComponent(4,1,4,RitualComponent.EARTH)); - conduitRitual.add(new RitualComponent(4,1,-4,RitualComponent.EARTH)); - conduitRitual.add(new RitualComponent(-4,1,-4,RitualComponent.EARTH)); - conduitRitual.add(new RitualComponent(-4,1,4,RitualComponent.EARTH)); - conduitRitual.add(new RitualComponent(3,1,4,RitualComponent.EARTH)); - conduitRitual.add(new RitualComponent(4,1,3,RitualComponent.EARTH)); - conduitRitual.add(new RitualComponent(-3,1,4,RitualComponent.EARTH)); - conduitRitual.add(new RitualComponent(-4,1,3,RitualComponent.EARTH)); - conduitRitual.add(new RitualComponent(3,1,-4,RitualComponent.EARTH)); - conduitRitual.add(new RitualComponent(4,1,-3,RitualComponent.EARTH)); - conduitRitual.add(new RitualComponent(-3,1,-4,RitualComponent.EARTH)); - conduitRitual.add(new RitualComponent(-4,1,-3,RitualComponent.EARTH)); - - - for(int i=0; i<2; i++) - { - conduitRitual.add(new RitualComponent(4,i+2,4,RitualComponent.WATER)); - conduitRitual.add(new RitualComponent(4,i+2,-4,RitualComponent.WATER)); - conduitRitual.add(new RitualComponent(-4,i+2,-4,RitualComponent.WATER)); - conduitRitual.add(new RitualComponent(-4,i+2,4,RitualComponent.WATER)); - } - - conduitRitual.add(new RitualComponent(4,4,4,RitualComponent.DUSK)); - conduitRitual.add(new RitualComponent(4,4,-4,RitualComponent.DUSK)); - conduitRitual.add(new RitualComponent(-4,4,-4,RitualComponent.DUSK)); - conduitRitual.add(new RitualComponent(-4,4,4,RitualComponent.DUSK)); - - conduitRitual.add(new RitualComponent(6,0,5,RitualComponent.FIRE)); - conduitRitual.add(new RitualComponent(5,0,6,RitualComponent.FIRE)); - conduitRitual.add(new RitualComponent(-6,0,5,RitualComponent.FIRE)); - conduitRitual.add(new RitualComponent(-5,0,6,RitualComponent.FIRE)); - conduitRitual.add(new RitualComponent(6,0,-5,RitualComponent.FIRE)); - conduitRitual.add(new RitualComponent(5,0,-6,RitualComponent.FIRE)); - conduitRitual.add(new RitualComponent(-6,0,-5,RitualComponent.FIRE)); - conduitRitual.add(new RitualComponent(-5,0,-6,RitualComponent.FIRE)); - - for(int i=0; i<2; i++) - { - conduitRitual.add(new RitualComponent(6,i,6,RitualComponent.FIRE)); - conduitRitual.add(new RitualComponent(6,i,-6,RitualComponent.FIRE)); - conduitRitual.add(new RitualComponent(-6,i,6,RitualComponent.FIRE)); - conduitRitual.add(new RitualComponent(-6,i,-6,RitualComponent.FIRE)); - } - - for(int i=0; i<3; i++) - { - conduitRitual.add(new RitualComponent(6,i+2,6,RitualComponent.BLANK)); - conduitRitual.add(new RitualComponent(6,i+2,-6,RitualComponent.BLANK)); - conduitRitual.add(new RitualComponent(-6,i+2,6,RitualComponent.BLANK)); - conduitRitual.add(new RitualComponent(-6,i+2,-6,RitualComponent.BLANK)); - } - - conduitRitual.add(new RitualComponent(6,5,6,RitualComponent.DUSK)); - conduitRitual.add(new RitualComponent(6,5,-6,RitualComponent.DUSK)); - conduitRitual.add(new RitualComponent(-6,5,6,RitualComponent.DUSK)); - conduitRitual.add(new RitualComponent(-6,5,-6,RitualComponent.DUSK)); - - return conduitRitual; - } -} diff --git a/1.7.2/main/java/WayofTime/alchemicalWizardry/common/rituals/RitualEffectMagnetic.java b/1.7.2/main/java/WayofTime/alchemicalWizardry/common/rituals/RitualEffectMagnetic.java deleted file mode 100644 index ef3cbcd0..00000000 --- a/1.7.2/main/java/WayofTime/alchemicalWizardry/common/rituals/RitualEffectMagnetic.java +++ /dev/null @@ -1,178 +0,0 @@ -package WayofTime.alchemicalWizardry.common.rituals; - -import java.util.ArrayList; -import java.util.List; - -import net.minecraft.block.Block; -import net.minecraft.entity.player.EntityPlayer; -import net.minecraft.init.Blocks; -import net.minecraft.item.ItemStack; -import net.minecraft.potion.Potion; -import net.minecraft.potion.PotionEffect; -import net.minecraft.server.MinecraftServer; -import net.minecraft.world.World; -import net.minecraftforge.oredict.OreDictionary; -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.block.BlockTeleposer; - -public class RitualEffectMagnetic 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(); - - if (world.getWorldTime() % 40 != 0) - { - 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); - - if (entityOwner == null) - { - return; - } - - entityOwner.addPotionEffect(new PotionEffect(Potion.confusion.id, 80)); - } else - { - int xRep = 0; - int yRep = 0; - int zRep = 0; - boolean replace = false; - - for (int j = 1; j <= 3; j++) - { - for (int i = -1; i <= 1; i++) - { - for (int k = -1; k <= 1; k++) - { - if ((!replace) && world.isAirBlock(x + i, y + j, z + k)) - { - xRep = x + i; - yRep = y + j; - zRep = z + k; - replace = true; - } - } - } - } - - if (replace) - { - //boolean hasReplaced = false; - for (int j = y - 1; j >= 0; j--) - { - for (int i = -radius; i <= radius; i++) - { - 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); - - if (block == null) - { - continue; - } - - ItemStack itemStack = new ItemStack(block, 1, meta); - int id = OreDictionary.getOreID(itemStack); - - if (id != -1) - { - String oreName = OreDictionary.getOreName(id); - - if (oreName.contains("ore")) - { - //TODO - //Allow swapping code. This means the searched block is an ore. - BlockTeleposer.swapBlocks(world, world, x + i, j, z + k, xRep, yRep, zRep); - data.currentEssence = currentEssence - this.getCostPerRefresh(); - data.markDirty(); - return; - } - } - } - } - } - } - } - } - - @Override - public int getCostPerRefresh() - { - return 50; - } - - @Override - public List getRitualComponentList() - { - ArrayList magneticRitual = new ArrayList(); - magneticRitual.add(new RitualComponent(1, 0, 1, RitualComponent.EARTH)); - magneticRitual.add(new RitualComponent(1, 0, -1, RitualComponent.EARTH)); - magneticRitual.add(new RitualComponent(-1, 0, 1, RitualComponent.EARTH)); - magneticRitual.add(new RitualComponent(-1, 0, -1, RitualComponent.EARTH)); - magneticRitual.add(new RitualComponent(2, 1, 0, RitualComponent.EARTH)); - magneticRitual.add(new RitualComponent(0, 1, 2, RitualComponent.EARTH)); - magneticRitual.add(new RitualComponent(-2, 1, 0, RitualComponent.EARTH)); - magneticRitual.add(new RitualComponent(0, 1, -2, RitualComponent.EARTH)); - magneticRitual.add(new RitualComponent(2, 1, 2, RitualComponent.AIR)); - magneticRitual.add(new RitualComponent(2, 1, -2, RitualComponent.AIR)); - magneticRitual.add(new RitualComponent(-2, 1, 2, RitualComponent.AIR)); - magneticRitual.add(new RitualComponent(-2, 1, -2, RitualComponent.AIR)); - magneticRitual.add(new RitualComponent(2, 2, 0, RitualComponent.FIRE)); - magneticRitual.add(new RitualComponent(0, 2, 2, RitualComponent.FIRE)); - magneticRitual.add(new RitualComponent(-2, 2, 0, RitualComponent.FIRE)); - 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/main/java/WayofTime/alchemicalWizardry/common/rituals/RitualEffectSoulBound.java b/1.7.2/main/java/WayofTime/alchemicalWizardry/common/rituals/RitualEffectSoulBound.java deleted file mode 100644 index 3b349fed..00000000 --- a/1.7.2/main/java/WayofTime/alchemicalWizardry/common/rituals/RitualEffectSoulBound.java +++ /dev/null @@ -1,199 +0,0 @@ -package WayofTime.alchemicalWizardry.common.rituals; - -import java.util.ArrayList; -import java.util.Iterator; -import java.util.List; - -import net.minecraft.entity.effect.EntityLightningBolt; -import net.minecraft.entity.item.EntityItem; -import net.minecraft.entity.player.EntityPlayer; -import net.minecraft.item.Item; -import net.minecraft.item.ItemStack; -import net.minecraft.potion.Potion; -import net.minecraft.potion.PotionEffect; -import net.minecraft.server.MinecraftServer; -import net.minecraft.util.AxisAlignedBB; -import net.minecraft.world.World; -import WayofTime.alchemicalWizardry.api.bindingRegistry.BindingRegistry; -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 RitualEffectSoulBound 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(); - - if (currentEssence < this.getCostPerRefresh()) - { - EntityPlayer entityOwner = MinecraftServer.getServer().getConfigurationManager().getPlayerForUsername(owner); - - if (entityOwner == null) - { - return; - } - - entityOwner.addPotionEffect(new PotionEffect(Potion.confusion.id, 80)); - } else - { - if (ritualStone.getVar1() == 0) - { - int d0 = 0; - AxisAlignedBB axisalignedbb = AxisAlignedBB.getAABBPool().getAABB((double) x, (double) y + 1, (double) z, (double) (x + 1), (double) (y + 2), (double) (z + 1)).expand(d0, d0, d0); - List list = world.getEntitiesWithinAABB(EntityItem.class, axisalignedbb); - Iterator iterator = list.iterator(); - EntityItem item; - - while (iterator.hasNext()) - { - item = (EntityItem) iterator.next(); -// double xDif = item.posX - (xCoord+0.5); -// double yDif = item.posY - (yCoord+1); -// double zDif = item.posZ - (zCoord+0.5); - ItemStack itemStack = item.getEntityItem(); - - if (itemStack == null) - { - continue; - } - - - if(BindingRegistry.isRequiredItemValid(itemStack)) - { - ritualStone.setVar1(BindingRegistry.getIndexForItem(itemStack)+1); - world.addWeatherEffect(new EntityLightningBolt(world, x, y + 1, z)); - ritualStone.setCooldown(ritualStone.getCooldown() - 1); - item.setDead(); - break; - } - - if (world.rand.nextInt(10) == 0) - { - SpellHelper.sendIndexedParticleToAllAround(world, x, y, z, 20, world.provider.dimensionId, 1, x, y, z); - } - } - - data.currentEssence = currentEssence - this.getCostPerRefresh(); - data.markDirty(); - } else - { - ritualStone.setCooldown(ritualStone.getCooldown() - 1); - - if (world.rand.nextInt(20) == 0) - { - int lightningPoint = world.rand.nextInt(8); - - switch (lightningPoint) - { - case 0: - world.addWeatherEffect(new EntityLightningBolt(world, x + 4, y + 3, z + 0)); - break; - - case 1: - world.addWeatherEffect(new EntityLightningBolt(world, x - 4, y + 3, z + 0)); - break; - - case 2: - world.addWeatherEffect(new EntityLightningBolt(world, x + 0, y + 3, z + 4)); - break; - - case 3: - world.addWeatherEffect(new EntityLightningBolt(world, x + 0, y + 3, z - 4)); - break; - - case 4: - world.addWeatherEffect(new EntityLightningBolt(world, x + 3, y + 3, z + 3)); - break; - - case 5: - world.addWeatherEffect(new EntityLightningBolt(world, x - 3, y + 3, z + 3)); - break; - - case 6: - world.addWeatherEffect(new EntityLightningBolt(world, x + 3, y + 3, z - 3)); - break; - - case 7: - world.addWeatherEffect(new EntityLightningBolt(world, x - 3, y + 3, z - 3)); - break; - } - } - - if (ritualStone.getCooldown() <= 0) - { - - ItemStack spawnedItem = BindingRegistry.getOutputForIndex(ritualStone.getVar1()-1); - - if (spawnedItem != null) - { - EntityItem newItem = new EntityItem(world, x + 0.5, y + 1, z + 0.5, spawnedItem.copy()); - world.spawnEntityInWorld(newItem); - } - - ritualStone.setActive(false); - } - } - } - } - - @Override - public int getCostPerRefresh() - { - return 0; - } - - @Override - public int getInitialCooldown() - { - return 200; - } - - @Override - public List getRitualComponentList() - { - ArrayList boundSoulRitual = new ArrayList(); - boundSoulRitual.add(new RitualComponent(3, 0, 0, 2)); - boundSoulRitual.add(new RitualComponent(-3, 0, 0, 2)); - boundSoulRitual.add(new RitualComponent(0, 0, 3, 2)); - boundSoulRitual.add(new RitualComponent(0, 0, -3, 2)); - boundSoulRitual.add(new RitualComponent(2, 0, 2, 4)); - boundSoulRitual.add(new RitualComponent(-2, 0, 2, 4)); - boundSoulRitual.add(new RitualComponent(2, 0, -2, 4)); - boundSoulRitual.add(new RitualComponent(-2, 0, -2, 4)); - boundSoulRitual.add(new RitualComponent(4, 2, 0, 1)); - boundSoulRitual.add(new RitualComponent(-4, 2, 0, 1)); - boundSoulRitual.add(new RitualComponent(0, 2, 4, 1)); - boundSoulRitual.add(new RitualComponent(0, 2, -4, 1)); - boundSoulRitual.add(new RitualComponent(3, 2, 3, 3)); - boundSoulRitual.add(new RitualComponent(3, 2, -3, 3)); - boundSoulRitual.add(new RitualComponent(-3, 2, 3, 3)); - boundSoulRitual.add(new RitualComponent(-3, 2, -3, 3)); - boundSoulRitual.add(new RitualComponent(4, 1, 0, 0)); - boundSoulRitual.add(new RitualComponent(-4, 1, 0, 0)); - boundSoulRitual.add(new RitualComponent(0, 1, 4, 0)); - boundSoulRitual.add(new RitualComponent(0, 1, -4, 0)); - boundSoulRitual.add(new RitualComponent(3, 1, 3, 0)); - boundSoulRitual.add(new RitualComponent(3, 1, -3, 0)); - boundSoulRitual.add(new RitualComponent(-3, 1, 3, 0)); - boundSoulRitual.add(new RitualComponent(-3, 1, -3, 0)); - return boundSoulRitual; - } -} diff --git a/1.7.2/main/java/WayofTime/alchemicalWizardry/common/rituals/RitualEffectSummonMeteor.java b/1.7.2/main/java/WayofTime/alchemicalWizardry/common/rituals/RitualEffectSummonMeteor.java deleted file mode 100644 index 9bf1b52d..00000000 --- a/1.7.2/main/java/WayofTime/alchemicalWizardry/common/rituals/RitualEffectSummonMeteor.java +++ /dev/null @@ -1,203 +0,0 @@ -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.potion.Potion; -import net.minecraft.potion.PotionEffect; -import net.minecraft.server.MinecraftServer; -import net.minecraft.util.AxisAlignedBB; -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.entity.projectile.EntityMeteor; -import WayofTime.alchemicalWizardry.common.summoning.meteor.MeteorRegistry; - -public class RitualEffectSummonMeteor 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(); - - if (ritualStone.getCooldown() > 0) - { - ritualStone.setCooldown(0); - } - - if (currentEssence < this.getCostPerRefresh()) - { - EntityPlayer entityOwner = MinecraftServer.getServer().getConfigurationManager().getPlayerForUsername(owner); - - if (entityOwner == null) - { - return; - } - - entityOwner.addPotionEffect(new PotionEffect(Potion.confusion.id, 80)); - } else - { - List entities = world.getEntitiesWithinAABB(EntityItem.class, AxisAlignedBB.getBoundingBox(x, y + 1, z, x + 1, y + 2, z + 1)); - - if (entities == null) - { - return; - } - - for (EntityItem entityItem : entities) - { - if (entityItem != null && MeteorRegistry.isValidParadigmItem(entityItem.getEntityItem())) - { - int meteorID = MeteorRegistry.getParadigmIDForItem(entityItem.getEntityItem()); - EntityMeteor meteor = new EntityMeteor(world, x + 0.5f, 257, z + 0.5f, meteorID); - meteor.motionY = -1.0f; - entityItem.setDead(); - world.spawnEntityInWorld(meteor); - ritualStone.setActive(false); - break; - } - } - -// EnergyBlastProjectile proj = new EnergyBlastProjectile(world, x, y+20, z); -// proj.motionX = 0.0d; -// proj.motionZ = 0.0d; -// proj.motionY = -1.0d; -// world.spawnEntityInWorld(proj); - data.currentEssence = currentEssence - this.getCostPerRefresh(); - data.markDirty(); - } - } - - @Override - public int getCostPerRefresh() - { - return 0; - } - - @Override - public List getRitualComponentList() - { - ArrayList meteorRitual = new ArrayList(); - meteorRitual.add(new RitualComponent(2, 0, 0, RitualComponent.FIRE)); - meteorRitual.add(new RitualComponent(-2, 0, 0, RitualComponent.FIRE)); - meteorRitual.add(new RitualComponent(0, 0, 2, RitualComponent.FIRE)); - meteorRitual.add(new RitualComponent(0, 0, -2, RitualComponent.FIRE)); - meteorRitual.add(new RitualComponent(3, 0, 1, RitualComponent.AIR)); - meteorRitual.add(new RitualComponent(3, 0, -1, RitualComponent.AIR)); - meteorRitual.add(new RitualComponent(-3, 0, 1, RitualComponent.AIR)); - meteorRitual.add(new RitualComponent(-3, 0, -1, RitualComponent.AIR)); - meteorRitual.add(new RitualComponent(1, 0, 3, RitualComponent.AIR)); - meteorRitual.add(new RitualComponent(-1, 0, 3, RitualComponent.AIR)); - meteorRitual.add(new RitualComponent(1, 0, -3, RitualComponent.AIR)); - meteorRitual.add(new RitualComponent(-1, 0, -3, RitualComponent.AIR)); - meteorRitual.add(new RitualComponent(4, 0, 2, RitualComponent.AIR)); - meteorRitual.add(new RitualComponent(4, 0, -2, RitualComponent.AIR)); - meteorRitual.add(new RitualComponent(-4, 0, 2, RitualComponent.AIR)); - meteorRitual.add(new RitualComponent(-4, 0, -2, RitualComponent.AIR)); - meteorRitual.add(new RitualComponent(2, 0, 4, RitualComponent.AIR)); - meteorRitual.add(new RitualComponent(-2, 0, 4, RitualComponent.AIR)); - meteorRitual.add(new RitualComponent(2, 0, -4, RitualComponent.AIR)); - meteorRitual.add(new RitualComponent(-2, 0, -4, RitualComponent.AIR)); - meteorRitual.add(new RitualComponent(5, 0, 3, RitualComponent.DUSK)); - meteorRitual.add(new RitualComponent(5, 0, -3, RitualComponent.DUSK)); - meteorRitual.add(new RitualComponent(-5, 0, 3, RitualComponent.DUSK)); - meteorRitual.add(new RitualComponent(-5, 0, -3, RitualComponent.DUSK)); - meteorRitual.add(new RitualComponent(3, 0, 5, RitualComponent.DUSK)); - meteorRitual.add(new RitualComponent(-3, 0, 5, RitualComponent.DUSK)); - meteorRitual.add(new RitualComponent(3, 0, -5, RitualComponent.DUSK)); - meteorRitual.add(new RitualComponent(-3, 0, -5, RitualComponent.DUSK)); - meteorRitual.add(new RitualComponent(-4, 0, -4, RitualComponent.DUSK)); - meteorRitual.add(new RitualComponent(-4, 0, 4, RitualComponent.DUSK)); - meteorRitual.add(new RitualComponent(4, 0, 4, RitualComponent.DUSK)); - meteorRitual.add(new RitualComponent(4, 0, -4, RitualComponent.DUSK)); - - for (int i = 4; i <= 6; i++) - { - meteorRitual.add(new RitualComponent(i, 0, 0, RitualComponent.EARTH)); - meteorRitual.add(new RitualComponent(-i, 0, 0, RitualComponent.EARTH)); - meteorRitual.add(new RitualComponent(0, 0, i, RitualComponent.EARTH)); - meteorRitual.add(new RitualComponent(0, 0, -i, RitualComponent.EARTH)); - } - - meteorRitual.add(new RitualComponent(8, 0, 0, RitualComponent.EARTH)); - meteorRitual.add(new RitualComponent(-8, 0, 0, RitualComponent.EARTH)); - meteorRitual.add(new RitualComponent(0, 0, 8, RitualComponent.EARTH)); - meteorRitual.add(new RitualComponent(0, 0, -8, RitualComponent.EARTH)); - meteorRitual.add(new RitualComponent(8, 1, 0, RitualComponent.EARTH)); - meteorRitual.add(new RitualComponent(-8, 1, 0, RitualComponent.EARTH)); - meteorRitual.add(new RitualComponent(0, 1, 8, RitualComponent.EARTH)); - meteorRitual.add(new RitualComponent(0, 1, -8, RitualComponent.EARTH)); - meteorRitual.add(new RitualComponent(7, 1, 0, RitualComponent.EARTH)); - meteorRitual.add(new RitualComponent(-7, 1, 0, RitualComponent.EARTH)); - meteorRitual.add(new RitualComponent(0, 1, 7, RitualComponent.EARTH)); - meteorRitual.add(new RitualComponent(0, 1, -7, RitualComponent.EARTH)); - meteorRitual.add(new RitualComponent(7, 2, 0, RitualComponent.FIRE)); - meteorRitual.add(new RitualComponent(-7, 2, 0, RitualComponent.FIRE)); - meteorRitual.add(new RitualComponent(0, 2, 7, RitualComponent.FIRE)); - meteorRitual.add(new RitualComponent(0, 2, -7, RitualComponent.FIRE)); - meteorRitual.add(new RitualComponent(6, 2, 0, RitualComponent.FIRE)); - meteorRitual.add(new RitualComponent(-6, 2, 0, RitualComponent.FIRE)); - meteorRitual.add(new RitualComponent(0, 2, 6, RitualComponent.FIRE)); - meteorRitual.add(new RitualComponent(0, 2, -6, RitualComponent.FIRE)); - meteorRitual.add(new RitualComponent(6, 3, 0, RitualComponent.WATER)); - meteorRitual.add(new RitualComponent(-6, 3, 0, RitualComponent.WATER)); - meteorRitual.add(new RitualComponent(0, 3, 6, RitualComponent.WATER)); - meteorRitual.add(new RitualComponent(0, 3, -6, RitualComponent.WATER)); - meteorRitual.add(new RitualComponent(5, 3, 0, RitualComponent.WATER)); - meteorRitual.add(new RitualComponent(-5, 3, 0, RitualComponent.WATER)); - meteorRitual.add(new RitualComponent(0, 3, 5, RitualComponent.WATER)); - meteorRitual.add(new RitualComponent(0, 3, -5, RitualComponent.WATER)); - meteorRitual.add(new RitualComponent(5, 4, 0, RitualComponent.AIR)); - meteorRitual.add(new RitualComponent(-5, 4, 0, RitualComponent.AIR)); - meteorRitual.add(new RitualComponent(0, 4, 5, RitualComponent.AIR)); - meteorRitual.add(new RitualComponent(0, 4, -5, RitualComponent.AIR)); - - for (int i = -1; i <= 1; i++) - { - meteorRitual.add(new RitualComponent(i, 4, 4, RitualComponent.AIR)); - meteorRitual.add(new RitualComponent(i, 4, -4, RitualComponent.AIR)); - meteorRitual.add(new RitualComponent(4, 4, i, RitualComponent.AIR)); - meteorRitual.add(new RitualComponent(-4, 4, i, RitualComponent.AIR)); - } - - meteorRitual.add(new RitualComponent(2, 4, 4, RitualComponent.WATER)); - meteorRitual.add(new RitualComponent(4, 4, 2, RitualComponent.WATER)); - meteorRitual.add(new RitualComponent(2, 4, -4, RitualComponent.WATER)); - meteorRitual.add(new RitualComponent(-4, 4, 2, RitualComponent.WATER)); - meteorRitual.add(new RitualComponent(-2, 4, 4, RitualComponent.WATER)); - meteorRitual.add(new RitualComponent(4, 4, -2, RitualComponent.WATER)); - meteorRitual.add(new RitualComponent(-2, 4, -4, RitualComponent.WATER)); - meteorRitual.add(new RitualComponent(-4, 4, -2, RitualComponent.WATER)); - meteorRitual.add(new RitualComponent(2, 4, 3, RitualComponent.FIRE)); - meteorRitual.add(new RitualComponent(3, 4, 2, RitualComponent.FIRE)); - meteorRitual.add(new RitualComponent(3, 4, 3, RitualComponent.FIRE)); - meteorRitual.add(new RitualComponent(-2, 4, 3, RitualComponent.FIRE)); - meteorRitual.add(new RitualComponent(3, 4, -2, RitualComponent.FIRE)); - meteorRitual.add(new RitualComponent(3, 4, -3, RitualComponent.FIRE)); - meteorRitual.add(new RitualComponent(2, 4, -3, RitualComponent.FIRE)); - meteorRitual.add(new RitualComponent(-3, 4, 2, RitualComponent.FIRE)); - meteorRitual.add(new RitualComponent(-3, 4, 3, RitualComponent.FIRE)); - meteorRitual.add(new RitualComponent(-2, 4, -3, RitualComponent.FIRE)); - meteorRitual.add(new RitualComponent(-3, 4, -2, RitualComponent.FIRE)); - meteorRitual.add(new RitualComponent(-3, 4, -3, RitualComponent.FIRE)); - return meteorRitual; - } -} diff --git a/1.7.2/main/java/WayofTime/alchemicalWizardry/common/rituals/RitualEffectSummonPlayer.java b/1.7.2/main/java/WayofTime/alchemicalWizardry/common/rituals/RitualEffectSummonPlayer.java deleted file mode 100644 index adb9d6d4..00000000 --- a/1.7.2/main/java/WayofTime/alchemicalWizardry/common/rituals/RitualEffectSummonPlayer.java +++ /dev/null @@ -1,111 +0,0 @@ -package WayofTime.alchemicalWizardry.common.rituals; - -import java.util.List; - -import net.minecraft.entity.item.EntityItem; -import net.minecraft.entity.player.EntityPlayer; -import net.minecraft.entity.player.EntityPlayerMP; -import net.minecraft.potion.Potion; -import net.minecraft.potion.PotionEffect; -import net.minecraft.server.MinecraftServer; -import net.minecraft.util.AxisAlignedBB; -import net.minecraft.world.World; -import WayofTime.alchemicalWizardry.api.items.interfaces.IBindable; -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.items.EnergyItems; - -public class RitualEffectSummonPlayer extends RitualEffect //Summons a player via the bound item -{ - @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(); - - if (ritualStone.getCooldown() > 0) - { - ritualStone.setCooldown(0); - } - - if (currentEssence < this.getCostPerRefresh()) - { - EntityPlayer entityOwner = MinecraftServer.getServer().getConfigurationManager().getPlayerForUsername(owner); - - if (entityOwner == null) - { - return; - } - - entityOwner.addPotionEffect(new PotionEffect(Potion.confusion.id, 80)); - } else - { - List entities = world.getEntitiesWithinAABB(EntityItem.class, AxisAlignedBB.getBoundingBox(x, y + 1, z, x + 1, y + 2, z + 1)); - - if (entities == null) - { - return; - } - - for (EntityItem entityItem : entities) - { - if (entityItem != null && entityItem.getEntityItem().getItem() instanceof IBindable) - { - String str = EnergyItems.getOwnerName(entityItem.getEntityItem()); - - EntityPlayer entityPlayer = MinecraftServer.getServer().getConfigurationManager().getPlayerForUsername(str); - if(entityPlayer!=null) - { - entityPlayer.posX = x; - entityPlayer.posY = y+1; - entityPlayer.posZ = z; - - if(entityPlayer instanceof EntityPlayerMP) - { - ((EntityPlayerMP)entityPlayer).mcServer.getConfigurationManager().transferPlayerToDimension(((EntityPlayerMP)entityPlayer), 0); - } - - entityItem.setDead(); - - data.currentEssence = currentEssence - this.getCostPerRefresh(); - data.markDirty(); - } - break; - } - } - -// EnergyBlastProjectile proj = new EnergyBlastProjectile(world, x, y+20, z); -// proj.motionX = 0.0d; -// proj.motionZ = 0.0d; -// proj.motionY = -1.0d; -// world.spawnEntityInWorld(proj); - } - } - - @Override - public int getCostPerRefresh() - { - return 0; - } - - @Override - public List getRitualComponentList() { - // TODO Auto-generated method stub - return null; - } -} diff --git a/1.7.2/main/java/WayofTime/alchemicalWizardry/common/rituals/RitualEffectSupression.java b/1.7.2/main/java/WayofTime/alchemicalWizardry/common/rituals/RitualEffectSupression.java deleted file mode 100644 index 07569f9f..00000000 --- a/1.7.2/main/java/WayofTime/alchemicalWizardry/common/rituals/RitualEffectSupression.java +++ /dev/null @@ -1,180 +0,0 @@ -package WayofTime.alchemicalWizardry.common.rituals; - -import java.util.ArrayList; -import java.util.List; - -import net.minecraft.block.Block; -import net.minecraft.entity.player.EntityPlayer; -import net.minecraft.init.Blocks; -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; -import WayofTime.alchemicalWizardry.common.tileEntity.TESpectralContainer; - -public class RitualEffectSupression 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(); - - Block blockish = world.getBlock(x, y-1, z); - int costMod = this.getCostModifier(blockish); - int radius = this.getRadiusForModifierBlock(blockish); - int masterRadius = radius; - - int yIndex = (int)(world.getWorldTime() % (2*radius + 1))-radius; - boolean expansion = false; - - if(ritualStone.getVar1()<(radius+1)) - { - expansion = true; - radius = ritualStone.getVar1(); - ritualStone.setVar1(ritualStone.getVar1() + 1); - } - - if (currentEssence < this.getCostPerRefresh()*costMod) - { - EntityPlayer entityOwner = MinecraftServer.getServer().getConfigurationManager().getPlayerForUsername(owner); - - if (entityOwner == null) - { - return; - } - - entityOwner.addPotionEffect(new PotionEffect(Potion.confusion.id, 80)); - } else - { - for (int i = -radius; i <= radius; i++) - { - for (int j = (expansion ? -radius : yIndex); j <= (expansion ? radius : yIndex); j++) - { - for(int k = -radius; k <= radius; k++) - { - if (i * i + j * j + k * k >= (radius + 0.50f) * (radius + 0.50f)) - { - continue; - } - - Block block = world.getBlock(x+i, y+j, z+k); - - - if(SpellHelper.isBlockFluid(block)) - { - TESpectralContainer.createSpectralBlockAtLocation(world, x+i, y+j, z+k, 3*masterRadius); - } - else - { - TileEntity tile = world.getTileEntity(x+i, y+j, z+k); - if(tile instanceof TESpectralContainer) - { - ((TESpectralContainer) tile).resetDuration(3*masterRadius); - } - } - } - } - } - - - data.currentEssence = currentEssence - this.getCostPerRefresh()*costMod; - data.markDirty(); - - } - } - - @Override - public int getCostPerRefresh() - { - return 2; - } - - @Override - public List getRitualComponentList() - { - ArrayList supressionRitual = new ArrayList(); - supressionRitual.add(new RitualComponent(2,0,2, RitualComponent.WATER)); - supressionRitual.add(new RitualComponent(2,0,-2, RitualComponent.WATER)); - supressionRitual.add(new RitualComponent(-2,0,2, RitualComponent.WATER)); - supressionRitual.add(new RitualComponent(-2,0,-2, RitualComponent.WATER)); - supressionRitual.add(new RitualComponent(-2,0,-1, RitualComponent.AIR)); - supressionRitual.add(new RitualComponent(-1,0,-2, RitualComponent.AIR)); - supressionRitual.add(new RitualComponent(-2,0,1, RitualComponent.AIR)); - supressionRitual.add(new RitualComponent(1,0,-2, RitualComponent.AIR)); - supressionRitual.add(new RitualComponent(2,0,1, RitualComponent.AIR)); - supressionRitual.add(new RitualComponent(1,0,2, RitualComponent.AIR)); - supressionRitual.add(new RitualComponent(2,0,-1, RitualComponent.AIR)); - supressionRitual.add(new RitualComponent(-1,0,2, RitualComponent.AIR)); - return supressionRitual; - } - - public int getRadiusForModifierBlock(Block block) - { - if(block == null) - { - return 10; - } - - if(block == Blocks.diamond_block) - { - return 30; - } - - if(block == Blocks.gold_block) - { - return 20; - } - - if(block == Blocks.iron_block) - { - return 15; - } - - return 10; - } - - public int getCostModifier(Block block) - { - if(block == null) - { - return 1; - } - - if(block == Blocks.diamond_block) - { - return 20; - } - - if(block == Blocks.gold_block) - { - return 10; - } - - if(block == Blocks.iron_block) - { - return 5; - } - - return 1; - } -} diff --git a/1.7.2/main/java/WayofTime/alchemicalWizardry/common/rituals/RitualEffectUnbinding.java b/1.7.2/main/java/WayofTime/alchemicalWizardry/common/rituals/RitualEffectUnbinding.java deleted file mode 100644 index a0980498..00000000 --- a/1.7.2/main/java/WayofTime/alchemicalWizardry/common/rituals/RitualEffectUnbinding.java +++ /dev/null @@ -1,206 +0,0 @@ -package WayofTime.alchemicalWizardry.common.rituals; - -import java.util.ArrayList; -import java.util.Iterator; -import java.util.List; - -import net.minecraft.entity.effect.EntityLightningBolt; -import net.minecraft.entity.item.EntityItem; -import net.minecraft.entity.player.EntityPlayer; -import net.minecraft.item.ItemStack; -import net.minecraft.nbt.NBTTagCompound; -import net.minecraft.potion.Potion; -import net.minecraft.potion.PotionEffect; -import net.minecraft.server.MinecraftServer; -import net.minecraft.util.AxisAlignedBB; -import net.minecraft.world.World; -import WayofTime.alchemicalWizardry.ModBlocks; -import WayofTime.alchemicalWizardry.ModItems; -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.items.BoundArmour; -import WayofTime.alchemicalWizardry.common.items.sigil.SigilOfHolding; -import WayofTime.alchemicalWizardry.common.spell.complex.effect.SpellHelper; - -public class RitualEffectUnbinding 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(); - - if (currentEssence < this.getCostPerRefresh()) - { - EntityPlayer entityOwner = MinecraftServer.getServer().getConfigurationManager().getPlayerForUsername(owner); - - if (entityOwner == null) - { - return; - } - - entityOwner.addPotionEffect(new PotionEffect(Potion.confusion.id, 80)); - } else - { - int d0 = 0; - AxisAlignedBB axisalignedbb = AxisAlignedBB.getAABBPool().getAABB((double) x, (double) y + 1, (double) z, (double) (x + 1), (double) (y + 2), (double) (z + 1)).expand(d0, d0, d0); - List list = world.getEntitiesWithinAABB(EntityItem.class, axisalignedbb); - Iterator iterator = list.iterator(); - EntityItem item; - - while (iterator.hasNext()) - { - item = (EntityItem) iterator.next(); -// double xDif = item.posX - (xCoord+0.5); -// double yDif = item.posY - (yCoord+1); -// double zDif = item.posZ - (zCoord+0.5); - ItemStack itemStack = item.getEntityItem(); - - if (itemStack == null) - { - continue; - } - - if (itemStack.getItem() == ModItems.boundHelmet) - { - ritualStone.setVar1(5); - } else if (itemStack.getItem() == ModItems.boundPlate) - { - ritualStone.setVar1(8); - } else if (itemStack.getItem() == ModItems.boundLeggings) - { - ritualStone.setVar1(7); - } else if (itemStack.getItem() == ModItems.boundBoots) - { - ritualStone.setVar1(4); - } else if (itemStack.getItem() == ModItems.sigilOfHolding) - { - ritualStone.setVar1(-1); - } - - if (ritualStone.getVar1() > 0) - { - item.setDead(); - world.addWeatherEffect(new EntityLightningBolt(world, x, y + 1, z - 5)); - world.addWeatherEffect(new EntityLightningBolt(world, x, y + 1, z + 5)); - world.addWeatherEffect(new EntityLightningBolt(world, x - 5, y + 1, z)); - world.addWeatherEffect(new EntityLightningBolt(world, x + 5, y + 1, z)); - NBTTagCompound itemTag = itemStack.stackTagCompound; - ItemStack[] inv = ((BoundArmour) itemStack.getItem()).getInternalInventory(itemStack); - - if (inv != null) - { - for (ItemStack internalItem : inv) - { - if (internalItem != null) - { - EntityItem newItem = new EntityItem(world, x + 0.5, y + 1, z + 0.5, internalItem.copy()); - world.spawnEntityInWorld(newItem); - } - } - } - - EntityItem newItem = new EntityItem(world, x + 0.5, y + 1, z + 0.5, new ItemStack(ModBlocks.bloodSocket, ritualStone.getVar1())); - world.spawnEntityInWorld(newItem); - ritualStone.setActive(false); - break; - } else if (ritualStone.getVar1() == -1) - { - item.setDead(); - world.addWeatherEffect(new EntityLightningBolt(world, x, y + 1, z - 5)); - world.addWeatherEffect(new EntityLightningBolt(world, x, y + 1, z + 5)); - world.addWeatherEffect(new EntityLightningBolt(world, x - 5, y + 1, z)); - world.addWeatherEffect(new EntityLightningBolt(world, x + 5, y + 1, z)); - NBTTagCompound itemTag = itemStack.stackTagCompound; - ItemStack[] inv = ((SigilOfHolding) itemStack.getItem()).getInternalInventory(itemStack); - - if (inv != null) - { - for (ItemStack internalItem : inv) - { - if (internalItem != null) - { - EntityItem newItem = new EntityItem(world, x + 0.5, y + 1, z + 0.5, internalItem.copy()); - world.spawnEntityInWorld(newItem); - } - } - } - - EntityItem newItem = new EntityItem(world, x + 0.5, y + 1, z + 0.5, new ItemStack(ModItems.sigilOfHolding, 1, 0)); - world.spawnEntityInWorld(newItem); - ritualStone.setActive(false); - break; - } - - if (world.rand.nextInt(10) == 0) - { - SpellHelper.sendIndexedParticleToAllAround(world, x, y, z, 20, world.provider.dimensionId, 1, x, y, z); - } - } - - data.currentEssence = currentEssence - this.getCostPerRefresh(); - data.markDirty(); - } - } - - @Override - public int getCostPerRefresh() - { - // TODO Auto-generated method stub - return 0; - } - - @Override - public List getRitualComponentList() - { - ArrayList unbindingRitual = new ArrayList(); - unbindingRitual.add(new RitualComponent(-2, 0, 0, 4)); - unbindingRitual.add(new RitualComponent(2, 0, 0, 4)); - unbindingRitual.add(new RitualComponent(0, 0, 2, 4)); - unbindingRitual.add(new RitualComponent(0, 0, -2, 4)); - unbindingRitual.add(new RitualComponent(-2, 0, -2, 3)); - unbindingRitual.add(new RitualComponent(-2, 0, -3, 3)); - unbindingRitual.add(new RitualComponent(-3, 0, -2, 3)); - unbindingRitual.add(new RitualComponent(2, 0, -2, 3)); - unbindingRitual.add(new RitualComponent(2, 0, -3, 3)); - unbindingRitual.add(new RitualComponent(3, 0, -2, 3)); - unbindingRitual.add(new RitualComponent(-2, 0, 2, 3)); - unbindingRitual.add(new RitualComponent(-2, 0, 3, 3)); - unbindingRitual.add(new RitualComponent(-3, 0, 2, 3)); - unbindingRitual.add(new RitualComponent(2, 0, 2, 3)); - unbindingRitual.add(new RitualComponent(2, 0, 3, 3)); - unbindingRitual.add(new RitualComponent(3, 0, 2, 3)); - unbindingRitual.add(new RitualComponent(3, 1, 3, 0)); - unbindingRitual.add(new RitualComponent(3, 1, -3, 0)); - unbindingRitual.add(new RitualComponent(-3, 1, -3, 0)); - unbindingRitual.add(new RitualComponent(-3, 1, 3, 0)); - unbindingRitual.add(new RitualComponent(3, 2, 3, 0)); - unbindingRitual.add(new RitualComponent(3, 2, -3, 0)); - unbindingRitual.add(new RitualComponent(-3, 2, -3, 0)); - unbindingRitual.add(new RitualComponent(-3, 2, 3, 0)); - unbindingRitual.add(new RitualComponent(3, 3, 3, 2)); - unbindingRitual.add(new RitualComponent(3, 3, -3, 2)); - unbindingRitual.add(new RitualComponent(-3, 3, -3, 2)); - unbindingRitual.add(new RitualComponent(-3, 3, 3, 2)); - unbindingRitual.add(new RitualComponent(-5, 0, 0, 2)); - unbindingRitual.add(new RitualComponent(5, 0, 0, 2)); - unbindingRitual.add(new RitualComponent(0, 0, 5, 2)); - unbindingRitual.add(new RitualComponent(0, 0, -5, 2)); - return unbindingRitual; - } -} diff --git a/1.7.2/main/java/WayofTime/alchemicalWizardry/common/rituals/RitualEffectWater.java b/1.7.2/main/java/WayofTime/alchemicalWizardry/common/rituals/RitualEffectWater.java deleted file mode 100644 index 27ec25d4..00000000 --- a/1.7.2/main/java/WayofTime/alchemicalWizardry/common/rituals/RitualEffectWater.java +++ /dev/null @@ -1,83 +0,0 @@ -package WayofTime.alchemicalWizardry.common.rituals; - -import java.util.ArrayList; -import java.util.List; - -import net.minecraft.block.Block; -import net.minecraft.entity.player.EntityPlayer; -import net.minecraft.init.Blocks; -import net.minecraft.potion.Potion; -import net.minecraft.potion.PotionEffect; -import net.minecraft.server.MinecraftServer; -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.block.BlockSpectralContainer; -import WayofTime.alchemicalWizardry.common.spell.complex.effect.SpellHelper; - -public class RitualEffectWater extends RitualEffect -{ - 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(); - - Block block = world.getBlock(x, y + 1, z); - - if (world.isAirBlock(x, y + 1, z) && !(block instanceof BlockSpectralContainer)) - { - if (currentEssence < this.getCostPerRefresh()) - { - EntityPlayer entityOwner = MinecraftServer.getServer().getConfigurationManager().getPlayerForUsername(owner); - - if (entityOwner == null) - { - return; - } - - entityOwner.addPotionEffect(new PotionEffect(Potion.confusion.id, 80)); - } else - { - for (int i = 0; i < 10; i++) - { - SpellHelper.sendIndexedParticleToAllAround(world, x, y, z, 20, world.provider.dimensionId, 3, x, y, z); - } - - world.setBlock(x, y + 1, z, Blocks.water, 0, 3); - data.currentEssence = currentEssence - this.getCostPerRefresh(); - data.markDirty(); - } - } - } - - public int getCostPerRefresh() - { - return 25; - } - - @Override - public List getRitualComponentList() - { - ArrayList waterRitual = new ArrayList(); - waterRitual.add(new RitualComponent(-1, 0, 1, 1)); - waterRitual.add(new RitualComponent(-1, 0, -1, 1)); - waterRitual.add(new RitualComponent(1, 0, -1, 1)); - waterRitual.add(new RitualComponent(1, 0, 1, 1)); - return waterRitual; - } -} diff --git a/1.7.2/main/java/WayofTime/alchemicalWizardry/common/rituals/RitualEffectWellOfSuffering.java b/1.7.2/main/java/WayofTime/alchemicalWizardry/common/rituals/RitualEffectWellOfSuffering.java deleted file mode 100644 index ccc9d394..00000000 --- a/1.7.2/main/java/WayofTime/alchemicalWizardry/common/rituals/RitualEffectWellOfSuffering.java +++ /dev/null @@ -1,181 +0,0 @@ -package WayofTime.alchemicalWizardry.common.rituals; - -import java.util.ArrayList; -import java.util.Iterator; -import java.util.List; - -import net.minecraft.entity.EntityLivingBase; -import net.minecraft.entity.player.EntityPlayer; -import net.minecraft.potion.Potion; -import net.minecraft.potion.PotionEffect; -import net.minecraft.server.MinecraftServer; -import net.minecraft.util.AxisAlignedBB; -import net.minecraft.util.DamageSource; -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.tileEntity.TEAltar; - -public class RitualEffectWellOfSuffering extends RitualEffect -{ - public final int timeDelay = 25; - public final int amount = 10; - - @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(); - - if (world.getWorldTime() % this.timeDelay != 0) - { - return; - } - -// if(!(world.getBlockTileEntity(x, y-1, z) instanceof TEAltar)) -// { -// return; -// } - TEAltar tileAltar = null; - boolean testFlag = false; - - for (int i = -5; i <= 5; i++) - { - for (int j = -5; j <= 5; j++) - { - for (int k = -10; k <= 10; k++) - { - if (world.getTileEntity(x + i, y + k, z + j) instanceof TEAltar) - { - tileAltar = (TEAltar) world.getTileEntity(x + i, y + k, z + j); - testFlag = true; - } - } - } - } - - if (!testFlag) - { - return; - } - - //tileAltar = (TEAltar)world.getBlockTileEntity(x,y-1,z); - int d0 = 10; - int vertRange = 5; - AxisAlignedBB axisalignedbb = AxisAlignedBB.getAABBPool().getAABB((double) x, (double) y, (double) z, (double) (x + 1), (double) (y + 1), (double) (z + 1)).expand(d0, vertRange, d0); - List list = world.getEntitiesWithinAABB(EntityLivingBase.class, axisalignedbb); - Iterator iterator1 = list.iterator(); - EntityLivingBase entity; - int entityCount = 0; - boolean flag = false; - - while (iterator1.hasNext()) - { - entity = (EntityLivingBase) iterator1.next(); - entityCount++; - } - - if (currentEssence < this.getCostPerRefresh() * entityCount) - { - EntityPlayer entityOwner = MinecraftServer.getServer().getConfigurationManager().getPlayerForUsername(owner); - - if (entityOwner == null) - { - return; - } - - entityOwner.addPotionEffect(new PotionEffect(Potion.confusion.id, 80)); - } else - { - Iterator iterator2 = list.iterator(); - entityCount = 0; - - while (iterator2.hasNext()) - { - entity = (EntityLivingBase) iterator2.next(); - - if (entity instanceof EntityPlayer) - { - continue; - } - - //entity.setHealth(entity.getHealth()-1); - entity.attackEntityFrom(DamageSource.outOfWorld, 1); - entityCount++; -// if(entity.getHealth()<=0.2f) -// { -// entity.onDeath(DamageSource.inFire); -// } - tileAltar.sacrificialDaggerCall(this.amount, true); - } - - data.currentEssence = currentEssence - this.getCostPerRefresh() * entityCount; - data.markDirty(); - } - } - - @Override - public int getCostPerRefresh() - { - // TODO Auto-generated method stub - return 2; - } - - @Override - public List getRitualComponentList() - { - ArrayList wellOfSufferingRitual = new ArrayList(); - wellOfSufferingRitual.add(new RitualComponent(1, 0, 1, RitualComponent.FIRE)); - wellOfSufferingRitual.add(new RitualComponent(-1, 0, 1, RitualComponent.FIRE)); - wellOfSufferingRitual.add(new RitualComponent(1, 0, -1, RitualComponent.FIRE)); - wellOfSufferingRitual.add(new RitualComponent(-1, 0, -1, RitualComponent.FIRE)); - wellOfSufferingRitual.add(new RitualComponent(2, -1, 2, RitualComponent.FIRE)); - wellOfSufferingRitual.add(new RitualComponent(2, -1, -2, RitualComponent.FIRE)); - wellOfSufferingRitual.add(new RitualComponent(-2, -1, 2, RitualComponent.FIRE)); - wellOfSufferingRitual.add(new RitualComponent(-2, -1, -2, RitualComponent.FIRE)); - wellOfSufferingRitual.add(new RitualComponent(0, -1, 2, RitualComponent.EARTH)); - wellOfSufferingRitual.add(new RitualComponent(2, -1, 0, RitualComponent.EARTH)); - wellOfSufferingRitual.add(new RitualComponent(0, -1, -2, RitualComponent.EARTH)); - wellOfSufferingRitual.add(new RitualComponent(-2, -1, 0, RitualComponent.EARTH)); - wellOfSufferingRitual.add(new RitualComponent(-3, -1, -3, RitualComponent.DUSK)); - wellOfSufferingRitual.add(new RitualComponent(3, -1, -3, RitualComponent.DUSK)); - wellOfSufferingRitual.add(new RitualComponent(-3, -1, 3, RitualComponent.DUSK)); - wellOfSufferingRitual.add(new RitualComponent(3, -1, 3, RitualComponent.DUSK)); - wellOfSufferingRitual.add(new RitualComponent(2, -1, 4, RitualComponent.WATER)); - wellOfSufferingRitual.add(new RitualComponent(4, -1, 2, RitualComponent.WATER)); - wellOfSufferingRitual.add(new RitualComponent(-2, -1, 4, RitualComponent.WATER)); - wellOfSufferingRitual.add(new RitualComponent(4, -1, -2, RitualComponent.WATER)); - wellOfSufferingRitual.add(new RitualComponent(2, -1, -4, RitualComponent.WATER)); - wellOfSufferingRitual.add(new RitualComponent(-4, -1, 2, RitualComponent.WATER)); - wellOfSufferingRitual.add(new RitualComponent(-2, -1, -4, RitualComponent.WATER)); - wellOfSufferingRitual.add(new RitualComponent(-4, -1, -2, RitualComponent.WATER)); - wellOfSufferingRitual.add(new RitualComponent(1, 0, 4, RitualComponent.WATER)); - wellOfSufferingRitual.add(new RitualComponent(4, 0, 1, RitualComponent.WATER)); - wellOfSufferingRitual.add(new RitualComponent(1, 0, -4, RitualComponent.WATER)); - wellOfSufferingRitual.add(new RitualComponent(-4, 0, 1, RitualComponent.WATER)); - wellOfSufferingRitual.add(new RitualComponent(-1, 0, 4, RitualComponent.WATER)); - wellOfSufferingRitual.add(new RitualComponent(4, 0, -1, RitualComponent.WATER)); - wellOfSufferingRitual.add(new RitualComponent(-1, 0, -4, RitualComponent.WATER)); - wellOfSufferingRitual.add(new RitualComponent(-4, 0, -1, RitualComponent.WATER)); - wellOfSufferingRitual.add(new RitualComponent(4, 1, 0, RitualComponent.AIR)); - wellOfSufferingRitual.add(new RitualComponent(0, 1, 4, RitualComponent.AIR)); - wellOfSufferingRitual.add(new RitualComponent(-4, 1, 0, RitualComponent.AIR)); - wellOfSufferingRitual.add(new RitualComponent(0, 1, -4, RitualComponent.AIR)); - return wellOfSufferingRitual; - } -} diff --git a/1.7.2/main/java/WayofTime/alchemicalWizardry/common/spell/complex/EntitySpellProjectile.java b/1.7.2/main/java/WayofTime/alchemicalWizardry/common/spell/complex/EntitySpellProjectile.java deleted file mode 100644 index 9fc06bda..00000000 --- a/1.7.2/main/java/WayofTime/alchemicalWizardry/common/spell/complex/EntitySpellProjectile.java +++ /dev/null @@ -1,624 +0,0 @@ -package WayofTime.alchemicalWizardry.common.spell.complex; - -import java.util.ArrayList; -import java.util.Iterator; -import java.util.LinkedList; -import java.util.List; - -import net.minecraft.block.Block; -import net.minecraft.entity.Entity; -import net.minecraft.entity.IProjectile; -import net.minecraft.entity.player.EntityPlayer; -import net.minecraft.nbt.NBTTagCompound; -import net.minecraft.nbt.NBTTagList; -import net.minecraft.util.AxisAlignedBB; -import net.minecraft.util.DamageSource; -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.Constants; -import WayofTime.alchemicalWizardry.common.spell.complex.effect.SpellEffect; -import WayofTime.alchemicalWizardry.common.spell.complex.effect.impactEffects.IProjectileImpactEffect; -import WayofTime.alchemicalWizardry.common.spell.complex.effect.impactEffects.IProjectileUpdateEffect; -import cpw.mods.fml.relauncher.Side; -import cpw.mods.fml.relauncher.SideOnly; - -public class EntitySpellProjectile extends Entity implements IProjectile -{ - private int xTile = -1; - private int yTile = -1; - private int zTile = -1; - private int inTile = 0; - private int inData = 0; - private boolean inGround = false; - /** The owner of this arrow. */ - public EntityPlayer shootingEntity; - private int ticksInAir = 0; - private int ricochetCounter = 0; - private boolean scheduledForDeath = false; - private boolean isSilkTouch = false; - - //Custom variables - private int maxRicochet = 0; - private float damage = 1; - public List impactList = new ArrayList(); - private boolean penetration = false; - public List updateEffectList = new ArrayList(); - public List spellEffectList = new LinkedList(); - private int blocksBroken = 0; - - public EntitySpellProjectile(World par1World) - { - super(par1World); - this.setSize(0.5F, 0.5F); - } - - public EntitySpellProjectile(World par1World, double par2, double par4, double par6) - { - super(par1World); - this.setSize(0.5F, 0.5F); - this.setPosition(par2, par4, par6); - yOffset = 0.0F; - } - - public EntitySpellProjectile(World par1World, EntityPlayer par2EntityPlayer) - { - super(par1World); - shootingEntity = par2EntityPlayer; - float par3 = 0.8F; - this.setSize(0.1F, 0.1F); - this.setLocationAndAngles(par2EntityPlayer.posX, par2EntityPlayer.posY + par2EntityPlayer.getEyeHeight(), par2EntityPlayer.posZ, par2EntityPlayer.rotationYaw, par2EntityPlayer.rotationPitch); - posX -= MathHelper.cos(rotationYaw / 180.0F * (float)Math.PI) * 0.16F; - posY -= 0.2D; - posZ -= MathHelper.sin(rotationYaw / 180.0F * (float)Math.PI) * 0.16F; - this.setPosition(posX, posY, posZ); - yOffset = 0.0F; - motionX = -MathHelper.sin(rotationYaw / 180.0F * (float)Math.PI) * MathHelper.cos(rotationPitch / 180.0F * (float)Math.PI); - motionZ = MathHelper.cos(rotationYaw / 180.0F * (float)Math.PI) * MathHelper.cos(rotationPitch / 180.0F * (float)Math.PI); - motionY = -MathHelper.sin(rotationPitch / 180.0F * (float)Math.PI); - this.setThrowableHeading(motionX, motionY, motionZ, par3 * 1.5F, 1.0F); - - } - - @Override - protected void entityInit() { - dataWatcher.addObject(16, Byte.valueOf((byte)0)); - } - - /** - * Similar to setArrowHeading, it's point the throwable entity to a x, y, z - * direction. - */ - @Override - public void setThrowableHeading(double var1, double var3, double var5, float var7, float var8) { - float var9 = MathHelper.sqrt_double(var1 * var1 + var3 * var3 + var5 * var5); - var1 /= var9; - var3 /= var9; - var5 /= var9; - var1 += rand.nextGaussian() * 0.007499999832361937D * var8; - var3 += rand.nextGaussian() * 0.007499999832361937D * var8; - var5 += rand.nextGaussian() * 0.007499999832361937D * var8; - var1 *= var7; - var3 *= var7; - var5 *= var7; - motionX = var1; - motionY = var3; - motionZ = var5; - float var10 = MathHelper.sqrt_double(var1 * var1 + var5 * var5); - prevRotationYaw = rotationYaw = (float)(Math.atan2(var1, var5) * 180.0D / Math.PI); - prevRotationPitch = rotationPitch = (float)(Math.atan2(var3, var10) * 180.0D / Math.PI); - } - - @Override - @SideOnly(Side.CLIENT) - /** - * Sets the position and rotation. Only difference from the other one is no bounding on the rotation. Args: posX, - * posY, posZ, yaw, pitch - */ - public void setPositionAndRotation2(double par1, double par3, double par5, float par7, float par8, int par9) { - this.setPosition(par1, par3, par5); - this.setRotation(par7, par8); - } - - @Override - @SideOnly(Side.CLIENT) - /** - * Sets the velocity to the args. Args: x, y, z - */ - public void setVelocity(double par1, double par3, double par5) { - motionX = par1; - motionY = par3; - motionZ = par5; - if (prevRotationPitch == 0.0F && prevRotationYaw == 0.0F) { - float var7 = MathHelper.sqrt_double(par1 * par1 + par5 * par5); - prevRotationYaw = rotationYaw = (float)(Math.atan2(par1, par5) * 180.0D / Math.PI); - prevRotationPitch = rotationPitch = (float)(Math.atan2(par3, var7) * 180.0D / Math.PI); - prevRotationPitch = rotationPitch; - prevRotationYaw = rotationYaw; - this.setLocationAndAngles(posX, posY, posZ, rotationYaw, rotationPitch); - } - } - - /** - * Called to update the entity's position/logic. - */ - @Override - public void onUpdate() - { - super.onUpdate(); - this.performUpdateEffects(); - if (ticksInAir > 600) { - this.setDead(); - } - if (shootingEntity == null) { - List players = worldObj.getEntitiesWithinAABB(EntityPlayer.class, AxisAlignedBB.getBoundingBox(posX - 1, posY - 1, posZ - 1, posX + 1, posY + 1, posZ + 1)); - Iterator i = players.iterator(); - double closestDistance = Double.MAX_VALUE; - EntityPlayer closestPlayer = null; - while (i.hasNext()) { - EntityPlayer e = (EntityPlayer)i.next(); - double distance = e.getDistanceToEntity(this); - if (distance < closestDistance) { - closestPlayer = e; - } - } - if (closestPlayer != null) { - shootingEntity = closestPlayer; - } - } - if (prevRotationPitch == 0.0F && prevRotationYaw == 0.0F) { - float var1 = MathHelper.sqrt_double(motionX * motionX + motionZ * motionZ); - prevRotationYaw = rotationYaw = (float)(Math.atan2(motionX, motionZ) * 180.0D / Math.PI); - prevRotationPitch = rotationPitch = (float)(Math.atan2(motionY, var1) * 180.0D / Math.PI); - } - Block var16 = worldObj.getBlock(xTile, yTile, zTile); - - if (var16 != null) - { - var16.setBlockBoundsBasedOnState(worldObj, xTile, yTile, zTile); - AxisAlignedBB var2 = var16.getCollisionBoundingBoxFromPool(worldObj, xTile, yTile, zTile); - - if (var2 != null && var2.isVecInside(worldObj.getWorldVec3Pool().getVecFromPool(posX, posY, posZ))) - { - inGround = true; - } - } - - if (inGround) - { - Block var18 = worldObj.getBlock(xTile, yTile, zTile); - int var19 = worldObj.getBlockMetadata(xTile, yTile, zTile); - - if (var18.equals(Block.getBlockById(inTile)) && var19 == inData) - { - // this.groundImpact(); - // this.setDead(); - } - } else - { - ++ticksInAir; - - if (ticksInAir > 1 && ticksInAir < 3) - { - //worldObj.spawnParticle("flame", posX + smallGauss(0.1D), posY + smallGauss(0.1D), posZ + smallGauss(0.1D), 0D, 0D, 0D); - for (int particles = 0; particles < 3; particles++) - { - this.doFiringParticles(); - } - } - - Vec3 var17 = worldObj.getWorldVec3Pool().getVecFromPool(posX, posY, posZ); - Vec3 var3 = worldObj.getWorldVec3Pool().getVecFromPool(posX + motionX, posY + motionY, posZ + motionZ); - MovingObjectPosition var4 = worldObj.func_147447_a(var17, var3, true, false, false); - var17 = worldObj.getWorldVec3Pool().getVecFromPool(posX, posY, posZ); - var3 = worldObj.getWorldVec3Pool().getVecFromPool(posX + motionX, posY + motionY, posZ + motionZ); - - if (var4 != null) - { - var3 = worldObj.getWorldVec3Pool().getVecFromPool(var4.hitVec.xCoord, var4.hitVec.yCoord, var4.hitVec.zCoord); - } - - Entity var5 = null; - List var6 = worldObj.getEntitiesWithinAABBExcludingEntity(this, boundingBox.addCoord(motionX, motionY, motionZ).expand(1.0D, 1.0D, 1.0D)); - double var7 = 0.0D; - Iterator var9 = var6.iterator(); - float var11; - - while (var9.hasNext()) - { - Entity var10 = (Entity) var9.next(); - - if (var10.canBeCollidedWith() && (var10 != shootingEntity || ticksInAir >= 5)) - { - var11 = 0.3F; - AxisAlignedBB var12 = var10.boundingBox.expand(var11, var11, var11); - MovingObjectPosition var13 = var12.calculateIntercept(var17, var3); - - if (var13 != null) - { - double var14 = var17.distanceTo(var13.hitVec); - - if (var14 < var7 || var7 == 0.0D) - { - var5 = var10; - var7 = var14; - } - } - } - } - - if (var5 != null) - { - var4 = new MovingObjectPosition(var5); - } - - if (var4 != null) - { - this.onImpact(var4); - - if (scheduledForDeath) - { - this.setDead(); - } - } - - posX += motionX; - posY += motionY; - posZ += motionZ; - MathHelper.sqrt_double(motionX * motionX + motionZ * motionZ); - this.setPosition(posX, posY, posZ); - //this.doBlockCollisions(); - } - } - - private void doFlightParticles() { - if (ticksInAir % 3 == 0) { - double gauss = gaussian(1.0F); - worldObj.spawnParticle("mobSpell", posX, posY, posZ, gauss, gauss, 0.0F); - } - } - - private void doFiringParticles() { - worldObj.spawnParticle("mobSpellAmbient", posX + smallGauss(0.1D), posY + smallGauss(0.1D), posZ + smallGauss(0.1D), 0.5D, 0.5D, 0.5D); - worldObj.spawnParticle("flame", posX, posY, posZ, gaussian(motionX), gaussian(motionY), gaussian(motionZ)); - } - - /** - * (abstract) Protected helper method to write subclass entity data to NBT. - */ - @Override - public void writeEntityToNBT(NBTTagCompound par1NBTTagCompound) - { - par1NBTTagCompound.setShort("xTile", (short)xTile); - par1NBTTagCompound.setShort("yTile", (short)yTile); - par1NBTTagCompound.setShort("zTile", (short)zTile); - par1NBTTagCompound.setByte("inTile", (byte)inTile); - par1NBTTagCompound.setByte("inData", (byte)inData); - par1NBTTagCompound.setByte("inGround", (byte)(inGround ? 1 : 0)); - - NBTTagList effectList = new NBTTagList(); - - for(SpellEffect eff : spellEffectList) - { - effectList.appendTag(eff.getTag()); - } - -// for (String str : this.effectList) -// { -// if (str != null) -// { -// NBTTagCompound tag = new NBTTagCompound(); -// -// tag.setString("Class", str); -// effectList.appendTag(tag); -// } -// } - - par1NBTTagCompound.setTag("Effects", effectList); - par1NBTTagCompound.setInteger("blocksBroken", blocksBroken); - par1NBTTagCompound.setBoolean("isSilkTouch", isSilkTouch); - } - - /** - * (abstract) Protected helper method to read subclass entity data from NBT. - */ - @Override - public void readEntityFromNBT(NBTTagCompound par1NBTTagCompound) - { - xTile = par1NBTTagCompound.getShort("xTile"); - yTile = par1NBTTagCompound.getShort("yTile"); - zTile = par1NBTTagCompound.getShort("zTile"); - inTile = par1NBTTagCompound.getByte("inTile") & 255; - inData = par1NBTTagCompound.getByte("inData") & 255; - inGround = par1NBTTagCompound.getByte("inGround") == 1; - blocksBroken = par1NBTTagCompound.getInteger("blocksBroken"); - isSilkTouch = par1NBTTagCompound.getBoolean("isSilkTouch"); - - NBTTagList tagList = par1NBTTagCompound.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); - } - } - this.spellEffectList = spellEffectList; - - -// this.effectList = new LinkedList(); -// for (int i = 0; i < tagList.tagCount(); i++) -// { -// NBTTagCompound tag = (NBTTagCompound) tagList.tagAt(i); -// -// this.effectList.add(tag.getString("Class")); -// } - - //SpellParadigmProjectile parad = SpellParadigmProjectile.getParadigmForStringArray(effectList); - SpellParadigmProjectile parad = SpellParadigmProjectile.getParadigmForEffectArray(spellEffectList); - parad.applyAllSpellEffects(); - parad.prepareProjectile(this); - } - - /** - * returns if this entity triggers Block.onEntityWalking on the blocks they - * walk on. used for spiders and wolves to prevent them from trampling crops - */ - @Override - protected boolean canTriggerWalking() { - return false; - } - - @Override - @SideOnly(Side.CLIENT) - public float getShadowSize() { - return 0.0F; - } - - /** - * Sets the amount of knockback the arrow applies when it hits a mob. - */ - public void setKnockbackStrength(int par1) { - } - - /** - * If returns false, the item will not inflict any damage against entities. - */ - @Override - public boolean canAttackWithItem() { - return false; - } - - /** - * Whether the arrow has a stream of critical hit particles flying behind - * it. - */ - public void setIsCritical(boolean par1) { - byte var2 = dataWatcher.getWatchableObjectByte(16); - if (par1) { - dataWatcher.updateObject(16, Byte.valueOf((byte)(var2 | 1))); - } else { - dataWatcher.updateObject(16, Byte.valueOf((byte)(var2 & -2))); - } - } - - /** - * Whether the arrow has a stream of critical hit particles flying behind - * it. - */ - public boolean getIsCritical() { - byte var1 = dataWatcher.getWatchableObjectByte(16); - return (var1 & 1) != 0; - } - - private void onImpact(MovingObjectPosition mop) - { - if (mop.typeOfHit == MovingObjectPosition.MovingObjectType.ENTITY && mop.entityHit != null) - { - if (mop.entityHit == shootingEntity) return; - this.onImpact(mop.entityHit); - this.performEntityImpactEffects(mop.entityHit); - } - else if (mop.typeOfHit == MovingObjectPosition.MovingObjectType.BLOCK) - { - if(!this.penetration) - { - this.groundImpact(mop.sideHit); - this.performTileImpactEffects(mop); - } - } - } - - private void onImpact(Entity mop) //TODO - { - if (mop == shootingEntity && ticksInAir > 3) - { - shootingEntity.attackEntityFrom(DamageSource.causePlayerDamage(shootingEntity), 1); - this.setDead(); - } - else - { - doDamage(this.damage, mop); - } - spawnHitParticles("exorcism", 8); - this.setDead(); - } - - - private void spawnHitParticles(String string, int i) { - for (int particles = 0; particles < i; particles++) { - worldObj.spawnParticle("mobSpellAmbient", posX + smallGauss(0.1D), posY + smallGauss(0.1D), posZ + smallGauss(0.1D), posGauss(1.0F), posGauss(1.0F), 0.0F); - } - } - - private void doDamage(float f, Entity mop) - { - mop.attackEntityFrom(this.getDamageSource(), f); - } - - private DamageSource getDamageSource() - { - return DamageSource.causePlayerDamage(shootingEntity); - } - - private void groundImpact(int sideHit) { - this.ricochet(sideHit); - } - - private double smallGauss(double d) { - return (worldObj.rand.nextFloat() - 0.5D) * d; - } - - private double posGauss(double d) { - return rand.nextFloat() * 0.5D * d; - } - - private double gaussian(double d) { - return d + d * ((rand.nextFloat() - 0.5D) / 4); - } - - private void ricochet(int sideHit) { - switch (sideHit) { - case 0: - case 1: - // topHit, bottomHit, reflect Y - motionY = motionY * -1; - break; - case 2: - case 3: - // westHit, eastHit, reflect Z - motionZ = motionZ * -1; - break; - case 4: - case 5: - // southHit, northHit, reflect X - motionX = motionX * -1; - break; - } - ricochetCounter++; - if (ricochetCounter > this.getRicochetMax()) { - scheduledForDeath = true; - for (int particles = 0; particles < 4; particles++) { - switch (sideHit) { - case 0: - worldObj.spawnParticle("smoke", posX, posY, posZ, gaussian(0.1D), -gaussian(0.1D), gaussian(0.1D)); - break; - case 1: - worldObj.spawnParticle("smoke", posX, posY, posZ, gaussian(0.1D), gaussian(0.1D), gaussian(0.1D)); - break; - case 2: - worldObj.spawnParticle("smoke", posX, posY, posZ, gaussian(0.1D), gaussian(0.1D), -gaussian(0.1D)); - break; - case 3: - worldObj.spawnParticle("smoke", posX, posY, posZ, gaussian(0.1D), gaussian(0.1D), gaussian(0.1D)); - break; - case 4: - worldObj.spawnParticle("smoke", posX, posY, posZ, -gaussian(0.1D), gaussian(0.1D), gaussian(0.1D)); - break; - case 5: - worldObj.spawnParticle("smoke", posX, posY, posZ, gaussian(0.1D), gaussian(0.1D), gaussian(0.1D)); - break; - } - } - } - } - - //Custom stuff - public int getRicochetMax() - { - return this.maxRicochet; - } - - public void setRicochetMax(int ricochet) - { - this.maxRicochet = ricochet; - } - - public void setImpactList(List list) - { - this.impactList = list; - } - - public void setUpdateEffectList(List list) - { - this.updateEffectList = list; - } - - private void performEntityImpactEffects(Entity mop) - { - if(impactList!=null) - { - for(IProjectileImpactEffect impactEffect : impactList) - { - impactEffect.onEntityImpact(mop, this); - } - } - } - - private void performTileImpactEffects(MovingObjectPosition mop) - { - if(impactList!=null) - { - for(IProjectileImpactEffect impactEffect : impactList) - { - impactEffect.onTileImpact(worldObj, mop); - } - } - } - - private void performUpdateEffects() - { - if(updateEffectList!=null) - { - for(IProjectileUpdateEffect updateEffect : updateEffectList) - { - updateEffect.onUpdateEffect(this); - } - } - } - - public void setPenetration(boolean penetration) - { - this.penetration = penetration; - } - - public float getDamage() - { - return this.damage; - } - - public void setDamage(float damage) - { - this.damage = damage; - } - - public void setSpellEffectList(List list) - { - this.spellEffectList = list; - } - - public int getBlocksBroken() - { - return this.blocksBroken; - } - - public void setBlocksBroken(int blocksBroken) - { - this.blocksBroken = blocksBroken; - } - - public boolean getIsSilkTouch() - { - return this.isSilkTouch; - } - - public void setIsSilkTouch(boolean bool) - { - this.isSilkTouch = bool; - } -} diff --git a/1.7.2/main/java/WayofTime/alchemicalWizardry/common/spell/complex/SpellModifier.java b/1.7.2/main/java/WayofTime/alchemicalWizardry/common/spell/complex/SpellModifier.java deleted file mode 100644 index 39297530..00000000 --- a/1.7.2/main/java/WayofTime/alchemicalWizardry/common/spell/complex/SpellModifier.java +++ /dev/null @@ -1,21 +0,0 @@ -package WayofTime.alchemicalWizardry.common.spell.complex; - -public class SpellModifier -{ - public static final int DEFAULT = 0; - public static final int OFFENSIVE = 1; - public static final int DEFENSIVE = 2; - public static final int ENVIRONMENTAL = 3; - - private int modifier; - - protected SpellModifier(int modifier) - { - this.modifier = modifier; - } - - public int getModifier() - { - return this.modifier; - } -} diff --git a/1.7.2/main/java/WayofTime/alchemicalWizardry/common/spell/complex/SpellModifierDefault.java b/1.7.2/main/java/WayofTime/alchemicalWizardry/common/spell/complex/SpellModifierDefault.java deleted file mode 100644 index fd379ae1..00000000 --- a/1.7.2/main/java/WayofTime/alchemicalWizardry/common/spell/complex/SpellModifierDefault.java +++ /dev/null @@ -1,9 +0,0 @@ -package WayofTime.alchemicalWizardry.common.spell.complex; - -public class SpellModifierDefault extends SpellModifier -{ - public SpellModifierDefault() - { - super(SpellModifier.DEFAULT); - } -} diff --git a/1.7.2/main/java/WayofTime/alchemicalWizardry/common/spell/complex/SpellModifierDefensive.java b/1.7.2/main/java/WayofTime/alchemicalWizardry/common/spell/complex/SpellModifierDefensive.java deleted file mode 100644 index f9f69dbe..00000000 --- a/1.7.2/main/java/WayofTime/alchemicalWizardry/common/spell/complex/SpellModifierDefensive.java +++ /dev/null @@ -1,9 +0,0 @@ -package WayofTime.alchemicalWizardry.common.spell.complex; - -public class SpellModifierDefensive extends SpellModifier -{ - public SpellModifierDefensive() - { - super(SpellModifier.DEFENSIVE); - } -} diff --git a/1.7.2/main/java/WayofTime/alchemicalWizardry/common/spell/complex/SpellModifierEnvironmental.java b/1.7.2/main/java/WayofTime/alchemicalWizardry/common/spell/complex/SpellModifierEnvironmental.java deleted file mode 100644 index ff9ef7f4..00000000 --- a/1.7.2/main/java/WayofTime/alchemicalWizardry/common/spell/complex/SpellModifierEnvironmental.java +++ /dev/null @@ -1,9 +0,0 @@ -package WayofTime.alchemicalWizardry.common.spell.complex; - -public class SpellModifierEnvironmental extends SpellModifier -{ - public SpellModifierEnvironmental() - { - super(SpellModifier.ENVIRONMENTAL); - } -} diff --git a/1.7.2/main/java/WayofTime/alchemicalWizardry/common/spell/complex/SpellModifierOffensive.java b/1.7.2/main/java/WayofTime/alchemicalWizardry/common/spell/complex/SpellModifierOffensive.java deleted file mode 100644 index 783ab1e3..00000000 --- a/1.7.2/main/java/WayofTime/alchemicalWizardry/common/spell/complex/SpellModifierOffensive.java +++ /dev/null @@ -1,9 +0,0 @@ -package WayofTime.alchemicalWizardry.common.spell.complex; - -public class SpellModifierOffensive extends SpellModifier -{ - public SpellModifierOffensive() - { - super(SpellModifier.OFFENSIVE); - } -} diff --git a/1.7.2/main/java/WayofTime/alchemicalWizardry/common/spell/complex/SpellParadigm.java b/1.7.2/main/java/WayofTime/alchemicalWizardry/common/spell/complex/SpellParadigm.java deleted file mode 100644 index 75bad220..00000000 --- a/1.7.2/main/java/WayofTime/alchemicalWizardry/common/spell/complex/SpellParadigm.java +++ /dev/null @@ -1,163 +0,0 @@ -package WayofTime.alchemicalWizardry.common.spell.complex; - -import java.util.ArrayList; -import java.util.LinkedList; -import java.util.List; - -import net.minecraft.entity.player.EntityPlayer; -import net.minecraft.item.ItemStack; -import net.minecraft.world.World; -import WayofTime.alchemicalWizardry.common.spell.complex.effect.SpellEffect; -import WayofTime.alchemicalWizardry.common.spell.complex.enhancement.SpellEnhancement; - -public abstract class SpellParadigm -{ - protected List bufferedEffectList = new LinkedList(); - public List effectList = new LinkedList(); - - public void addBufferedEffect(SpellEffect effect) - { - if(effect!=null) - { - this.bufferedEffectList.add(effect); - - effectList.add(effect.getClass().getName()); - } - } - - public void modifyBufferedEffect(SpellModifier modifier) - { - SpellEffect effect = this.getBufferedEffect(); - if(effect!=null) - { - effect.modifyEffect(modifier); - - effectList.add(modifier.getClass().getName()); - } - } - - public void applyEnhancement(SpellEnhancement enh) - { - if(enh!=null) - { - if(bufferedEffectList.isEmpty()) - { - this.enhanceParadigm(enh); - } - else - { - SpellEffect effect = this.getBufferedEffect(); - if(effect!=null) - { - effect.enhanceEffect(enh); - } - } - - effectList.add(enh.getClass().getName()); - } - - } - - public abstract void enhanceParadigm(SpellEnhancement enh); - public abstract void castSpell(World world, EntityPlayer entityPlayer, ItemStack itemStack); - - public void applySpellEffect(SpellEffect effect) - { - effect.modifyParadigm(this); - } - - public void applyAllSpellEffects() - { - for(SpellEffect effect : bufferedEffectList) - { - this.applySpellEffect(effect); - } - } - - public SpellEffect getBufferedEffect() - { - if(bufferedEffectList.isEmpty()) - { - return null; - } - else - { - return bufferedEffectList.get(bufferedEffectList.size()-1); - } - } - - public int getTotalCost() - { - int cost = 0; - if(this.bufferedEffectList!=null && !this.bufferedEffectList.isEmpty()) - { - if(this instanceof SpellParadigmProjectile) - { - for(SpellEffect effect : bufferedEffectList) - { - cost+=effect.getCostForProjectile(); - } - }else if(this instanceof SpellParadigmSelf) - { - for(SpellEffect effect : bufferedEffectList) - { - cost+=effect.getCostForSelf(); - } - }else if(this instanceof SpellParadigmMelee) - { - for(SpellEffect effect : bufferedEffectList) - { - cost+=effect.getCostForMelee(); - } - }else if(this instanceof SpellParadigmTool) - { - for(SpellEffect effect : bufferedEffectList) - { - cost+=effect.getCostForTool(); - } - } - - return (int)(cost*Math.sqrt(this.bufferedEffectList.size())); - } - - return getDefaultCost(); - } - - public abstract int getDefaultCost(); - - public int getBufferedEffectPower() - { - SpellEffect eff = this.getBufferedEffect(); - - if(eff!=null) - { - return eff.getPowerEnhancements(); - } - - return 0; - } - - public int getBufferedEffectCost() - { - SpellEffect eff = this.getBufferedEffect(); - - if(eff!=null) - { - return eff.getCostEnhancements(); - } - - return 0; - } - - public int getBufferedEffectPotency() - { - SpellEffect eff = this.getBufferedEffect(); - - if(eff!=null) - { - return eff.getPotencyEnhancements(); - } - - return 0; - } -} diff --git a/1.7.2/main/java/WayofTime/alchemicalWizardry/common/spell/complex/SpellParadigmMelee.java b/1.7.2/main/java/WayofTime/alchemicalWizardry/common/spell/complex/SpellParadigmMelee.java deleted file mode 100644 index b1cac7de..00000000 --- a/1.7.2/main/java/WayofTime/alchemicalWizardry/common/spell/complex/SpellParadigmMelee.java +++ /dev/null @@ -1,70 +0,0 @@ -package WayofTime.alchemicalWizardry.common.spell.complex; - -import java.util.ArrayList; -import java.util.List; - -import net.minecraft.entity.player.EntityPlayer; -import net.minecraft.item.ItemStack; -import net.minecraft.world.World; -import WayofTime.alchemicalWizardry.common.items.EnergyItems; -import WayofTime.alchemicalWizardry.common.spell.complex.effect.impactEffects.IMeleeSpellEntityEffect; -import WayofTime.alchemicalWizardry.common.spell.complex.effect.impactEffects.IMeleeSpellWorldEffect; -import WayofTime.alchemicalWizardry.common.spell.complex.enhancement.SpellEnhancement; - -public class SpellParadigmMelee extends SpellParadigm -{ - private List entityEffectList; - private List worldEffectList; - - public SpellParadigmMelee() - { - this.entityEffectList = new ArrayList(); - this.worldEffectList = new ArrayList(); - } - - @Override - public void enhanceParadigm(SpellEnhancement enh) - { - - } - - @Override - public void castSpell(World world, EntityPlayer entityPlayer, ItemStack itemStack) - { - for(IMeleeSpellEntityEffect effect : entityEffectList) - { - effect.onEntityImpact(world, entityPlayer); - } - - for(IMeleeSpellWorldEffect effect : worldEffectList) - { - effect.onWorldEffect(world, entityPlayer); - } - - int cost = this.getTotalCost(); - - EnergyItems.syphonBatteries(itemStack, entityPlayer, cost); - } - - public void addEntityEffect(IMeleeSpellEntityEffect eff) - { - if(eff!=null) - { - this.entityEffectList.add(eff); - } - } - - public void addWorldEffect(IMeleeSpellWorldEffect eff) - { - if(eff!=null) - { - this.worldEffectList.add(eff); - } - } - - @Override - public int getDefaultCost() - { - return 0; - } -} diff --git a/1.7.2/main/java/WayofTime/alchemicalWizardry/common/spell/complex/SpellParadigmProjectile.java b/1.7.2/main/java/WayofTime/alchemicalWizardry/common/spell/complex/SpellParadigmProjectile.java deleted file mode 100644 index 8bb44f6a..00000000 --- a/1.7.2/main/java/WayofTime/alchemicalWizardry/common/spell/complex/SpellParadigmProjectile.java +++ /dev/null @@ -1,102 +0,0 @@ -package WayofTime.alchemicalWizardry.common.spell.complex; - -import java.util.ArrayList; -import java.util.List; - -import net.minecraft.entity.player.EntityPlayer; -import net.minecraft.item.ItemStack; -import net.minecraft.util.DamageSource; -import net.minecraft.world.World; -import WayofTime.alchemicalWizardry.common.items.EnergyItems; -import WayofTime.alchemicalWizardry.common.spell.complex.effect.SpellEffect; -import WayofTime.alchemicalWizardry.common.spell.complex.effect.impactEffects.IProjectileImpactEffect; -import WayofTime.alchemicalWizardry.common.spell.complex.effect.impactEffects.IProjectileUpdateEffect; -import WayofTime.alchemicalWizardry.common.spell.complex.effect.impactEffects.fire.ProjectileDefaultFire; -import WayofTime.alchemicalWizardry.common.spell.complex.enhancement.SpellEnhancement; - -public class SpellParadigmProjectile extends SpellParadigm -{ - public DamageSource damageSource; - public float damage; - public int cost; - public List impactList; - public List updateEffectList; - public boolean penetration; - public int ricochetMax; - public boolean isSilkTouch; - - public SpellParadigmProjectile() - { - this.damageSource = DamageSource.generic; - this.damage = 1; - this.cost = 0; - this.impactList = new ArrayList(); - this.updateEffectList = new ArrayList(); - this.penetration = false; - this.ricochetMax = 0; - this.isSilkTouch = false; - } - - @Override - public void enhanceParadigm(SpellEnhancement enh) - { - - } - - @Override - public void castSpell(World world, EntityPlayer entityPlayer, ItemStack itemStack) - { - EntitySpellProjectile proj = new EntitySpellProjectile(world, entityPlayer); - this.prepareProjectile(proj); - world.spawnEntityInWorld(proj); - int cost = this.getTotalCost(); - - EnergyItems.syphonBatteries(itemStack, entityPlayer, cost); - } - - public static SpellParadigmProjectile getParadigmForEffectArray(List effectList) - { - SpellParadigmProjectile parad = new SpellParadigmProjectile(); - - for(SpellEffect eff : effectList) - { - parad.addBufferedEffect(eff); - } - - return parad; - } - - public void prepareProjectile(EntitySpellProjectile proj) - { - proj.setDamage(damage); - proj.setImpactList(impactList); - proj.setUpdateEffectList(updateEffectList); - proj.setPenetration(penetration); - proj.setRicochetMax(ricochetMax); - proj.setIsSilkTouch(isSilkTouch); - proj.setSpellEffectList(bufferedEffectList); - } - - public void addImpactEffect(IProjectileImpactEffect eff) - { - if(eff!=null) - { - this.impactList.add(eff); - } - } - - public void addUpdateEffect(IProjectileUpdateEffect eff) - { - if(eff!=null) - { - this.updateEffectList.add(eff); - } - } - - @Override - public int getDefaultCost() - { - return 50; - } - -} diff --git a/1.7.2/main/java/WayofTime/alchemicalWizardry/common/spell/complex/SpellParadigmSelf.java b/1.7.2/main/java/WayofTime/alchemicalWizardry/common/spell/complex/SpellParadigmSelf.java deleted file mode 100644 index 94a7186a..00000000 --- a/1.7.2/main/java/WayofTime/alchemicalWizardry/common/spell/complex/SpellParadigmSelf.java +++ /dev/null @@ -1,58 +0,0 @@ -package WayofTime.alchemicalWizardry.common.spell.complex; - -import java.util.ArrayList; -import java.util.List; - -import WayofTime.alchemicalWizardry.common.items.EnergyItems; -import WayofTime.alchemicalWizardry.common.spell.complex.effect.SpellEffect; -import WayofTime.alchemicalWizardry.common.spell.complex.effect.impactEffects.ISelfSpellEffect; -import WayofTime.alchemicalWizardry.common.spell.complex.enhancement.SpellEnhancement; -import net.minecraft.entity.player.EntityPlayer; -import net.minecraft.item.ItemStack; -import net.minecraft.world.World; - -public class SpellParadigmSelf extends SpellParadigm -{ - public List selfSpellEffectList; - - public SpellParadigmSelf() - { - selfSpellEffectList = new ArrayList(); - } - - @Override - public void enhanceParadigm(SpellEnhancement enh) - { - - } - - @Override - public void castSpell(World world, EntityPlayer entityPlayer, ItemStack itemStack) - { - this.applyAllSpellEffects(); - - for(ISelfSpellEffect eff : selfSpellEffectList) - { - eff.onSelfUse(world, entityPlayer); - } - - int cost = this.getTotalCost(); - - EnergyItems.syphonBatteries(itemStack, entityPlayer, cost); - } - - public void addSelfSpellEffect(ISelfSpellEffect eff) - { - if(eff!=null) - { - this.selfSpellEffectList.add(eff); - } - } - - @Override - public int getDefaultCost() - { - return 100; - } - -} 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 deleted file mode 100644 index 16b1498f..00000000 --- a/1.7.2/main/java/WayofTime/alchemicalWizardry/common/spell/complex/SpellParadigmTool.java +++ /dev/null @@ -1,501 +0,0 @@ -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 durationHash; //ticks - - 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.specialDamageEffectList = new LinkedList(); - this.durationHash = new HashMap(); - - this.toolInfoString = new HashMap(); - this.critChanceHash = new HashMap(); - - this.maxDamage = 5; - - this.harvestLevel = new HashMap(); - this.harvestLevel.put("pickaxe", -1); - this.harvestLevel.put("shovel", -1); - this.harvestLevel.put("axe", -1); - - this.digSpeed = new HashMap(); - this.digSpeed.put("pickaxe", 1.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 = 0; - - this.durationHash.put("default", 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); - - for(Integer integ : this.durationHash.values()) - { - this.duration += integ; - } - - 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 void addDuration(String key, int dur) - { - this.durationHash.put(key, dur); - } - - 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/main/java/WayofTime/alchemicalWizardry/common/spell/complex/effect/SpellEffect.java b/1.7.2/main/java/WayofTime/alchemicalWizardry/common/spell/complex/effect/SpellEffect.java deleted file mode 100644 index d241917e..00000000 --- a/1.7.2/main/java/WayofTime/alchemicalWizardry/common/spell/complex/effect/SpellEffect.java +++ /dev/null @@ -1,259 +0,0 @@ -package WayofTime.alchemicalWizardry.common.spell.complex.effect; - -import net.minecraft.nbt.NBTTagCompound; -import WayofTime.alchemicalWizardry.common.spell.complex.SpellModifier; -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 -{ - protected int modifierState; - protected int powerEnhancement; - protected int costEnhancement; - protected int potencyEnhancement; - - public SpellEffect() - { - this.modifierState = SpellModifier.DEFAULT; - this.powerEnhancement = 0; - this.costEnhancement = 0; - this.potencyEnhancement = 0; - } - - public void enhanceEffect(SpellEnhancement enh) - { - if(enh!=null) - { - switch(enh.getState()) - { - case SpellEnhancement.POWER: this.powerEnhancement++; break; - case SpellEnhancement.EFFICIENCY: this.costEnhancement++; break; - case SpellEnhancement.POTENCY: this.potencyEnhancement++; break; - } - } - } - - public void modifyEffect(SpellModifier mod) - { - if(mod!=null) - modifierState = mod.getModifier(); - } - - public void modifyParadigm(SpellParadigm parad) - { - if(parad instanceof SpellParadigmProjectile) - { - this.modifyProjectileParadigm((SpellParadigmProjectile)parad); - } - if(parad instanceof SpellParadigmSelf) - { - this.modifySelfParadigm((SpellParadigmSelf)parad); - } - if(parad instanceof SpellParadigmMelee) - { - this.modifyMeleeParadigm((SpellParadigmMelee)parad); - } - if(parad instanceof SpellParadigmTool) - { - this.modifyToolParadigm((SpellParadigmTool)parad); - } - } - - public void modifyProjectileParadigm(SpellParadigmProjectile parad) - { - switch(modifierState) - { - case SpellModifier.DEFAULT: this.defaultModificationProjectile(parad); break; - case SpellModifier.OFFENSIVE: this.offensiveModificationProjectile(parad); break; - case SpellModifier.DEFENSIVE: this.defensiveModificationProjectile(parad); break; - case SpellModifier.ENVIRONMENTAL: this.environmentalModificationProjectile(parad); break; - } - } - - public abstract void defaultModificationProjectile(SpellParadigmProjectile parad); - public abstract void offensiveModificationProjectile(SpellParadigmProjectile parad); - public abstract void defensiveModificationProjectile(SpellParadigmProjectile parad); - public abstract void environmentalModificationProjectile(SpellParadigmProjectile parad); - - public void modifySelfParadigm(SpellParadigmSelf parad) - { - switch(modifierState) - { - case SpellModifier.DEFAULT: this.defaultModificationSelf(parad); break; - case SpellModifier.OFFENSIVE: this.offensiveModificationSelf(parad); break; - case SpellModifier.DEFENSIVE: this.defensiveModificationSelf(parad); break; - case SpellModifier.ENVIRONMENTAL: this.environmentalModificationSelf(parad); break; - } - } - - public abstract void defaultModificationSelf(SpellParadigmSelf parad); - public abstract void offensiveModificationSelf(SpellParadigmSelf parad); - public abstract void defensiveModificationSelf(SpellParadigmSelf parad); - public abstract void environmentalModificationSelf(SpellParadigmSelf parad); - - public void modifyMeleeParadigm(SpellParadigmMelee parad) - { - switch(modifierState) - { - case SpellModifier.DEFAULT: this.defaultModificationMelee(parad); break; - case SpellModifier.OFFENSIVE: this.offensiveModificationMelee(parad); break; - case SpellModifier.DEFENSIVE: this.defensiveModificationMelee(parad); break; - case SpellModifier.ENVIRONMENTAL: this.environmentalModificationMelee(parad); break; - } - } - - public abstract void defaultModificationMelee(SpellParadigmMelee parad); - public abstract void offensiveModificationMelee(SpellParadigmMelee parad); - 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) - { - case SpellModifier.DEFAULT: return this.getCostForDefaultProjectile(); - case SpellModifier.OFFENSIVE: return this.getCostForOffenseProjectile(); - case SpellModifier.DEFENSIVE: return this.getCostForDefenseProjectile(); - case SpellModifier.ENVIRONMENTAL: return this.getCostForEnvironmentProjectile(); - } - return 0; - } - - protected abstract int getCostForDefaultProjectile(); - protected abstract int getCostForOffenseProjectile(); - protected abstract int getCostForDefenseProjectile(); - protected abstract int getCostForEnvironmentProjectile(); - - public int getCostForSelf() - { - switch(this.modifierState) - { - case SpellModifier.DEFAULT: return this.getCostForDefaultSelf(); - case SpellModifier.OFFENSIVE: return this.getCostForOffenseSelf(); - case SpellModifier.DEFENSIVE: return this.getCostForDefenseSelf(); - case SpellModifier.ENVIRONMENTAL: return this.getCostForEnvironmentSelf(); - } - return 0; - } - - protected abstract int getCostForDefaultSelf(); - protected abstract int getCostForOffenseSelf(); - protected abstract int getCostForDefenseSelf(); - protected abstract int getCostForEnvironmentSelf(); - - public int getCostForMelee() - { - switch(this.modifierState) - { - case SpellModifier.DEFAULT: return this.getCostForDefaultMelee(); - case SpellModifier.OFFENSIVE: return this.getCostForOffenseMelee(); - case SpellModifier.DEFENSIVE: return this.getCostForDefenseMelee(); - case SpellModifier.ENVIRONMENTAL: return this.getCostForEnvironmentMelee(); - } - return 0; - } - - protected abstract int getCostForDefaultMelee(); - protected abstract int getCostForOffenseMelee(); - 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; - } - - public int getCostEnhancements() - { - return this.costEnhancement; - } - - public int getPotencyEnhancements() - { - return this.potencyEnhancement; - } - - public NBTTagCompound getTag() - { - NBTTagCompound tag = new NBTTagCompound(); - - tag.setString("Class", this.getClass().getName()); - tag.setInteger("modifier", modifierState); - tag.setInteger("power", powerEnhancement); - tag.setInteger("cost", costEnhancement); - tag.setInteger("potency", potencyEnhancement); - - return tag; - } - - public static SpellEffect getEffectFromTag(NBTTagCompound tag) - { - try { - Class clazz = Class.forName(tag.getString("Class")); - if(clazz !=null) - { - try { - Object obj = clazz.newInstance(); - if(obj instanceof SpellEffect) - { - SpellEffect eff = (SpellEffect) obj; - - eff.modifierState = tag.getInteger("modifier"); - eff.powerEnhancement = tag.getInteger("power"); - eff.costEnhancement = tag.getInteger("cost"); - eff.potencyEnhancement = tag.getInteger("potency"); - - return eff; - } - } catch (InstantiationException e) { - // TODO Auto-generated catch block - e.printStackTrace(); - } catch (IllegalAccessException e) { - // TODO Auto-generated catch block - e.printStackTrace(); - } - } - } catch (ClassNotFoundException e) { - // TODO Auto-generated catch block - e.printStackTrace(); - } - return null; - } -} diff --git a/1.7.2/main/java/WayofTime/alchemicalWizardry/common/spell/complex/effect/SpellEffectEarth.java b/1.7.2/main/java/WayofTime/alchemicalWizardry/common/spell/complex/effect/SpellEffectEarth.java deleted file mode 100644 index 094d3fb4..00000000 --- a/1.7.2/main/java/WayofTime/alchemicalWizardry/common/spell/complex/effect/SpellEffectEarth.java +++ /dev/null @@ -1,280 +0,0 @@ -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; -import WayofTime.alchemicalWizardry.common.spell.complex.effect.impactEffects.earth.MeleeOffensiveEarth; -import WayofTime.alchemicalWizardry.common.spell.complex.effect.impactEffects.earth.ProjectileDefaultEarth; -import WayofTime.alchemicalWizardry.common.spell.complex.effect.impactEffects.earth.ProjectileDefensiveEarth; -import WayofTime.alchemicalWizardry.common.spell.complex.effect.impactEffects.earth.ProjectileEnvironmentalEarth; -import WayofTime.alchemicalWizardry.common.spell.complex.effect.impactEffects.earth.ProjectileOffensiveEarth; -import WayofTime.alchemicalWizardry.common.spell.complex.effect.impactEffects.earth.SelfDefaultEarth; -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; -import WayofTime.alchemicalWizardry.common.spell.complex.effect.impactEffects.earth.ToolOffensiveEarth; - -public class SpellEffectEarth extends SpellEffect -{ - @Override - public void defaultModificationProjectile(SpellParadigmProjectile parad) - { - parad.addImpactEffect(new ProjectileDefaultEarth(this.powerEnhancement, this.potencyEnhancement, this.costEnhancement)); - } - - @Override - public void offensiveModificationProjectile(SpellParadigmProjectile parad) - { - parad.addImpactEffect(new ProjectileOffensiveEarth(this.powerEnhancement, this.potencyEnhancement, this.costEnhancement)); - } - - @Override - public void defensiveModificationProjectile(SpellParadigmProjectile parad) - { - parad.addImpactEffect(new ProjectileDefensiveEarth(this.powerEnhancement,this.potencyEnhancement,this.costEnhancement)); - } - - @Override - public void environmentalModificationProjectile(SpellParadigmProjectile parad) - { - parad.addUpdateEffect(new ProjectileEnvironmentalEarth(this.powerEnhancement,this.potencyEnhancement,this.costEnhancement)); - } - - @Override - public void defaultModificationSelf(SpellParadigmSelf parad) - { - parad.addSelfSpellEffect(new SelfDefaultEarth(this.powerEnhancement, this.potencyEnhancement, this.costEnhancement)); - } - - @Override - public void offensiveModificationSelf(SpellParadigmSelf parad) - { - parad.addSelfSpellEffect(new SelfOffensiveEarth(this.powerEnhancement,this.potencyEnhancement, this.costEnhancement)); - } - - @Override - public void defensiveModificationSelf(SpellParadigmSelf parad) - { - parad.addSelfSpellEffect(new SelfDefensiveEarth(this.powerEnhancement,this.potencyEnhancement, this.costEnhancement)); - } - - @Override - public void environmentalModificationSelf(SpellParadigmSelf parad) - { - parad.addSelfSpellEffect(new SelfEnvironmentalEarth(this.powerEnhancement,this.potencyEnhancement,this.costEnhancement)); - } - - @Override - public void defaultModificationMelee(SpellParadigmMelee parad) - { - parad.addWorldEffect(new MeleeDefaultEarth(this.powerEnhancement, this.potencyEnhancement, this.costEnhancement)); - } - - @Override - public void offensiveModificationMelee(SpellParadigmMelee parad) - { - parad.addWorldEffect(new MeleeOffensiveEarth(this.powerEnhancement,this.potencyEnhancement,this.costEnhancement)); - } - - @Override - public void defensiveModificationMelee(SpellParadigmMelee parad) - { - parad.addWorldEffect(new MeleeDefensiveEarth(this.powerEnhancement, this.potencyEnhancement, this.costEnhancement)); - } - - @Override - public void environmentalModificationMelee(SpellParadigmMelee parad) - { - parad.addWorldEffect(new MeleeEnvironmentalEarth(this.powerEnhancement, this.potencyEnhancement, this.costEnhancement)); - } - - @Override - protected int getCostForDefaultProjectile() - { - return (int)(10*Math.pow((0.5*(this.powerEnhancement)+1)*2 + 1,3)*Math.pow(0.85, costEnhancement)); - } - - @Override - protected int getCostForOffenseProjectile() - { - - return (int)(10*(1.5*this.potencyEnhancement+1)*(Math.pow(1*this.powerEnhancement+1,2))*Math.pow(0.85, costEnhancement)); - } - - @Override - protected int getCostForDefenseProjectile() - { - return (int)(3*Math.pow((this.powerEnhancement*2+1),2)*(this.potencyEnhancement*2+1)*Math.pow(0.85, costEnhancement)); - } - - @Override - protected int getCostForEnvironmentProjectile() - { - return (int)(10*2*(0.1d*(this.potencyEnhancement+1))*Math.pow(3.47,this.potencyEnhancement)*Math.pow(0.85, costEnhancement)); - } - - @Override - protected int getCostForDefaultSelf() - { - return (int)(20*Math.pow(1.5*powerEnhancement+1,2)*(2*this.potencyEnhancement+1)*Math.pow(0.85, costEnhancement)); - } - - @Override - protected int getCostForOffenseSelf() - { - return (int)(10*Math.pow(2*this.powerEnhancement+1,2)*(this.potencyEnhancement+1)*Math.pow(0.85, costEnhancement)); - } - - @Override - protected int getCostForDefenseSelf() - { - return (int)(750*(1.1*this.powerEnhancement+1)*(0.5*this.potencyEnhancement+1)*Math.pow(0.85, costEnhancement)); - } - - @Override - protected int getCostForEnvironmentSelf() - { - return (int)(250*(1.2*this.potencyEnhancement+1)*(3*this.powerEnhancement+2.5)*Math.pow(0.85, costEnhancement)); - } - - @Override - protected int getCostForDefaultMelee() - { - return (int)(50*Math.pow(1.5*this.potencyEnhancement + 1,3)*(0.5*this.powerEnhancement + 1)*Math.pow(0.85, costEnhancement)); - } - - @Override - protected int getCostForOffenseMelee() - { - return (int)(20*Math.pow(1.5*this.powerEnhancement+1,3)*(0.25*this.powerEnhancement+1)*Math.pow(0.85, costEnhancement)); - } - - @Override - protected int getCostForDefenseMelee() - { - return (int)(5*(1.2*this.powerEnhancement+1)*(1.0f/3.0f*Math.pow(this.potencyEnhancement,2)+2+1.0f/2.0f*this.potencyEnhancement)*Math.pow(0.85, costEnhancement)); - } - - @Override - protected int getCostForEnvironmentMelee() - { - 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) - { - parad.addItemManipulatorEffect(new ToolOffensiveEarth(this.powerEnhancement, this.potencyEnhancement, this.costEnhancement)); - } - - @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() - { - return 1000; - } - - @Override - protected int getCostForDefenseTool() - { - return (int)(1000 * (1 + this.potencyEnhancement*0.1f) * (1 + this.powerEnhancement*0.2f) * Math.pow(0.85, costEnhancement)); - } - - @Override - protected int getCostForEnvironmentTool() - { - return (int)(10 * (1+this.potencyEnhancement*0.8) * Math.pow(1.5*this.powerEnhancement + 3, 2) * Math.pow(0.85, this.costEnhancement)); - } -} diff --git a/1.7.2/main/java/WayofTime/alchemicalWizardry/common/spell/complex/effect/SpellEffectFire.java b/1.7.2/main/java/WayofTime/alchemicalWizardry/common/spell/complex/effect/SpellEffectFire.java deleted file mode 100644 index a4027390..00000000 --- a/1.7.2/main/java/WayofTime/alchemicalWizardry/common/spell/complex/effect/SpellEffectFire.java +++ /dev/null @@ -1,225 +0,0 @@ -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; -import WayofTime.alchemicalWizardry.common.spell.complex.effect.impactEffects.fire.MeleeOffensiveFire; -import WayofTime.alchemicalWizardry.common.spell.complex.effect.impactEffects.fire.ProjectileDefaultFire; -import WayofTime.alchemicalWizardry.common.spell.complex.effect.impactEffects.fire.ProjectileDefensiveFire; -import WayofTime.alchemicalWizardry.common.spell.complex.effect.impactEffects.fire.ProjectileEnvironmentalFire; -import WayofTime.alchemicalWizardry.common.spell.complex.effect.impactEffects.fire.ProjectileOffensiveFire; -import WayofTime.alchemicalWizardry.common.spell.complex.effect.impactEffects.fire.SelfDefaultFire; -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.ToolEnvironmentalFire; -import WayofTime.alchemicalWizardry.common.spell.complex.effect.impactEffects.fire.ToolOffensiveFire; - -public class SpellEffectFire extends SpellEffect -{ - @Override - public void defaultModificationProjectile(SpellParadigmProjectile parad) - { - parad.addImpactEffect(new ProjectileDefaultFire(this.powerEnhancement,this.potencyEnhancement,this.costEnhancement)); - parad.damage+=this.potencyEnhancement; - } - - @Override - public void offensiveModificationProjectile(SpellParadigmProjectile parad) - { - parad.addImpactEffect(new ProjectileOffensiveFire(this.powerEnhancement,this.potencyEnhancement,this.costEnhancement)); - } - - @Override - public void defensiveModificationProjectile(SpellParadigmProjectile parad) - { - parad.addImpactEffect(new ProjectileDefensiveFire(this.powerEnhancement,this.potencyEnhancement,this.costEnhancement)); - } - - @Override - public void environmentalModificationProjectile(SpellParadigmProjectile parad) - { - parad.addUpdateEffect(new ProjectileEnvironmentalFire(this.powerEnhancement,this.potencyEnhancement,this.costEnhancement)); - } - - @Override - public void defaultModificationSelf(SpellParadigmSelf parad) - { - parad.addSelfSpellEffect(new SelfDefaultFire(powerEnhancement, potencyEnhancement, costEnhancement)); - } - - @Override - public void offensiveModificationSelf(SpellParadigmSelf parad) - { - parad.addSelfSpellEffect(new SelfOffensiveFire(powerEnhancement,potencyEnhancement,costEnhancement)); - } - - @Override - public void defensiveModificationSelf(SpellParadigmSelf parad) - { - parad.addSelfSpellEffect(new SelfDefensiveFire(powerEnhancement,potencyEnhancement,costEnhancement)); - } - - @Override - public void environmentalModificationSelf(SpellParadigmSelf parad) - { - parad.addSelfSpellEffect(new SelfEnvironmentalFire(powerEnhancement, potencyEnhancement, costEnhancement)); - } - - @Override - public void defaultModificationMelee(SpellParadigmMelee parad) - { - parad.addEntityEffect(new MeleeDefaultFire(this.powerEnhancement, this.potencyEnhancement, this.costEnhancement)); - } - - @Override - public void offensiveModificationMelee(SpellParadigmMelee parad) - { - parad.addEntityEffect(new MeleeOffensiveFire(this.powerEnhancement,this.potencyEnhancement,this.costEnhancement)); - } - - @Override - public void defensiveModificationMelee(SpellParadigmMelee parad) - { - parad.addWorldEffect(new MeleeDefensiveFire(this.powerEnhancement,this.potencyEnhancement,this.costEnhancement)); - } - - @Override - public void environmentalModificationMelee(SpellParadigmMelee parad) - { - parad.addWorldEffect(new MeleeEnvironmentalFire(this.powerEnhancement,this.potencyEnhancement,this.costEnhancement)); - } - - @Override - protected int getCostForDefaultProjectile() - { - return (int)((5*Math.pow(1.5*this.powerEnhancement+1, 2)*(1.5*this.potencyEnhancement+1)+this.potencyEnhancement*15)*Math.pow(0.85, costEnhancement)); - } - - @Override - protected int getCostForOffenseProjectile() - { - return (int)(10*Math.pow((this.powerEnhancement)*1.3+1,2)*((1.5*this.potencyEnhancement+1))*Math.pow(0.85, costEnhancement)); - } - - @Override - protected int getCostForDefenseProjectile() - { - return (int)(25*Math.pow(1*this.powerEnhancement+1,2)*(1*this.potencyEnhancement+1)*Math.pow(0.85, costEnhancement)); - } - - @Override - protected int getCostForEnvironmentProjectile() - { - return (int)(75*(0.5*this.powerEnhancement+1)*(0.5*this.potencyEnhancement+1)*Math.pow(0.85, costEnhancement)); - } - - @Override - protected int getCostForDefaultSelf() - { - return 10*(int)(10*Math.pow(1.5, this.powerEnhancement+1.5*this.potencyEnhancement)*Math.pow(0.85, costEnhancement)); - } - - @Override - protected int getCostForOffenseSelf() - { - return (int)(300*(3*powerEnhancement+1)*(2*potencyEnhancement + 1)*Math.pow(0.85, costEnhancement)); - } - - @Override - protected int getCostForDefenseSelf() - { - return (int)(25*(3*this.potencyEnhancement+1)*(2*this.powerEnhancement+1)*Math.pow(0.85, costEnhancement)); - } - - @Override - protected int getCostForEnvironmentSelf() - { - return (int)((15*Math.pow(1.7, powerEnhancement)+10*Math.pow(potencyEnhancement,1.8))*Math.pow(0.85, costEnhancement)); - } - - @Override - protected int getCostForDefaultMelee() - { - return (int)(25*(1.2*this.potencyEnhancement+1)*(2.5*this.powerEnhancement+2)*Math.pow(0.85, costEnhancement)); - } - - @Override - protected int getCostForOffenseMelee() - { - return (int)(500*(1+this.potencyEnhancement)*(this.powerEnhancement+1)*Math.pow(0.85, costEnhancement)); - } - - @Override - protected int getCostForDefenseMelee() - { - return (int)(30*(1.5*potencyEnhancement+1)*(3*powerEnhancement+1)*Math.pow(0.85, costEnhancement)); - } - - @Override - protected int getCostForEnvironmentMelee() - { - 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) - { - parad.addCritChance("defFire", this.potencyEnhancement); - - parad.addDuration("defFire", 1200 * this.powerEnhancement); - - parad.addToolString("defFire", "Unbreaking" + " " + SpellHelper.getNumeralForInt(this.powerEnhancement + 1)); - } - - @Override - public void environmentalModificationTool(SpellParadigmTool parad) - { - parad.addBlockBreakEffect(new ToolEnvironmentalFire(this.powerEnhancement,this.potencyEnhancement,this.costEnhancement)); - - parad.addToolString("envFire", "Magma Plume" + " " + SpellHelper.getNumeralForInt(this.powerEnhancement + 1)); - } - - @Override - protected int getCostForDefaultTool() - { - return 1000; - } - - @Override - protected int getCostForOffenseTool() - { - return (int)(1000 * (1 + this.powerEnhancement*0.3f) * (1 + this.potencyEnhancement*0.2f) * Math.pow(0.85, costEnhancement)); - } - - @Override - protected int getCostForDefenseTool() - { - return (int)(500 * (1 + this.powerEnhancement*0.5f) * (1 + this.potencyEnhancement) * Math.pow(0.85, costEnhancement)); - } - - @Override - protected int getCostForEnvironmentTool() - { - return 0; - } -} diff --git a/1.7.2/main/java/WayofTime/alchemicalWizardry/common/spell/complex/effect/SpellEffectIce.java b/1.7.2/main/java/WayofTime/alchemicalWizardry/common/spell/complex/effect/SpellEffectIce.java deleted file mode 100644 index ee85fb46..00000000 --- a/1.7.2/main/java/WayofTime/alchemicalWizardry/common/spell/complex/effect/SpellEffectIce.java +++ /dev/null @@ -1,241 +0,0 @@ -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; -import WayofTime.alchemicalWizardry.common.spell.complex.effect.impactEffects.ice.MeleeOffensiveIce; -import WayofTime.alchemicalWizardry.common.spell.complex.effect.impactEffects.ice.ProjectileDefaultIce; -import WayofTime.alchemicalWizardry.common.spell.complex.effect.impactEffects.ice.ProjectileDefensiveIce; -import WayofTime.alchemicalWizardry.common.spell.complex.effect.impactEffects.ice.ProjectileEnvironmentalIce; -import WayofTime.alchemicalWizardry.common.spell.complex.effect.impactEffects.ice.ProjectileOffensiveIce; -import WayofTime.alchemicalWizardry.common.spell.complex.effect.impactEffects.ice.SelfDefaultIce; -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.ToolDefaultIce; -import WayofTime.alchemicalWizardry.common.spell.complex.effect.impactEffects.ice.ToolDefensiveIce; - -public class SpellEffectIce extends SpellEffect -{ - @Override - public void defaultModificationProjectile(SpellParadigmProjectile parad) - { - parad.damage+=this.potencyEnhancement; - parad.addImpactEffect(new ProjectileDefaultIce(this.powerEnhancement,this.potencyEnhancement,this.costEnhancement)); - } - - @Override - public void offensiveModificationProjectile(SpellParadigmProjectile parad) - { - parad.damage+=2; - parad.addImpactEffect(new ProjectileOffensiveIce(this.powerEnhancement,this.potencyEnhancement,this.costEnhancement)); - } - - @Override - public void defensiveModificationProjectile(SpellParadigmProjectile parad) - { - parad.addImpactEffect(new ProjectileDefensiveIce(this.powerEnhancement,this.potencyEnhancement,this.costEnhancement)); - - } - - @Override - public void environmentalModificationProjectile(SpellParadigmProjectile parad) - { - parad.addUpdateEffect(new ProjectileEnvironmentalIce(this.powerEnhancement,this.potencyEnhancement,this.costEnhancement)); - } - - @Override - public void defaultModificationSelf(SpellParadigmSelf parad) - { - parad.addSelfSpellEffect(new SelfDefaultIce(this.powerEnhancement,this.potencyEnhancement, this.costEnhancement)); - } - - @Override - public void offensiveModificationSelf(SpellParadigmSelf parad) - { - parad.addSelfSpellEffect(new SelfOffensiveIce(this.powerEnhancement,this.potencyEnhancement,this.costEnhancement)); - } - - @Override - public void defensiveModificationSelf(SpellParadigmSelf parad) - { - parad.addSelfSpellEffect(new SelfDefensiveIce(this.powerEnhancement,this.potencyEnhancement,this.costEnhancement)); - } - - @Override - public void environmentalModificationSelf(SpellParadigmSelf parad) - { - parad.addSelfSpellEffect(new SelfEnvironmentalIce(this.powerEnhancement,this.potencyEnhancement,this.costEnhancement)); - } - - @Override - public void defaultModificationMelee(SpellParadigmMelee parad) - { - parad.addEntityEffect(new MeleeDefaultIce(this.powerEnhancement,this.potencyEnhancement,this.costEnhancement)); - } - - @Override - public void offensiveModificationMelee(SpellParadigmMelee parad) - { - parad.addEntityEffect(new MeleeOffensiveIce(this.powerEnhancement,this.potencyEnhancement,this.costEnhancement)); - } - - @Override - public void defensiveModificationMelee(SpellParadigmMelee parad) - { - parad.addWorldEffect(new MeleeDefensiveIce(this.powerEnhancement,this.potencyEnhancement,this.costEnhancement)); - } - - @Override - public void environmentalModificationMelee(SpellParadigmMelee parad) - { - parad.addEntityEffect(new MeleeEnvironmentalIce(this.powerEnhancement,this.potencyEnhancement,this.costEnhancement)); - } - - @Override - protected int getCostForDefaultProjectile() - { - return (int)((30)*(this.potencyEnhancement+1)*Math.pow(0.85, costEnhancement)); - } - - @Override - protected int getCostForOffenseProjectile() - { - return (int)((60)*(this.powerEnhancement+1)*(3*this.potencyEnhancement+1)*Math.pow(0.85, costEnhancement)); - } - - @Override - protected int getCostForDefenseProjectile() - { - return (int)(75*(2*this.powerEnhancement+1)*(this.potencyEnhancement+1)*Math.pow(0.85, costEnhancement)); - } - - @Override - protected int getCostForEnvironmentProjectile() - { - return (int)(200*(2*this.powerEnhancement+1)*(2*this.potencyEnhancement+1)*Math.pow(0.85, costEnhancement)); - } - - @Override - protected int getCostForDefaultSelf() - { - return (int)(20*(this.powerEnhancement+1)*Math.pow(0.85, costEnhancement)); - } - - @Override - protected int getCostForOffenseSelf() - { - return (int)(100*(2*this.powerEnhancement+1)*(2*this.potencyEnhancement+1)*Math.pow(0.85, costEnhancement)); - } - - @Override - protected int getCostForDefenseSelf() - { - return (int)(200*(3*powerEnhancement+1)*(2*potencyEnhancement + 1)*Math.pow(0.85, costEnhancement)); - } - - @Override - protected int getCostForEnvironmentSelf() - { - return (int)(10*(1.5*potencyEnhancement+1)*(3*powerEnhancement+1)*Math.pow(0.85, costEnhancement)); - } - - @Override - protected int getCostForDefaultMelee() - { - return (int)(250*(potencyEnhancement+1)*(1.5*powerEnhancement+1)*Math.pow(0.85, costEnhancement)); - } - - @Override - protected int getCostForOffenseMelee() - { - return (int)(40*(1.5*potencyEnhancement+1)*Math.pow(1.5, powerEnhancement)*Math.pow(0.85, costEnhancement)); - } - - @Override - protected int getCostForDefenseMelee() - { - return (int)(50*(0.5*potencyEnhancement+1)*(0.7*powerEnhancement+1)*(0.5*powerEnhancement+1)*Math.pow(0.85, costEnhancement)); - } - - @Override - protected int getCostForEnvironmentMelee() - { - return (int)(20*(0.5*potencyEnhancement+1)*(0*powerEnhancement+1)*Math.pow(0.85, costEnhancement)); - } - - @Override - public void defaultModificationTool(SpellParadigmTool parad) - { - parad.addLeftClickEffect(new ToolDefaultIce(this.powerEnhancement,this.potencyEnhancement,this.costEnhancement)); - - - parad.addToolString("FrostTouch", "FrostTouch" + " " + SpellHelper.getNumeralForInt((this.powerEnhancement+1))); - - - parad.addCritChance("FrostCrit", this.potencyEnhancement * 0.5f); - } - - - @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) - { - parad.addToolString("SilkTouch", "Silk Touch" + " " + SpellHelper.getNumeralForInt((this.powerEnhancement+1))); - - - parad.setSilkTouch(true); - } - - - @Override - protected int getCostForDefaultTool() - { - return (int)(500 * (1 + this.powerEnhancement*0.3f) * (1 + this.potencyEnhancement*0.1f) * Math.pow(0.85, costEnhancement)); - } - - - @Override - protected int getCostForOffenseTool() - { - return (int)(1000 * (1 + this.powerEnhancement*0.3f) * (1 + this.potencyEnhancement*0.2f) * Math.pow(0.85, costEnhancement)); - } - - - @Override - protected int getCostForDefenseTool() - { - return (int)(500 * (1 + this.powerEnhancement*0.2) * (1 + this.potencyEnhancement*0.5) * Math.pow(0.85, costEnhancement)); - } - - - @Override - protected int getCostForEnvironmentTool() - { - return (int)(1000 * Math.pow(0.85, costEnhancement)); - } - -} diff --git a/1.7.2/main/java/WayofTime/alchemicalWizardry/common/spell/complex/effect/SpellEffectWind.java b/1.7.2/main/java/WayofTime/alchemicalWizardry/common/spell/complex/effect/SpellEffectWind.java deleted file mode 100644 index 7bf6ec80..00000000 --- a/1.7.2/main/java/WayofTime/alchemicalWizardry/common/spell/complex/effect/SpellEffectWind.java +++ /dev/null @@ -1,242 +0,0 @@ -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; -import WayofTime.alchemicalWizardry.common.spell.complex.effect.impactEffects.wind.MeleeOffensiveWind; -import WayofTime.alchemicalWizardry.common.spell.complex.effect.impactEffects.wind.ProjectileDefaultWind; -import WayofTime.alchemicalWizardry.common.spell.complex.effect.impactEffects.wind.ProjectileEnvironmentalWind; -import WayofTime.alchemicalWizardry.common.spell.complex.effect.impactEffects.wind.ProjectileOffensiveWind; -import WayofTime.alchemicalWizardry.common.spell.complex.effect.impactEffects.wind.SelfDefaultWind; -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 -{ - @Override - public void defaultModificationProjectile(SpellParadigmProjectile parad) - { - parad.addImpactEffect(new ProjectileDefaultWind(this.powerEnhancement,this.potencyEnhancement,this.costEnhancement)); - } - - @Override - public void offensiveModificationProjectile(SpellParadigmProjectile parad) - { - parad.addImpactEffect(new ProjectileOffensiveWind(this.powerEnhancement,this.potencyEnhancement,this.costEnhancement)); - } - - @Override - public void defensiveModificationProjectile(SpellParadigmProjectile parad) - { - parad.isSilkTouch = true; - } - - @Override - public void environmentalModificationProjectile(SpellParadigmProjectile parad) - { - parad.addUpdateEffect(new ProjectileEnvironmentalWind(this.powerEnhancement,this.potencyEnhancement,this.costEnhancement)); - } - - @Override - public void defaultModificationSelf(SpellParadigmSelf parad) - { - parad.addSelfSpellEffect(new SelfDefaultWind(this.powerEnhancement,this.potencyEnhancement,this.costEnhancement)); - } - - @Override - public void offensiveModificationSelf(SpellParadigmSelf parad) - { - parad.addSelfSpellEffect(new SelfOffensiveWind(this.powerEnhancement,this.potencyEnhancement,this.costEnhancement)); - } - - @Override - public void defensiveModificationSelf(SpellParadigmSelf parad) - { - parad.addSelfSpellEffect(new SelfDefensiveWind(this.powerEnhancement,this.potencyEnhancement,this.costEnhancement)); - } - - @Override - public void environmentalModificationSelf(SpellParadigmSelf parad) - { - parad.addSelfSpellEffect(new SelfEnvironmentalWind(this.powerEnhancement,this.potencyEnhancement,this.costEnhancement)); - } - - @Override - public void defaultModificationMelee(SpellParadigmMelee parad) - { - parad.addEntityEffect(new MeleeDefaultWind(this.powerEnhancement,this.potencyEnhancement,this.costEnhancement)); - } - - @Override - public void offensiveModificationMelee(SpellParadigmMelee parad) - { - parad.addEntityEffect(new MeleeOffensiveWind(this.powerEnhancement,this.potencyEnhancement,this.costEnhancement)); - } - - @Override - public void defensiveModificationMelee(SpellParadigmMelee parad) - { - parad.addEntityEffect(new MeleeDefensiveWind(this.powerEnhancement,this.potencyEnhancement,this.costEnhancement)); - } - - @Override - public void environmentalModificationMelee(SpellParadigmMelee parad) - { - parad.addWorldEffect(new MeleeEnvironmentalWind(this.powerEnhancement,this.potencyEnhancement,this.costEnhancement)); - } - - @Override - protected int getCostForDefaultProjectile() - { - return (int)(100*(this.potencyEnhancement+1)*Math.pow(0.85, costEnhancement)); - } - - @Override - protected int getCostForOffenseProjectile() - { - return (int)(100*(0.5*this.potencyEnhancement+1)*(this.powerEnhancement+1)*Math.pow(0.85, costEnhancement)); - } - - @Override - protected int getCostForDefenseProjectile() - { - return (int)(100*(this.potencyEnhancement+1)); - } - - @Override - protected int getCostForEnvironmentProjectile() - { - return (int)(50*(this.powerEnhancement+1)*(this.potencyEnhancement+1)*Math.pow(0.85, costEnhancement)); - } - - @Override - protected int getCostForDefaultSelf() - { - return (int)(100*Math.pow(0.85, costEnhancement)); - } - - @Override - protected int getCostForOffenseSelf() - { - return (int)(100*(0.5*this.powerEnhancement+1)*Math.pow(0.85, costEnhancement)); - } - - @Override - protected int getCostForDefenseSelf() - { - return (int)(500*(0.7d*this.powerEnhancement+1)*(0.8*this.potencyEnhancement+1)*Math.pow(0.85, costEnhancement)); - } - - @Override - protected int getCostForEnvironmentSelf() - { - return (int)(500*(0.7d*this.powerEnhancement+1)*(0.2*this.potencyEnhancement+1)*Math.pow(0.85, costEnhancement)); - } - - @Override - protected int getCostForDefaultMelee() - { - return (int)(350*(1.0*this.potencyEnhancement+1)*(1.2*this.powerEnhancement+1)*Math.pow(0.85, costEnhancement)); - } - - @Override - protected int getCostForOffenseMelee() - { - return (int)(250*(1.0*this.potencyEnhancement+1)*(0.7*this.powerEnhancement+1)*Math.pow(0.85, costEnhancement)); - } - - @Override - protected int getCostForDefenseMelee() - { - return (int)(150*(1.0*this.potencyEnhancement+1)*(0.7*this.powerEnhancement+1)*Math.pow(0.85, costEnhancement)); - } - - @Override - protected int getCostForEnvironmentMelee() - { - 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/main/java/WayofTime/alchemicalWizardry/common/spell/complex/effect/SpellHelper.java b/1.7.2/main/java/WayofTime/alchemicalWizardry/common/spell/complex/effect/SpellHelper.java deleted file mode 100644 index 3878d7b1..00000000 --- a/1.7.2/main/java/WayofTime/alchemicalWizardry/common/spell/complex/effect/SpellHelper.java +++ /dev/null @@ -1,381 +0,0 @@ -package WayofTime.alchemicalWizardry.common.spell.complex.effect; - -import java.util.ArrayList; -import java.util.List; -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; -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; -import net.minecraftforge.common.util.ForgeDirection; -import net.minecraftforge.oredict.OreDictionary; -import WayofTime.alchemicalWizardry.AlchemicalWizardry; -import WayofTime.alchemicalWizardry.api.soulNetwork.SoulNetworkHandler; -import WayofTime.alchemicalWizardry.common.NewPacketHandler; - -public class SpellHelper -{ - public static Random rand = new Random(); - public static final double root2 = Math.sqrt(2); - - public static void smeltBlockInWorld(World world, int posX, int posY, int posZ) - { - FurnaceRecipes recipes = FurnaceRecipes.smelting(); - - Block block = world.getBlock(posX, posY, posZ); - if(block==null) - { - return; - } - - int meta = world.getBlockMetadata(posX, posY, posZ); - - ItemStack smeltedStack = recipes.getSmeltingResult(new ItemStack(block,1,meta)); - if(smeltedStack!=null && smeltedStack.getItem() instanceof ItemBlock) - { - world.setBlock(posX, posY, posZ, ((ItemBlock)(smeltedStack.getItem())).field_150939_a, smeltedStack.getItemDamage(), 3); - } - } - - public static List getEntitiesInRange(World world, double posX, double posY, double posZ, double horizontalRadius, double verticalRadius) - { - 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)); - } - - public static double gaussian(double d) - { - return d * ((rand.nextFloat() - 0.5D)); - } - - public static Vec3 getEntityBlockVector(Entity entity) - { - int posX = (int) Math.round(entity.posX - 0.5f); - int posY = (int) entity.posY; - int posZ = (int) Math.round(entity.posZ - 0.5f); - - return entity.getLookVec().createVectorHelper(posX, posY, posZ); - } - - public static ForgeDirection getDirectionForLookVector(Vec3 lookVec) - { - double distance = lookVec.lengthVector(); - - if(lookVec.yCoord>distance*0.9) - { - return ForgeDirection.UP; - } - if(lookVec.yCoordradius*1/root2) - { - return ForgeDirection.SOUTH; - } - if(lookVec.zCoord<-radius*1/root2) - { - return ForgeDirection.NORTH; - } - if(lookVec.xCoord>radius*1/root2) - { - return ForgeDirection.EAST; - } - if(lookVec.xCoord<-radius*1/root2) - { - return ForgeDirection.WEST; - } - - return ForgeDirection.EAST; - } - - public static void freezeWaterBlock(World world, int posX, int posY, int posZ) - { - Block block = world.getBlock(posX, posY, posZ); - - if(block == Blocks.water || block == Blocks.flowing_water) - { - world.setBlock(posX, posY, posZ, Blocks.ice); - } - } - - public static String getUsername(EntityPlayer player) - { - return SoulNetworkHandler.getUsername(player); - } - - public static void sendParticleToPlayer(EntityPlayer player, String str, double xCoord, double yCoord, double zCoord, double xVel, double yVel, double zVel) - { - if(player instanceof EntityPlayerMP) - { - NewPacketHandler.INSTANCE.sendTo(NewPacketHandler.getParticlePacket(str, xCoord, yCoord, zCoord, xVel, yVel, zVel),(EntityPlayerMP) player); - } - } - - public static void sendIndexedParticleToPlayer(EntityPlayer player, int index, double xCoord, double yCoord, double zCoord) - { - switch(index) - { - case 1: - SpellHelper.sendParticleToPlayer(player, "mobSpell", xCoord + 0.5D + rand.nextGaussian() / 8, yCoord + 1.1D, zCoord + 0.5D + rand.nextGaussian() / 8, 0.5117D, 0.0117D, 0.0117D); - break; - case 2: - SpellHelper.sendParticleToPlayer(player, "reddust", xCoord + 0.5D + rand.nextGaussian() / 8, yCoord + 1.1D, zCoord + 0.5D + rand.nextGaussian() / 8, 0.82D, 0.941D, 0.91D); - break; - case 3: - SpellHelper.sendParticleToPlayer(player, "mobSpell", xCoord + 0.5D + rand.nextGaussian() / 8, yCoord + 1.1D, zCoord + 0.5D + rand.nextGaussian() / 8, 1.0D, 0.371D, 0.371D); - break; - case 4: - 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) - { - SpellHelper.sendParticleToPlayer(player,"reddust", xCoord + Math.random() - Math.random(), yCoord + Math.random() - Math.random(), zCoord + Math.random() - Math.random(), f1, f2, f3); - } - break; - } - } - - public static void sendParticleToAllAround(World world, double xPos, double yPos, double zPos, int radius, int dimension, String str, double xCoord, double yCoord, double zCoord, double xVel, double yVel, double zVel) - { - List entities = SpellHelper.getPlayersInRange(world, xPos, yPos, zPos, radius, radius); - - if(entities==null) - { - return; - } - - for(EntityPlayer player : entities) - { - SpellHelper.sendParticleToPlayer(player, str, xCoord, yCoord, zCoord, xVel, yVel, zVel); - } - } - - public static void sendIndexedParticleToAllAround(World world, double xPos, double yPos, double zPos, int radius, int dimension, int index, double xCoord, double yCoord, double zCoord) - { - List entities = SpellHelper.getPlayersInRange(world, xPos, yPos, zPos, radius, radius); - - if(entities==null) - { - return; - } - - for(EntityPlayer player : entities) - { - SpellHelper.sendIndexedParticleToPlayer(player, index, xCoord, yCoord, zCoord); - } - } - - public static void setPlayerSpeedFromServer(EntityPlayer player, double motionX, double motionY, double motionZ) - { - if(player instanceof EntityPlayerMP) - { - NewPacketHandler.INSTANCE.sendTo(NewPacketHandler.getVelSettingPacket(motionX, motionY, motionZ), (EntityPlayerMP) player); - } - } - - public static boolean isFakePlayer(World world, EntityPlayer player) - { - if(world.isRemote) - { - return false; - } - - if(player instanceof FakePlayer || SpellHelper.getUsername(player).contains("[CoFH]")) - { - return true; - } - - String str = player.getClass().getSimpleName(); - if(str.contains("GC")) - { - return false; - } - - if(player.getClass().equals(EntityPlayerMP.class)) - { - return false; - } - - return false; - } - - public static void smashBlock(World world, int posX, int posY, int posZ) - { - Block block = world.getBlock(posX, posY, posZ); - - if(block==Blocks.stone) - { - world.setBlock(posX, posY, posZ, Blocks.cobblestone); - return; - } - else if(block==Blocks.cobblestone) - { - world.setBlock(posX, posY, posZ, Blocks.gravel); - return; - } - else if(block==Blocks.gravel) - { - world.setBlock(posX, posY, posZ, Blocks.sand); - return; - } - } - - public static boolean isBlockFluid(Block block) - { - return block instanceof BlockLiquid; - } - - public static void evaporateWaterBlock(World world, int posX, int posY, int posZ) - { - Block block = world.getBlock(posX, posY, posZ); - - if(block == Blocks.water || block == Blocks.flowing_water) - { - world.setBlockToAir(posX, posY, posZ); - } - } - - public static ItemStack getDustForOre(ItemStack item) - { - String oreName = OreDictionary.getOreName(OreDictionary.getOreID(item)); - - if(oreName.contains("ore")) - { - String lowercaseOre = oreName.toLowerCase(); - boolean isAllowed = false; - - for(String str : AlchemicalWizardry.allowedCrushedOresArray) - { - String testStr = str.toLowerCase(); - - if(lowercaseOre.contains(testStr)) - { - isAllowed = true; - break; - } - } - - if(!isAllowed) - { - return null; - } - - String dustName = oreName.replace("ore", "dust"); - - ArrayList items = OreDictionary.getOres(dustName); - - if(items!=null && items.size()>=1) - { - return(items.get(0).copy()); - } - } - - 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/main/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 deleted file mode 100644 index 7e48b5a8..00000000 --- a/1.7.2/main/java/WayofTime/alchemicalWizardry/common/spell/complex/effect/impactEffects/ExtrapolatedMeleeEntityEffect.java +++ /dev/null @@ -1,74 +0,0 @@ -package WayofTime.alchemicalWizardry.common.spell.complex.effect.impactEffects; - -import java.util.List; - -import net.minecraft.entity.Entity; -import net.minecraft.entity.item.EntityItem; -import net.minecraft.entity.player.EntityPlayer; -import net.minecraft.util.AxisAlignedBB; -import net.minecraft.util.Vec3; -import net.minecraft.world.World; - -public abstract class ExtrapolatedMeleeEntityEffect implements IMeleeSpellEntityEffect -{ - protected float range; - protected float radius; - protected int powerUpgrades; - protected int potencyUpgrades; - protected int costUpgrades; - protected int maxHit; - - public ExtrapolatedMeleeEntityEffect(int power, int potency, int cost) - { - this.powerUpgrades = power; - this.potencyUpgrades = potency; - this.costUpgrades = cost; - this.range = 0; - this.radius = 0; - this.maxHit = 1; - } - - @Override - public void onEntityImpact(World world, EntityPlayer entityPlayer) - { - Vec3 lookVec = entityPlayer.getLook(range); - double x = entityPlayer.posX + lookVec.xCoord; - double y = entityPlayer.posY + entityPlayer.getEyeHeight() + lookVec.yCoord; - double z = entityPlayer.posZ + lookVec.zCoord; - - List entities = world.getEntitiesWithinAABB(Entity.class, AxisAlignedBB.getBoundingBox(x-0.5f, y-0.5f, z-0.5f, x + 0.5f, y + 0.5f, z + 0.5f).expand(radius, radius, radius)); - int hit = 0; - - if(entities!=null) - { - for(Entity entity : entities) - { - if(hit=maxBlocks) - { - return; - } - - for(int i=-horizRange; i<=horizRange; i++) - { - for(int j=-vertRange; j<=vertRange; j++) - { - for(int k=-horizRange; k<=horizRange; k++) - { - if(!worldObj.isAirBlock(posX+i, posY+j, posZ+k)&&blocksBroken=-vertRange; j--) - { - if(!world.isAirBlock(posX+i, posY+j, posZ+k)&&!SpellHelper.isBlockFluid(world.getBlock(posX+i, posY+j, posZ+k))) - { - BlockTeleposer.swapBlocks(world, world, posX+i, posY, posZ+k, posX+i, posY+j, posZ+k); - - break; - } - } - } - } - } -} diff --git a/1.7.2/main/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 deleted file mode 100644 index d0053320..00000000 --- a/1.7.2/main/java/WayofTime/alchemicalWizardry/common/spell/complex/effect/impactEffects/earth/SelfDefensiveEarth.java +++ /dev/null @@ -1,27 +0,0 @@ -package WayofTime.alchemicalWizardry.common.spell.complex.effect.impactEffects.earth; - -import net.minecraft.entity.player.EntityPlayer; -import net.minecraft.potion.Potion; -import net.minecraft.potion.PotionEffect; -import net.minecraft.world.World; -import WayofTime.alchemicalWizardry.AlchemicalWizardry; -import WayofTime.alchemicalWizardry.common.spell.complex.effect.impactEffects.SelfSpellEffect; - -public class SelfDefensiveEarth extends SelfSpellEffect -{ - - public SelfDefensiveEarth(int power, int potency, int cost) - { - super(power, potency, cost); - } - - @Override - public void onSelfUse(World world, EntityPlayer player) - { - int pot = 2*this.potencyUpgrades + 1; - int duration = 20*60*(this.powerUpgrades+1); - - player.addPotionEffect(new PotionEffect(Potion.field_76434_w.id,duration, pot)); - player.addPotionEffect(new PotionEffect(AlchemicalWizardry.customPotionHeavyHeart.id, duration, pot)); - } -} diff --git a/1.7.2/main/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 deleted file mode 100644 index d73381ee..00000000 --- a/1.7.2/main/java/WayofTime/alchemicalWizardry/common/spell/complex/effect/impactEffects/earth/SelfEnvironmentalEarth.java +++ /dev/null @@ -1,37 +0,0 @@ -package WayofTime.alchemicalWizardry.common.spell.complex.effect.impactEffects.earth; - -import java.util.List; - -import net.minecraft.entity.Entity; -import net.minecraft.entity.EntityLiving; -import net.minecraft.entity.player.EntityPlayer; -import net.minecraft.potion.Potion; -import net.minecraft.potion.PotionEffect; -import net.minecraft.world.World; -import WayofTime.alchemicalWizardry.common.spell.complex.effect.SpellHelper; -import WayofTime.alchemicalWizardry.common.spell.complex.effect.impactEffects.SelfSpellEffect; - -public class SelfEnvironmentalEarth extends SelfSpellEffect -{ - public SelfEnvironmentalEarth(int power, int potency, int cost) - { - super(power, potency, cost); - } - - @Override - public void onSelfUse(World world, EntityPlayer player) - { - float radius = this.powerUpgrades*2 + 1.5f; - int dur = this.powerUpgrades*5*20 + 60; - - List entities = SpellHelper.getEntitiesInRange(world, player.posX, player.posY, player.posZ, radius, radius); - - for(Entity entity : entities) - { - if(entity instanceof EntityLiving) - { - ((EntityLiving) entity).addPotionEffect(new PotionEffect(Potion.weakness.id,dur,this.potencyUpgrades)); - } - } - } -} diff --git a/1.7.2/main/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 deleted file mode 100644 index 6637e9d8..00000000 --- a/1.7.2/main/java/WayofTime/alchemicalWizardry/common/spell/complex/effect/impactEffects/earth/SelfOffensiveEarth.java +++ /dev/null @@ -1,43 +0,0 @@ -package WayofTime.alchemicalWizardry.common.spell.complex.effect.impactEffects.earth; - -import net.minecraft.entity.player.EntityPlayer; -import net.minecraft.util.Vec3; -import net.minecraft.world.World; -import WayofTime.alchemicalWizardry.common.spell.complex.effect.SpellHelper; -import WayofTime.alchemicalWizardry.common.spell.complex.effect.impactEffects.SelfSpellEffect; - -public class SelfOffensiveEarth extends SelfSpellEffect -{ - - public SelfOffensiveEarth(int power, int potency, int cost) - { - super(power, potency, cost); - } - - @Override - public void onSelfUse(World world, EntityPlayer player) - { - int horizRadius = this.powerUpgrades; - int vertRadius = this.potencyUpgrades + 1; - - Vec3 blockVec = SpellHelper.getEntityBlockVector(player); - - int posX = (int)(blockVec.xCoord); - int posY = (int)(blockVec.yCoord); - int posZ = (int)(blockVec.zCoord); - - for(int i=-horizRadius; i<=horizRadius; i++) - { - for(int j=-vertRadius; j<0; j++) - { - for(int k=-horizRadius; k<=horizRadius; k++) - { - if(world.rand.nextFloat()<0.7f) - { - SpellHelper.smashBlock(world, posX+i, posY+j, posZ+k); - } - } - } - } - } -} 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 deleted file mode 100644 index a3ee9ce2..00000000 --- a/1.7.2/main/java/WayofTime/alchemicalWizardry/common/spell/complex/effect/impactEffects/earth/ToolEnvironmentalEarth.java +++ /dev/null @@ -1,86 +0,0 @@ -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 = this.powerUpgrades + 1; - int depth = 1 + this.potencyUpgrades * 2; - - 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/main/java/WayofTime/alchemicalWizardry/common/spell/complex/effect/impactEffects/earth/ToolOffensiveEarth.java b/1.7.2/main/java/WayofTime/alchemicalWizardry/common/spell/complex/effect/impactEffects/earth/ToolOffensiveEarth.java deleted file mode 100644 index 240bef61..00000000 --- a/1.7.2/main/java/WayofTime/alchemicalWizardry/common/spell/complex/effect/impactEffects/earth/ToolOffensiveEarth.java +++ /dev/null @@ -1,58 +0,0 @@ -package WayofTime.alchemicalWizardry.common.spell.complex.effect.impactEffects.earth; - - -import java.util.LinkedList; -import java.util.List; - - -import net.minecraft.block.Block; -import net.minecraft.init.Blocks; -import net.minecraft.item.ItemBlock; -import net.minecraft.item.ItemStack; -import WayofTime.alchemicalWizardry.common.spell.complex.effect.impactEffects.tool.ItemManipulator; - - -public class ToolOffensiveEarth extends ItemManipulator -{ - public static Block[] mundaneList = new Block[]{Blocks.stone,Blocks.cobblestone,Blocks.sand,Blocks.gravel,Blocks.netherrack,Blocks.dirt}; - - - public ToolOffensiveEarth(int power, int potency, int cost) - { - super(power, potency, cost); - } - - - @Override - public List handleItemsOnBlockBroken(ItemStack toolStack, List itemList) - { - List newList = new LinkedList(); - - - for(ItemStack stack : itemList) - { - if(stack != null && stack.getItem() instanceof ItemBlock && !this.isMundaneBlock(((ItemBlock)stack.getItem()).field_150939_a)) - { - newList.add(stack); - } - } - - - return newList; - } - - - public boolean isMundaneBlock(Block block) - { - for(Block test : mundaneList) - { - if(test.equals(block)) - { - return true; - } - } - - - return false; - } -} diff --git a/1.7.2/main/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 deleted file mode 100644 index af369dea..00000000 --- a/1.7.2/main/java/WayofTime/alchemicalWizardry/common/spell/complex/effect/impactEffects/fire/MeleeDefaultFire.java +++ /dev/null @@ -1,30 +0,0 @@ -package WayofTime.alchemicalWizardry.common.spell.complex.effect.impactEffects.fire; - -import net.minecraft.entity.Entity; -import net.minecraft.entity.EntityLiving; -import net.minecraft.entity.player.EntityPlayer; -import net.minecraft.world.World; -import WayofTime.alchemicalWizardry.common.spell.complex.effect.impactEffects.ExtrapolatedMeleeEntityEffect; - -public class MeleeDefaultFire extends ExtrapolatedMeleeEntityEffect -{ - public MeleeDefaultFire(int power, int potency, int cost) - { - super(power, potency, cost); - this.setRange(3+0.3f*potency); - this.setRadius(2+0.3f*potency); - this.setMaxNumberHit(potency+1); - } - - @Override - protected boolean entityEffect(World world, Entity entity, EntityPlayer entityPlayer) - { - if(entity instanceof EntityLiving) - { - entity.setFire(3*this.powerUpgrades+3); - return true; - } - - return false; - } -} diff --git a/1.7.2/main/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 deleted file mode 100644 index 3fb3d275..00000000 --- a/1.7.2/main/java/WayofTime/alchemicalWizardry/common/spell/complex/effect/impactEffects/fire/MeleeDefensiveFire.java +++ /dev/null @@ -1,49 +0,0 @@ -package WayofTime.alchemicalWizardry.common.spell.complex.effect.impactEffects.fire; - -import net.minecraft.entity.player.EntityPlayer; -import net.minecraft.init.Blocks; -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.MeleeSpellWorldEffect; - -public class MeleeDefensiveFire extends MeleeSpellWorldEffect -{ - public MeleeDefensiveFire(int power, int potency, int cost) - { - super(power, potency, cost); - } - - @Override - public void onWorldEffect(World world, EntityPlayer entityPlayer) - { - ForgeDirection look = SpellHelper.getCompassDirectionForLookVector(entityPlayer.getLookVec()); - - int width = this.potencyUpgrades + 1; - int length = 5*this.powerUpgrades + 3; - - int xOffset = look.offsetX; - int zOffset = look.offsetZ; - - Vec3 lookVec = SpellHelper.getEntityBlockVector(entityPlayer); - - int xStart = (int)(lookVec.xCoord)+1*xOffset; - int zStart = (int)(lookVec.zCoord)+1*zOffset; - int yStart = (int)(lookVec.yCoord)-1; - - for(int i=-width; i<=width; i++) - { - for(int j=0; j 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/ToolEnvironmentalFire.java b/1.7.2/main/java/WayofTime/alchemicalWizardry/common/spell/complex/effect/impactEffects/fire/ToolEnvironmentalFire.java deleted file mode 100644 index cfa1aa8b..00000000 --- a/1.7.2/main/java/WayofTime/alchemicalWizardry/common/spell/complex/effect/impactEffects/fire/ToolEnvironmentalFire.java +++ /dev/null @@ -1,47 +0,0 @@ -package WayofTime.alchemicalWizardry.common.spell.complex.effect.impactEffects.fire; - -import java.util.Random; - -import net.minecraft.block.Block; -import net.minecraft.entity.player.EntityPlayer; -import net.minecraft.init.Blocks; -import net.minecraft.item.ItemStack; -import net.minecraft.world.World; -import net.minecraftforge.common.util.ForgeDirection; -import WayofTime.alchemicalWizardry.common.spell.complex.effect.impactEffects.tool.OnBreakBlockEffect; - -public class ToolEnvironmentalFire extends OnBreakBlockEffect -{ - public ToolEnvironmentalFire(int power, int potency, int cost) - { - super(power, potency, cost); - } - - @Override - public int onBlockBroken(ItemStack container, World world, EntityPlayer player, Block block, int meta, int x, int y, int z, ForgeDirection sideBroken) - { - int amount = 0; - int cost = (int)(250 * (1 - 0.1f*powerUpgrades) * Math.pow(0.85, costUpgrades)); - int radius = this.powerUpgrades; - float chance = 0.35f + 0.15f*this.potencyUpgrades; - - for(int i=-radius; i<=radius; i++) - { - for(int j=-radius; j<=radius; j++) - { - for(int k=-radius; k<=radius; k++) - { - Block blockAffected = world.getBlock(x + i -sideBroken.offsetX, y + j, z + k - sideBroken.offsetZ); - - if((new Random().nextFloat() <= chance) && (blockAffected == Blocks.gravel || blockAffected == Blocks.stone || blockAffected == Blocks.cobblestone)) - { - world.setBlock(x + i -sideBroken.offsetX, y + j, z + k - sideBroken.offsetZ, Blocks.lava); - amount += cost; - } - } - } - } - - return amount; - } -} diff --git a/1.7.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 deleted file mode 100644 index 40a59bf0..00000000 --- a/1.7.2/main/java/WayofTime/alchemicalWizardry/common/spell/complex/effect/impactEffects/fire/ToolOffensiveFire.java +++ /dev/null @@ -1,21 +0,0 @@ -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/main/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 deleted file mode 100644 index 7992509e..00000000 --- a/1.7.2/main/java/WayofTime/alchemicalWizardry/common/spell/complex/effect/impactEffects/ice/MeleeDefaultIce.java +++ /dev/null @@ -1,28 +0,0 @@ -package WayofTime.alchemicalWizardry.common.spell.complex.effect.impactEffects.ice; - -import net.minecraft.entity.Entity; -import net.minecraft.entity.player.EntityPlayer; -import net.minecraft.world.World; -import WayofTime.alchemicalWizardry.common.spell.complex.effect.impactEffects.ExtrapolatedMeleeEntityEffect; - -public class MeleeDefaultIce extends ExtrapolatedMeleeEntityEffect { - - public MeleeDefaultIce(int power, int potency, int cost) - { - super(power, potency, cost); - this.setRange(3+0.3f*potency); - this.setRadius(2+0.3f*potency); - this.setMaxNumberHit(potency+1); - } - - @Override - protected boolean entityEffect(World world, Entity entity, EntityPlayer entityPlayer) - { - if(entity.hurtResistantTime>0) - { - entity.hurtResistantTime = Math.max(0, -(potencyUpgrades+1)+entity.hurtResistantTime); - } - - return true; - } -} diff --git a/1.7.2/main/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 deleted file mode 100644 index 03471ca7..00000000 --- a/1.7.2/main/java/WayofTime/alchemicalWizardry/common/spell/complex/effect/impactEffects/ice/MeleeDefensiveIce.java +++ /dev/null @@ -1,48 +0,0 @@ -package WayofTime.alchemicalWizardry.common.spell.complex.effect.impactEffects.ice; - -import net.minecraft.entity.player.EntityPlayer; -import net.minecraft.init.Blocks; -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.MeleeSpellWorldEffect; - -public class MeleeDefensiveIce extends MeleeSpellWorldEffect -{ - public MeleeDefensiveIce(int power, int potency, int cost) - { - super(power, potency, cost); - } - - @Override - public void onWorldEffect(World world, EntityPlayer entityPlayer) - { - ForgeDirection look = SpellHelper.getCompassDirectionForLookVector(entityPlayer.getLookVec()); - - int width = this.powerUpgrades; - int height = this.powerUpgrades + 2; - - int xOffset = look.offsetX; - int zOffset = look.offsetZ; - - int range = this.potencyUpgrades + 1; - - Vec3 lookVec = SpellHelper.getEntityBlockVector(entityPlayer); - - int xStart = (int)(lookVec.xCoord) + range * xOffset; - int zStart = (int)(lookVec.zCoord) + range * zOffset; - int yStart = (int)(lookVec.yCoord); - - for(int i=-width; i<=width; i++) - { - for(int j=0; j entities = SpellHelper.getEntitiesInRange(world, player.posX, player.posY, player.posZ,horizRadius, vertRadius); - - if(entities==null) - { - return; - } - - int i=0; - int number = this.powerUpgrades+1; - - for(Entity entity : entities) - { - if(i>=number) - { - continue; - } - - if(entity instanceof EntityLivingBase && !entity.equals(player)) - { - ((EntityLivingBase) entity).addPotionEffect(new PotionEffect(Potion.moveSlowdown.id,60*(1+this.powerUpgrades),this.potencyUpgrades)); - - i++; - } - } - } -} diff --git a/1.7.2/main/java/WayofTime/alchemicalWizardry/common/spell/complex/effect/impactEffects/ice/ToolDefaultIce.java b/1.7.2/main/java/WayofTime/alchemicalWizardry/common/spell/complex/effect/impactEffects/ice/ToolDefaultIce.java deleted file mode 100644 index 295ed906..00000000 --- a/1.7.2/main/java/WayofTime/alchemicalWizardry/common/spell/complex/effect/impactEffects/ice/ToolDefaultIce.java +++ /dev/null @@ -1,30 +0,0 @@ -package WayofTime.alchemicalWizardry.common.spell.complex.effect.impactEffects.ice; - - -import net.minecraft.entity.EntityLivingBase; -import net.minecraft.item.ItemStack; -import net.minecraft.potion.Potion; -import net.minecraft.potion.PotionEffect; -import WayofTime.alchemicalWizardry.common.spell.complex.effect.impactEffects.tool.LeftClickEffect; - - -public class ToolDefaultIce extends LeftClickEffect -{ - public ToolDefaultIce(int power, int potency, int cost) - { - super(power, potency, cost); - } - - - @Override - public int onLeftClickEntity(ItemStack stack, EntityLivingBase attacked, EntityLivingBase weilder) - { - int duration = 200; - - - attacked.addPotionEffect(new PotionEffect(Potion.moveSlowdown.id,duration,this.powerUpgrades)); - - - return 0; - } -} 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 deleted file mode 100644 index 8cf4bc63..00000000 --- a/1.7.2/main/java/WayofTime/alchemicalWizardry/common/spell/complex/effect/impactEffects/ice/ToolDefensiveIce.java +++ /dev/null @@ -1,62 +0,0 @@ -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.potencyUpgrades * 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 deleted file mode 100644 index c1e9511f..00000000 --- a/1.7.2/main/java/WayofTime/alchemicalWizardry/common/spell/complex/effect/impactEffects/tool/DigAreaEffect.java +++ /dev/null @@ -1,138 +0,0 @@ -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 deleted file mode 100644 index 323ab050..00000000 --- a/1.7.2/main/java/WayofTime/alchemicalWizardry/common/spell/complex/effect/impactEffects/tool/DigAreaTunnel.java +++ /dev/null @@ -1,171 +0,0 @@ -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 deleted file mode 100644 index 8e993b49..00000000 --- a/1.7.2/main/java/WayofTime/alchemicalWizardry/common/spell/complex/effect/impactEffects/tool/IDigAreaEffect.java +++ /dev/null @@ -1,12 +0,0 @@ -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 deleted file mode 100644 index 4df354e2..00000000 --- a/1.7.2/main/java/WayofTime/alchemicalWizardry/common/spell/complex/effect/impactEffects/tool/IItemManipulator.java +++ /dev/null @@ -1,10 +0,0 @@ -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 deleted file mode 100644 index 64ee0ce9..00000000 --- a/1.7.2/main/java/WayofTime/alchemicalWizardry/common/spell/complex/effect/impactEffects/tool/ILeftClickEffect.java +++ /dev/null @@ -1,11 +0,0 @@ -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 deleted file mode 100644 index d734154a..00000000 --- a/1.7.2/main/java/WayofTime/alchemicalWizardry/common/spell/complex/effect/impactEffects/tool/IOnBanishTool.java +++ /dev/null @@ -1,10 +0,0 @@ -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 deleted file mode 100644 index 0bb58be6..00000000 --- a/1.7.2/main/java/WayofTime/alchemicalWizardry/common/spell/complex/effect/impactEffects/tool/IOnBreakBlock.java +++ /dev/null @@ -1,12 +0,0 @@ -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 deleted file mode 100644 index 612e23c8..00000000 --- a/1.7.2/main/java/WayofTime/alchemicalWizardry/common/spell/complex/effect/impactEffects/tool/IOnSummonTool.java +++ /dev/null @@ -1,10 +0,0 @@ -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 deleted file mode 100644 index 9bd8db88..00000000 --- a/1.7.2/main/java/WayofTime/alchemicalWizardry/common/spell/complex/effect/impactEffects/tool/IRightClickEffect.java +++ /dev/null @@ -1,15 +0,0 @@ -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 deleted file mode 100644 index 3882fd6c..00000000 --- a/1.7.2/main/java/WayofTime/alchemicalWizardry/common/spell/complex/effect/impactEffects/tool/ISpecialDamageEffect.java +++ /dev/null @@ -1,10 +0,0 @@ -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 deleted file mode 100644 index ffb0d6cf..00000000 --- a/1.7.2/main/java/WayofTime/alchemicalWizardry/common/spell/complex/effect/impactEffects/tool/IToolUpdateEffect.java +++ /dev/null @@ -1,10 +0,0 @@ -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 deleted file mode 100644 index 079b7e98..00000000 --- a/1.7.2/main/java/WayofTime/alchemicalWizardry/common/spell/complex/effect/impactEffects/tool/ItemManipulator.java +++ /dev/null @@ -1,22 +0,0 @@ -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 deleted file mode 100644 index 63e0629a..00000000 --- a/1.7.2/main/java/WayofTime/alchemicalWizardry/common/spell/complex/effect/impactEffects/tool/LeftClickEffect.java +++ /dev/null @@ -1,21 +0,0 @@ -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 deleted file mode 100644 index d8521990..00000000 --- a/1.7.2/main/java/WayofTime/alchemicalWizardry/common/spell/complex/effect/impactEffects/tool/OnBreakBlockEffect.java +++ /dev/null @@ -1,21 +0,0 @@ -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 deleted file mode 100644 index e047b01a..00000000 --- a/1.7.2/main/java/WayofTime/alchemicalWizardry/common/spell/complex/effect/impactEffects/tool/RightClickEffect.java +++ /dev/null @@ -1,15 +0,0 @@ -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 deleted file mode 100644 index 6f300afb..00000000 --- a/1.7.2/main/java/WayofTime/alchemicalWizardry/common/spell/complex/effect/impactEffects/tool/RightClickTunnel.java +++ /dev/null @@ -1,177 +0,0 @@ -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 deleted file mode 100644 index e8bb04a4..00000000 --- a/1.7.2/main/java/WayofTime/alchemicalWizardry/common/spell/complex/effect/impactEffects/tool/SummonToolEffect.java +++ /dev/null @@ -1,15 +0,0 @@ -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/main/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 deleted file mode 100644 index 31b324ef..00000000 --- a/1.7.2/main/java/WayofTime/alchemicalWizardry/common/spell/complex/effect/impactEffects/wind/MeleeDefaultWind.java +++ /dev/null @@ -1,40 +0,0 @@ -package WayofTime.alchemicalWizardry.common.spell.complex.effect.impactEffects.wind; - -import net.minecraft.entity.Entity; -import net.minecraft.entity.EntityLiving; -import net.minecraft.entity.player.EntityPlayer; -import net.minecraft.world.World; -import WayofTime.alchemicalWizardry.common.spell.complex.effect.impactEffects.ExtrapolatedMeleeEntityEffect; - -public class MeleeDefaultWind extends ExtrapolatedMeleeEntityEffect -{ - public MeleeDefaultWind(int power, int potency, int cost) - { - super(power, potency, cost); - this.setRange(4+2.0f*potency); - this.setRadius(4+2.0f*potency); - this.setMaxNumberHit(potency+1); - } - - @Override - protected boolean entityEffect(World world, Entity entity, EntityPlayer player) - { - double wantedVel = -(0.5d+0.7d*this.powerUpgrades); - - if(entity instanceof EntityLiving) - { - double dist = Math.sqrt(entity.getDistanceToEntity(player)); - double xVel = wantedVel*(entity.posX - player.posX)/dist; - double yVel = wantedVel*(entity.posY - player.posY)/dist; - double zVel = wantedVel*(entity.posZ - player.posZ)/dist; - - entity.motionX = xVel; - entity.motionY = yVel; - entity.motionZ = zVel; - - return true; - } - - return false; - } -} diff --git a/1.7.2/main/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 deleted file mode 100644 index 5f146e25..00000000 --- a/1.7.2/main/java/WayofTime/alchemicalWizardry/common/spell/complex/effect/impactEffects/wind/MeleeDefensiveWind.java +++ /dev/null @@ -1,33 +0,0 @@ -package WayofTime.alchemicalWizardry.common.spell.complex.effect.impactEffects.wind; - -import net.minecraft.entity.Entity; -import net.minecraft.entity.EntityLiving; -import net.minecraft.entity.player.EntityPlayer; -import net.minecraft.world.World; -import WayofTime.alchemicalWizardry.common.spell.complex.effect.impactEffects.ExtrapolatedMeleeEntityEffect; - -public class MeleeDefensiveWind extends ExtrapolatedMeleeEntityEffect -{ - public MeleeDefensiveWind(int power, int potency, int cost) - { - super(power, potency, cost); - this.setRange(3+0.3f*potency); - this.setRadius(2+0.3f*potency); - this.setMaxNumberHit(potency+1); - } - - @Override - protected boolean entityEffect(World world, Entity entity, EntityPlayer player) - { - double wantedVel = 0.5d+0.5d*this.powerUpgrades; - - if(entity instanceof EntityLiving) - { - entity.motionY = wantedVel; - - return true; - } - - return false; - } -} diff --git a/1.7.2/main/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 deleted file mode 100644 index 2eed2c73..00000000 --- a/1.7.2/main/java/WayofTime/alchemicalWizardry/common/spell/complex/effect/impactEffects/wind/MeleeEnvironmentalWind.java +++ /dev/null @@ -1,36 +0,0 @@ -package WayofTime.alchemicalWizardry.common.spell.complex.effect.impactEffects.wind; - -import java.util.List; - -import net.minecraft.entity.Entity; -import net.minecraft.entity.item.EntityItem; -import net.minecraft.entity.player.EntityPlayer; -import net.minecraft.world.World; -import WayofTime.alchemicalWizardry.common.spell.complex.effect.SpellHelper; -import WayofTime.alchemicalWizardry.common.spell.complex.effect.impactEffects.MeleeSpellCenteredWorldEffect; - -public class MeleeEnvironmentalWind extends MeleeSpellCenteredWorldEffect -{ - public MeleeEnvironmentalWind(int power, int potency, int cost) - { - super(power, potency, cost); - this.setRange(5*power + 5); - } - - @Override - public void onCenteredWorldEffect(EntityPlayer player, World world, int posX, int posY, int posZ) - { - int radius = 5*this.potencyUpgrades + 3; - - List entities = SpellHelper.getEntitiesInRange(world, posX, posY, posZ, radius, radius); - - for(Entity entity : entities) - { - if(entity instanceof EntityItem) - { - ((EntityItem)entity).delayBeforeCanPickup = 0; - entity.onCollideWithPlayer((EntityPlayer)player); - } - } - } -} diff --git a/1.7.2/main/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 deleted file mode 100644 index dd283246..00000000 --- a/1.7.2/main/java/WayofTime/alchemicalWizardry/common/spell/complex/effect/impactEffects/wind/MeleeOffensiveWind.java +++ /dev/null @@ -1,40 +0,0 @@ -package WayofTime.alchemicalWizardry.common.spell.complex.effect.impactEffects.wind; - -import net.minecraft.entity.Entity; -import net.minecraft.entity.EntityLiving; -import net.minecraft.entity.player.EntityPlayer; -import net.minecraft.world.World; -import WayofTime.alchemicalWizardry.common.spell.complex.effect.impactEffects.ExtrapolatedMeleeEntityEffect; - -public class MeleeOffensiveWind extends ExtrapolatedMeleeEntityEffect -{ - public MeleeOffensiveWind(int power, int potency, int cost) - { - super(power, potency, cost); - this.setRange(3+0.3f*potency); - this.setRadius(2+0.3f*potency); - this.setMaxNumberHit(potency+1); - } - - @Override - protected boolean entityEffect(World world, Entity entity, EntityPlayer player) - { - double wantedVel = 1.0d+1.0d*this.powerUpgrades; - - if(entity instanceof EntityLiving) - { - double dist = Math.sqrt(entity.getDistanceToEntity(player)); - double xVel = wantedVel*(entity.posX - player.posX)/dist; - double yVel = wantedVel*(entity.posY - player.posY+0.5f)/dist; - double zVel = wantedVel*(entity.posZ - player.posZ)/dist; - - entity.motionX = xVel; - entity.motionY = yVel; - entity.motionZ = zVel; - - return true; - } - - return false; - } -} diff --git a/1.7.2/main/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 deleted file mode 100644 index a50dcbd3..00000000 --- a/1.7.2/main/java/WayofTime/alchemicalWizardry/common/spell/complex/effect/impactEffects/wind/ProjectileDefaultWind.java +++ /dev/null @@ -1,33 +0,0 @@ -package WayofTime.alchemicalWizardry.common.spell.complex.effect.impactEffects.wind; - -import net.minecraft.entity.Entity; -import net.minecraft.entity.EntityLiving; -import net.minecraft.potion.PotionEffect; -import net.minecraft.util.MovingObjectPosition; -import net.minecraft.world.World; -import WayofTime.alchemicalWizardry.AlchemicalWizardry; -import WayofTime.alchemicalWizardry.common.spell.complex.effect.impactEffects.ProjectileImpactEffect; - -public class ProjectileDefaultWind extends ProjectileImpactEffect -{ - public ProjectileDefaultWind(int power, int potency, int cost) - { - super(power, potency, cost); - } - - @Override - public void onEntityImpact(Entity mop, Entity proj) - { - float wantedYVel = (float)((0.5)*(0.5*this.potencyUpgrades + 1)); - - mop.motionX = proj.motionX; - mop.motionY = mop.motionY += wantedYVel; - mop.motionZ = proj.motionZ; - } - - @Override - public void onTileImpact(World world, MovingObjectPosition mop) - { - return; - } -} diff --git a/1.7.2/main/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 deleted file mode 100644 index e1871678..00000000 --- a/1.7.2/main/java/WayofTime/alchemicalWizardry/common/spell/complex/effect/impactEffects/wind/ProjectileEnvironmentalWind.java +++ /dev/null @@ -1,53 +0,0 @@ -package WayofTime.alchemicalWizardry.common.spell.complex.effect.impactEffects.wind; - -import java.util.List; - -import net.minecraft.entity.Entity; -import net.minecraft.entity.item.EntityItem; -import net.minecraft.entity.player.EntityPlayer; -import net.minecraft.util.Vec3; -import net.minecraft.world.World; -import WayofTime.alchemicalWizardry.common.spell.complex.EntitySpellProjectile; -import WayofTime.alchemicalWizardry.common.spell.complex.effect.SpellHelper; -import WayofTime.alchemicalWizardry.common.spell.complex.effect.impactEffects.ProjectileUpdateEffect; - -public class ProjectileEnvironmentalWind extends ProjectileUpdateEffect -{ - public ProjectileEnvironmentalWind(int power, int potency, int cost) - { - super(power, potency, cost); - } - - @Override - public void onUpdateEffect(Entity projectile) - { - Vec3 posVec = SpellHelper.getEntityBlockVector(projectile); - - int horizRange = this.powerUpgrades+1; - int vertRange = 1*this.potencyUpgrades+1; - - World worldObj = projectile.worldObj; - - if(projectile instanceof EntitySpellProjectile) - { - Entity shooter = ((EntitySpellProjectile) projectile).shootingEntity; - if(shooter instanceof EntityPlayer) - { - List entitylist = SpellHelper.getEntitiesInRange(worldObj, projectile.posX, projectile.posY, projectile.posZ, horizRange, vertRange); - if(entitylist !=null) - { - for(Entity entity : entitylist) - { - if(entity instanceof EntityItem) - { - ((EntityItem)entity).delayBeforeCanPickup = 0; - entity.onCollideWithPlayer((EntityPlayer)shooter); - } - } - } - } - } - - - } -} diff --git a/1.7.2/main/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 deleted file mode 100644 index 661fa367..00000000 --- a/1.7.2/main/java/WayofTime/alchemicalWizardry/common/spell/complex/effect/impactEffects/wind/ProjectileOffensiveWind.java +++ /dev/null @@ -1,33 +0,0 @@ -package WayofTime.alchemicalWizardry.common.spell.complex.effect.impactEffects.wind; - -import net.minecraft.entity.Entity; -import net.minecraft.entity.EntityLiving; -import net.minecraft.potion.PotionEffect; -import net.minecraft.util.MovingObjectPosition; -import net.minecraft.world.World; -import WayofTime.alchemicalWizardry.AlchemicalWizardry; -import WayofTime.alchemicalWizardry.common.spell.complex.effect.impactEffects.ProjectileImpactEffect; - -public class ProjectileOffensiveWind extends ProjectileImpactEffect -{ - - public ProjectileOffensiveWind(int power, int potency, int cost) - { - super(power, potency, cost); - } - - @Override - public void onEntityImpact(Entity mop, Entity proj) - { - if(mop instanceof EntityLiving) - { - ((EntityLiving) mop).addPotionEffect(new PotionEffect(AlchemicalWizardry.customPotionHeavyHeart.id,(int)(100*(2*this.powerUpgrades+1)*(1/(this.potencyUpgrades+1))),this.potencyUpgrades)); - } - } - - @Override - public void onTileImpact(World world, MovingObjectPosition mop) - { - return; - } -} diff --git a/1.7.2/main/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 deleted file mode 100644 index 3e13568a..00000000 --- a/1.7.2/main/java/WayofTime/alchemicalWizardry/common/spell/complex/effect/impactEffects/wind/SelfDefaultWind.java +++ /dev/null @@ -1,27 +0,0 @@ -package WayofTime.alchemicalWizardry.common.spell.complex.effect.impactEffects.wind; - -import java.util.List; - -import net.minecraft.entity.Entity; -import net.minecraft.entity.EntityLiving; -import net.minecraft.entity.player.EntityPlayer; -import net.minecraft.potion.PotionEffect; -import net.minecraft.world.World; -import WayofTime.alchemicalWizardry.AlchemicalWizardry; -import WayofTime.alchemicalWizardry.common.spell.complex.effect.SpellHelper; -import WayofTime.alchemicalWizardry.common.spell.complex.effect.impactEffects.SelfSpellEffect; - -public class SelfDefaultWind extends SelfSpellEffect -{ - public SelfDefaultWind(int power, int potency, int cost) - { - super(power, potency, cost); - } - - @Override - public void onSelfUse(World world, EntityPlayer player) - { - player.extinguish(); - player.fallDistance = 0; - } -} diff --git a/1.7.2/main/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 deleted file mode 100644 index 125ef17d..00000000 --- a/1.7.2/main/java/WayofTime/alchemicalWizardry/common/spell/complex/effect/impactEffects/wind/SelfDefensiveWind.java +++ /dev/null @@ -1,39 +0,0 @@ -package WayofTime.alchemicalWizardry.common.spell.complex.effect.impactEffects.wind; - -import java.util.List; - -import net.minecraft.entity.Entity; -import net.minecraft.entity.EntityLiving; -import net.minecraft.entity.player.EntityPlayer; -import net.minecraft.potion.PotionEffect; -import net.minecraft.world.World; -import WayofTime.alchemicalWizardry.AlchemicalWizardry; -import WayofTime.alchemicalWizardry.common.spell.complex.effect.SpellHelper; -import WayofTime.alchemicalWizardry.common.spell.complex.effect.impactEffects.SelfSpellEffect; - -public class SelfDefensiveWind extends SelfSpellEffect -{ - public SelfDefensiveWind(int power, int potency, int cost) - { - super(power, potency, cost); - } - - @Override - public void onSelfUse(World world, EntityPlayer player) - { - double radius = 1.5d*this.powerUpgrades+1.5d; - double posX = player.posX; - double posY = player.posY; - double posZ = player.posZ; - - List entities = SpellHelper.getEntitiesInRange(world, posX, posY, posZ, radius, radius); - - for(Entity entity: entities) - { - if((!entity.equals(player))&&entity instanceof EntityLiving) - { - ((EntityLiving)entity).addPotionEffect(new PotionEffect(AlchemicalWizardry.customPotionHeavyHeart.id,200,this.potencyUpgrades)); - } - } - } -} diff --git a/1.7.2/main/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 deleted file mode 100644 index 3ea0f86b..00000000 --- a/1.7.2/main/java/WayofTime/alchemicalWizardry/common/spell/complex/effect/impactEffects/wind/SelfEnvironmentalWind.java +++ /dev/null @@ -1,45 +0,0 @@ -package WayofTime.alchemicalWizardry.common.spell.complex.effect.impactEffects.wind; - -import java.util.List; - -import net.minecraft.entity.Entity; -import net.minecraft.entity.EntityLiving; -import net.minecraft.entity.player.EntityPlayer; -import net.minecraft.world.World; -import WayofTime.alchemicalWizardry.common.spell.complex.effect.SpellHelper; -import WayofTime.alchemicalWizardry.common.spell.complex.effect.impactEffects.SelfSpellEffect; - -public class SelfEnvironmentalWind extends SelfSpellEffect -{ - public SelfEnvironmentalWind(int power, int potency, int cost) - { - super(power, potency, cost); - } - - @Override - public void onSelfUse(World world, EntityPlayer player) - { - double radius = 1.5d*this.potencyUpgrades+1; - double posX = player.posX; - double posY = player.posY-0.7d; - double posZ = player.posZ; - double wantedVel = 0.7d+0.7d*this.powerUpgrades; - - List entities = SpellHelper.getEntitiesInRange(world, posX, posY, posZ, radius, radius); - - for(Entity entity: entities) - { - if((!entity.equals(player))&&entity instanceof EntityLiving) - { - double dist = Math.sqrt(entity.getDistanceToEntity(player)); - double xVel = wantedVel*(entity.posX - posX)/dist; - double yVel = wantedVel*(entity.posY - posY)/dist; - double zVel = wantedVel*(entity.posZ - posZ)/dist; - - entity.motionX = xVel; - entity.motionY = yVel; - entity.motionZ = zVel; - } - } - } -} diff --git a/1.7.2/main/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 deleted file mode 100644 index 74dd6e13..00000000 --- a/1.7.2/main/java/WayofTime/alchemicalWizardry/common/spell/complex/effect/impactEffects/wind/SelfOffensiveWind.java +++ /dev/null @@ -1,32 +0,0 @@ -package WayofTime.alchemicalWizardry.common.spell.complex.effect.impactEffects.wind; - -import java.util.List; - -import net.minecraft.entity.Entity; -import net.minecraft.entity.EntityLiving; -import net.minecraft.entity.player.EntityPlayer; -import net.minecraft.potion.PotionEffect; -import net.minecraft.util.Vec3; -import net.minecraft.world.World; -import WayofTime.alchemicalWizardry.AlchemicalWizardry; -import WayofTime.alchemicalWizardry.common.spell.complex.effect.SpellHelper; -import WayofTime.alchemicalWizardry.common.spell.complex.effect.impactEffects.SelfSpellEffect; - -public class SelfOffensiveWind extends SelfSpellEffect -{ - public SelfOffensiveWind(int power, int potency, int cost) - { - super(power, potency, cost); - } - - @Override - public void onSelfUse(World world, EntityPlayer player) - { - Vec3 vec = player.getLookVec(); - double wantedVelocity = 1.5 + this.powerUpgrades*0.4; - - SpellHelper.setPlayerSpeedFromServer(player, vec.xCoord * wantedVelocity, vec.yCoord * wantedVelocity, vec.zCoord * wantedVelocity); - - player.fallDistance = 0; - } -} 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 deleted file mode 100644 index 02dd42dc..00000000 --- a/1.7.2/main/java/WayofTime/alchemicalWizardry/common/spell/complex/effect/impactEffects/wind/ToolDefensiveWind.java +++ /dev/null @@ -1,32 +0,0 @@ -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 deleted file mode 100644 index 082c27e2..00000000 --- a/1.7.2/main/java/WayofTime/alchemicalWizardry/common/spell/complex/effect/impactEffects/wind/ToolEnvironmentalWind.java +++ /dev/null @@ -1,41 +0,0 @@ -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 deleted file mode 100644 index 5d08d2df..00000000 --- a/1.7.2/main/java/WayofTime/alchemicalWizardry/common/spell/complex/effect/impactEffects/wind/ToolOffensiveWind.java +++ /dev/null @@ -1,24 +0,0 @@ -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/main/java/WayofTime/alchemicalWizardry/common/spell/complex/enhancement/SpellEnhancement.java b/1.7.2/main/java/WayofTime/alchemicalWizardry/common/spell/complex/enhancement/SpellEnhancement.java deleted file mode 100644 index b17c5659..00000000 --- a/1.7.2/main/java/WayofTime/alchemicalWizardry/common/spell/complex/enhancement/SpellEnhancement.java +++ /dev/null @@ -1,20 +0,0 @@ -package WayofTime.alchemicalWizardry.common.spell.complex.enhancement; - -public class SpellEnhancement -{ - public static final int POWER = 0; - public static final int EFFICIENCY = 1; - public static final int POTENCY = 2; - - private int state = this.POWER; - - protected SpellEnhancement(int state) - { - this.state = state; - } - - public int getState() - { - return this.state; - } -} diff --git a/1.7.2/main/java/WayofTime/alchemicalWizardry/common/spell/complex/enhancement/SpellEnhancementCost.java b/1.7.2/main/java/WayofTime/alchemicalWizardry/common/spell/complex/enhancement/SpellEnhancementCost.java deleted file mode 100644 index 2e0df1fb..00000000 --- a/1.7.2/main/java/WayofTime/alchemicalWizardry/common/spell/complex/enhancement/SpellEnhancementCost.java +++ /dev/null @@ -1,10 +0,0 @@ -package WayofTime.alchemicalWizardry.common.spell.complex.enhancement; - -public class SpellEnhancementCost extends SpellEnhancement -{ - - public SpellEnhancementCost() - { - super(SpellEnhancement.EFFICIENCY); - } -} diff --git a/1.7.2/main/java/WayofTime/alchemicalWizardry/common/spell/complex/enhancement/SpellEnhancementPotency.java b/1.7.2/main/java/WayofTime/alchemicalWizardry/common/spell/complex/enhancement/SpellEnhancementPotency.java deleted file mode 100644 index 6231c8a7..00000000 --- a/1.7.2/main/java/WayofTime/alchemicalWizardry/common/spell/complex/enhancement/SpellEnhancementPotency.java +++ /dev/null @@ -1,10 +0,0 @@ -package WayofTime.alchemicalWizardry.common.spell.complex.enhancement; - -public class SpellEnhancementPotency extends SpellEnhancement -{ - public SpellEnhancementPotency() - { - super(SpellEnhancement.POTENCY); - } - -} diff --git a/1.7.2/main/java/WayofTime/alchemicalWizardry/common/spell/complex/enhancement/SpellEnhancementPower.java b/1.7.2/main/java/WayofTime/alchemicalWizardry/common/spell/complex/enhancement/SpellEnhancementPower.java deleted file mode 100644 index 527dfe46..00000000 --- a/1.7.2/main/java/WayofTime/alchemicalWizardry/common/spell/complex/enhancement/SpellEnhancementPower.java +++ /dev/null @@ -1,10 +0,0 @@ -package WayofTime.alchemicalWizardry.common.spell.complex.enhancement; - -public class SpellEnhancementPower extends SpellEnhancement -{ - - public SpellEnhancementPower() - { - super(SpellEnhancement.POWER); - } -} diff --git a/1.7.2/main/java/WayofTime/alchemicalWizardry/common/spell/simple/HomSpell.java b/1.7.2/main/java/WayofTime/alchemicalWizardry/common/spell/simple/HomSpell.java deleted file mode 100644 index 903f4fb9..00000000 --- a/1.7.2/main/java/WayofTime/alchemicalWizardry/common/spell/simple/HomSpell.java +++ /dev/null @@ -1,143 +0,0 @@ -package WayofTime.alchemicalWizardry.common.spell.simple; - -import net.minecraft.entity.player.EntityPlayer; -import net.minecraft.item.ItemStack; -import net.minecraft.nbt.NBTTagCompound; -import net.minecraft.world.World; - -public abstract class HomSpell implements ISimpleSpell -{ - private int offensiveRangedEnergy; - private int offensiveMeleeEnergy; - private int defensiveEnergy; - private int environmentalEnergy; - - public HomSpell() - { - //super(id); - //this.setMaxStackSize(1); - // TODO Auto-generated constructor stub - } - - @Override - public abstract ItemStack onOffensiveRangedRightClick(ItemStack par1ItemStack, World par2World, EntityPlayer par3EntityPlayer); - - ; - - @Override - public abstract ItemStack onOffensiveMeleeRightClick(ItemStack par1ItemStack, World par2World, EntityPlayer par3EntityPlayer); - - @Override - public abstract ItemStack onDefensiveRightClick(ItemStack par1ItemStack, World par2World, EntityPlayer par3EntityPlayer); - - @Override - public abstract ItemStack onEnvironmentalRightClick(ItemStack par1ItemStack, World par2World, EntityPlayer par3EntityPlayer); - - public int getOffensiveRangedEnergy() - { - return offensiveRangedEnergy; - } - - public int getOffensiveMeleeEnergy() - { - return offensiveMeleeEnergy; - } - - public int getDefensiveEnergy() - { - return defensiveEnergy; - } - - public int getEnvironmentalEnergy() - { - return environmentalEnergy; - } - - public void setEnergies(int offensiveRanged, int offensiveMelee, int defensive, int environmental) - { - this.offensiveRangedEnergy = offensiveRanged; - this.offensiveMeleeEnergy = offensiveMelee; - this.defensiveEnergy = defensive; - this.environmentalEnergy = environmental; - } - - public void setSpellParadigm(ItemStack itemStack, int paradigm) - { - if (itemStack.stackTagCompound == null) - { - itemStack.setTagCompound(new NBTTagCompound()); - } - - itemStack.stackTagCompound.setInteger("paradigm", paradigm); - } - - public int getSpellParadigm(ItemStack itemStack) - { - if (itemStack.stackTagCompound == null) - { - itemStack.setTagCompound(new NBTTagCompound()); - } - - return (itemStack.stackTagCompound.getInteger("paradigm")); - } - - //@Override - public ItemStack useSpell(ItemStack par1ItemStack, World par2World, EntityPlayer par3EntityPlayer) - { - int paradigm = getSpellParadigm(par1ItemStack); - - if (par3EntityPlayer.isSneaking()) - { - if (paradigm < 3) - { - this.setSpellParadigm(par1ItemStack, paradigm + 1); - } else - { - this.setSpellParadigm(par1ItemStack, 0); - } - - return par1ItemStack; - } - - switch (paradigm) - { - case 0: - return this.onOffensiveRangedRightClick(par1ItemStack, par2World, par3EntityPlayer); - - case 1: - return this.onOffensiveMeleeRightClick(par1ItemStack, par2World, par3EntityPlayer); - - case 2: - return this.onDefensiveRightClick(par1ItemStack, par2World, par3EntityPlayer); - - case 3: - return this.onEnvironmentalRightClick(par1ItemStack, par2World, par3EntityPlayer); - } - - return par1ItemStack; - } - -// @Override -// public void addInformation(ItemStack par1ItemStack, EntityPlayer par2EntityPlayer, List par3List, boolean par4) -// { -// if (!(par1ItemStack.stackTagCompound == null)) -// { -// if (!par1ItemStack.stackTagCompound.getString("ownerName").equals("")) -// { -// par3List.add("Current owner: " + par1ItemStack.stackTagCompound.getString("ownerName")); -// } -// -// par3List.add("Current paradigm: " + this.getSpellParadigm(par1ItemStack)); -// } -// } - - public int getDimensionID(ItemStack itemStack) - { - if (itemStack.stackTagCompound == null) - { - itemStack.setTagCompound(new NBTTagCompound()); - } - - return itemStack.stackTagCompound.getInteger("dimensionId"); - } -} diff --git a/1.7.2/main/java/WayofTime/alchemicalWizardry/common/spell/simple/HomSpellComponent.java b/1.7.2/main/java/WayofTime/alchemicalWizardry/common/spell/simple/HomSpellComponent.java deleted file mode 100644 index 41cfcaab..00000000 --- a/1.7.2/main/java/WayofTime/alchemicalWizardry/common/spell/simple/HomSpellComponent.java +++ /dev/null @@ -1,26 +0,0 @@ -package WayofTime.alchemicalWizardry.common.spell.simple; - -import net.minecraft.item.ItemStack; - -public class HomSpellComponent -{ - public HomSpell spell; - public ItemStack item; - public int blockID; - - public HomSpellComponent(ItemStack item, HomSpell spell) - { - this.item = item; - this.spell = spell; - } - - public HomSpell getSpell() - { - return spell; - } - - public ItemStack getItemStack() - { - return this.item; - } -} diff --git a/1.7.2/main/java/WayofTime/alchemicalWizardry/common/spell/simple/HomSpellRegistry.java b/1.7.2/main/java/WayofTime/alchemicalWizardry/common/spell/simple/HomSpellRegistry.java deleted file mode 100644 index 645bd99c..00000000 --- a/1.7.2/main/java/WayofTime/alchemicalWizardry/common/spell/simple/HomSpellRegistry.java +++ /dev/null @@ -1,55 +0,0 @@ -package WayofTime.alchemicalWizardry.common.spell.simple; - -import java.util.ArrayList; -import java.util.List; - -import net.minecraft.item.ItemBlock; -import net.minecraft.item.ItemStack; - -public class HomSpellRegistry -{ - public static List spellList = new ArrayList(); - - public static void registerBasicSpell(ItemStack item, HomSpell spell) - { - spellList.add(new HomSpellComponent(item, spell)); - } - - public static HomSpell getSpellForItemStack(ItemStack testItem) - { - if (testItem == null) - { - return null; - } - - for (HomSpellComponent hsc : spellList) - { - ItemStack item = hsc.getItemStack(); - - if (item != null) - { - if (item.getItem() instanceof ItemBlock) - { - if (testItem.getItem() instanceof ItemBlock) - { - if (testItem.getItem() == item.getItem()) - { - return hsc.getSpell(); - } - } - } else - { - if (!(testItem.getItem() instanceof ItemBlock)) - { - if (testItem.getItem() == item.getItem()) - { - return hsc.getSpell(); - } - } - } - } - } - - return null; - } -} diff --git a/1.7.2/main/java/WayofTime/alchemicalWizardry/common/spell/simple/ISimpleSpell.java b/1.7.2/main/java/WayofTime/alchemicalWizardry/common/spell/simple/ISimpleSpell.java deleted file mode 100644 index 77a8799d..00000000 --- a/1.7.2/main/java/WayofTime/alchemicalWizardry/common/spell/simple/ISimpleSpell.java +++ /dev/null @@ -1,16 +0,0 @@ -package WayofTime.alchemicalWizardry.common.spell.simple; - -import net.minecraft.entity.player.EntityPlayer; -import net.minecraft.item.ItemStack; -import net.minecraft.world.World; - -public interface ISimpleSpell -{ - public abstract ItemStack onOffensiveRangedRightClick(ItemStack par1ItemStack, World par2World, EntityPlayer par3EntityPlayer); - - public abstract ItemStack onOffensiveMeleeRightClick(ItemStack par1ItemStack, World par2World, EntityPlayer par3EntityPlayer); - - public abstract ItemStack onDefensiveRightClick(ItemStack par1ItemStack, World par2World, EntityPlayer par3EntityPlayer); - - public abstract ItemStack onEnvironmentalRightClick(ItemStack par1ItemStack, World par2World, EntityPlayer par3EntityPlayer); -} diff --git a/1.7.2/main/java/WayofTime/alchemicalWizardry/common/spell/simple/SpellEarthBender.java b/1.7.2/main/java/WayofTime/alchemicalWizardry/common/spell/simple/SpellEarthBender.java deleted file mode 100644 index e4a31e55..00000000 --- a/1.7.2/main/java/WayofTime/alchemicalWizardry/common/spell/simple/SpellEarthBender.java +++ /dev/null @@ -1,199 +0,0 @@ -package WayofTime.alchemicalWizardry.common.spell.simple; - -import java.util.Random; - -import net.minecraft.block.Block; -import net.minecraft.entity.player.EntityPlayer; -import net.minecraft.init.Blocks; -import net.minecraft.item.ItemStack; -import net.minecraft.world.World; -import WayofTime.alchemicalWizardry.common.PacketHandler; -import WayofTime.alchemicalWizardry.common.entity.projectile.MudProjectile; -import WayofTime.alchemicalWizardry.common.items.EnergyItems; -import WayofTime.alchemicalWizardry.common.spell.complex.effect.SpellHelper; - -public class SpellEarthBender extends HomSpell -{ - Random itemRand = new Random(); - - public SpellEarthBender() - { - super(); - this.setEnergies(100, 150, 350, 200); - //this.setCreativeTab(CreativeTabs.tabMisc); - } - - @Override - public ItemStack onOffensiveRangedRightClick(ItemStack par1ItemStack, World par2World, EntityPlayer par3EntityPlayer) - { - EnergyItems.checkAndSetItemOwner(par1ItemStack, par3EntityPlayer); - - if (par3EntityPlayer.isSneaking()) - { - return par1ItemStack; - } - - if (!par3EntityPlayer.capabilities.isCreativeMode) - { - EnergyItems.syphonAndDamageWhileInContainer(par1ItemStack, par3EntityPlayer, this.getOffensiveRangedEnergy()); - } - - par2World.spawnEntityInWorld(new MudProjectile(par2World, par3EntityPlayer, 8, false)); - par2World.playSoundAtEntity(par3EntityPlayer, "random.fizz", 0.5F, 0.4F / (itemRand.nextFloat() * 0.4F + 0.8F)); - return par1ItemStack; - } - - @Override - public ItemStack onOffensiveMeleeRightClick(ItemStack par1ItemStack, World par2World, EntityPlayer par3EntityPlayer) - { - EnergyItems.checkAndSetItemOwner(par1ItemStack, par3EntityPlayer); - - if (par3EntityPlayer.isSneaking()) - { - return par1ItemStack; - } - - if (!par3EntityPlayer.capabilities.isCreativeMode) - { - EnergyItems.syphonAndDamageWhileInContainer(par1ItemStack, par3EntityPlayer, this.getOffensiveMeleeEnergy()); - } - - if (!par2World.isRemote) - { - for (int i = -1; i <= 1; i++) - { - for (int j = -1; j <= 1; j++) - { - par2World.spawnEntityInWorld(new MudProjectile(par2World, par3EntityPlayer, 3, 3, par3EntityPlayer.posX, par3EntityPlayer.posY + par3EntityPlayer.getEyeHeight(), par3EntityPlayer.posZ, par3EntityPlayer.rotationYaw + i * 10F, par3EntityPlayer.rotationPitch + j * 5F, true)); - } - } - } - - return par1ItemStack; - } - - @Override - public ItemStack onDefensiveRightClick(ItemStack par1ItemStack, World par2World, EntityPlayer par3EntityPlayer) - { - EnergyItems.checkAndSetItemOwner(par1ItemStack, par3EntityPlayer); - - if (par3EntityPlayer.isSneaking()) - { - return par1ItemStack; - } - - if (!par3EntityPlayer.capabilities.isCreativeMode) - { - EnergyItems.syphonAndDamageWhileInContainer(par1ItemStack, par3EntityPlayer, this.getDefensiveEnergy()); - } - - double xCoord = par3EntityPlayer.posX; - double yCoord = par3EntityPlayer.posY; - double zCoord = par3EntityPlayer.posZ; - int posX = (int) xCoord; - int posY = (int) yCoord; - int posZ = (int) zCoord; - Block blockID = Blocks.stone; - - if (par2World.isAirBlock(posX, posY + 3, posZ)) - { - par2World.setBlock(posX, posY + 3, posZ, Blocks.glass); - } - - for (int i = 0; i < 4; i++) - { - for (int j = 0; j < 4; j++) - { - if (par2World.isAirBlock(posX + i - 1, posY + j, posZ - 2)) - { - par2World.setBlock(posX + i - 1, posY + j, posZ - 2, blockID); - } - - if (par2World.isAirBlock(posX + 2, posY + j, posZ - 1 + i)) - { - par2World.setBlock(posX + 2, posY + j, posZ - 1 + i, blockID); - } - - if (par2World.isAirBlock(posX - i + 1, posY + j, posZ + 2)) - { - par2World.setBlock(posX - i + 1, posY + j, posZ + 2, blockID); - } - - if (par2World.isAirBlock(posX - 2, posY + j, posZ + 1 - i)) - { - par2World.setBlock(posX - 2, posY + j, posZ + 1 - i, blockID); - } - - { - if (par2World.isAirBlock(posX - 1 + i, posY + 3, posZ - 1 + j)) - { - par2World.setBlock(posX - 1 + i, posY + 3, posZ - 1 + j, blockID); - } - } - } - } - - for (int i = 0; i < 20; i++) - { - //PacketDispatcher.sendPacketToAllAround(xCoord, yCoord, zCoord, 30, par2World.provider.dimensionId, PacketHandler.getCustomParticlePacket("mobSpell", xCoord + (itemRand.nextFloat() - itemRand.nextFloat()) * 3, yCoord + (itemRand.nextFloat() - itemRand.nextFloat()) * 3, zCoord + (itemRand.nextFloat() - itemRand.nextFloat()) * 3, 0.0F, 0.410F, 1.0F)); - SpellHelper.sendParticleToAllAround(par2World, xCoord, yCoord, zCoord, 30, par2World.provider.dimensionId, "mobSpell", xCoord + (itemRand.nextFloat() - itemRand.nextFloat()) * 3, yCoord + (itemRand.nextFloat() - itemRand.nextFloat()) * 3, zCoord + (itemRand.nextFloat() - itemRand.nextFloat()) * 3, 0.0F, 0.410F, 1.0F); - } - - return par1ItemStack; - } - - @Override - public ItemStack onEnvironmentalRightClick(ItemStack par1ItemStack, World par2World, EntityPlayer par3EntityPlayer) - { - EnergyItems.checkAndSetItemOwner(par1ItemStack, par3EntityPlayer); - - if (par3EntityPlayer.isSneaking()) - { - return par1ItemStack; - } - - if (!par3EntityPlayer.capabilities.isCreativeMode) - { - EnergyItems.syphonAndDamageWhileInContainer(par1ItemStack, par3EntityPlayer, this.getEnvironmentalEnergy()); - } - - int range = 3; - - if (!par2World.isRemote) - { - for (int i = -range; i <= range; i++) - { - for (int j = -1; j <= 1; j++) - { - for (int k = -range; k <= range; k++) - { - if (par2World.getBlock((int) par3EntityPlayer.posX + i, (int) par3EntityPlayer.posY + j, (int) par3EntityPlayer.posZ + k) == Blocks.water || par2World.getBlock((int) par3EntityPlayer.posX + i, (int) par3EntityPlayer.posY + j, (int) par3EntityPlayer.posZ + k) == Blocks.flowing_water) - { - int x = par2World.rand.nextInt(2); - - if (x == 0) - { - par2World.setBlock((int) par3EntityPlayer.posX + i, (int) par3EntityPlayer.posY + j, (int) par3EntityPlayer.posZ + k, Blocks.sand); - } else - { - par2World.setBlock((int) par3EntityPlayer.posX + i, (int) par3EntityPlayer.posY + j, (int) par3EntityPlayer.posZ + k, Blocks.dirt); - } - } - } - } - } - } - - double xCoord = par3EntityPlayer.posX; - double yCoord = par3EntityPlayer.posY; - double zCoord = par3EntityPlayer.posZ; - - for (int i = 0; i < 16; i++) - { - //PacketDispatcher.sendPacketToAllAround(xCoord, yCoord, zCoord, 30, par2World.provider.dimensionId, PacketHandler.getCustomParticlePacket("mobSpell", xCoord + (itemRand.nextFloat() - itemRand.nextFloat()) * 2, yCoord + (itemRand.nextFloat() - itemRand.nextFloat()) * 2, zCoord + (itemRand.nextFloat() - itemRand.nextFloat()) * 2, 0.0F, 0.410F, 1.0F)); - SpellHelper.sendParticleToAllAround(par2World, xCoord, yCoord, zCoord, 30, par2World.provider.dimensionId, "mobSpell", xCoord + (itemRand.nextFloat() - itemRand.nextFloat()) * 3, yCoord + (itemRand.nextFloat() - itemRand.nextFloat()) * 3, zCoord + (itemRand.nextFloat() - itemRand.nextFloat()) * 3, 0.0F, 0.410F, 1.0F); - } - - return par1ItemStack; - } -} diff --git a/1.7.2/main/java/WayofTime/alchemicalWizardry/common/spell/simple/SpellExplosions.java b/1.7.2/main/java/WayofTime/alchemicalWizardry/common/spell/simple/SpellExplosions.java deleted file mode 100644 index 44ede225..00000000 --- a/1.7.2/main/java/WayofTime/alchemicalWizardry/common/spell/simple/SpellExplosions.java +++ /dev/null @@ -1,116 +0,0 @@ -package WayofTime.alchemicalWizardry.common.spell.simple; - -import WayofTime.alchemicalWizardry.common.entity.projectile.ExplosionProjectile; -import WayofTime.alchemicalWizardry.common.items.EnergyItems; -import net.minecraft.entity.player.EntityPlayer; -import net.minecraft.item.ItemStack; -import net.minecraft.world.World; - -import java.util.Random; - -public class SpellExplosions extends HomSpell -{ - Random itemRand = new Random(); - - public SpellExplosions() - { - super(); - this.setEnergies(400, 500, 1900, 1500); - //this.setCreativeTab(CreativeTabs.tabMisc); - } - - @Override - public ItemStack onOffensiveRangedRightClick(ItemStack par1ItemStack, World par2World, EntityPlayer par3EntityPlayer) - { - EnergyItems.checkAndSetItemOwner(par1ItemStack, par3EntityPlayer); - - if (par3EntityPlayer.isSneaking()) - { - return par1ItemStack; - } - - if (!par3EntityPlayer.capabilities.isCreativeMode) - { - EnergyItems.syphonAndDamageWhileInContainer(par1ItemStack, par3EntityPlayer, this.getOffensiveRangedEnergy()); - } - - par2World.playSoundAtEntity(par3EntityPlayer, "random.fizz", 0.5F, 0.4F / (itemRand.nextFloat() * 0.4F + 0.8F)); - - if (!par2World.isRemote) - { - //par2World.spawnEntityInWorld(new EnergyBlastProjectile(par2World, par3EntityPlayer, damage)); - par2World.spawnEntityInWorld(new ExplosionProjectile(par2World, par3EntityPlayer, 6, true)); - } - - return par1ItemStack; - } - - @Override - public ItemStack onOffensiveMeleeRightClick(ItemStack par1ItemStack, World par2World, EntityPlayer par3EntityPlayer) - { - EnergyItems.checkAndSetItemOwner(par1ItemStack, par3EntityPlayer); - - if (par3EntityPlayer.isSneaking()) - { - return par1ItemStack; - } - - if (!par3EntityPlayer.capabilities.isCreativeMode) - { - EnergyItems.syphonAndDamageWhileInContainer(par1ItemStack, par3EntityPlayer, this.getOffensiveMeleeEnergy()); - } - - int distance = 4; - double yaw = par3EntityPlayer.rotationYaw / 180 * Math.PI; - double pitch = par3EntityPlayer.rotationPitch / 180 * Math.PI; - par2World.createExplosion(par3EntityPlayer, par3EntityPlayer.posX + Math.sin(yaw) * Math.cos(pitch) * (-distance), par3EntityPlayer.posY + par3EntityPlayer.getEyeHeight() + Math.sin(-pitch) * distance, par3EntityPlayer.posZ + Math.cos(yaw) * Math.cos(pitch) * distance, (float) (3), true); - return par1ItemStack; - } - - @Override - public ItemStack onDefensiveRightClick(ItemStack par1ItemStack, World par2World, EntityPlayer par3EntityPlayer) - { - EnergyItems.checkAndSetItemOwner(par1ItemStack, par3EntityPlayer); - - if (par3EntityPlayer.isSneaking()) - { - return par1ItemStack; - } - - if (!par3EntityPlayer.capabilities.isCreativeMode) - { - EnergyItems.syphonAndDamageWhileInContainer(par1ItemStack, par3EntityPlayer, this.getDefensiveEnergy()); - } - - int distance = 4; -// double yaw = par3EntityPlayer.rotationYaw/180*Math.PI; -// double pitch = par3EntityPlayer.rotationPitch/180*Math.PI; - par2World.createExplosion(par3EntityPlayer, par3EntityPlayer.posX, par3EntityPlayer.posY + par3EntityPlayer.getEyeHeight(), par3EntityPlayer.posZ, (float) (distance), false); - return par1ItemStack; - } - - @Override - public ItemStack onEnvironmentalRightClick(ItemStack par1ItemStack, World par2World, EntityPlayer par3EntityPlayer) - { - EnergyItems.checkAndSetItemOwner(par1ItemStack, par3EntityPlayer); - - if (par3EntityPlayer.isSneaking()) - { - return par1ItemStack; - } - - if (!par3EntityPlayer.capabilities.isCreativeMode) - { - EnergyItems.syphonAndDamageWhileInContainer(par1ItemStack, par3EntityPlayer, this.getEnvironmentalEnergy()); - } - - int radius = 3; - - for (int i = 0; i < 360; i += 36) - { - par2World.createExplosion(par3EntityPlayer, par3EntityPlayer.posX + Math.cos(i) * radius, par3EntityPlayer.posY, par3EntityPlayer.posZ + Math.sin(i) * radius, (float) (2), true); - } - - return null; - } -} diff --git a/1.7.2/main/java/WayofTime/alchemicalWizardry/common/spell/simple/SpellFireBurst.java b/1.7.2/main/java/WayofTime/alchemicalWizardry/common/spell/simple/SpellFireBurst.java deleted file mode 100644 index c4ac72c2..00000000 --- a/1.7.2/main/java/WayofTime/alchemicalWizardry/common/spell/simple/SpellFireBurst.java +++ /dev/null @@ -1,175 +0,0 @@ -package WayofTime.alchemicalWizardry.common.spell.simple; - -import java.util.Iterator; -import java.util.List; -import java.util.Random; - -import net.minecraft.entity.EntityLivingBase; -import net.minecraft.entity.player.EntityPlayer; -import net.minecraft.init.Blocks; -import net.minecraft.item.ItemStack; -import net.minecraft.util.AxisAlignedBB; -import net.minecraft.util.DamageSource; -import net.minecraft.world.World; -import WayofTime.alchemicalWizardry.common.entity.projectile.FireProjectile; -import WayofTime.alchemicalWizardry.common.items.EnergyItems; - -public class SpellFireBurst extends HomSpell -{ - public Random itemRand = new Random(); - - public SpellFireBurst() - { - super(); - this.setEnergies(100, 300, 400, 100); - //this.setCreativeTab(CreativeTabs.tabMisc); - } - - @Override - public ItemStack onOffensiveRangedRightClick(ItemStack par1ItemStack, World par2World, EntityPlayer par3EntityPlayer) - { - EnergyItems.checkAndSetItemOwner(par1ItemStack, par3EntityPlayer); - - if (par3EntityPlayer.isSneaking()) - { - return par1ItemStack; - } - - if (!par3EntityPlayer.capabilities.isCreativeMode) - { - EnergyItems.syphonAndDamageWhileInContainer(par1ItemStack, par3EntityPlayer, this.getOffensiveRangedEnergy()); - } - - par2World.playSoundAtEntity(par3EntityPlayer, "random.fizz", 0.5F, 0.4F / (itemRand.nextFloat() * 0.4F + 0.8F)); - - if (!par2World.isRemote) - { - //par2World.spawnEntityInWorld(new EnergyBlastProjectile(par2World, par3EntityPlayer, damage)); - FireProjectile proj = new FireProjectile(par2World, par3EntityPlayer, 7); - par2World.spawnEntityInWorld(proj); - } - - return par1ItemStack; - } - - @Override - public ItemStack onOffensiveMeleeRightClick(ItemStack par1ItemStack, World par2World, EntityPlayer par3EntityPlayer) - { - EnergyItems.checkAndSetItemOwner(par1ItemStack, par3EntityPlayer); - - if (par3EntityPlayer.isSneaking()) - { - return par1ItemStack; - } - - if (!par3EntityPlayer.capabilities.isCreativeMode) - { - EnergyItems.syphonAndDamageWhileInContainer(par1ItemStack, par3EntityPlayer, this.getOffensiveMeleeEnergy()); - } - - par2World.playSoundAtEntity(par3EntityPlayer, "random.fizz", 0.5F, 0.4F / (itemRand.nextFloat() * 0.4F + 0.8F)); - - if (!par2World.isRemote) - { - for (int i = -1; i <= 1; i++) - { - for (int j = -1; j <= 1; j++) - { - par2World.spawnEntityInWorld(new FireProjectile(par2World, par3EntityPlayer, 8, 2, par3EntityPlayer.posX, par3EntityPlayer.posY + par3EntityPlayer.getEyeHeight(), par3EntityPlayer.posZ, par3EntityPlayer.rotationYaw + i * 10F, par3EntityPlayer.rotationPitch + j * 10F)); - } - } - } - - return par1ItemStack; - } - - @Override - public ItemStack onDefensiveRightClick(ItemStack par1ItemStack, World par2World, EntityPlayer par3EntityPlayer) - { - EnergyItems.checkAndSetItemOwner(par1ItemStack, par3EntityPlayer); - - if (par3EntityPlayer.isSneaking()) - { - return par1ItemStack; - } - - if (!par3EntityPlayer.capabilities.isCreativeMode) - { - EnergyItems.syphonAndDamageWhileInContainer(par1ItemStack, par3EntityPlayer, this.getDefensiveEnergy()); - } - - par2World.playSoundAtEntity(par3EntityPlayer, "random.fizz", 0.5F, 0.4F / (itemRand.nextFloat() * 0.4F + 0.8F)); - int d0 = 2; - AxisAlignedBB axisalignedbb = AxisAlignedBB.getAABBPool().getAABB((double) par3EntityPlayer.posX, (double) par3EntityPlayer.posY, (double) par3EntityPlayer.posZ, (double) (par3EntityPlayer.posX + 1), (double) (par3EntityPlayer.posY + 2), (double) (par3EntityPlayer.posZ + 1)).expand(d0, d0, d0); - //axisalignedbb.maxY = (double)this.worldObj.getHeight(); - List list = par3EntityPlayer.worldObj.getEntitiesWithinAABB(EntityLivingBase.class, axisalignedbb); - Iterator iterator = list.iterator(); - - while (iterator.hasNext()) - { - EntityLivingBase entityLiving = (EntityLivingBase) iterator.next(); - - if (entityLiving instanceof EntityPlayer) - { - if (entityLiving.equals(par3EntityPlayer)) - { - continue; - } - } - - entityLiving.setFire(100); - entityLiving.attackEntityFrom(DamageSource.inFire, 2); - } - -// if (!par2World.isRemote) -// { -// -// for(int i=0;i<10;i++) -// { -// for(int j=0;j<5;j++) -// { -// par2World.spawnEntityInWorld(new FireProjectile(par2World, par3EntityPlayer, 10,5,par3EntityPlayer.posX,par3EntityPlayer.posY+par3EntityPlayer.getEyeHeight(),par3EntityPlayer.posZ, par3EntityPlayer.rotationYaw+i*36F,par3EntityPlayer.rotationPitch+j*72F)); -// } -// } -// } - return par1ItemStack; - } - - @Override - public ItemStack onEnvironmentalRightClick(ItemStack par1ItemStack, World par2World, EntityPlayer par3EntityPlayer) - { - EnergyItems.checkAndSetItemOwner(par1ItemStack, par3EntityPlayer); - - if (par3EntityPlayer.isSneaking()) - { - return par1ItemStack; - } - - if (!par3EntityPlayer.capabilities.isCreativeMode) - { - EnergyItems.syphonAndDamageWhileInContainer(par1ItemStack, par3EntityPlayer, this.getEnvironmentalEnergy()); - } - - par2World.playSoundAtEntity(par3EntityPlayer, "random.fizz", 0.5F, 0.4F / (itemRand.nextFloat() * 0.4F + 0.8F)); - World worldObj = par2World; - - for (int i = -1; i <= 1; i++) - { - for (int j = -1; j <= 1; j++) - { - for (int k = -1; k <= 1; k++) - { - if (worldObj.isAirBlock((int) par3EntityPlayer.posX + i, (int) par3EntityPlayer.posY + j, (int) par3EntityPlayer.posZ + k)) - { - if (worldObj.rand.nextFloat() < 0.8F) - { - worldObj.setBlock((int) par3EntityPlayer.posX + i, (int) par3EntityPlayer.posY + j, (int) par3EntityPlayer.posZ + k, Blocks.fire); - } - } - } - } - } - - return par1ItemStack; - } -} diff --git a/1.7.2/main/java/WayofTime/alchemicalWizardry/common/spell/simple/SpellFrozenWater.java b/1.7.2/main/java/WayofTime/alchemicalWizardry/common/spell/simple/SpellFrozenWater.java deleted file mode 100644 index bfa441eb..00000000 --- a/1.7.2/main/java/WayofTime/alchemicalWizardry/common/spell/simple/SpellFrozenWater.java +++ /dev/null @@ -1,208 +0,0 @@ -package WayofTime.alchemicalWizardry.common.spell.simple; - -import java.util.Random; - -import net.minecraft.block.Block; -import net.minecraft.entity.player.EntityPlayer; -import net.minecraft.init.Blocks; -import net.minecraft.item.ItemStack; -import net.minecraft.world.World; -import WayofTime.alchemicalWizardry.common.entity.projectile.IceProjectile; -import WayofTime.alchemicalWizardry.common.items.EnergyItems; - -public class SpellFrozenWater extends HomSpell -{ - public Random itemRand = new Random(); - - public SpellFrozenWater() - { - super(); - this.setEnergies(100, 200, 150, 100); - //this.setCreativeTab(CreativeTabs.tabMisc); - } - - @Override - public ItemStack onOffensiveRangedRightClick(ItemStack par1ItemStack, World par2World, EntityPlayer par3EntityPlayer) - { - EnergyItems.checkAndSetItemOwner(par1ItemStack, par3EntityPlayer); - - if (par3EntityPlayer.isSneaking()) - { - return par1ItemStack; - } - - if (!par3EntityPlayer.capabilities.isCreativeMode) - { - EnergyItems.syphonAndDamageWhileInContainer(par1ItemStack, par3EntityPlayer, this.getOffensiveRangedEnergy()); - } - - par2World.playSoundAtEntity(par3EntityPlayer, "random.fizz", 0.5F, 0.4F / (itemRand.nextFloat() * 0.4F + 0.8F)); - - if (!par2World.isRemote) - { - //par2World.spawnEntityInWorld(new EnergyBlastProjectile(par2World, par3EntityPlayer, damage)); - par2World.spawnEntityInWorld(new IceProjectile(par2World, par3EntityPlayer, 6)); - } - - return par1ItemStack; - } - - @Override - public ItemStack onOffensiveMeleeRightClick(ItemStack par1ItemStack, World par2World, EntityPlayer par3EntityPlayer) - { - EnergyItems.checkAndSetItemOwner(par1ItemStack, par3EntityPlayer); - - if (par3EntityPlayer.isSneaking()) - { - return par1ItemStack; - } - - if (!par3EntityPlayer.capabilities.isCreativeMode) - { - EnergyItems.syphonAndDamageWhileInContainer(par1ItemStack, par3EntityPlayer, this.getOffensiveMeleeEnergy()); - } - - for (int i = -2; i <= 2; i++) - { - par2World.spawnEntityInWorld(new IceProjectile(par2World, par3EntityPlayer, 6, 2, par3EntityPlayer.posX, par3EntityPlayer.posY + par3EntityPlayer.getEyeHeight(), par3EntityPlayer.posZ, par3EntityPlayer.rotationYaw + i * 5F, par3EntityPlayer.rotationPitch)); - } - - return par1ItemStack; - } - - @Override - public ItemStack onDefensiveRightClick(ItemStack par1ItemStack, World par2World, EntityPlayer par3EntityPlayer) - { - if (!par3EntityPlayer.capabilities.isCreativeMode) - { - EnergyItems.syphonAndDamageWhileInContainer(par1ItemStack, par3EntityPlayer, getDefensiveEnergy()); - } - - float yaw = par3EntityPlayer.rotationYaw; - float pitch = par3EntityPlayer.rotationPitch; - int range = 2; - - if (pitch > 40F) - { - for (int i = -range; i <= range; i++) - { - for (int j = -range; j <= range; j++) - { - if (par2World.isAirBlock((int) par3EntityPlayer.posX + i, (int) par3EntityPlayer.posY - 1, (int) par3EntityPlayer.posZ + j)) - { - par2World.setBlock((int) par3EntityPlayer.posX + i, (int) par3EntityPlayer.posY - 1, (int) par3EntityPlayer.posZ + j, Blocks.ice); - } - } - } - - return par1ItemStack; - } else if (pitch < -40F) - { - for (int i = -range; i <= range; i++) - { - for (int j = -range; j <= range; j++) - { - if (par2World.isAirBlock((int) par3EntityPlayer.posX + i, (int) par3EntityPlayer.posY + 3, (int) par3EntityPlayer.posZ + j)) - { - par2World.setBlock((int) par3EntityPlayer.posX + i, (int) par3EntityPlayer.posY + 3, (int) par3EntityPlayer.posZ + j, Blocks.ice); - } - } - } - - return par1ItemStack; - } - - if ((yaw >= 315 && yaw < 360) || (yaw >= 0 && yaw < 45)) - { - for (int i = -range; i <= range; i++) - { - for (int j = 0; j < range * 2 + 1; j++) - { - if (par2World.isAirBlock((int) par3EntityPlayer.posX + i, (int) par3EntityPlayer.posY + j, (int) par3EntityPlayer.posZ + 2)) - { - par2World.setBlock((int) par3EntityPlayer.posX + i, (int) par3EntityPlayer.posY + j, (int) par3EntityPlayer.posZ + 2, Blocks.ice); - } - } - } - } else if (yaw >= 45 && yaw < 135) - { - for (int i = -range; i <= range; i++) - { - for (int j = 0; j < range * 2 + 1; j++) - { - if (par2World.isAirBlock((int) par3EntityPlayer.posX - 2, (int) par3EntityPlayer.posY + j, (int) par3EntityPlayer.posZ + i)) - { - par2World.setBlock((int) par3EntityPlayer.posX - 2, (int) par3EntityPlayer.posY + j, (int) par3EntityPlayer.posZ + i, Blocks.ice); - } - } - } - } else if (yaw >= 135 && yaw < 225) - { - for (int i = -range; i <= range; i++) - { - for (int j = 0; j < range * 2 + 1; j++) - { - if (par2World.isAirBlock((int) par3EntityPlayer.posX + i, (int) par3EntityPlayer.posY + j, (int) par3EntityPlayer.posZ - 2)) - { - par2World.setBlock((int) par3EntityPlayer.posX + i, (int) par3EntityPlayer.posY + j, (int) par3EntityPlayer.posZ - 2, Blocks.ice); - } - } - } - } else - { - for (int i = -range; i <= range; i++) - { - for (int j = 0; j < range * 2 + 1; j++) - { - if (par2World.isAirBlock((int) par3EntityPlayer.posX + 2, (int) par3EntityPlayer.posY + j, (int) par3EntityPlayer.posZ + i)) - { - par2World.setBlock((int) par3EntityPlayer.posX + 2, (int) par3EntityPlayer.posY + j, (int) par3EntityPlayer.posZ + i, Blocks.ice); - } - } - } - } - - return par1ItemStack; - } - - @Override - public ItemStack onEnvironmentalRightClick(ItemStack par1ItemStack, World par2World, EntityPlayer par3EntityPlayer) - { - EnergyItems.checkAndSetItemOwner(par1ItemStack, par3EntityPlayer); - - if (par3EntityPlayer.isSneaking()) - { - return par1ItemStack; - } - - int radius = 3; - int posX = (int) par3EntityPlayer.posX; - int posY = (int) par3EntityPlayer.posY; - int posZ = (int) par3EntityPlayer.posZ; - - for (int i = -radius; i <= radius; i++) - { - for (int j = -radius; j <= radius; j++) - { - for (int k = -radius; k <= radius; k++) - { - Block block = par2World.getBlock((int) par3EntityPlayer.posX + i - 1, (int) par3EntityPlayer.posY + j, (int) par3EntityPlayer.posZ + k); - - //Block block = Block.blocksList[blockID]; - if (block == Blocks.water || block == Blocks.flowing_water) - { - par2World.setBlock((int) par3EntityPlayer.posX + i - 1, (int) par3EntityPlayer.posY + j, (int) par3EntityPlayer.posZ + k, Blocks.ice); - } - } - } - } - -// int blockID = par2World.getBlockId((int)par3EntityPlayer.posX+i, (int)par3EntityPlayer.posY+j, (int)par3EntityPlayer.posZ+k); -// //Block block = Block.blocksList[blockID]; -// if(blockID==Block.waterMoving.blockID||blockID==Block.waterStill.blockID) -// { -// par2World.setBlock((int)par3EntityPlayer.posX+i, (int)par3EntityPlayer.posY+j, (int)par3EntityPlayer.posZ+k, Blocks.ice); -// } - return par1ItemStack; - } -} diff --git a/1.7.2/main/java/WayofTime/alchemicalWizardry/common/spell/simple/SpellHolyBlast.java b/1.7.2/main/java/WayofTime/alchemicalWizardry/common/spell/simple/SpellHolyBlast.java deleted file mode 100644 index f39035f4..00000000 --- a/1.7.2/main/java/WayofTime/alchemicalWizardry/common/spell/simple/SpellHolyBlast.java +++ /dev/null @@ -1,200 +0,0 @@ -package WayofTime.alchemicalWizardry.common.spell.simple; - -import java.util.Iterator; -import java.util.List; -import java.util.Random; - -import net.minecraft.entity.EntityLivingBase; -import net.minecraft.entity.player.EntityPlayer; -import net.minecraft.item.ItemStack; -import net.minecraft.util.AxisAlignedBB; -import net.minecraft.util.DamageSource; -import net.minecraft.world.World; -import WayofTime.alchemicalWizardry.common.PacketHandler; -import WayofTime.alchemicalWizardry.common.entity.projectile.HolyProjectile; -import WayofTime.alchemicalWizardry.common.items.EnergyItems; -import WayofTime.alchemicalWizardry.common.spell.complex.effect.SpellHelper; - -public class SpellHolyBlast extends HomSpell -{ - Random itemRand = new Random(); - - public SpellHolyBlast() - { - super(); - this.setEnergies(100, 300, 500, 400); - //this.setCreativeTab(CreativeTabs.tabMisc); - } - - @Override - public ItemStack onOffensiveRangedRightClick(ItemStack par1ItemStack, World par2World, EntityPlayer par3EntityPlayer) - { - EnergyItems.checkAndSetItemOwner(par1ItemStack, par3EntityPlayer); - - if (par3EntityPlayer.isSneaking()) - { - return par1ItemStack; - } - - if (!par3EntityPlayer.capabilities.isCreativeMode) - { - EnergyItems.syphonAndDamageWhileInContainer(par1ItemStack, par3EntityPlayer, this.getOffensiveRangedEnergy()); - } - - par2World.playSoundAtEntity(par3EntityPlayer, "random.fizz", 0.5F, 0.4F / (itemRand.nextFloat() * 0.4F + 0.8F)); - - if (!par2World.isRemote) - { - //par2World.spawnEntityInWorld(new EnergyBlastProjectile(par2World, par3EntityPlayer, damage)); - par2World.spawnEntityInWorld(new HolyProjectile(par2World, par3EntityPlayer, 8)); - } - - return par1ItemStack; - } - - @Override - public ItemStack onOffensiveMeleeRightClick(ItemStack par1ItemStack, World par2World, EntityPlayer par3EntityPlayer) - { - EnergyItems.checkAndSetItemOwner(par1ItemStack, par3EntityPlayer); - - if (par3EntityPlayer.isSneaking()) - { - return par1ItemStack; - } - - if (!par3EntityPlayer.capabilities.isCreativeMode) - { - EnergyItems.syphonAndDamageWhileInContainer(par1ItemStack, par3EntityPlayer, this.getOffensiveMeleeEnergy()); - } - - int distance = 2; - double yaw = par3EntityPlayer.rotationYaw / 180 * Math.PI; - double pitch = par3EntityPlayer.rotationPitch / 180 * Math.PI; - double xCoord = par3EntityPlayer.posX + Math.sin(yaw) * Math.cos(pitch) * (-distance); - double yCoord = par3EntityPlayer.posY + par3EntityPlayer.getEyeHeight() + Math.sin(-pitch) * distance; - double zCoord = par3EntityPlayer.posZ + Math.cos(yaw) * Math.cos(pitch) * distance; - float d0 = 0.5f; - AxisAlignedBB axisalignedbb = AxisAlignedBB.getAABBPool().getAABB(par3EntityPlayer.posX - 0.5 + Math.sin(yaw) * Math.cos(pitch) * (-distance), par3EntityPlayer.posY + par3EntityPlayer.getEyeHeight() + Math.sin(-pitch) * distance, par3EntityPlayer.posZ - 0.5 + Math.cos(yaw) * Math.cos(pitch) * distance, par3EntityPlayer.posX + Math.sin(yaw) * Math.cos(pitch) * (-distance) + 0.5, par3EntityPlayer.posY + par3EntityPlayer.getEyeHeight() + Math.sin(-pitch) * distance + 1, par3EntityPlayer.posZ + Math.cos(yaw) * Math.cos(pitch) * distance + 0.5).expand(d0, d0, d0); - //axisalignedbb.maxY = (double)this.worldObj.getHeight(); - List list = par3EntityPlayer.worldObj.getEntitiesWithinAABB(EntityLivingBase.class, axisalignedbb); - Iterator iterator = list.iterator(); - - while (iterator.hasNext()) - { - EntityLivingBase entityLiving = (EntityLivingBase) iterator.next(); - - if (entityLiving instanceof EntityPlayer) - { - if (entityLiving.equals(par3EntityPlayer)) - { - continue; - } - } - - int i = 1; - - if (entityLiving.isEntityUndead()) - { - i = 3; - } - - //entityLiving.setFire(50); - entityLiving.attackEntityFrom(DamageSource.causePlayerDamage(par3EntityPlayer), 5 * i); - //par2World.createExplosion(par3EntityPlayer, par3EntityPlayer.posX, par3EntityPlayer.posY, par3EntityPlayer.posZ, (float)(2), false); - } - - par2World.createExplosion(par3EntityPlayer, xCoord, yCoord, zCoord, (float) (1), false); - - for (int i = 0; i < 5; i++) - { - //PacketDispatcher.sendPacketToAllAround(xCoord, yCoord, zCoord, 30, par2World.provider.dimensionId, PacketHandler.getCustomParticlePacket("mobSpell", xCoord + itemRand.nextFloat() - itemRand.nextFloat(), yCoord + itemRand.nextFloat() - itemRand.nextFloat(), zCoord + itemRand.nextFloat() - itemRand.nextFloat(), 1.0F, 1.0F, 1.0F)); - SpellHelper.sendParticleToAllAround(par2World, xCoord, yCoord, zCoord, 30, par2World.provider.dimensionId, "mobSpell", xCoord + itemRand.nextFloat() - itemRand.nextFloat(), yCoord + itemRand.nextFloat() - itemRand.nextFloat(), zCoord + itemRand.nextFloat() - itemRand.nextFloat(), 1.0F, 1.0F, 1.0F); - } - - return par1ItemStack; - } - - @Override - public ItemStack onDefensiveRightClick(ItemStack par1ItemStack, World par2World, EntityPlayer par3EntityPlayer) - { - EnergyItems.checkAndSetItemOwner(par1ItemStack, par3EntityPlayer); - - if (par3EntityPlayer.isSneaking()) - { - return par1ItemStack; - } - - if (!par3EntityPlayer.capabilities.isCreativeMode) - { - EnergyItems.syphonAndDamageWhileInContainer(par1ItemStack, par3EntityPlayer, this.getDefensiveEnergy()); - } - - if (!par2World.isRemote) - { - for (int i = 0; i < 360; i += 18) - { - par2World.spawnEntityInWorld(new HolyProjectile(par2World, par3EntityPlayer, 8, 3, par3EntityPlayer.posX, par3EntityPlayer.posY + (par3EntityPlayer.height / 2), par3EntityPlayer.posZ, i, 0)); - } - } - - return par1ItemStack; - } - - @Override - public ItemStack onEnvironmentalRightClick(ItemStack par1ItemStack, World par2World, EntityPlayer par3EntityPlayer) - { - EnergyItems.checkAndSetItemOwner(par1ItemStack, par3EntityPlayer); - - if (par3EntityPlayer.isSneaking()) - { - return par1ItemStack; - } - - if (!par3EntityPlayer.capabilities.isCreativeMode) - { - EnergyItems.syphonAndDamageWhileInContainer(par1ItemStack, par3EntityPlayer, this.getEnvironmentalEnergy()); - } - - int d0 = 3; - AxisAlignedBB axisalignedbb = AxisAlignedBB.getAABBPool().getAABB((double) par3EntityPlayer.posX, (double) par3EntityPlayer.posY, (double) par3EntityPlayer.posZ, (double) (par3EntityPlayer.posX + 1), (double) (par3EntityPlayer.posY + 2), (double) (par3EntityPlayer.posZ + 1)).expand(d0, d0, d0); - //axisalignedbb.maxY = (double)this.worldObj.getHeight(); - List list = par3EntityPlayer.worldObj.getEntitiesWithinAABB(EntityLivingBase.class, axisalignedbb); - Iterator iterator = list.iterator(); - - while (iterator.hasNext()) - { - EntityLivingBase entityLiving = (EntityLivingBase) iterator.next(); - - if (entityLiving instanceof EntityPlayer) - { - if (entityLiving.equals(par3EntityPlayer)) - { - continue; - } - } - - int i = 1; - - if (entityLiving.isEntityUndead()) - { - i = 3; - } - - //entityLiving.setFire(50); - entityLiving.attackEntityFrom(DamageSource.causePlayerDamage(par3EntityPlayer), 5 * i); - //par2World.createExplosion(par3EntityPlayer, par3EntityPlayer.posX, par3EntityPlayer.posY, par3EntityPlayer.posZ, (float)(2), false); - } - - par2World.createExplosion(par3EntityPlayer, par3EntityPlayer.posX, par3EntityPlayer.posY, par3EntityPlayer.posZ, (float) (2), false); - double xCoord = par3EntityPlayer.posX; - double yCoord = par3EntityPlayer.posY; - double zCoord = par3EntityPlayer.posZ; - - for (int i = 0; i < 20; i++) - { - SpellHelper.sendParticleToAllAround(par2World, xCoord, yCoord, zCoord, 30, par2World.provider.dimensionId, "mobSpell", xCoord + itemRand.nextFloat() - itemRand.nextFloat(), yCoord + itemRand.nextFloat() - itemRand.nextFloat(), zCoord + itemRand.nextFloat() - itemRand.nextFloat(), 1.0F, 1.0F, 1.0F); - } - - return par1ItemStack; - } -} diff --git a/1.7.2/main/java/WayofTime/alchemicalWizardry/common/spell/simple/SpellLightningBolt.java b/1.7.2/main/java/WayofTime/alchemicalWizardry/common/spell/simple/SpellLightningBolt.java deleted file mode 100644 index 576b9884..00000000 --- a/1.7.2/main/java/WayofTime/alchemicalWizardry/common/spell/simple/SpellLightningBolt.java +++ /dev/null @@ -1,141 +0,0 @@ -package WayofTime.alchemicalWizardry.common.spell.simple; - -import java.util.Random; - -import net.minecraft.entity.effect.EntityLightningBolt; -import net.minecraft.entity.player.EntityPlayer; -import net.minecraft.item.ItemStack; -import net.minecraft.world.World; -import WayofTime.alchemicalWizardry.common.PacketHandler; -import WayofTime.alchemicalWizardry.common.entity.projectile.LightningBoltProjectile; -import WayofTime.alchemicalWizardry.common.items.EnergyItems; -import WayofTime.alchemicalWizardry.common.spell.complex.effect.SpellHelper; - -public class SpellLightningBolt extends HomSpell -{ - Random itemRand = new Random(); - - public SpellLightningBolt() - { - super(); - this.setEnergies(75, 200, 700, 700); - //this.setCreativeTab(CreativeTabs.tabMisc); - } - - @Override - public ItemStack onOffensiveRangedRightClick(ItemStack par1ItemStack, World par2World, EntityPlayer par3EntityPlayer) - { - EnergyItems.checkAndSetItemOwner(par1ItemStack, par3EntityPlayer); - - if (par3EntityPlayer.isSneaking()) - { - return par1ItemStack; - } - - if (!par3EntityPlayer.capabilities.isCreativeMode) - { - EnergyItems.syphonAndDamageWhileInContainer(par1ItemStack, par3EntityPlayer, this.getOffensiveRangedEnergy()); - } - - par2World.playSoundAtEntity(par3EntityPlayer, "random.fizz", 0.5F, 0.4F / (itemRand.nextFloat() * 0.4F + 0.8F)); - - if (!par2World.isRemote) - { - //par2World.spawnEntityInWorld(new EnergyBlastProjectile(par2World, par3EntityPlayer, damage)); - par2World.spawnEntityInWorld(new LightningBoltProjectile(par2World, par3EntityPlayer, 8, false)); - } - - return par1ItemStack; - } - - @Override - public ItemStack onOffensiveMeleeRightClick(ItemStack par1ItemStack, World par2World, EntityPlayer par3EntityPlayer) - { - //TODO Make it work better...? - EnergyItems.checkAndSetItemOwner(par1ItemStack, par3EntityPlayer); - - if (par3EntityPlayer.isSneaking()) - { - return par1ItemStack; - } - - if (!par3EntityPlayer.capabilities.isCreativeMode) - { - EnergyItems.syphonAndDamageWhileInContainer(par1ItemStack, par3EntityPlayer, this.getOffensiveMeleeEnergy()); - } - - double xCoord = par3EntityPlayer.posX; - double yCoord = par3EntityPlayer.posY; - double zCoord = par3EntityPlayer.posZ; - par2World.getWorldInfo().setRaining(true); - //par2World.setRainStrength(1.0F); - par2World.setRainStrength(1.0f); - par2World.setThunderStrength(1.0f); - par2World.getWorldInfo().setThunderTime(0); - par2World.getWorldInfo().setThundering(true); - - for (int i = 0; i < 5; i++) - { - //PacketDispatcher.sendPacketToAllAround(xCoord, yCoord, zCoord, 30, par2World.provider.dimensionId, PacketHandler.getCustomParticlePacket("mobSpell", xCoord + itemRand.nextFloat() - itemRand.nextFloat(), yCoord + itemRand.nextFloat() - itemRand.nextFloat(), zCoord + itemRand.nextFloat() - itemRand.nextFloat(), 1.0F, 1.0F, 1.0F)); - SpellHelper.sendParticleToAllAround(par2World, xCoord, yCoord, zCoord, 30, par2World.provider.dimensionId, "mobSpell", xCoord + itemRand.nextFloat() - itemRand.nextFloat(), yCoord + itemRand.nextFloat() - itemRand.nextFloat(), zCoord + itemRand.nextFloat() - itemRand.nextFloat(), 1.0F, 1.0F, 1.0F); - } - - return par1ItemStack; - } - - @Override - public ItemStack onDefensiveRightClick(ItemStack par1ItemStack, World par2World, EntityPlayer par3EntityPlayer) - { - EnergyItems.checkAndSetItemOwner(par1ItemStack, par3EntityPlayer); - - if (par3EntityPlayer.isSneaking()) - { - return par1ItemStack; - } - - if (!par3EntityPlayer.capabilities.isCreativeMode) - { - EnergyItems.syphonAndDamageWhileInContainer(par1ItemStack, par3EntityPlayer, this.getDefensiveEnergy()); - } - - double xCoord = par3EntityPlayer.posX; - double yCoord = par3EntityPlayer.posY; - double zCoord = par3EntityPlayer.posZ; - - for (int i = 0; i < 5; i++) - { - par2World.addWeatherEffect(new EntityLightningBolt(par2World, xCoord + itemRand.nextInt(64) - 32, yCoord + itemRand.nextInt(8) - 8, zCoord + itemRand.nextInt(64) - 32)); - } - - for (int i = 0; i < 8; i++) - { - SpellHelper.sendParticleToAllAround(par2World, xCoord, yCoord, zCoord, 30, par2World.provider.dimensionId, "mobSpell", xCoord + itemRand.nextFloat() - itemRand.nextFloat(), yCoord + itemRand.nextFloat() - itemRand.nextFloat(), zCoord + itemRand.nextFloat() - itemRand.nextFloat(), 1.0F, 1.0F, 1.0F); - } - - return par1ItemStack; - } - - @Override - public ItemStack onEnvironmentalRightClick(ItemStack par1ItemStack, World par2World, EntityPlayer par3EntityPlayer) - { - EnergyItems.checkAndSetItemOwner(par1ItemStack, par3EntityPlayer); - - if (par3EntityPlayer.isSneaking()) - { - return par1ItemStack; - } - - if (!par3EntityPlayer.capabilities.isCreativeMode) - { - EnergyItems.syphonAndDamageWhileInContainer(par1ItemStack, par3EntityPlayer, this.getEnvironmentalEnergy()); - } - - if (!par2World.isRemote) - { - //par2World.spawnEntityInWorld(new EnergyBlastProjectile(par2World, par3EntityPlayer, damage)); - par2World.spawnEntityInWorld(new LightningBoltProjectile(par2World, par3EntityPlayer, 8, true)); - } - - return par1ItemStack; - } -} \ No newline at end of file diff --git a/1.7.2/main/java/WayofTime/alchemicalWizardry/common/spell/simple/SpellTeleport.java b/1.7.2/main/java/WayofTime/alchemicalWizardry/common/spell/simple/SpellTeleport.java deleted file mode 100644 index 30f5d5bf..00000000 --- a/1.7.2/main/java/WayofTime/alchemicalWizardry/common/spell/simple/SpellTeleport.java +++ /dev/null @@ -1,289 +0,0 @@ -package WayofTime.alchemicalWizardry.common.spell.simple; - -import java.util.Iterator; -import java.util.List; -import java.util.Random; - -import net.minecraft.block.Block; -import net.minecraft.entity.Entity; -import net.minecraft.entity.EntityLivingBase; -import net.minecraft.entity.monster.EntityEnderman; -import net.minecraft.entity.player.EntityPlayer; -import net.minecraft.entity.player.EntityPlayerMP; -import net.minecraft.item.ItemStack; -import net.minecraft.util.AxisAlignedBB; -import net.minecraft.util.MathHelper; -import net.minecraft.world.World; -import net.minecraftforge.common.MinecraftForge; -import net.minecraftforge.event.entity.living.EnderTeleportEvent; -import WayofTime.alchemicalWizardry.common.PacketHandler; -import WayofTime.alchemicalWizardry.common.entity.projectile.TeleportProjectile; -import WayofTime.alchemicalWizardry.common.items.EnergyItems; -import WayofTime.alchemicalWizardry.common.spell.complex.effect.SpellHelper; - -public class SpellTeleport extends HomSpell -{ - Random itemRand = new Random(); - - public SpellTeleport() - { - super(); - this.setEnergies(500, 300, 500, 1000); - //this.setCreativeTab(CreativeTabs.tabMisc); - } - - @Override - public ItemStack onOffensiveRangedRightClick(ItemStack par1ItemStack, World par2World, EntityPlayer par3EntityPlayer) - { - EnergyItems.checkAndSetItemOwner(par1ItemStack, par3EntityPlayer); - - if (par3EntityPlayer.isSneaking()) - { - return par1ItemStack; - } - - if (!par3EntityPlayer.capabilities.isCreativeMode) - { - EnergyItems.syphonAndDamageWhileInContainer(par1ItemStack, par3EntityPlayer, this.getOffensiveRangedEnergy()); - } - - par2World.spawnEntityInWorld(new TeleportProjectile(par2World, par3EntityPlayer, 8, true)); - par2World.playSoundAtEntity(par3EntityPlayer, "random.fizz", 0.5F, 0.4F / (itemRand.nextFloat() * 0.4F + 0.8F)); - EntityEnderman g; - return par1ItemStack; - } - - @Override - public ItemStack onOffensiveMeleeRightClick(ItemStack par1ItemStack, World par2World, EntityPlayer par3EntityPlayer) - { - EnergyItems.checkAndSetItemOwner(par1ItemStack, par3EntityPlayer); - - if (par3EntityPlayer.isSneaking()) - { - return par1ItemStack; - } - - if (!par3EntityPlayer.capabilities.isCreativeMode) - { - EnergyItems.syphonAndDamageWhileInContainer(par1ItemStack, par3EntityPlayer, this.getOffensiveMeleeEnergy()); - } - - par2World.spawnEntityInWorld(new TeleportProjectile(par2World, par3EntityPlayer, 8, false)); - return par1ItemStack; - } - - @Override - public ItemStack onDefensiveRightClick(ItemStack par1ItemStack, World par2World, EntityPlayer par3EntityPlayer) - { - EnergyItems.checkAndSetItemOwner(par1ItemStack, par3EntityPlayer); - - if (par3EntityPlayer.isSneaking()) - { - return par1ItemStack; - } - - if (!par3EntityPlayer.capabilities.isCreativeMode) - { - EnergyItems.syphonAndDamageWhileInContainer(par1ItemStack, par3EntityPlayer, this.getDefensiveEnergy()); - } - - double xCoord = par3EntityPlayer.posX; - double yCoord = par3EntityPlayer.posY; - double zCoord = par3EntityPlayer.posZ; - SpellTeleport.teleportRandomly(par3EntityPlayer, 128); - - for (int i = 0; i < 20; i++) - { - //PacketDispatcher.sendPacketToAllAround(xCoord, yCoord, zCoord, 30, par2World.provider.dimensionId, PacketHandler.getCustomParticlePacket("portal", xCoord + (itemRand.nextFloat() - itemRand.nextFloat()) * 2, yCoord + (itemRand.nextFloat() - itemRand.nextFloat()) * 2, zCoord + (itemRand.nextFloat() - itemRand.nextFloat()) * 2, itemRand.nextFloat(), itemRand.nextFloat(), itemRand.nextFloat())); - SpellHelper.sendParticleToAllAround(par2World, xCoord, yCoord, zCoord, 30, par2World.provider.dimensionId, "portal", xCoord + (itemRand.nextFloat() - itemRand.nextFloat()) * 2, yCoord + (itemRand.nextFloat() - itemRand.nextFloat()) * 2, zCoord + (itemRand.nextFloat() - itemRand.nextFloat()) * 2, itemRand.nextFloat(), itemRand.nextFloat(), itemRand.nextFloat()); - } - - return par1ItemStack; - } - - @Override - public ItemStack onEnvironmentalRightClick(ItemStack par1ItemStack, World par2World, EntityPlayer par3EntityPlayer) - { - EnergyItems.checkAndSetItemOwner(par1ItemStack, par3EntityPlayer); - - if (par3EntityPlayer.isSneaking()) - { - return par1ItemStack; - } - - if (!par3EntityPlayer.capabilities.isCreativeMode) - { - EnergyItems.syphonAndDamageWhileInContainer(par1ItemStack, par3EntityPlayer, this.getEnvironmentalEnergy()); - } - - if (!par2World.isRemote) - { - int d0 = 3; - AxisAlignedBB axisalignedbb = AxisAlignedBB.getAABBPool().getAABB((double) par3EntityPlayer.posX, (double) par3EntityPlayer.posY, (double) par3EntityPlayer.posZ, (double) (par3EntityPlayer.posX + 1), (double) (par3EntityPlayer.posY + 2), (double) (par3EntityPlayer.posZ + 1)).expand(d0, d0, d0); - //axisalignedbb.maxY = (double)this.worldObj.getHeight(); - List list = par3EntityPlayer.worldObj.getEntitiesWithinAABB(EntityLivingBase.class, axisalignedbb); - Iterator iterator = list.iterator(); - - while (iterator.hasNext()) - { - EntityLivingBase entityLiving = (EntityLivingBase) iterator.next(); - - if (entityLiving instanceof EntityPlayer) - { - if (entityLiving.equals(par3EntityPlayer)) - { - continue; - } - } - - SpellTeleport.teleportRandomly(entityLiving, 128); - //entityLiving.attackEntityFrom(DamageSource.inFire, 5); - } - } - - double xCoord = par3EntityPlayer.posX; - double yCoord = par3EntityPlayer.posY; - double zCoord = par3EntityPlayer.posZ; - - for (int i = 0; i < 32; i++) - { - SpellHelper.sendParticleToAllAround(par2World, xCoord, yCoord, zCoord, 30, par2World.provider.dimensionId, "portal", xCoord + (itemRand.nextFloat() - itemRand.nextFloat()) * 2, yCoord + (itemRand.nextFloat() - itemRand.nextFloat()) * 2, zCoord + (itemRand.nextFloat() - itemRand.nextFloat()) * 2, itemRand.nextFloat(), itemRand.nextFloat(), itemRand.nextFloat()); - } - - return par1ItemStack; - } - - public static boolean teleportRandomly(EntityLivingBase entityLiving, double distance) - { - double x = entityLiving.posX; - double y = entityLiving.posY; - double z = entityLiving.posZ; - Random rand = new Random(); - double d0 = x + (rand.nextDouble() - 0.5D) * distance; - double d1 = y + (double) (rand.nextInt((int) distance) - (distance) / 2); - double d2 = z + (rand.nextDouble() - 0.5D) * distance; - int i = 0; - - while (!SpellTeleport.teleportTo(entityLiving, d0, d1, d2, x, y, z) && i < 100) - { - d0 = x + (rand.nextDouble() - 0.5D) * distance; - d1 = y + (double) (rand.nextInt((int) distance) - (distance) / 2); - d2 = z + (rand.nextDouble() - 0.5D) * distance; - i++; - } - - if (i >= 100) - { - return false; - } - - return true; - //return SpellTeleport.teleportTo(entityLiving, d0, d1, d2,x,y,z); - } - - private static boolean teleportTo(EntityLivingBase entityLiving, double par1, double par3, double par5, double lastX, double lastY, double lastZ) - { - EnderTeleportEvent event = new EnderTeleportEvent(entityLiving, par1, par3, par5, 0); - - if (MinecraftForge.EVENT_BUS.post(event)) - { - return false; - } - - double d3 = lastX; - double d4 = lastY; - double d5 = lastZ; - SpellTeleport.moveEntityViaTeleport(entityLiving, event.targetX, event.targetY, event.targetZ); - boolean flag = false; - int i = MathHelper.floor_double(entityLiving.posX); - int j = MathHelper.floor_double(entityLiving.posY); - int k = MathHelper.floor_double(entityLiving.posZ); - Block l; - - if (entityLiving.worldObj.blockExists(i, j, k)) - { - boolean flag1 = false; - - while (!flag1 && j > 0) - { - l = entityLiving.worldObj.getBlock(i, j - 1, k); - - if (l != null && l.getMaterial().blocksMovement()) - { - flag1 = true; - } else - { - --entityLiving.posY; - --j; - } - } - - if (flag1) - { - SpellTeleport.moveEntityViaTeleport(entityLiving, entityLiving.posX, entityLiving.posY, entityLiving.posZ); - - if (entityLiving.worldObj.getCollidingBoundingBoxes(entityLiving, entityLiving.boundingBox).isEmpty() && !entityLiving.worldObj.isAnyLiquid(entityLiving.boundingBox)) - { - flag = true; - } - } - } - - if (!flag) - { - SpellTeleport.moveEntityViaTeleport(entityLiving, d3, d4, d5); - return false; - } else - { - short short1 = 128; - - for (j = 0; j < short1; ++j) - { - double d6 = (double) j / ((double) short1 - 1.0D); - float f = (entityLiving.worldObj.rand.nextFloat() - 0.5F) * 0.2F; - float f1 = (entityLiving.worldObj.rand.nextFloat() - 0.5F) * 0.2F; - float f2 = (entityLiving.worldObj.rand.nextFloat() - 0.5F) * 0.2F; - double d7 = d3 + (entityLiving.posX - d3) * d6 + (entityLiving.worldObj.rand.nextDouble() - 0.5D) * (double) entityLiving.width * 2.0D; - double d8 = d4 + (entityLiving.posY - d4) * d6 + entityLiving.worldObj.rand.nextDouble() * (double) entityLiving.height; - double d9 = d5 + (entityLiving.posZ - d5) * d6 + (entityLiving.worldObj.rand.nextDouble() - 0.5D) * (double) entityLiving.width * 2.0D; - entityLiving.worldObj.spawnParticle("portal", d7, d8, d9, (double) f, (double) f1, (double) f2); - } - -// this.worldObj.playSoundEffect(d3, d4, d5, "mob.endermen.portal", 1.0F, 1.0F); -// this.playSound("mob.endermen.portal", 1.0F, 1.0F); - return true; - } - } - - public static void moveEntityViaTeleport(EntityLivingBase entityLiving, double x, double y, double z) - { - if (entityLiving instanceof EntityPlayer) - { - if (entityLiving != null && entityLiving instanceof EntityPlayerMP) - { - EntityPlayerMP entityplayermp = (EntityPlayerMP) entityLiving; - - //if (!entityplayermp.playerNetServerHandler.connectionClosed && entityplayermp.worldObj == entityLiving.worldObj) - if (entityplayermp.worldObj == entityLiving.worldObj) - { - EnderTeleportEvent event = new EnderTeleportEvent(entityplayermp, x, y, z, 5.0F); - - if (!MinecraftForge.EVENT_BUS.post(event)) - { - if (entityLiving.isRiding()) - { - entityLiving.mountEntity((Entity) null); - } - - entityLiving.setPositionAndUpdate(event.targetX, event.targetY, event.targetZ); -// this.getThrower().fallDistance = 0.0F; -// this.getThrower().attackEntityFrom(DamageSource.fall, event.attackDamage); - } - } - } - } else if (entityLiving != null) - { - entityLiving.setPosition(x, y, z); - } - } -} diff --git a/1.7.2/main/java/WayofTime/alchemicalWizardry/common/spell/simple/SpellWateryGrave.java b/1.7.2/main/java/WayofTime/alchemicalWizardry/common/spell/simple/SpellWateryGrave.java deleted file mode 100644 index 91f9c1e5..00000000 --- a/1.7.2/main/java/WayofTime/alchemicalWizardry/common/spell/simple/SpellWateryGrave.java +++ /dev/null @@ -1,180 +0,0 @@ -package WayofTime.alchemicalWizardry.common.spell.simple; - -import java.util.Iterator; -import java.util.List; -import java.util.Random; - -import net.minecraft.entity.EntityLivingBase; -import net.minecraft.entity.player.EntityPlayer; -import net.minecraft.init.Blocks; -import net.minecraft.item.ItemStack; -import net.minecraft.potion.PotionEffect; -import net.minecraft.util.AxisAlignedBB; -import net.minecraft.util.DamageSource; -import net.minecraft.world.World; -import WayofTime.alchemicalWizardry.AlchemicalWizardry; -import WayofTime.alchemicalWizardry.common.PacketHandler; -import WayofTime.alchemicalWizardry.common.entity.projectile.WaterProjectile; -import WayofTime.alchemicalWizardry.common.items.EnergyItems; -import WayofTime.alchemicalWizardry.common.spell.complex.effect.SpellHelper; - -public class SpellWateryGrave extends HomSpell -{ - Random itemRand = new Random(); - - public SpellWateryGrave() - { - super(); - this.setEnergies(250, 350, 500, 750); - //this.setCreativeTab(CreativeTabs.tabMisc); - } - - @Override - public ItemStack onOffensiveRangedRightClick(ItemStack par1ItemStack, World par2World, EntityPlayer par3EntityPlayer) - { - EnergyItems.checkAndSetItemOwner(par1ItemStack, par3EntityPlayer); - - if (par3EntityPlayer.isSneaking()) - { - return par1ItemStack; - } - - if (!par3EntityPlayer.capabilities.isCreativeMode) - { - EnergyItems.syphonAndDamageWhileInContainer(par1ItemStack, par3EntityPlayer, this.getOffensiveRangedEnergy()); - } - - par2World.spawnEntityInWorld(new WaterProjectile(par2World, par3EntityPlayer, 8)); - par2World.playSoundAtEntity(par3EntityPlayer, "random.fizz", 0.5F, 0.4F / (itemRand.nextFloat() * 0.4F + 0.8F)); - return par1ItemStack; - } - - @Override - public ItemStack onOffensiveMeleeRightClick(ItemStack par1ItemStack, World par2World, EntityPlayer par3EntityPlayer) - { - EnergyItems.checkAndSetItemOwner(par1ItemStack, par3EntityPlayer); - - if (par3EntityPlayer.isSneaking()) - { - return par1ItemStack; - } - - if (!par3EntityPlayer.capabilities.isCreativeMode) - { - EnergyItems.syphonAndDamageWhileInContainer(par1ItemStack, par3EntityPlayer, this.getOffensiveMeleeEnergy()); - } - - if (!par2World.isRemote) - { - for (int i = -1; i <= 1; i++) - { - for (int j = -1; j <= 1; j++) - { - par2World.spawnEntityInWorld(new WaterProjectile(par2World, par3EntityPlayer, 3, 3, par3EntityPlayer.posX, par3EntityPlayer.posY + par3EntityPlayer.getEyeHeight(), par3EntityPlayer.posZ, par3EntityPlayer.rotationYaw + i * 10F, par3EntityPlayer.rotationPitch + j * 5F)); - } - } - } - - return par1ItemStack; - } - - @Override - public ItemStack onDefensiveRightClick(ItemStack par1ItemStack, World par2World, EntityPlayer par3EntityPlayer) - { - EnergyItems.checkAndSetItemOwner(par1ItemStack, par3EntityPlayer); - - if (par3EntityPlayer.isSneaking()) - { - return par1ItemStack; - } - - if (!par3EntityPlayer.capabilities.isCreativeMode) - { - EnergyItems.syphonAndDamageWhileInContainer(par1ItemStack, par3EntityPlayer, this.getDefensiveEnergy()); - } - - int d0 = 3; - AxisAlignedBB axisalignedbb = AxisAlignedBB.getAABBPool().getAABB((double) par3EntityPlayer.posX, (double) par3EntityPlayer.posY, (double) par3EntityPlayer.posZ, (double) (par3EntityPlayer.posX + 1), (double) (par3EntityPlayer.posY + 2), (double) (par3EntityPlayer.posZ + 1)).expand(d0, d0, d0); - //axisalignedbb.maxY = (double)this.worldObj.getHeight(); - List list = par3EntityPlayer.worldObj.getEntitiesWithinAABB(EntityLivingBase.class, axisalignedbb); - Iterator iterator = list.iterator(); - - while (iterator.hasNext()) - { - EntityLivingBase entityLiving = (EntityLivingBase) iterator.next(); - - if (entityLiving instanceof EntityPlayer) - { - if (entityLiving.equals(par3EntityPlayer)) - { - continue; - } - } - - int x = 1; - - if (entityLiving.isImmuneToFire()) - { - x = 2; - } - - entityLiving.attackEntityFrom(DamageSource.drown, 2 * x); - entityLiving.addPotionEffect(new PotionEffect(AlchemicalWizardry.customPotionDrowning.id, 100, x - 1)); - } - - double xCoord = par3EntityPlayer.posX; - double yCoord = par3EntityPlayer.posY; - double zCoord = par3EntityPlayer.posZ; - - for (int i = 0; i < 20; i++) - { - //PacketDispatcher.sendPacketToAllAround(xCoord, yCoord, zCoord, 30, par2World.provider.dimensionId, PacketHandler.getCustomParticlePacket("mobSpell", xCoord + (itemRand.nextFloat() - itemRand.nextFloat()) * 3, yCoord + (itemRand.nextFloat() - itemRand.nextFloat()) * 3, zCoord + (itemRand.nextFloat() - itemRand.nextFloat()) * 3, 0.0F, 0.410F, 1.0F)); - SpellHelper.sendParticleToAllAround(par2World, xCoord, yCoord, zCoord, 30, par2World.provider.dimensionId, "mobSpell", xCoord + (itemRand.nextFloat() - itemRand.nextFloat()) * 3, yCoord + (itemRand.nextFloat() - itemRand.nextFloat()) * 3, zCoord + (itemRand.nextFloat() - itemRand.nextFloat()) * 3, 0.0F, 0.410F, 1.0F); - } - - return par1ItemStack; - } - - @Override - public ItemStack onEnvironmentalRightClick(ItemStack par1ItemStack, World par2World, EntityPlayer par3EntityPlayer) - { - EnergyItems.checkAndSetItemOwner(par1ItemStack, par3EntityPlayer); - - if (par3EntityPlayer.isSneaking()) - { - return par1ItemStack; - } - - if (!par3EntityPlayer.capabilities.isCreativeMode) - { - EnergyItems.syphonAndDamageWhileInContainer(par1ItemStack, par3EntityPlayer, this.getEnvironmentalEnergy()); - } - - int range = 2; - - if (!par2World.isRemote) - { - for (int i = -range; i <= range; i++) - { - for (int j = -range; j <= range; j++) - { - if (par2World.isAirBlock((int) par3EntityPlayer.posX + i, (int) par3EntityPlayer.posY, (int) par3EntityPlayer.posZ + j)) - { - par2World.setBlock((int) par3EntityPlayer.posX + i, (int) par3EntityPlayer.posY, (int) par3EntityPlayer.posZ + j, Blocks.water); - } - } - } - } - - double xCoord = par3EntityPlayer.posX; - double yCoord = par3EntityPlayer.posY; - double zCoord = par3EntityPlayer.posZ; - - for (int i = 0; i < 16; i++) - { - SpellHelper.sendParticleToAllAround(par2World, xCoord, yCoord, zCoord, 30, par2World.provider.dimensionId, "mobSpell", xCoord + (itemRand.nextFloat() - itemRand.nextFloat()) * 3, yCoord + (itemRand.nextFloat() - itemRand.nextFloat()) * 3, zCoord + (itemRand.nextFloat() - itemRand.nextFloat()) * 3, 0.0F, 0.410F, 1.0F); - } - - return par1ItemStack; - } -} diff --git a/1.7.2/main/java/WayofTime/alchemicalWizardry/common/spell/simple/SpellWindGust.java b/1.7.2/main/java/WayofTime/alchemicalWizardry/common/spell/simple/SpellWindGust.java deleted file mode 100644 index 516ff944..00000000 --- a/1.7.2/main/java/WayofTime/alchemicalWizardry/common/spell/simple/SpellWindGust.java +++ /dev/null @@ -1,219 +0,0 @@ -package WayofTime.alchemicalWizardry.common.spell.simple; - -import ibxm.Player; - -import java.util.Iterator; -import java.util.List; -import java.util.Random; - -import net.minecraft.entity.EntityLivingBase; -import net.minecraft.entity.player.EntityPlayer; -import net.minecraft.item.ItemStack; -import net.minecraft.util.AxisAlignedBB; -import net.minecraft.util.Vec3; -import net.minecraft.world.World; -import WayofTime.alchemicalWizardry.common.PacketHandler; -import WayofTime.alchemicalWizardry.common.entity.projectile.WindGustProjectile; -import WayofTime.alchemicalWizardry.common.items.EnergyItems; -import WayofTime.alchemicalWizardry.common.spell.complex.effect.SpellHelper; - -public class SpellWindGust extends HomSpell -{ - Random itemRand = new Random(); - - public SpellWindGust() - { - super(); - this.setEnergies(300, 400, 300, 500); - //this.setCreativeTab(CreativeTabs.tabMisc); - } - - @Override - public ItemStack onOffensiveRangedRightClick(ItemStack par1ItemStack, World par2World, EntityPlayer par3EntityPlayer) - { - EnergyItems.checkAndSetItemOwner(par1ItemStack, par3EntityPlayer); - - if (par3EntityPlayer.isSneaking()) - { - return par1ItemStack; - } - - if (!par3EntityPlayer.capabilities.isCreativeMode) - { - EnergyItems.syphonAndDamageWhileInContainer(par1ItemStack, par3EntityPlayer, this.getOffensiveRangedEnergy()); - } - - par2World.playSoundAtEntity(par3EntityPlayer, "random.fizz", 0.5F, 0.4F / (itemRand.nextFloat() * 0.4F + 0.8F)); - - if (!par2World.isRemote) - { - //par2World.spawnEntityInWorld(new EnergyBlastProjectile(par2World, par3EntityPlayer, damage)); - par2World.spawnEntityInWorld(new WindGustProjectile(par2World, par3EntityPlayer, 8)); - } - - return par1ItemStack; - } - - @Override - public ItemStack onOffensiveMeleeRightClick(ItemStack par1ItemStack, World par2World, EntityPlayer par3EntityPlayer) - { - EnergyItems.checkAndSetItemOwner(par1ItemStack, par3EntityPlayer); - - if (par3EntityPlayer.isSneaking()) - { - return par1ItemStack; - } - - if (!par3EntityPlayer.capabilities.isCreativeMode) - { - EnergyItems.syphonAndDamageWhileInContainer(par1ItemStack, par3EntityPlayer, this.getOffensiveMeleeEnergy()); - } - - int distance = 3; - double yaw = par3EntityPlayer.rotationYaw / 180 * Math.PI; - double pitch = par3EntityPlayer.rotationPitch / 180 * Math.PI; - double xCoord = par3EntityPlayer.posX + Math.sin(yaw) * Math.cos(pitch) * (-distance); - double yCoord = par3EntityPlayer.posY + par3EntityPlayer.getEyeHeight() + Math.sin(-pitch) * distance; - double zCoord = par3EntityPlayer.posZ + Math.cos(yaw) * Math.cos(pitch) * distance; - float d0 = 0.5f; - AxisAlignedBB axisalignedbb = AxisAlignedBB.getAABBPool().getAABB(par3EntityPlayer.posX - 0.5 + Math.sin(yaw) * Math.cos(pitch) * (-distance), par3EntityPlayer.posY + par3EntityPlayer.getEyeHeight() + Math.sin(-pitch) * distance, par3EntityPlayer.posZ - 0.5 + Math.cos(yaw) * Math.cos(pitch) * distance, par3EntityPlayer.posX + Math.sin(yaw) * Math.cos(pitch) * (-distance) + 0.5, par3EntityPlayer.posY + par3EntityPlayer.getEyeHeight() + Math.sin(-pitch) * distance + 1, par3EntityPlayer.posZ + Math.cos(yaw) * Math.cos(pitch) * distance + 0.5).expand(d0, d0, d0); - //axisalignedbb.maxY = (double)this.worldObj.getHeight(); - List list = par3EntityPlayer.worldObj.getEntitiesWithinAABB(EntityLivingBase.class, axisalignedbb); - Iterator iterator = list.iterator(); - - while (iterator.hasNext()) - { - EntityLivingBase entityLiving = (EntityLivingBase) iterator.next(); - - if (entityLiving instanceof EntityPlayer) - { - if (entityLiving.equals(par3EntityPlayer)) - { - continue; - } - } - - //entityLiving.setFire(50); - //entityLiving.attackEntityFrom(DamageSource.causePlayerDamage(par3EntityPlayer), 5*i); - //entityLiving.setVelocity(Math.sin(-yaw)*2, 2, Math.cos(yaw)*2); - entityLiving.motionX = Math.sin(-yaw) * 2; - entityLiving.motionY = 2; - entityLiving.motionZ = Math.cos(yaw) * 2; - //par2World.createExplosion(par3EntityPlayer, par3EntityPlayer.posX, par3EntityPlayer.posY, par3EntityPlayer.posZ, (float)(2), false); - } - - //par2World.createExplosion(par3EntityPlayer, xCoord, yCoord, zCoord, (float)(1), false); - - for (int i = 0; i < 5; i++) - { - SpellHelper.sendParticleToAllAround(par2World, xCoord, yCoord, zCoord, 30, par2World.provider.dimensionId, "mobSpell", xCoord + (itemRand.nextFloat() - itemRand.nextFloat()) * 3, yCoord + (itemRand.nextFloat() - itemRand.nextFloat()) * 3, zCoord + (itemRand.nextFloat() - itemRand.nextFloat()) * 3, 0.0F, 0.410F, 1.0F); - - } - - return par1ItemStack; - } - - @Override - public ItemStack onDefensiveRightClick(ItemStack par1ItemStack, World par2World, EntityPlayer par3EntityPlayer) - { - EnergyItems.checkAndSetItemOwner(par1ItemStack, par3EntityPlayer); - - if (par3EntityPlayer.isSneaking()) - { - return par1ItemStack; - } - - if (!par3EntityPlayer.capabilities.isCreativeMode) - { - EnergyItems.syphonAndDamageWhileInContainer(par1ItemStack, par3EntityPlayer, this.getDefensiveEnergy()); - } - - int distance = 3; - double yaw = par3EntityPlayer.rotationYaw / 180 * Math.PI; - double pitch = par3EntityPlayer.rotationPitch / 180 * Math.PI; - double wantedVelocity = 5; - double xVel = Math.sin(yaw) * Math.cos(pitch) * (-wantedVelocity); - double yVel = Math.sin(-pitch) * wantedVelocity; - double zVel = Math.cos(yaw) * Math.cos(pitch) * wantedVelocity; - Vec3 vec = par3EntityPlayer.getLookVec(); - par3EntityPlayer.motionX = vec.xCoord * wantedVelocity; - par3EntityPlayer.motionY = vec.yCoord * wantedVelocity; - par3EntityPlayer.motionZ = vec.zCoord * wantedVelocity; - //PacketDispatcher.sendPacketToPlayer(PacketHandler.getPlayerVelocitySettingPacket(xVel, yVel, zVel), (Player) par3EntityPlayer); - SpellHelper.setPlayerSpeedFromServer(par3EntityPlayer, xVel, yVel, zVel); - par2World.playSoundEffect((double) ((float) par3EntityPlayer.posX + 0.5F), (double) ((float) par3EntityPlayer.posY + 0.5F), (double) ((float) par3EntityPlayer.posZ + 0.5F), "random.fizz", 0.5F, 2.6F + (par2World.rand.nextFloat() - par2World.rand.nextFloat()) * 0.8F); - par3EntityPlayer.fallDistance = 0; - //par2World.createExplosion(par3EntityPlayer, par3EntityPlayer.posX, par3EntityPlayer.posY, par3EntityPlayer.posZ, (float)(2), false); - double xCoord = par3EntityPlayer.posX; - double yCoord = par3EntityPlayer.posY; - double zCoord = par3EntityPlayer.posZ; - - for (int i = 0; i < 8; i++) - { - SpellHelper.sendParticleToAllAround(par2World, xCoord, yCoord, zCoord, 30, par2World.provider.dimensionId, "mobSpell", xCoord + (itemRand.nextFloat() - itemRand.nextFloat()) * 3, yCoord + (itemRand.nextFloat() - itemRand.nextFloat()) * 3, zCoord + (itemRand.nextFloat() - itemRand.nextFloat()) * 3, 0.0F, 0.410F, 1.0F); - } - - return par1ItemStack; - } - - @Override - public ItemStack onEnvironmentalRightClick(ItemStack par1ItemStack, World par2World, EntityPlayer par3EntityPlayer) - { - EnergyItems.checkAndSetItemOwner(par1ItemStack, par3EntityPlayer); - - if (par3EntityPlayer.isSneaking()) - { - return par1ItemStack; - } - - if (!par3EntityPlayer.capabilities.isCreativeMode) - { - EnergyItems.syphonAndDamageWhileInContainer(par1ItemStack, par3EntityPlayer, this.getEnvironmentalEnergy()); - } - - int d0 = 3; - AxisAlignedBB axisalignedbb = AxisAlignedBB.getAABBPool().getAABB((double) par3EntityPlayer.posX, (double) par3EntityPlayer.posY, (double) par3EntityPlayer.posZ, (double) (par3EntityPlayer.posX + 1), (double) (par3EntityPlayer.posY + 2), (double) (par3EntityPlayer.posZ + 1)).expand(d0, d0, d0); - //axisalignedbb.maxY = (double)this.worldObj.getHeight(); - List list = par3EntityPlayer.worldObj.getEntitiesWithinAABB(EntityLivingBase.class, axisalignedbb); - Iterator iterator = list.iterator(); - double xCoord = par3EntityPlayer.posX; - double yCoord = par3EntityPlayer.posY; - double zCoord = par3EntityPlayer.posZ; - double wantedVel = 2; - - while (iterator.hasNext()) - { - EntityLivingBase entityLiving = (EntityLivingBase) iterator.next(); - - if (entityLiving instanceof EntityPlayer) - { - if (entityLiving.equals(par3EntityPlayer)) - { - continue; - } - } - - double posXDif = entityLiving.posX - par3EntityPlayer.posX; - double posYDif = entityLiving.posY - par3EntityPlayer.posY + 1; - double posZDif = entityLiving.posZ - par3EntityPlayer.posZ; - double distance2 = Math.pow(posXDif, 2) + Math.pow(posYDif, 2) + Math.pow(posZDif, 2); - double distance = Math.sqrt(distance2); - //entityLiving.setVelocity(posXDif*wantedVel/distance, posYDif*wantedVel/distance, posZDif*wantedVel/distance); - entityLiving.motionX = posXDif * wantedVel / distance; - entityLiving.motionY = posYDif * wantedVel / distance; - entityLiving.motionZ = posZDif * wantedVel / distance; - //entityLiving.setFire(50); - //entityLiving.attackEntityFrom(DamageSource.causePlayerDamage(par3EntityPlayer), 5*i); - //par2World.createExplosion(par3EntityPlayer, par3EntityPlayer.posX, par3EntityPlayer.posY, par3EntityPlayer.posZ, (float)(2), false); - } - - //par2World.createExplosion(par3EntityPlayer, par3EntityPlayer.posX, par3EntityPlayer.posY, par3EntityPlayer.posZ, (float)(2), false); - - for (int i = 0; i < 20; i++) - { - SpellHelper.sendParticleToAllAround(par2World, xCoord, yCoord, zCoord, 30, par2World.provider.dimensionId, "mobSpell", xCoord + (itemRand.nextFloat() - itemRand.nextFloat()) * 3, yCoord + (itemRand.nextFloat() - itemRand.nextFloat()) * 3, zCoord + (itemRand.nextFloat() - itemRand.nextFloat()) * 3, 0.0F, 0.410F, 1.0F); - } - - return par1ItemStack; - } -} \ No newline at end of file diff --git a/1.7.2/main/java/WayofTime/alchemicalWizardry/common/summoning/SummoningFallenAngel.java b/1.7.2/main/java/WayofTime/alchemicalWizardry/common/summoning/SummoningFallenAngel.java deleted file mode 100644 index bade513d..00000000 --- a/1.7.2/main/java/WayofTime/alchemicalWizardry/common/summoning/SummoningFallenAngel.java +++ /dev/null @@ -1,20 +0,0 @@ -package WayofTime.alchemicalWizardry.common.summoning; - -import WayofTime.alchemicalWizardry.api.summoningRegistry.SummoningHelper; -import WayofTime.alchemicalWizardry.common.entity.mob.EntityFallenAngel; -import net.minecraft.entity.EntityLivingBase; -import net.minecraft.world.World; - -public class SummoningFallenAngel extends SummoningHelper -{ - public SummoningFallenAngel(int id) - { - super(id); - // TODO Auto-generated constructor stub - } - - public EntityLivingBase getEntity(World worldObj) - { - return new EntityFallenAngel(worldObj); - } -} diff --git a/1.7.2/main/java/WayofTime/alchemicalWizardry/common/summoning/SummoningHelperAW.java b/1.7.2/main/java/WayofTime/alchemicalWizardry/common/summoning/SummoningHelperAW.java deleted file mode 100644 index 8d615cf1..00000000 --- a/1.7.2/main/java/WayofTime/alchemicalWizardry/common/summoning/SummoningHelperAW.java +++ /dev/null @@ -1,109 +0,0 @@ -package WayofTime.alchemicalWizardry.common.summoning; - -import net.minecraft.entity.EntityLivingBase; -import net.minecraft.entity.passive.EntityPig; -import net.minecraft.world.World; -import WayofTime.alchemicalWizardry.AlchemicalWizardry; -import WayofTime.alchemicalWizardry.api.summoningRegistry.SummoningHelper; -import WayofTime.alchemicalWizardry.common.EntityAirElemental; -import WayofTime.alchemicalWizardry.common.entity.mob.EntityBileDemon; -import WayofTime.alchemicalWizardry.common.entity.mob.EntityBoulderFist; -import WayofTime.alchemicalWizardry.common.entity.mob.EntityEarthElemental; -import WayofTime.alchemicalWizardry.common.entity.mob.EntityFallenAngel; -import WayofTime.alchemicalWizardry.common.entity.mob.EntityFireElemental; -import WayofTime.alchemicalWizardry.common.entity.mob.EntityHolyElemental; -import WayofTime.alchemicalWizardry.common.entity.mob.EntityIceDemon; -import WayofTime.alchemicalWizardry.common.entity.mob.EntityLowerGuardian; -import WayofTime.alchemicalWizardry.common.entity.mob.EntityShade; -import WayofTime.alchemicalWizardry.common.entity.mob.EntityShadeElemental; -import WayofTime.alchemicalWizardry.common.entity.mob.EntitySmallEarthGolem; -import WayofTime.alchemicalWizardry.common.entity.mob.EntityWaterElemental; -import WayofTime.alchemicalWizardry.common.entity.mob.EntityWingedFireDemon; - -public class SummoningHelperAW extends SummoningHelper -{ - public SummoningHelperAW(int id) - { - super(id); - } - - public EntityLivingBase getEntity(World worldObj) - { - if (this.id == AlchemicalWizardry.entityFallenAngelID) - { - return new EntityFallenAngel(worldObj); - } - - if (this.id == AlchemicalWizardry.entityLowerGuardianID) - { - return new EntityLowerGuardian(worldObj); - } - - if (this.id == AlchemicalWizardry.entityBileDemonID) - { - return new EntityBileDemon(worldObj); - } - - if (this.id == AlchemicalWizardry.entityWingedFireDemonID) - { - return new EntityWingedFireDemon(worldObj); - } - - if (this.id == AlchemicalWizardry.entitySmallEarthGolemID) - { - return new EntitySmallEarthGolem(worldObj); - } - - if (this.id == AlchemicalWizardry.entityIceDemonID) - { - return new EntityIceDemon(worldObj); - } - - if (this.id == AlchemicalWizardry.entityBoulderFistID) - { - return new EntityBoulderFist(worldObj); - } - - if (this.id == AlchemicalWizardry.entityShadeID) - { - return new EntityShade(worldObj); - } - - if (this.id == AlchemicalWizardry.entityAirElementalID) - { - return new EntityAirElemental(worldObj); - } - - if (this.id == AlchemicalWizardry.entityWaterElementalID) - { - return new EntityWaterElemental(worldObj); - } - - if (this.id == AlchemicalWizardry.entityEarthElementalID) - { - return new EntityEarthElemental(worldObj); - } - - if (this.id == AlchemicalWizardry.entityFireElementalID) - { - return new EntityFireElemental(worldObj); - } - - if (this.id == AlchemicalWizardry.entityShadeElementalID) - { - return new EntityShadeElemental(worldObj); - } - - if (this.id == AlchemicalWizardry.entityHolyElementalID) - { - return new EntityHolyElemental(worldObj); - } - - return new EntityPig(worldObj); - } - - public int getSummoningHelperID() - { - return id; - } -} diff --git a/1.7.2/main/java/WayofTime/alchemicalWizardry/common/summoning/meteor/MeteorParadigm.java b/1.7.2/main/java/WayofTime/alchemicalWizardry/common/summoning/meteor/MeteorParadigm.java deleted file mode 100644 index 5d3fcb7b..00000000 --- a/1.7.2/main/java/WayofTime/alchemicalWizardry/common/summoning/meteor/MeteorParadigm.java +++ /dev/null @@ -1,86 +0,0 @@ -package WayofTime.alchemicalWizardry.common.summoning.meteor; - -import java.util.ArrayList; -import java.util.List; - -import net.minecraft.block.Block; -import net.minecraft.init.Blocks; -import net.minecraft.item.Item; -import net.minecraft.item.ItemStack; -import net.minecraft.world.World; -import WayofTime.alchemicalWizardry.AlchemicalWizardry; - -public class MeteorParadigm -{ - public List componentList = new ArrayList(); - public ItemStack focusStack; - public int radius; - public static int maxChance = 1000; - - public MeteorParadigm(ItemStack focusStack, int radius) - { - this.focusStack = focusStack; - this.radius = radius; - } - - public void parseStringArray(String[] oreArray) - { - for (int i = 0; i + 1 < oreArray.length; i += 2) - { - String oreName = oreArray[i]; - int oreChance = Integer.parseInt(oreArray[i + 1]); - MeteorParadigmComponent mpc = new MeteorParadigmComponent(oreName, oreChance); - componentList.add(mpc); - } - } - - public void createMeteorImpact(World world, int x, int y, int z) - { - world.createExplosion(null, x, y, z, radius * 4, AlchemicalWizardry.doMeteorsDestroyBlocks); - - 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; - } - - if (!world.isAirBlock(x + i, y + j, z + k)) - { - continue; - } - - int randNum = world.rand.nextInt(maxChance); - boolean hasPlacedBlock = false; - - for (MeteorParadigmComponent mpc : componentList) - { - if (mpc == null || !mpc.isValidBlockParadigm()) - { - continue; - } - - randNum -= mpc.getChance(); - - if (randNum < 0) - { - ItemStack blockStack = mpc.getValidBlockParadigm(); - world.setBlock(x + i, y + j, z + k, Block.getBlockById(Item.getIdFromItem(blockStack.getItem())), blockStack.getItemDamage(), 3); - hasPlacedBlock = true; - break; - } - } - - if (!hasPlacedBlock) - { - world.setBlock(x + i, y + j, z + k, Blocks.stone, 0, 3); - } - } - } - } - } -} diff --git a/1.7.2/main/java/WayofTime/alchemicalWizardry/common/summoning/meteor/MeteorParadigmComponent.java b/1.7.2/main/java/WayofTime/alchemicalWizardry/common/summoning/meteor/MeteorParadigmComponent.java deleted file mode 100644 index 0daa43a1..00000000 --- a/1.7.2/main/java/WayofTime/alchemicalWizardry/common/summoning/meteor/MeteorParadigmComponent.java +++ /dev/null @@ -1,54 +0,0 @@ -package WayofTime.alchemicalWizardry.common.summoning.meteor; - -import net.minecraft.item.ItemBlock; -import net.minecraft.item.ItemStack; -import net.minecraftforge.oredict.OreDictionary; - -import java.util.List; - -public class MeteorParadigmComponent -{ - public String oreDictName; - public int chance; - - public MeteorParadigmComponent(String dictName, int chance) - { - this.oreDictName = dictName; - this.chance = chance; - } - - public boolean isValidBlockParadigm() - { - if (this.getValidBlockParadigm() != null) - { - return true; - } - - return false; - } - - public String getOreDictName() - { - return this.oreDictName; - } - - public int getChance() - { - return this.chance; - } - - public ItemStack getValidBlockParadigm() - { - List list = OreDictionary.getOres(getOreDictName()); - - for (ItemStack stack : list) - { - if (stack != null && stack.getItem() instanceof ItemBlock) - { - return stack; - } - } - - return null; - } -} diff --git a/1.7.2/main/java/WayofTime/alchemicalWizardry/common/summoning/meteor/MeteorRegistry.java b/1.7.2/main/java/WayofTime/alchemicalWizardry/common/summoning/meteor/MeteorRegistry.java deleted file mode 100644 index 4df585c1..00000000 --- a/1.7.2/main/java/WayofTime/alchemicalWizardry/common/summoning/meteor/MeteorRegistry.java +++ /dev/null @@ -1,61 +0,0 @@ -package WayofTime.alchemicalWizardry.common.summoning.meteor; - -import net.minecraft.item.ItemStack; -import net.minecraft.world.World; -import net.minecraftforge.oredict.OreDictionary; - -import java.util.ArrayList; -import java.util.List; - -public class MeteorRegistry -{ - public static List paradigmList = new ArrayList(); - - public static void registerMeteorParadigm(MeteorParadigm paradigm) - { - paradigmList.add(paradigm); - } - - public static void registerMeteorParadigm(ItemStack stack, String[] oreList, int radius) - { - if (stack != null && oreList != null) - { - MeteorParadigm meteor = new MeteorParadigm(stack, radius); - meteor.parseStringArray(oreList); - paradigmList.add(meteor); - } - } - - public static void createMeteorImpact(World world, int x, int y, int z, int paradigmID) - { - if (paradigmID < paradigmList.size()) - { - paradigmList.get(paradigmID).createMeteorImpact(world, x, y, z); - } - } - - public static int getParadigmIDForItem(ItemStack stack) - { - if (stack == null) - { - return -1; - } - - for (int i = 0; i < paradigmList.size(); i++) - { - ItemStack focusStack = paradigmList.get(i).focusStack; - - if (focusStack != null && focusStack.getItem()== stack.getItem() && (focusStack.getItemDamage() == OreDictionary.WILDCARD_VALUE || focusStack.getItemDamage() == stack.getItemDamage())) - { - return i; - } - } - - return -1; - } - - public static boolean isValidParadigmItem(ItemStack stack) - { - return getParadigmIDForItem(stack) != -1; - } -} diff --git a/1.7.2/main/java/WayofTime/alchemicalWizardry/common/tileEntity/TEAltar.java b/1.7.2/main/java/WayofTime/alchemicalWizardry/common/tileEntity/TEAltar.java deleted file mode 100644 index 51f5f2aa..00000000 --- a/1.7.2/main/java/WayofTime/alchemicalWizardry/common/tileEntity/TEAltar.java +++ /dev/null @@ -1,1084 +0,0 @@ -package WayofTime.alchemicalWizardry.common.tileEntity; - -import WayofTime.alchemicalWizardry.api.tile.IBloodAltar; -import net.minecraft.entity.player.EntityPlayer; -import net.minecraft.inventory.IInventory; -import net.minecraft.item.Item; -import net.minecraft.item.ItemStack; -import net.minecraft.nbt.NBTTagCompound; -import net.minecraft.nbt.NBTTagList; -import net.minecraft.network.Packet; -import net.minecraft.server.MinecraftServer; -import net.minecraft.tileentity.TileEntity; -import net.minecraft.util.ChatComponentText; -import net.minecraft.world.World; -import net.minecraftforge.common.util.Constants; -import net.minecraftforge.common.util.ForgeDirection; -import net.minecraftforge.fluids.Fluid; -import net.minecraftforge.fluids.FluidContainerRegistry; -import net.minecraftforge.fluids.FluidEvent; -import net.minecraftforge.fluids.FluidStack; -import net.minecraftforge.fluids.FluidTank; -import net.minecraftforge.fluids.FluidTankInfo; -import net.minecraftforge.fluids.IFluidHandler; -import net.minecraftforge.fluids.IFluidTank; -import WayofTime.alchemicalWizardry.AlchemicalWizardry; -import WayofTime.alchemicalWizardry.api.altarRecipeRegistry.AltarRecipe; -import WayofTime.alchemicalWizardry.api.altarRecipeRegistry.AltarRecipeRegistry; -import WayofTime.alchemicalWizardry.api.items.interfaces.IBloodOrb; -import WayofTime.alchemicalWizardry.api.soulNetwork.LifeEssenceNetwork; -import WayofTime.alchemicalWizardry.common.NewPacketHandler; -import WayofTime.alchemicalWizardry.common.bloodAltarUpgrade.AltarUpgradeComponent; -import WayofTime.alchemicalWizardry.common.bloodAltarUpgrade.UpgradedAltars; -import WayofTime.alchemicalWizardry.common.spell.complex.effect.SpellHelper; - -public class TEAltar extends TileEntity implements IInventory, IFluidTank, IFluidHandler, IBloodAltar -{ - public static final int sizeInv = 1; - private ItemStack[] inv; - private int resultID; - private int resultDamage; - private int upgradeLevel; - //public final LiquidTank tank = new LiquidTank(LiquidContainerRegistry.BUCKET_VOLUME * 10); - protected FluidStack fluid; - public int capacity; - private boolean isActive; - private int liquidRequired; //mB - private boolean canBeFilled; - private int consumptionRate; - private int drainRate; - private float consumptionMultiplier; - private float efficiencyMultiplier; - private float sacrificeEfficiencyMultiplier; - private float selfSacrificeEfficiencyMultiplier; - private float capacityMultiplier; - private float orbCapacityMultiplier; - private float dislocationMultiplier; - private boolean isUpgraded; - private boolean isResultBlock; - private int bufferCapacity; - protected FluidStack fluidOutput; - protected FluidStack fluidInput; - private int progress; - - public TEAltar() - { - this.inv = new ItemStack[1]; - resultID = 0; - resultDamage = 0; - this.capacity = FluidContainerRegistry.BUCKET_VOLUME * 10; - fluid = new FluidStack(AlchemicalWizardry.lifeEssenceFluid, 0); - fluidOutput = new FluidStack(AlchemicalWizardry.lifeEssenceFluid, 0); - fluidInput = new FluidStack(AlchemicalWizardry.lifeEssenceFluid, 0); - bufferCapacity = FluidContainerRegistry.BUCKET_VOLUME; - isActive = false; - consumptionRate = 0; - drainRate = 0; - consumptionMultiplier = 0; - efficiencyMultiplier = 0; - capacityMultiplier = 1; - isUpgraded = false; - upgradeLevel = 0; - isResultBlock = false; - progress = 0; - } - - @Override - public void readFromNBT(NBTTagCompound par1NBTTagCompound) - { - super.readFromNBT(par1NBTTagCompound); - NBTTagList tagList = par1NBTTagCompound.getTagList("Inventory",Constants.NBT.TAG_COMPOUND); - - for (int i = 0; i < tagList.tagCount(); i++) - { - NBTTagCompound tag = (NBTTagCompound) tagList.getCompoundTagAt(i); - int slot = tag.getByte("Slot"); - - if (slot >= 0 && slot < inv.length) - { - inv[slot] = ItemStack.loadItemStackFromNBT(tag); - } - } - - resultID = par1NBTTagCompound.getInteger("resultID"); - resultDamage = par1NBTTagCompound.getInteger("resultDamage"); - - if (!par1NBTTagCompound.hasKey("Empty")) - { - FluidStack fluid = this.fluid.loadFluidStackFromNBT(par1NBTTagCompound); - - if (fluid != null) - { - setMainFluid(fluid); - } - - FluidStack fluidOut = new FluidStack(AlchemicalWizardry.lifeEssenceFluid, par1NBTTagCompound.getInteger("outputAmount")); - - if (fluidOut != null) - { - setOutputFluid(fluidOut); - } - - FluidStack fluidIn = new FluidStack(AlchemicalWizardry.lifeEssenceFluid, par1NBTTagCompound.getInteger("inputAmount")); - - if (fluidIn != null) - { - setInputFluid(fluidIn); - } - } - - upgradeLevel = par1NBTTagCompound.getInteger("upgradeLevel"); - isActive = par1NBTTagCompound.getBoolean("isActive"); - liquidRequired = par1NBTTagCompound.getInteger("liquidRequired"); - canBeFilled = par1NBTTagCompound.getBoolean("canBeFilled"); - isUpgraded = par1NBTTagCompound.getBoolean("isUpgraded"); - consumptionRate = par1NBTTagCompound.getInteger("consumptionRate"); - drainRate = par1NBTTagCompound.getInteger("drainRate"); - consumptionMultiplier = par1NBTTagCompound.getFloat("consumptionMultiplier"); - efficiencyMultiplier = par1NBTTagCompound.getFloat("efficiencyMultiplier"); - selfSacrificeEfficiencyMultiplier = par1NBTTagCompound.getFloat("selfSacrificeEfficiencyMultiplier"); - sacrificeEfficiencyMultiplier = par1NBTTagCompound.getFloat("sacrificeEfficiencyMultiplier"); - capacityMultiplier = par1NBTTagCompound.getFloat("capacityMultiplier"); - orbCapacityMultiplier = par1NBTTagCompound.getFloat("orbCapacityMultiplier"); - dislocationMultiplier = par1NBTTagCompound.getFloat("dislocationMultiplier"); - capacity = par1NBTTagCompound.getInteger("capacity"); - bufferCapacity = par1NBTTagCompound.getInteger("bufferCapacity"); - progress = par1NBTTagCompound.getInteger("progress"); - isResultBlock = par1NBTTagCompound.getBoolean("isResultBlock"); - } - - public void setMainFluid(FluidStack fluid) - { - this.fluid = fluid; - } - - public void setOutputFluid(FluidStack fluid) - { - this.fluidOutput = fluid; - } - - public void setInputFluid(FluidStack fluid) - { - this.fluidInput = fluid; - } - - @Override - public void writeToNBT(NBTTagCompound par1NBTTagCompound) - { - super.writeToNBT(par1NBTTagCompound); - NBTTagList itemList = new NBTTagList(); - - for (int i = 0; i < inv.length; i++) - { - ItemStack stack = inv[i]; - - if (inv[i] != null) - { - NBTTagCompound tag = new NBTTagCompound(); - tag.setByte("Slot", (byte) i); - inv[i].writeToNBT(tag); - itemList.appendTag(tag); - } - } - - par1NBTTagCompound.setInteger("resultID", resultID); - par1NBTTagCompound.setInteger("resultDamage", resultDamage); - par1NBTTagCompound.setTag("Inventory", itemList); - - if (fluid != null) - { - fluid.writeToNBT(par1NBTTagCompound); - } else - { - par1NBTTagCompound.setString("Empty", ""); - } - - if (fluidOutput != null) - { - par1NBTTagCompound.setInteger("outputAmount", fluidOutput.amount); - } - - if (fluidInput != null) - { - par1NBTTagCompound.setInteger("inputAmount", fluidInput.amount); - } - - par1NBTTagCompound.setInteger("upgradeLevel", upgradeLevel); - par1NBTTagCompound.setBoolean("isActive", isActive); - par1NBTTagCompound.setInteger("liquidRequired", liquidRequired); - par1NBTTagCompound.setBoolean("canBeFilled", canBeFilled); - par1NBTTagCompound.setBoolean("isUpgraded", isUpgraded); - par1NBTTagCompound.setInteger("consumptionRate", consumptionRate); - par1NBTTagCompound.setInteger("drainRate", drainRate); - par1NBTTagCompound.setFloat("consumptionMultiplier", consumptionMultiplier); - par1NBTTagCompound.setFloat("efficiencyMultiplier", efficiencyMultiplier); - par1NBTTagCompound.setFloat("sacrificeEfficiencyMultiplier", sacrificeEfficiencyMultiplier); - par1NBTTagCompound.setFloat("selfSacrificeEfficiencyMultiplier", selfSacrificeEfficiencyMultiplier); - par1NBTTagCompound.setBoolean("isResultBlock", isResultBlock); - par1NBTTagCompound.setFloat("capacityMultiplier", capacityMultiplier); - par1NBTTagCompound.setFloat("orbCapacityMultiplier", orbCapacityMultiplier); - par1NBTTagCompound.setFloat("dislocationMultiplier", dislocationMultiplier); - par1NBTTagCompound.setInteger("capacity", capacity); - par1NBTTagCompound.setInteger("progress", progress); - par1NBTTagCompound.setInteger("bufferCapacity", bufferCapacity); - } - - @Override - public int getSizeInventory() - { - return inv.length; - } - - @Override - public ItemStack getStackInSlot(int slot) - { - return inv[slot]; - } - - @Override - public ItemStack decrStackSize(int slot, int amt) - { - ItemStack stack = getStackInSlot(slot); - - if (stack != null) - { - if (stack.stackSize <= amt) - { - setInventorySlotContents(slot, null); - } else - { - stack = stack.splitStack(amt); - - if (stack.stackSize == 0) - { - setInventorySlotContents(slot, null); - } - } - } - - return stack; - } - - @Override - public ItemStack getStackInSlotOnClosing(int slot) - { - ItemStack stack = getStackInSlot(slot); - - if (stack != null) - { - setInventorySlotContents(slot, null); - } - - return stack; - } - - @Override - public void setInventorySlotContents(int slot, ItemStack itemStack) - { - inv[slot] = itemStack; - this.worldObj.markBlockForUpdate(xCoord, yCoord, zCoord); - - if (itemStack != null && itemStack.stackSize > getInventoryStackLimit()) - { - itemStack.stackSize = getInventoryStackLimit(); - } - } - - @Override - public String getInventoryName() - { - return "TEAltar"; - } - - @Override - public boolean hasCustomInventoryName() - { - return false; - } - - @Override - public int getInventoryStackLimit() - { - return 64; - } - - @Override - public boolean isUseableByPlayer(EntityPlayer entityPlayer) - { - return worldObj.getTileEntity(xCoord, yCoord, zCoord) == this && entityPlayer.getDistanceSq(xCoord + 0.5, yCoord + 0.5, zCoord + 0.5) < 64; - } - - @Override - public void openInventory() - { - // TODO Auto-generated method stub - } - - @Override - public void closeInventory() - { - // TODO Auto-generated method stub - } - - //IFluidTank methods - @Override - public FluidStack getFluid() - { - return fluid; - } - - public FluidStack getInputFluid() - { - return fluidInput; - } - - public FluidStack getOutputFluid() - { - return fluidOutput; - } - - @Override - public int getFluidAmount() - { - if (fluid == null) - { - return 0; - } - - return fluid.amount; - } - - @Override - public int getCapacity() - { - return capacity; - } - - @Override - public int getCurrentBlood() - { - return getFluidAmount(); - } - - @Override - public int getTier() - { - return upgradeLevel; - } - - @Override - public int getProgress() - { - return progress; - } - - @Override - public float getSacrificeMultiplier() - { - return sacrificeEfficiencyMultiplier; - } - - @Override - public float getSelfSacrificeMultiplier() - { - return selfSacrificeEfficiencyMultiplier; - } - - @Override - public float getOrbMultiplier() - { - return orbCapacityMultiplier; - } - - @Override - public float getDislocationMultiplier() - { - return dislocationMultiplier; - } - - @Override - public int getBufferCapacity() - { - return bufferCapacity; - } - - @Override - public FluidTankInfo getInfo() - { - return new FluidTankInfo(this); - } - - @Override - public int fill(FluidStack resource, boolean doFill) - { - TileEntity tile = this; - - if (resource == null) - { - return 0; - } - - if (resource.fluidID != (new FluidStack(AlchemicalWizardry.lifeEssenceFluid, 1)).fluidID) - { - return 0; - } - - if (!doFill) - { - if (fluidInput == null) - { - return Math.min(bufferCapacity, resource.amount); - } - - if (!fluidInput.isFluidEqual(resource)) - { - return 0; - } - - return Math.min(bufferCapacity - fluidInput.amount, resource.amount); - } - - if (fluidInput == null) - { - fluidInput = new FluidStack(resource, Math.min(bufferCapacity, resource.amount)); - - //The tile is never null, so we dont need this - if (tile != null) - { - FluidEvent.fireEvent(new FluidEvent.FluidFillingEvent(fluidInput, tile.getWorldObj(), tile.xCoord, tile.yCoord, tile.zCoord, this)); - } - - return fluidInput.amount; - } - - if (!fluidInput.isFluidEqual(resource)) - { - return 0; - } - - int filled = bufferCapacity - fluidInput.amount; - - if (resource.amount < filled) - { - fluidInput.amount += resource.amount; - filled = resource.amount; - } else - { - fluidInput.amount = bufferCapacity; - } - - //Never null, so not needed :P - if (tile != null) - { - FluidEvent.fireEvent(new FluidEvent.FluidFillingEvent(fluidInput, tile.getWorldObj(), tile.xCoord, tile.yCoord, tile.zCoord, this)); - } - - return filled; - } - - @Override - public FluidStack drain(int maxDrain, boolean doDrain) - { - if (fluidOutput == null) - { - return null; - } - - int drained = maxDrain; - - if (fluidOutput.amount < drained) - { - drained = fluidOutput.amount; - } - - FluidStack stack = new FluidStack(fluidOutput, drained); - - if (doDrain) - { - fluidOutput.amount -= drained; - - if (fluidOutput.amount <= 0) - { - fluidOutput = null; - } - - //This is never null, so its un needed :D - if (this != null) - { - FluidEvent.fireEvent(new FluidEvent.FluidDrainingEvent(fluidOutput, this.worldObj, this.xCoord, this.yCoord, this.zCoord, this)); - } - } - - if (fluidOutput == null) - { - fluidOutput = new FluidStack(AlchemicalWizardry.lifeEssenceFluid, 0); - } - - if (worldObj != null) - { - worldObj.markBlockForUpdate(xCoord, yCoord, zCoord); - } - - return stack; - } - - //Logic for the actual block is under here - @Override - public void updateEntity() - { - //this.capacity=(int) (10000*this.capacityMultiplier); - if (!worldObj.isRemote && worldObj.getWorldTime() % 20 == 0) - { - //TODO - int syphonMax = (int) (20 * this.dislocationMultiplier); - int fluidInputted = 0; - int fluidOutputted = 0; - fluidInputted = Math.min(syphonMax, -this.fluid.amount + capacity); - fluidInputted = Math.min(this.fluidInput.amount, fluidInputted); - this.fluid.amount += fluidInputted; - this.fluidInput.amount -= fluidInputted; - fluidOutputted = Math.min(syphonMax, this.bufferCapacity - this.fluidOutput.amount); - fluidOutputted = Math.min(this.fluid.amount, fluidOutputted); - this.fluidOutput.amount += fluidOutputted; - this.fluid.amount -= fluidOutputted; - } - - if (worldObj.getWorldTime() % 150 == 0) - { - startCycle(); - } - - if (!isActive) - { - return; - } - - if (getStackInSlot(0) == null) - { - return; - } - - int worldTime = (int) (worldObj.getWorldTime() % 24000); - - if (worldObj.isRemote) - { - return; - } - - //o,o this is always true - if (worldTime % 1 == 0) - { - if (!canBeFilled) - { - if (fluid != null && fluid.amount >= 1) - { - int stackSize = getStackInSlot(0).stackSize; - int liquidDrained = Math.min((int) (upgradeLevel >= 2 ? consumptionRate * (1 + consumptionMultiplier) : consumptionRate), fluid.amount); - - if (liquidDrained > (liquidRequired * stackSize - progress)) - { - liquidDrained = liquidRequired * stackSize - progress; - } - - fluid.amount = fluid.amount - liquidDrained; - progress += liquidDrained; - //getStackInSlot(0).setItemDamage(getStackInSlot(0).getItemDamage() + liquidDrained); - - if (worldTime % 4 == 0) - { - SpellHelper.sendIndexedParticleToAllAround(worldObj, xCoord, yCoord, zCoord, 20, worldObj.provider.dimensionId, 1, xCoord, yCoord, zCoord); - } - - if (progress >= liquidRequired * stackSize) - { - ItemStack result = null; - result = AltarRecipeRegistry.getItemForItemAndTier(this.getStackInSlot(0), this.upgradeLevel); - if(result!=null) - { - result.stackSize*=stackSize; - } - -// if (!isResultBlock) -// { -// result = new ItemStack(resultID, stackSize, resultDamage); -// } else -// { -// result = new ItemStack(Block.blocksList[resultID], stackSize, 0); -// } - - setInventorySlotContents(0, result); - progress = 0; - - for (int i = 0; i < 8; i++) - { - SpellHelper.sendIndexedParticleToAllAround(worldObj, xCoord, yCoord, zCoord, 20, worldObj.provider.dimensionId, 4, xCoord+0.5f, yCoord+1.0f, zCoord+0.5f); - } - - //setInventorySlotContents(1, null); - this.isActive = false; - } - } else if (progress > 0) - { - progress -= (int) (efficiencyMultiplier * drainRate); - - if (worldTime % 2 == 0) - { - SpellHelper.sendIndexedParticleToAllAround(worldObj, xCoord, yCoord, zCoord, 20, worldObj.provider.dimensionId, 2, xCoord, yCoord, zCoord); - } - } - } else - { - ItemStack returnedItem = getStackInSlot(0); - - if (!(returnedItem.getItem() instanceof IBloodOrb)) - { - return; - } - - IBloodOrb item = (IBloodOrb) (returnedItem.getItem()); - NBTTagCompound itemTag = returnedItem.stackTagCompound; - - if (itemTag == null) - { - return; - } - - String ownerName = itemTag.getString("ownerName"); - - if (ownerName.equals("")) - { - return; - } - - //EntityPlayer owner = MinecraftServer.getServer().getConfigurationManager().getPlayerForUsername(itemTag.getString("ownerName")); - World world = MinecraftServer.getServer().worldServers[0]; - LifeEssenceNetwork data = (LifeEssenceNetwork) world.loadItemData(LifeEssenceNetwork.class, ownerName); - - if (data == null) - { - data = new LifeEssenceNetwork(ownerName); - world.setItemData(ownerName, data); - } - - int currentEssence = data.currentEssence; -// if(owner==null){return;} -// NBTTagCompound playerTag = owner.getEntityData(); -// if(playerTag==null){return;} - //int currentEssence=playerTag.getInteger("currentEssence"); - - if (fluid != null && fluid.amount >= 1) - { - int liquidDrained = Math.min((int) (upgradeLevel >= 2 ? consumptionRate * (1 + consumptionMultiplier) : consumptionRate), fluid.amount); - - if (liquidDrained > (item.getMaxEssence() * this.orbCapacityMultiplier - currentEssence)) - { - liquidDrained = (int) (item.getMaxEssence() * this.orbCapacityMultiplier - currentEssence); - } - - if (liquidDrained <= 0) - { - return; - } - - fluid.amount = fluid.amount - liquidDrained; -// int maxAmount = (int) Math.min(item.getMaxEssence() - consumptionRate * (1 + consumptionMultiplier), consumptionRate * (1 + consumptionMultiplier)); -// fluid.amount -= maxAmount; - data.currentEssence = liquidDrained + data.currentEssence; - data.markDirty(); -// playerTag.setInteger("currentEssence", currentEssence+maxAmount); - - if (worldTime % 4 == 0) - { - //PacketDispatcher.sendPacketToAllAround(xCoord, yCoord, zCoord, 20, worldObj.provider.dimensionId, getParticlePacket(xCoord, yCoord, zCoord, (short) 3)); - SpellHelper.sendIndexedParticleToAllAround(world, xCoord, yCoord, zCoord, 20, worldObj.provider.dimensionId, 3, xCoord, yCoord, zCoord); - } - } - } - - if (worldObj != null) - { - worldObj.markBlockForUpdate(xCoord, yCoord, zCoord); - } - - //AlchemicalWizardry.proxy.getClientWorld().markBlockForUpdate(xCoord, yCoord, zCoord); - //PacketDispatcher.sendPacketToAllAround(xCoord, yCoord, zCoord, 10, 1, getDescriptionPacket()); - /* - progress++; - - if(progress>=liquidRequired) - { - setActive(); - setInventorySlotContents(0, new ItemStack(AlchemicalWizardry.weakBloodOrb)); - } - */ - } - } - - public void setActive() - { - isActive = false; - } - - public boolean isActive() - { - return isActive; - } - - public void sacrificialDaggerCall(int amount, boolean isSacrifice) - { - fluid.amount += Math.min(capacity - fluid.amount, (isSacrifice ? 1 + sacrificeEfficiencyMultiplier : 1 + selfSacrificeEfficiencyMultiplier) * amount); - } - - @Override - public Packet getDescriptionPacket() - { - return NewPacketHandler.getPacket(this); - } - - public void handlePacketData(int[] intData, int[] fluidData, int capacity) - { - if (intData == null) - { - return; - } - - if (intData.length == 3) - { - for (int i = 0; i < 1; i++) - { - if (intData[i * 3 + 2] != 0) - { - ItemStack is = new ItemStack(Item.getItemById(intData[i * 3]), intData[i * 3 + 2], intData[i * 3 + 1]); - inv[i] = is; - } else - { - inv[i] = null; - } - } - } - - FluidStack flMain = new FluidStack(fluidData[0],fluidData[1]); - FluidStack flIn = new FluidStack(fluidData[2],fluidData[3]); - FluidStack flOut = new FluidStack(fluidData[4],fluidData[5]); - - this.setMainFluid(flMain); - this.setInputFluid(flIn); - this.setOutputFluid(flOut); - - this.capacity = capacity; - } - - public int[] buildIntDataList() - { - int[] sortList = new int[1 * 3]; - int pos = 0; - - for (ItemStack is : inv) - { - if (is != null) - { - sortList[pos++] = Item.getIdFromItem(is.getItem()); - sortList[pos++] = is.getItemDamage(); - sortList[pos++] = is.stackSize; - } else - { - sortList[pos++] = 0; - sortList[pos++] = 0; - sortList[pos++] = 0; - } - } - - return sortList; - } - - public void startCycle() - { - if (worldObj != null) - { - worldObj.markBlockForUpdate(xCoord, yCoord, zCoord); - } - - this.checkAndSetAltar(); - - if (fluid == null || fluid.amount <= 0) - { - return; - } - - if (getStackInSlot(0) == null) - { - return; - } - - if (!isActive) - { - progress = 0; - } - - if(AltarRecipeRegistry.isRequiredItemValid(getStackInSlot(0), upgradeLevel)) - { - AltarRecipe recipe = AltarRecipeRegistry.getAltarRecipeForItemAndTier(getStackInSlot(0), upgradeLevel); - this.isActive = true; - this.liquidRequired = recipe.getLiquidRequired(); - this.canBeFilled = recipe.getCanBeFilled(); - this.consumptionRate = recipe.getConsumptionRate(); - this.drainRate = recipe.drainRate; - return; - } - - isActive = false; - } - - public void checkAndSetAltar() - { - boolean checkUpgrade = true; - int upgradeState = UpgradedAltars.isAltarValid(worldObj, xCoord, yCoord, zCoord); - - if (upgradeState <= 1) - { - upgradeLevel = 1; - isUpgraded = false; - this.consumptionMultiplier = 0; - this.efficiencyMultiplier = 1; - this.sacrificeEfficiencyMultiplier = 0; - this.selfSacrificeEfficiencyMultiplier = 0; - this.capacityMultiplier = 1; - this.orbCapacityMultiplier = 1; - this.dislocationMultiplier = 1; - return; - } - - AltarUpgradeComponent upgrades = UpgradedAltars.getUpgrades(worldObj, xCoord, yCoord, zCoord, upgradeState); - - if (upgrades == null) - { - upgradeLevel = 1; - isUpgraded = false; - this.consumptionMultiplier = 0; - this.efficiencyMultiplier = 1; - this.sacrificeEfficiencyMultiplier = 0; - this.selfSacrificeEfficiencyMultiplier = 0; - this.capacityMultiplier = 1; - this.orbCapacityMultiplier = 1; - this.dislocationMultiplier = 1; - this.upgradeLevel = upgradeState; - return; - } - - this.isUpgraded = checkUpgrade; - this.upgradeLevel = upgradeState; - this.consumptionMultiplier = (float) (0.20 * upgrades.getSpeedUpgrades()); - this.efficiencyMultiplier = (float) Math.pow(0.85, upgrades.getSpeedUpgrades()); - this.sacrificeEfficiencyMultiplier = (float) (0.10 * upgrades.getSacrificeUpgrades()); - this.selfSacrificeEfficiencyMultiplier = (float) (0.10 * upgrades.getSelfSacrificeUpgrades()); - this.capacityMultiplier = (float) ((1*Math.pow(1.10,upgrades.getBetterCapacitiveUpgrades()) + 0.20 * upgrades.getAltarCapacitiveUpgrades())); - //TODO finalize values - this.dislocationMultiplier = (float) (Math.pow(1.2, upgrades.getDisplacementUpgrades())); - this.orbCapacityMultiplier = (float) (1 + 0.02 * upgrades.getOrbCapacitiveUpgrades()); - this.capacity = (int) (FluidContainerRegistry.BUCKET_VOLUME * 10 * capacityMultiplier); - this.bufferCapacity = (int) (FluidContainerRegistry.BUCKET_VOLUME * 1 * capacityMultiplier); - - if (this.fluid.amount > this.capacity) - { - this.fluid.amount = this.capacity; - } - - if (this.fluidOutput.amount > this.bufferCapacity) - { - this.fluidOutput.amount = this.bufferCapacity; - } - - if (this.fluidInput.amount > this.bufferCapacity) - { - this.fluidInput.amount = this.bufferCapacity; - } - - worldObj.markBlockForUpdate(xCoord, yCoord, zCoord); -// for (int x = -1; x <= 1; x++) -// { -// for (int z = -1; z <= 1; z++) -// { -// if (!(x == 0 && z == 0)) -// { -// Block block = Block.blocksList[worldObj.getBlockId(xCoord + x, yCoord - 1, zCoord + z)]; -// -// if (!(block instanceof BloodRune)) -// { -// checkUpgrade = false; -// this.isUpgraded = false; -// return; -// } -// -// if ((z == 0 && (x == -1 || x == 1)) || (x == 0 && (z == -1 || z == 1))) -// { -// switch (((BloodRune)block).getRuneEffect()) -// { -// case 1: -// speedUpgrades++; -// -// case 2: -// efficiencyUpgrades++; -// -// case 3: -// sacrificeUpgrades++; -// -// case 4: -// selfSacrificeUpgrades++; -// } -// } -// } -// } -// } -// this.isUpgraded = checkUpgrade; -// this.consumptionMultiplier = (float)(0.20 * speedUpgrades); -// this.efficiencyMultiplier = (float)Math.pow(0.80, efficiencyUpgrades); -// this.sacrificeEfficiencyMultiplier = (float)(0.10 * sacrificeUpgrades); -// this.selfSacrificeEfficiencyMultiplier = (float)(0.10 * sacrificeUpgrades); - } - - @Override - public boolean isItemValidForSlot(int slot, ItemStack itemstack) - { - return slot == 0; - } - - @Override - public int fill(ForgeDirection from, FluidStack resource, boolean doFill) - { - //TODO - if (resource == null) - { - return 0; - } - - resource = resource.copy(); - int totalUsed = 0; - //TileTank tankToFill = getBottomTank(); - int used = this.fill(resource, doFill); - resource.amount -= used; - totalUsed += used; - //FluidStack liquid = tankToFill.tank.getFluid(); -// if (liquid != null && liquid.amount > 0 && !liquid.isFluidEqual(resource)) -// { -// return 0; -// } -// while (tankToFill != null && resource.amount > 0) -// { -// int used = tankToFill.tank.fill(resource, doFill); -// resource.amount -= used; -// if (used > 0) -// { -// tankToFill.hasUpdate = true; -// } -// -// -// totalUsed += used; -// tankToFill = getTankAbove(tankToFill); -// } - this.startCycle(); - return totalUsed; - } - - @Override - public FluidStack drain(ForgeDirection from, FluidStack resource, boolean doDrain) - { - if (resource == null) - { - return null; - } - - if (!resource.isFluidEqual(fluidOutput)) - { - return null; - } - - return drain(from, resource.amount, doDrain); - } - - @Override - public FluidStack drain(ForgeDirection from, int maxEmpty, boolean doDrain) - { - return this.drain(maxEmpty, doDrain); - } - - @Override - public boolean canFill(ForgeDirection from, Fluid fluid) - { - // TODO Auto-generated method stub - //I changed this, since fluidstack != fluid... :p dunno if it was a accident? so you might wanna check this - return this.fluidInput != null && this.fluid.getFluid().equals(fluidInput.getFluid()); - } - - @Override - public boolean canDrain(ForgeDirection from, Fluid fluid) - { - // TODO Auto-generated method stub - return true; - } - - @Override - public FluidTankInfo[] getTankInfo(ForgeDirection from) - { - // TODO Auto-generated method stub - FluidTank compositeTank = new FluidTank(capacity); - compositeTank.setFluid(fluid); - return new FluidTankInfo[]{compositeTank.getInfo()}; - } - - public int[] buildFluidList() - { - int[] sortList = new int[6]; - - if(this.fluid == null) - { - sortList[0] = AlchemicalWizardry.lifeEssenceFluid.getID(); - sortList[1] = 0; - }else - { - sortList[0] = this.fluid.fluidID; - sortList[1] = this.fluid.amount; - } - - if(this.fluidInput == null) - { - sortList[2] = AlchemicalWizardry.lifeEssenceFluid.getID(); - sortList[3] = 0; - }else - { - sortList[2] = this.fluidInput.fluidID; - sortList[3] = this.fluidInput.amount; - } - - if(this.fluidOutput == null) - { - sortList[4] = AlchemicalWizardry.lifeEssenceFluid.getID(); - sortList[5] = 0; - }else - { - sortList[4] = this.fluidOutput.fluidID; - sortList[5] = this.fluidOutput.amount; - } - - return sortList; - } - - public void sendChatInfoToPlayer(EntityPlayer player) - { - 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/main/java/WayofTime/alchemicalWizardry/common/tileEntity/TEConduit.java b/1.7.2/main/java/WayofTime/alchemicalWizardry/common/tileEntity/TEConduit.java deleted file mode 100644 index a4d475fb..00000000 --- a/1.7.2/main/java/WayofTime/alchemicalWizardry/common/tileEntity/TEConduit.java +++ /dev/null @@ -1,34 +0,0 @@ -package WayofTime.alchemicalWizardry.common.tileEntity; - -import net.minecraft.nbt.NBTTagCompound; -import net.minecraft.network.Packet; -import WayofTime.alchemicalWizardry.common.PacketHandler; -import WayofTime.alchemicalWizardry.common.spell.complex.SpellParadigm; - -public class TEConduit extends TESpellBlock -{ - @Override - public void readFromNBT(NBTTagCompound par1NBTTagCompound) - { - super.readFromNBT(par1NBTTagCompound); - } - - @Override - public void writeToNBT(NBTTagCompound par1NBTTagCompound) - { - super.writeToNBT(par1NBTTagCompound); - } - - //Logic for the actual block is under here - @Override - public void updateEntity() - { - - } - - @Override - protected void applySpellChange(SpellParadigm parad) - { - return; - } -} diff --git a/1.7.2/main/java/WayofTime/alchemicalWizardry/common/tileEntity/TEDemonPortal.java b/1.7.2/main/java/WayofTime/alchemicalWizardry/common/tileEntity/TEDemonPortal.java deleted file mode 100644 index 9b6f08d6..00000000 --- a/1.7.2/main/java/WayofTime/alchemicalWizardry/common/tileEntity/TEDemonPortal.java +++ /dev/null @@ -1,1201 +0,0 @@ -package WayofTime.alchemicalWizardry.common.tileEntity; - -import java.io.BufferedReader; -import java.io.File; -import java.io.FileNotFoundException; -import java.io.FileReader; -import java.io.FileWriter; -import java.io.IOException; -import java.io.Writer; -import java.util.ArrayList; -import java.util.HashMap; -import java.util.LinkedList; -import java.util.List; -import java.util.Random; - -import net.minecraft.block.Block; -import net.minecraft.entity.player.EntityPlayer; -import net.minecraft.init.Blocks; -import net.minecraft.nbt.NBTTagCompound; -import net.minecraft.nbt.NBTTagList; -import net.minecraft.tileentity.TileEntity; -import net.minecraftforge.common.util.Constants; -import net.minecraftforge.common.util.ForgeDirection; -import WayofTime.alchemicalWizardry.ModBlocks; -import WayofTime.alchemicalWizardry.common.Int3; -import WayofTime.alchemicalWizardry.common.block.BlockTeleposer; -import WayofTime.alchemicalWizardry.common.demonVillage.BuildingSchematic; -import WayofTime.alchemicalWizardry.common.demonVillage.DemonBuilding; -import WayofTime.alchemicalWizardry.common.demonVillage.DemonCrosspath; -import WayofTime.alchemicalWizardry.common.demonVillage.DemonVillagePath; -import WayofTime.alchemicalWizardry.common.demonVillage.GridSpace; -import WayofTime.alchemicalWizardry.common.demonVillage.GridSpaceHolder; - -import com.google.gson.Gson; -import com.google.gson.GsonBuilder; - -public class TEDemonPortal extends TileEntity -{ - public static int buildingGridDelay = 25; - public static int roadGridDelay = 10; - - public static List buildingList = new ArrayList(); - public Random rand = new Random(); - private GridSpace[][] area; - - private int negXRadius; //These variables indicate how much the grid has expanded from the 1x1 - private int posXRadius; //matrix in each direction - private int negZRadius; - private int posZRadius; - - private boolean isInitialized; - - public int houseCooldown; - public int roadCooldown; - public int tier; //Tier of the demon portal - Should select buildings 2 below to this - public int totalPoints; - - public TEDemonPortal() - { - super(); - - negXRadius = posXRadius = negZRadius = posZRadius = 1; - - area = new GridSpace[negXRadius + posXRadius + 1][negZRadius + posZRadius + 1]; - for(int xIndex = -negXRadius; xIndex <= posXRadius; xIndex++) - { - for(int zIndex = -negZRadius; zIndex <= posZRadius; zIndex++) - { - if(Math.abs(xIndex) == 1 || Math.abs(zIndex) == 1) - { - this.setGridSpace(xIndex, zIndex, new GridSpace(GridSpace.ROAD,4)); - }else - { - this.setGridSpace(xIndex, zIndex, new GridSpace()); - } - } - } - - isInitialized = false; - - this.setGridSpace(0, 0, new GridSpace(GridSpace.MAIN_PORTAL, yCoord)); - - this.houseCooldown = 0; - this.roadCooldown = 0; - } - - public void initialize() - { - if(isInitialized) - { - return; - } - - for(int xIndex = -negXRadius; xIndex <= posXRadius; xIndex++) - { - for(int zIndex = -negZRadius; zIndex <= posZRadius; zIndex++) - { - if(Math.abs(xIndex) == 1 || Math.abs(zIndex) == 1) - { - this.setGridSpace(xIndex, zIndex, new GridSpace(GridSpace.ROAD,yCoord)); - }else if(xIndex == 0 && zIndex == 0) - { - this.setGridSpace(0, 0, new GridSpace(GridSpace.MAIN_PORTAL, yCoord)); - }else - { - this.setGridSpace(xIndex, zIndex, new GridSpace()); - } - } - } - - this.houseCooldown = TEDemonPortal.buildingGridDelay; - this.roadCooldown = TEDemonPortal.roadGridDelay; - - isInitialized = true; - } - - @Override - public void updateEntity() - { - if(!isInitialized) - { - return; - } - - if(this.roadCooldown <= 0) - { - int roadsMade = this.createRandomRoad(); - if(roadsMade > 0) - { - this.roadCooldown = TEDemonPortal.roadGridDelay * roadsMade; - } - } - else if(this.houseCooldown <= 0) - { - int gridsUsed = this.createRandomBuilding(0, 0); - if(gridsUsed > 0) - { - this.houseCooldown = TEDemonPortal.buildingGridDelay * gridsUsed; - } - } - - this.houseCooldown = Math.max(0, this.houseCooldown - 1); - this.roadCooldown = Math.max(0, this.roadCooldown - 1); - } - - @Override - public void readFromNBT(NBTTagCompound par1NBTTagCompound) - { - super.readFromNBT(par1NBTTagCompound); - this.negXRadius = par1NBTTagCompound.getInteger("negXRadius"); - this.negZRadius = par1NBTTagCompound.getInteger("negZRadius"); - this.posXRadius = par1NBTTagCompound.getInteger("posXRadius"); - this.posZRadius = par1NBTTagCompound.getInteger("posZRadius"); - this.houseCooldown = par1NBTTagCompound.getInteger("houseCooldown"); - this.roadCooldown = par1NBTTagCompound.getInteger("roadCooldown"); - - area = new GridSpace[negXRadius + posXRadius + 1][negZRadius + posZRadius + 1]; - - NBTTagList tagList = par1NBTTagCompound.getTagList("Grid",Constants.NBT.TAG_COMPOUND); - - for (int i = 0; i < tagList.tagCount(); i++) - { - int length = (negZRadius+posZRadius+1); - - int x = i/length; - int z = i%length; - - NBTTagCompound tag = (NBTTagCompound) tagList.getCompoundTagAt(i); - GridSpace space = GridSpace.getGridFromTag(tag); - - area[x][z] = space; - } - - this.isInitialized = par1NBTTagCompound.getBoolean("init"); - - this.tier = par1NBTTagCompound.getInteger("tier"); - this.totalPoints = par1NBTTagCompound.getInteger("totalPoints"); - } - - @Override - public void writeToNBT(NBTTagCompound par1NBTTagCompound) - { - super.writeToNBT(par1NBTTagCompound); - par1NBTTagCompound.setInteger("negXRadius", negXRadius); - par1NBTTagCompound.setInteger("negZRadius", negZRadius); - par1NBTTagCompound.setInteger("posXRadius", posXRadius); - par1NBTTagCompound.setInteger("posZRadius", posZRadius); - par1NBTTagCompound.setInteger("houseCooldown", houseCooldown); - par1NBTTagCompound.setInteger("roadCooldown", roadCooldown); - - NBTTagList gridList = new NBTTagList(); - - for(int i=0; i<=negXRadius+posXRadius; i++) - { - for(int j=0; j<=negZRadius+posZRadius; j++) - { - int index = i + (negZRadius+posZRadius+1)*j; - - GridSpace space = area[i][j]; - NBTTagCompound nextTag; - - if(space == null) - { - nextTag = new GridSpace().getTag(); - }else - { - nextTag = space.getTag(); - } - - gridList.appendTag(nextTag); - } - } - - par1NBTTagCompound.setTag("Grid", gridList); - - par1NBTTagCompound.setBoolean("init", isInitialized); - par1NBTTagCompound.setInteger("tier", this.tier); - par1NBTTagCompound.setInteger("totalPoints", this.totalPoints); - } - - public int createRandomRoad() //Return the number of road spaces - { - int next = rand.nextInt(4); - ForgeDirection dir; - - switch(next) - { - case 0: - dir = ForgeDirection.NORTH; - break; - case 1: - dir = ForgeDirection.SOUTH; - break; - case 2: - dir = ForgeDirection.EAST; - break; - case 3: - dir = ForgeDirection.WEST; - break; - default: - dir = ForgeDirection.NORTH; - } - - int length = 5; - - Int3 road = findRoadSpaceFromDirection(dir, (rand.nextInt(negXRadius + negZRadius + posXRadius + posZRadius))+1); - - int x = road.xCoord; - int yLevel = road.yCoord; - int z = road.zCoord; - - System.out.println("X: " + x + " Z: " + z + " Direction: " + dir.toString()); - - List directions = this.findValidExtentionDirection(x, z); - - if(directions.size() <= 0) - { - return 0; - } - - int maxDistance = 5; - - int distance = 0; - ForgeDirection dominantDirection = null; - - for(ForgeDirection direction: directions) - { - int amt = this.getLength(direction, maxDistance, x, z); - if(amt > distance) - { - distance = amt; - dominantDirection = direction; - }else if(amt == distance && rand.nextBoolean()) - { - dominantDirection = direction; - } - } - - if(dominantDirection == null) - { - return 0; - } - System.out.println("I got here!"); - System.out.println("Distance: " + distance + " Direction: " + dominantDirection.toString() + " yLevel: " + yLevel); - - this.createGriddedRoad(x, yLevel, z, dominantDirection, distance+1, true); - - return distance; - } - - public List findValidExtentionDirection(int x, int z) - { - List directions = new LinkedList(); - - if(this.getGridSpace(x, z) == null || !this.getGridSpace(x, z).isRoadSegment()) - { - return directions; - } - - GridSpace nextGrid = this.getGridSpace(x+1, z); - if(nextGrid.isEmpty()) - { - directions.add(ForgeDirection.EAST); - } - - nextGrid = this.getGridSpace(x-1, z); - if(nextGrid.isEmpty()) - { - directions.add(ForgeDirection.WEST); - } - - nextGrid = this.getGridSpace(x, z+1); - if(nextGrid.isEmpty()) - { - directions.add(ForgeDirection.SOUTH); - } - - nextGrid = this.getGridSpace(x, z-1); - if(nextGrid.isEmpty()) - { - directions.add(ForgeDirection.NORTH); - } - - return directions; - } - - public int getLength(ForgeDirection dir, int maxLength, int x, int z) //Number of spaces forward - { - for(int i=1; i<=maxLength; i++) - { - GridSpace space = this.getGridSpace(x + i*dir.offsetX, z + i*dir.offsetZ); - if(space.isEmpty()) - { - for(int k=1; k<=this.getRoadSpacer(); k++) - { - GridSpace space1 = this.getGridSpace(x + i*dir.offsetX + dir.offsetZ*k, z + i*dir.offsetZ + dir.offsetX*k); - GridSpace space2 = this.getGridSpace(x + i*dir.offsetX - dir.offsetZ*k, z + i*dir.offsetZ - dir.offsetX*k); - - if(space1.isRoadSegment() || space2.isRoadSegment()) - { - return i-1; - } - } - - continue; - } - if(space.isRoadSegment()) - { - return i; - }else - { - return i-1; - } - } - return maxLength; - } - - public Int3 findRoadSpaceFromDirection(ForgeDirection dir, int amount) - { - int index = 0; - if(dir == ForgeDirection.NORTH) - { - System.out.print("NORTH!"); - for(int i=0; i<= negZRadius + posZRadius; i++) - { - for(int j=0; j<= negXRadius + posXRadius; j++) - { - GridSpace space = area[j][i]; - if(space.isRoadSegment()) - { - index++; - if(index >= amount) - { - return new Int3(j-negXRadius,space.getYLevel(),i-negZRadius); - } - } - } - } - }else if(dir == ForgeDirection.SOUTH) - { - for(int i=negZRadius + posZRadius; i >= 0 ; i--) - { - for(int j=0; j<= negXRadius + posXRadius; j++) - { - GridSpace space = area[j][i]; - if(space.isRoadSegment()) - { - index++; - if(index >= amount) - { - return new Int3(j-negXRadius,space.getYLevel(),i-negZRadius); - } - } - } - } - }else if(dir == ForgeDirection.EAST) - { - for(int i=negXRadius + posXRadius; i >= 0; i--) - { - for(int j=0; j <= negZRadius + posZRadius ; j++) - { - GridSpace space = area[i][j]; - if(space.isRoadSegment()) - { - index++; - if(index >= amount) - { - return new Int3(i-negXRadius,space.getYLevel(),j-negZRadius); - } - } - } - } - }else if(dir == ForgeDirection.WEST) - { - for(int i=0; i <= negXRadius + posXRadius; i++) - { - for(int j=0; j <= negZRadius + posZRadius ; j++) - { - GridSpace space = area[i][j]; - if(space.isRoadSegment()) - { - index++; - if(index >= amount) - { - return new Int3(i-negXRadius,space.getYLevel(),j-negZRadius); - } - } - } - } - } - - return new Int3(0,0,0); - } - - public Int3 findEmptySpaceNearRoad(ForgeDirection dir, int amount, int closeness) - { - int index = 0; - if(dir == ForgeDirection.NORTH) - { - System.out.print("NORTH!"); - for(int i=0; i<= negZRadius + posZRadius; i++) - { - for(int j=0; j<= negXRadius + posXRadius; j++) - { - GridSpace space = area[j][i]; - if(space.isEmpty()) - { - int yLevel = this.findNearestRoadYLevel(j-negXRadius, i-negZRadius, closeness); - if(yLevel == -1) - { - continue; - } - index++; - if(index >= amount) - { - return new Int3(j-negXRadius,yLevel,i-negZRadius); - } - } - } - } - }else if(dir == ForgeDirection.SOUTH) - { - for(int i=negZRadius + posZRadius; i >= 0 ; i--) - { - for(int j=0; j<= negXRadius + posXRadius; j++) - { - GridSpace space = area[j][i]; - int yLevel = this.findNearestRoadYLevel(j-negXRadius, i-negZRadius, closeness); - if(yLevel == -1) - { - continue; - } - if(space.isEmpty()) - { - index++; - if(index >= amount) - { - return new Int3(j-negXRadius,yLevel,i-negZRadius); - } - } - } - } - }else if(dir == ForgeDirection.EAST) - { - for(int i=negXRadius + posXRadius; i >= 0; i--) - { - for(int j=0; j <= negZRadius + posZRadius ; j++) - { - GridSpace space = area[i][j]; - int yLevel = this.findNearestRoadYLevel(i-negXRadius, j-negZRadius, closeness); - if(yLevel == -1) - { - continue; - } - if(space.isEmpty()) - { - index++; - if(index >= amount) - { - return new Int3(i-negXRadius,yLevel,j-negZRadius); - } - } - } - } - }else if(dir == ForgeDirection.WEST) - { - for(int i=0; i <= negXRadius + posXRadius; i++) - { - for(int j=0; j <= negZRadius + posZRadius ; j++) - { - GridSpace space = area[i][j]; - int yLevel = this.findNearestRoadYLevel(i-negXRadius, j-negZRadius, closeness); - if(yLevel == -1) - { - continue; - } - if(space.isEmpty()) - { - index++; - if(index >= amount) - { - return new Int3(i-negXRadius,yLevel,j-negZRadius); - } - } - } - } - } - - return new Int3(0,0,0); - } - - public Int3 findEmptySpaceFromDirection(ForgeDirection dir, int amount) - { - int index = 0; - if(dir == ForgeDirection.NORTH) - { - System.out.print("NORTH!"); - for(int i=0; i<= negZRadius + posZRadius; i++) - { - for(int j=0; j<= negXRadius + posXRadius; j++) - { - GridSpace space = area[j][i]; - if(space.isEmpty()) - { - index++; - if(index >= amount) - { - return new Int3(j-negXRadius,space.getYLevel(),i-negZRadius); - } - } - } - } - }else if(dir == ForgeDirection.SOUTH) - { - for(int i=negZRadius + posZRadius; i >= 0 ; i--) - { - for(int j=0; j<= negXRadius + posXRadius; j++) - { - GridSpace space = area[j][i]; - if(space.isEmpty()) - { - index++; - if(index >= amount) - { - return new Int3(j-negXRadius,space.getYLevel(),i-negZRadius); - } - } - } - } - }else if(dir == ForgeDirection.EAST) - { - for(int i=negXRadius + posXRadius; i >= 0; i--) - { - for(int j=0; j <= negZRadius + posZRadius ; j++) - { - GridSpace space = area[i][j]; - if(space.isEmpty()) - { - index++; - if(index >= amount) - { - return new Int3(i-negXRadius,space.getYLevel(),j-negZRadius); - } - } - } - } - }else if(dir == ForgeDirection.WEST) - { - for(int i=0; i <= negXRadius + posXRadius; i++) - { - for(int j=0; j <= negZRadius + posZRadius ; j++) - { - GridSpace space = area[i][j]; - if(space.isEmpty()) - { - index++; - if(index >= amount) - { - return new Int3(i-negXRadius,space.getYLevel(),j-negZRadius); - } - } - } - } - } - - return new Int3(0,0,0); - } - - public void createGriddedRoad(int gridXi, int yi, int gridZi, ForgeDirection dir, int gridLength, boolean convertStarter) //Total grid length - { - if(gridLength == 0 || gridLength == 1) - { - return; - } - - if(convertStarter) - { - - } - - int initGridX = gridXi; - int initGridZ = gridZi; - int initY = yi; - - if(convertStarter) - { - this.setGridSpace(initGridX, initGridZ, new GridSpace(GridSpace.CROSSROAD,initY)); - - DemonCrosspath crosspath = new DemonCrosspath(xCoord + initGridX*5, initY, zCoord + initGridZ*5); - crosspath.createCrosspath(worldObj); - } - - for(int index=0; index posXRadius|| x < -negXRadius || z > posZRadius || z < -negZRadius) - { - return new GridSpace(); - }else - { - return (area[x + negXRadius][z + negZRadius]); - } - } - - public void setGridSpace(int x, int z, GridSpace space) - { - if(x > posXRadius) - { - this.expandAreaInPosX(); - this.setGridSpace(x, z, space); - return; - }else if(x < -negXRadius) - { - this.expandAreaInNegX(); - this.setGridSpace(x, z, space); - return; - }else if(z > posZRadius) - { - this.expandAreaInPosZ(); - this.setGridSpace(x, z, space); - return; - }else if(z < -negZRadius) - { - this.expandAreaInNegZ(); - this.setGridSpace(x, z, space); - return; - }else - { - area[x + negXRadius][z + negZRadius] = space; - } - } - - public void rightClickBlock(EntityPlayer player, int side) - { - if(worldObj.isRemote) - { - return; - } - - this.initialize(); - - if(ForgeDirection.getOrientation(side) == ForgeDirection.UP) - { - this.createRandomBuilding(DemonBuilding.BUILDING_HOUSE, 0); - }else if(ForgeDirection.getOrientation(side) == ForgeDirection.DOWN) - { - this.createRandomBuilding(DemonBuilding.BUILDING_PORTAL, 0); - }else - { - this.createRandomRoad(); - } - } - - public int createRandomBuilding(int type, int tier) - { - switch(type) - { - case DemonBuilding.BUILDING_HOUSE: - return this.createRandomHouse(tier); - case DemonBuilding.BUILDING_PORTAL: - return this.createPortalBuilding(tier); - } - - return 0; - } - - public int createPortalBuilding(int buildingTier) - { - int x = 0; - int z = 0; - - GridSpace home = this.getGridSpace(x, z); - int yLevel = home.getYLevel(); - - GridSpaceHolder grid = this.createGSH(); - - List directions = new ArrayList(); - - for(int i=2; i<6; i++) - { - ForgeDirection testDir = ForgeDirection.getOrientation(i); - //if(this.getGridSpace(x + testDir.offsetX, z + testDir.offsetZ).isEmpty()) - { - directions.add(testDir); - } - } - - if(directions.isEmpty()) - { - return 0; - } - - HashMap> schemMap = new HashMap(); - - for(ForgeDirection nextDir : directions) - { - for(DemonBuilding build : TEDemonPortal.buildingList) - { - if(build.buildingType != DemonBuilding.BUILDING_PORTAL) - { - continue; - } - if(schemMap.containsKey(nextDir)) - { - schemMap.get(nextDir).add(build); - }else - { - schemMap.put(nextDir, new ArrayList()); - schemMap.get(nextDir).add(build); - } - } - } - - if(schemMap.keySet().isEmpty()) - { - return 0; - } - - ForgeDirection chosenDirection = (ForgeDirection) schemMap.keySet().toArray()[new Random().nextInt(schemMap.keySet().size())]; - DemonBuilding build = schemMap.get(chosenDirection).get(new Random().nextInt(schemMap.get(chosenDirection).size())); - - build.destroyAllInField(worldObj, xCoord + (x)*5, yLevel, zCoord + (z)*5, chosenDirection.getOpposite()); - - Int3 portalSpace = build.getDoorSpace(chosenDirection); - int yOffset = portalSpace.yCoord; - - for(int i=0; i<256; i++) - { - Block block = worldObj.getBlock(xCoord + (x)*5, i, zCoord + (z)*5); - if(block == ModBlocks.blockDemonPortal) - { - BlockTeleposer.swapBlocks(worldObj, worldObj, xCoord, i, zCoord, xCoord, yLevel + yOffset, zCoord); - break; - } - } - - build.buildAll(worldObj, xCoord + (x)*5, yLevel, zCoord + (z)*5, chosenDirection.getOpposite()); - build.setAllGridSpaces(x, z, yLevel, chosenDirection.getOpposite(), GridSpace.MAIN_PORTAL, grid); - this.loadGSH(grid); - - return build.getNumberOfGridSpaces(); - } - - public int createRandomHouse(int buildingTier) - { - int next = rand.nextInt(4); - ForgeDirection dir; - - switch(next) - { - case 0: - dir = ForgeDirection.NORTH; - break; - case 1: - dir = ForgeDirection.SOUTH; - break; - case 2: - dir = ForgeDirection.EAST; - break; - case 3: - dir = ForgeDirection.WEST; - break; - default: - dir = ForgeDirection.NORTH; - } - - boolean newProtocol = true; - - if(newProtocol) - { - Int3 space = this.findRoadSpaceFromDirection(dir, 1*(rand.nextInt(negXRadius + negZRadius + posXRadius + posZRadius))+1); - - int x = space.xCoord; - int z = space.zCoord; - int yLevel = space.yCoord; - - System.out.println("Road space - x: " + x + " z: " + z); - - GridSpaceHolder grid = this.createGSH(); - - if(!this.getGridSpace(x, z).isRoadSegment()) - { - return 0; - } - - List directions = new ArrayList(); - - for(int i=2; i<6; i++) - { - ForgeDirection testDir = ForgeDirection.getOrientation(i); - if(this.getGridSpace(x + testDir.offsetX, z + testDir.offsetZ).isEmpty()) - { - directions.add(testDir); - } - } - - if(directions.isEmpty()) - { - return 0; - } - - HashMap> schemMap = new HashMap(); - - for(ForgeDirection nextDir : directions) - { - for(DemonBuilding build : TEDemonPortal.buildingList) - { - if(build.buildingTier != buildingTier || build.buildingType != DemonBuilding.BUILDING_HOUSE) - { - continue; - } - Int3 offsetSpace = build.getGridOffsetFromRoad(nextDir, yLevel); - int xOff = offsetSpace.xCoord; - int zOff = offsetSpace.zCoord; - - if(build.isValid(grid, x + xOff, z + zOff, nextDir.getOpposite())) - { - if(schemMap.containsKey(nextDir)) - { - schemMap.get(nextDir).add(build); - }else - { - schemMap.put(nextDir, new ArrayList()); - schemMap.get(nextDir).add(build); - } - }else - { - System.out.println("This ISN'T valid!"); - } - } - } - - if(schemMap.keySet().isEmpty()) - { - return 0; - } - - ForgeDirection chosenDirection = (ForgeDirection) schemMap.keySet().toArray()[new Random().nextInt(schemMap.keySet().size())]; - DemonBuilding build = schemMap.get(chosenDirection).get(new Random().nextInt(schemMap.get(chosenDirection).size())); - - Int3 offsetSpace = build.getGridOffsetFromRoad(chosenDirection, yLevel); - int xOff = offsetSpace.xCoord; - int zOff = offsetSpace.zCoord; - - build.destroyAllInField(worldObj, xCoord + (x + xOff)*5, yLevel, zCoord + (z + zOff)*5, chosenDirection.getOpposite()); - build.buildAll(worldObj, xCoord + (x + xOff)*5, yLevel, zCoord + (z + zOff)*5, chosenDirection.getOpposite()); - build.setAllGridSpaces(x + xOff, z + zOff, yLevel, chosenDirection.getOpposite(), GridSpace.HOUSE, grid); - this.loadGSH(grid); - - return build.getNumberOfGridSpaces(); - }else - { - Int3 space = findEmptySpaceNearRoad(dir, 3*(rand.nextInt(negXRadius + negZRadius + posXRadius + posZRadius))+1, 2); - - int x = space.xCoord; - int z = space.zCoord; - int yLevel = space.yCoord; - - GridSpace newSpace = this.getGridSpace(x, z); - if(!newSpace.isEmpty()) - { - return 0; - } - - if(yLevel == -1) - { - return 0; - } - - GridSpaceHolder grid = this.createGSH(); - - ForgeDirection chosenDirection = ForgeDirection.NORTH; - - HashMap> bigList = new HashMap(); - - for(DemonBuilding build : TEDemonPortal.buildingList) - { - for(int i=2; i<6; i++) - { - chosenDirection = ForgeDirection.getOrientation(i); - System.out.println("" + chosenDirection.toString()); - if(build.isValid(grid, x, z, chosenDirection)) - { - System.out.println("Valid!"); - if(bigList.containsKey(chosenDirection)) - { - bigList.get(chosenDirection).add(build); - }else - { - bigList.put(chosenDirection, new ArrayList()); - bigList.get(chosenDirection).add(build); - } - } - } - } - - chosenDirection = ForgeDirection.getOrientation(new Random().nextInt(4) + 2); //Change to favour a direction with a road nearby - - List buildingList = bigList.get(chosenDirection); - DemonBuilding build; - - if(buildingList != null && buildingList.size() > 0) - { - build = buildingList.get(new Random().nextInt(buildingList.size())); - }else - { - return 0; - } - //TODO: Finish the selection algorythm - //TODO: Should favour those directions that have a road right next to them. - - build.buildAll(worldObj, xCoord + x*5, yLevel, zCoord + z*5, chosenDirection); - build.setAllGridSpaces(x, z, yLevel, chosenDirection, GridSpace.HOUSE, grid); - this.loadGSH(grid); - - return build.getNumberOfGridSpaces(); -// System.out.println("X: " + x + " Z: " + z + " Direction: " + chosenDirection.toString()); - } - } - - public int findNearestRoadYLevel(int xCoord, int zCoord, int maxDistance) - { - for(int l=1; l<=maxDistance; l++) - { - for(int i=-l; i<=l; i++) - { - for(int j=-l; j<=l; j++) - { - if(Math.abs(i)!=l && Math.abs(j)!=l) - { - continue; - } - - if(this.getGridSpace(xCoord + i, zCoord + j).isRoadSegment()) - { - return this.getGridSpace(xCoord + i, zCoord + j).getYLevel(); - } - } - } - } - - return -1; - } - - public void createRoad(int xi, int yi, int zi, ForgeDirection dir, int length, boolean doesNotDrop) - { - int curX = xi; - int curY = yi; - int curZ = zi; - int roadRadius = this.getRoadRadius(); - - if(dir.offsetY != 0) - { - return; - } - - DemonVillagePath path = new DemonVillagePath(xi, yi, zi, dir, length); - - path.constructFullPath(worldObj, this.getRoadStepClearance(), this.getRoadBlock(), this.getRoadMeta()); - } - - public int placeMaterialOnNextAvailable() - { - return 0; - } - - public int getRoadRadius() - { - return 1; - } - - public Block getRoadBlock() - { - return Blocks.nether_brick; - } - - public int getRoadMeta() - { - return 0; - } - - public int getRoadStepClearance() - { - return 10; - } - - public int getRoadSpacer() - { - return 1; - } - - public GridSpaceHolder createGSH() - { - GridSpaceHolder grid = new GridSpaceHolder(); - grid.area = this.area; - grid.negXRadius = this.negXRadius; - grid.negZRadius = this.negZRadius; - grid.posXRadius = this.posXRadius; - grid.posZRadius = this.posZRadius; - - return grid; - } - - public void loadGSH(GridSpaceHolder grid) - { - this.area = grid.area; - this.negXRadius = grid.negXRadius; - this.negZRadius = grid.negZRadius; - this.posXRadius = grid.posXRadius; - this.posZRadius = grid.posZRadius; - } - - public static void loadBuildingList() - { - String folder = "config/BloodMagic/schematics"; - Gson gson = new GsonBuilder().setPrettyPrinting().create(); - - File file = new File(folder); - File[] files = file.listFiles(); - BufferedReader br; - - try{ - for(File f : files) - { - br = new BufferedReader(new FileReader(f)); - BuildingSchematic schema = gson.fromJson(br, BuildingSchematic.class); - TEDemonPortal.buildingList.add(new DemonBuilding(schema)); - } - }catch(FileNotFoundException e) - { - e.printStackTrace(); - } -// -// try { -// br = new BufferedReader(new FileReader(folder + "test3.json")); -// BuildingSchematic schema = gson.fromJson(br, BuildingSchematic.class); -// TEDemonPortal.buildingList.add(new DemonBuilding(schema)); -// } catch (FileNotFoundException e) { -// // TODO Auto-generated catch block -// e.printStackTrace(); -// } - - - } - - public int getTotalPoints() - { - return this.totalPoints; - } - - public void addToPoints(int addition) - { - this.totalPoints += addition; - } -} diff --git a/1.7.2/main/java/WayofTime/alchemicalWizardry/common/tileEntity/TEHomHeart.java b/1.7.2/main/java/WayofTime/alchemicalWizardry/common/tileEntity/TEHomHeart.java deleted file mode 100644 index 180b0d35..00000000 --- a/1.7.2/main/java/WayofTime/alchemicalWizardry/common/tileEntity/TEHomHeart.java +++ /dev/null @@ -1,167 +0,0 @@ -package WayofTime.alchemicalWizardry.common.tileEntity; - -import net.minecraft.block.Block; -import net.minecraft.entity.player.EntityPlayer; -import net.minecraft.init.Blocks; -import net.minecraft.item.ItemStack; -import net.minecraft.tileentity.TileEntity; -import net.minecraft.tileentity.TileEntitySkull; -import net.minecraft.world.World; -import WayofTime.alchemicalWizardry.common.spell.simple.HomSpell; -import WayofTime.alchemicalWizardry.common.spell.simple.HomSpellRegistry; - -public class TEHomHeart extends TileEntity -{ - public boolean canCastSpell(ItemStack par1ItemStack, World par2World, EntityPlayer par3EntityPlayer) - { - return true; - } - - public int castSpell(ItemStack par1ItemStack, World par2World, EntityPlayer par3EntityPlayer) - { - HomSpell spell = getSpell(); - - if (spell != null) - { - switch (getModifiedParadigm()) - { - case 0: - spell.onOffensiveRangedRightClick(par1ItemStack, par2World, par3EntityPlayer); - break; - - case 1: - spell.onOffensiveMeleeRightClick(par1ItemStack, par2World, par3EntityPlayer); - break; - - case 2: - spell.onDefensiveRightClick(par1ItemStack, par2World, par3EntityPlayer); - break; - - case 3: - spell.onEnvironmentalRightClick(par1ItemStack, par2World, par3EntityPlayer); - break; - } - - //spell.onOffensiveRangedRightClick(par1ItemStack, par2World, par3EntityPlayer); - } - - return 0; - } - - public HomSpell getSpell() - { - TileEntity tileEntity = worldObj.getTileEntity(xCoord - 1, yCoord, zCoord); - - if (tileEntity instanceof TEAltar) - { - ItemStack itemStack = ((TEAltar) tileEntity).getStackInSlot(0); - - if (itemStack != null) - { - HomSpell spell = HomSpellRegistry.getSpellForItemStack(itemStack); - - if (spell != null) - { - return spell; - } - } - } - - tileEntity = worldObj.getTileEntity(xCoord + 1, yCoord, zCoord); - - if (tileEntity instanceof TEAltar) - { - ItemStack itemStack = ((TEAltar) tileEntity).getStackInSlot(0); - - if (itemStack != null) - { - HomSpell spell = HomSpellRegistry.getSpellForItemStack(itemStack); - - if (spell != null) - { - return spell; - } - } - } - - tileEntity = worldObj.getTileEntity(xCoord, yCoord, zCoord - 1); - - if (tileEntity instanceof TEAltar) - { - ItemStack itemStack = ((TEAltar) tileEntity).getStackInSlot(0); - - if (itemStack != null) - { - HomSpell spell = HomSpellRegistry.getSpellForItemStack(itemStack); - - if (spell != null) - { - return spell; - } - } - } - - tileEntity = worldObj.getTileEntity(xCoord, yCoord, zCoord + 1); - - if (tileEntity instanceof TEAltar) - { - ItemStack itemStack = ((TEAltar) tileEntity).getStackInSlot(0); - - if (itemStack != null) - { - HomSpell spell = HomSpellRegistry.getSpellForItemStack(itemStack); - - if (spell != null) - { - return spell; - } - } - } - - return null; - } - - public int getModifiedParadigm() - { - //TODO change so that it works with a Tile Entity for a custom head or whatnot - Block block = worldObj.getBlock(xCoord, yCoord + 1, zCoord); - - if (block == Blocks.glowstone) - { - return 0; - } else if (block == Blocks.redstone_block) - { - return 1; - } else if (block == Blocks.anvil) - { - return 2; - } else if (block == Blocks.glass) - { - return 3; - } - - TileEntity tileEntity = worldObj.getTileEntity(xCoord, yCoord + 1, zCoord); - - if (tileEntity instanceof TileEntitySkull) - { - int skullType = ((TileEntitySkull) tileEntity).func_145904_a(); - - switch (skullType) - { - case 0: - return 0; - - case 1: - return 1; - - case 2: - return 2; - - case 4: - return 3; - } - } - - return -1; - } -} diff --git a/1.7.2/main/java/WayofTime/alchemicalWizardry/common/tileEntity/TEImperfectRitualStone.java b/1.7.2/main/java/WayofTime/alchemicalWizardry/common/tileEntity/TEImperfectRitualStone.java deleted file mode 100644 index 110996ea..00000000 --- a/1.7.2/main/java/WayofTime/alchemicalWizardry/common/tileEntity/TEImperfectRitualStone.java +++ /dev/null @@ -1,11 +0,0 @@ -package WayofTime.alchemicalWizardry.common.tileEntity; - -import net.minecraft.tileentity.TileEntity; - -public class TEImperfectRitualStone extends TileEntity -{ - public TEImperfectRitualStone() - { - // TODO Auto-generated constructor stub - } -} diff --git a/1.7.2/main/java/WayofTime/alchemicalWizardry/common/tileEntity/TEMasterStone.java b/1.7.2/main/java/WayofTime/alchemicalWizardry/common/tileEntity/TEMasterStone.java deleted file mode 100644 index 897b7857..00000000 --- a/1.7.2/main/java/WayofTime/alchemicalWizardry/common/tileEntity/TEMasterStone.java +++ /dev/null @@ -1,235 +0,0 @@ -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; -import WayofTime.alchemicalWizardry.api.soulNetwork.LifeEssenceNetwork; -import WayofTime.alchemicalWizardry.common.spell.complex.effect.SpellHelper; - -public class TEMasterStone extends TileEntity implements IMasterRitualStone -{ - //private int currentRitual; - private String currentRitualString; - private boolean isActive; - private String owner; - private String varString1; - private int cooldown; - private int var1; - private int direction; - - public TEMasterStone() - { - //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"); - 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"); - } - - @Override - public void writeToNBT(NBTTagCompound par1NBTTagCompound) - { - super.writeToNBT(par1NBTTagCompound); - //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, EntityPlayer player) - { - 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) - { - player.addChatMessage(new ChatComponentText("Your crystal vibrates pathetically.")); - - return; - } - - 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; - - 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; - } - - if (!world.isRemote) - { - 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++) - { - SpellHelper.sendIndexedParticleToAllAround(world, xCoord, yCoord, zCoord, 20, worldObj.provider.dimensionId, 1, xCoord, yCoord, zCoord); - } - } - - cooldown = Rituals.getInitialCooldown(testRitual); - var1 = 0; - currentRitualString = testRitual; - isActive = true; - direction = Rituals.getDirectionOfRitual(world, xCoord, yCoord, zCoord, testRitual); - worldObj.markBlockForUpdate(xCoord, yCoord, zCoord); - } - - public void setOwner(String owner) - { - this.owner = owner; - } - - @Override - public void updateEntity() - { - if (!isActive) - { - return; - } - - int worldTime = (int) (worldObj.getWorldTime() % 24000); - - if (worldObj.isRemote) - { - return; - } - - if (worldTime % 100 == 0) - { - 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; - currentRitualString = ""; - worldObj.markBlockForUpdate(xCoord, yCoord, zCoord); - //PacketDispatcher.sendPacketToAllPlayers(TEAltar.getParticlePacket(xCoord, yCoord, zCoord, (short)3)); - return; - } - } - - if (worldObj.getBlockPowerInput(xCoord, yCoord, zCoord) > 0) - { - return; - } - - performRitual(worldObj, xCoord, yCoord, zCoord, currentRitualString); - } - - public void performRitual(World world, int x, int y, int z, String currentRitualString2) - { - Rituals.performEffect(this, currentRitualString2); - } - - public String getOwner() - { - return owner; - } - - public void setCooldown(int newCooldown) - { - this.cooldown = newCooldown; - } - - public int getCooldown() - { - return this.cooldown; - } - - public void setVar1(int newVar1) - { - this.var1 = newVar1; - } - - public int getVar1() - { - return this.var1; - } - - public void setActive(boolean active) - { - this.isActive = active; - } - - public int getDirection() - { - return this.direction; - } - - @Override - public World getWorld() - { - return this.getWorldObj(); - } - - @Override - public int getXCoord() - { - return xCoord; - } - - @Override - public int getYCoord() - { - return yCoord; - } - - @Override - public int getZCoord() - { - return zCoord; - } -} \ No newline at end of file diff --git a/1.7.2/main/java/WayofTime/alchemicalWizardry/common/tileEntity/TEOrientable.java b/1.7.2/main/java/WayofTime/alchemicalWizardry/common/tileEntity/TEOrientable.java deleted file mode 100644 index 991f6e64..00000000 --- a/1.7.2/main/java/WayofTime/alchemicalWizardry/common/tileEntity/TEOrientable.java +++ /dev/null @@ -1,109 +0,0 @@ -package WayofTime.alchemicalWizardry.common.tileEntity; - -import net.minecraft.nbt.NBTTagCompound; -import net.minecraft.network.Packet; -import net.minecraft.network.play.server.S35PacketUpdateTileEntity; -import net.minecraft.tileentity.TileEntity; -import net.minecraftforge.common.util.ForgeDirection; -import WayofTime.alchemicalWizardry.common.NewPacketHandler; -import WayofTime.alchemicalWizardry.common.block.IOrientable; - -public class TEOrientable extends TileEntity implements IOrientable -{ - protected ForgeDirection inputFace; - protected ForgeDirection outputFace; - - public TEOrientable() - { - this.inputFace = ForgeDirection.DOWN; - this.outputFace = ForgeDirection.UP; - } - - @Override - public void readFromNBT(NBTTagCompound par1NBTTagCompound) - { - super.readFromNBT(par1NBTTagCompound); - this.setInputDirection(ForgeDirection.getOrientation(par1NBTTagCompound.getInteger("inputFace"))); - this.setOutputDirection(ForgeDirection.getOrientation(par1NBTTagCompound.getInteger("outputFace"))); - } - - @Override - public void writeToNBT(NBTTagCompound par1NBTTagCompound) - { - super.writeToNBT(par1NBTTagCompound); - par1NBTTagCompound.setInteger("inputFace", TEOrientable.getIntForForgeDirection(this.getInputDirection())); - par1NBTTagCompound.setInteger("outputFace", TEOrientable.getIntForForgeDirection(this.getOutputDirection())); - } - - @Override - public ForgeDirection getInputDirection() - { - return this.inputFace; - } - - @Override - public ForgeDirection getOutputDirection() - { - return this.outputFace; - } - - @Override - public void setInputDirection(ForgeDirection direction) - { - this.inputFace = direction; - } - - @Override - public void setOutputDirection(ForgeDirection direction) - { - this.outputFace = direction; - } - - public static int getIntForForgeDirection(ForgeDirection direction) - { - switch (direction) - { - case DOWN: - return 0; - - case UP: - return 1; - - case NORTH: - return 2; - - case SOUTH: - return 3; - - case WEST: - return 4; - - case EAST: - return 5; - - default: - return 0; - } - } - - @Override - public Packet getDescriptionPacket() - { - return NewPacketHandler.getPacket(this); - } - - - public boolean isSideRendered(ForgeDirection side) - { - if(side.equals(this.getInputDirection()) || side.equals(this.getOutputDirection())) - { - return true; - } - return false; - } - - public String getResourceLocationForMeta(int meta) - { - return ""; - } -} diff --git a/1.7.2/main/java/WayofTime/alchemicalWizardry/common/tileEntity/TEPedestal.java b/1.7.2/main/java/WayofTime/alchemicalWizardry/common/tileEntity/TEPedestal.java deleted file mode 100644 index d83006cc..00000000 --- a/1.7.2/main/java/WayofTime/alchemicalWizardry/common/tileEntity/TEPedestal.java +++ /dev/null @@ -1,268 +0,0 @@ -package WayofTime.alchemicalWizardry.common.tileEntity; - -import net.minecraft.entity.effect.EntityLightningBolt; -import net.minecraft.entity.player.EntityPlayer; -import net.minecraft.inventory.IInventory; -import net.minecraft.item.Item; -import net.minecraft.item.ItemStack; -import net.minecraft.nbt.NBTTagCompound; -import net.minecraft.nbt.NBTTagList; -import net.minecraft.network.Packet; -import net.minecraft.network.play.server.S35PacketUpdateTileEntity; -import net.minecraft.tileentity.TileEntity; -import net.minecraftforge.common.util.Constants; -import WayofTime.alchemicalWizardry.common.NewPacketHandler; -import WayofTime.alchemicalWizardry.common.spell.complex.effect.SpellHelper; - -public class TEPedestal extends TileEntity implements IInventory -{ - private ItemStack[] inv; - private int resultID; - private int resultDamage; - public static final int sizeInv = 1; - - private boolean isActive; - - public TEPedestal() - { - this.inv = new ItemStack[1]; - resultID = 0; - resultDamage = 0; - isActive = false; - } - - @Override - public void readFromNBT(NBTTagCompound par1NBTTagCompound) - { - super.readFromNBT(par1NBTTagCompound); - NBTTagList tagList = par1NBTTagCompound.getTagList("Inventory", Constants.NBT.TAG_COMPOUND); - - for (int i = 0; i < tagList.tagCount(); i++) - { - NBTTagCompound tag = (NBTTagCompound) tagList.getCompoundTagAt(i); - int slot = tag.getByte("Slot"); - - if (slot >= 0 && slot < inv.length) - { - inv[slot] = ItemStack.loadItemStackFromNBT(tag); - } - } - - resultID = par1NBTTagCompound.getInteger("resultID"); - resultDamage = par1NBTTagCompound.getInteger("resultDamage"); - isActive = par1NBTTagCompound.getBoolean("isActive"); - } - - @Override - public void writeToNBT(NBTTagCompound par1NBTTagCompound) - { - super.writeToNBT(par1NBTTagCompound); - NBTTagList itemList = new NBTTagList(); - - for (int i = 0; i < inv.length; i++) - { - ItemStack stack = inv[i]; - - if (inv[i] != null) - { - NBTTagCompound tag = new NBTTagCompound(); - tag.setByte("Slot", (byte) i); - inv[i].writeToNBT(tag); - itemList.appendTag(tag); - } - } - - par1NBTTagCompound.setInteger("resultID", resultID); - par1NBTTagCompound.setInteger("resultDamage", resultDamage); - par1NBTTagCompound.setTag("Inventory", itemList); - par1NBTTagCompound.setBoolean("isActive", isActive); - } - - @Override - public int getSizeInventory() - { - return 1; - } - - @Override - public ItemStack getStackInSlot(int slot) - { - return inv[slot]; - } - - @Override - public ItemStack decrStackSize(int slot, int amt) - { - ItemStack stack = getStackInSlot(slot); - - if (stack != null) - { - if (stack.stackSize <= amt) - { - setInventorySlotContents(slot, null); - } else - { - stack = stack.splitStack(amt); - - if (stack.stackSize == 0) - { - setInventorySlotContents(slot, null); - } - } - } - - return stack; - } - - @Override - public ItemStack getStackInSlotOnClosing(int slot) - { - ItemStack stack = getStackInSlot(slot); - - if (stack != null) - { - setInventorySlotContents(slot, null); - } - - return stack; - } - - @Override - public void setInventorySlotContents(int slot, ItemStack itemStack) - { - inv[slot] = itemStack; - - if (itemStack != null && itemStack.stackSize > getInventoryStackLimit()) - { - itemStack.stackSize = getInventoryStackLimit(); - } - } - - @Override - public String getInventoryName() - { - return "TEPedestal"; - } - - @Override - public boolean hasCustomInventoryName() - { - return false; - } - - @Override - public int getInventoryStackLimit() - { - return 1; - } - - @Override - public boolean isUseableByPlayer(EntityPlayer entityPlayer) - { - return worldObj.getTileEntity(xCoord, yCoord, zCoord) == this && entityPlayer.getDistanceSq(xCoord + 0.5, yCoord + 0.5, zCoord + 0.5) < 64; - } - - @Override - public void openInventory() - { - // TODO Auto-generated method stub - } - - @Override - public void closeInventory() - { - // TODO Auto-generated method stub - } - - //Logic for the actual block is under here - @Override - public void updateEntity() - { - super.updateEntity(); - } - - public void setActive() - { - isActive = false; - } - - public boolean isActive() - { - return isActive; - } - - @Override - public Packet getDescriptionPacket() - { - return NewPacketHandler.getPacket(this); - } - - public void handlePacketData(int[] intData) - { - if (intData == null) - { - return; - } - - if (intData.length == 3) - { - for (int i = 0; i < 1; i++) - { - if (intData[i * 3 + 2] != 0) - { - ItemStack is = new ItemStack(Item.getItemById(intData[i * 3]), intData[i * 3 + 2], intData[i * 3 + 1]); - inv[i] = is; - } else - { - inv[i] = null; - } - } - } - } - - public int[] buildIntDataList() - { - int[] sortList = new int[1 * 3]; - int pos = 0; - - for (ItemStack is : inv) - { - if (is != null) - { - sortList[pos++] = Item.getIdFromItem(is.getItem()); - sortList[pos++] = is.getItemDamage(); - sortList[pos++] = is.stackSize; - } else - { - sortList[pos++] = 0; - sortList[pos++] = 0; - sortList[pos++] = 0; - } - } - - return sortList; - } - - @Override - public boolean isItemValidForSlot(int slot, ItemStack itemstack) - { - if (slot == 0) - { - return true; - } - - return false; - } - - public void onItemDeletion() - { - //worldObj.createExplosion(null, xCoord+0.5, yCoord+0.5, zCoord+0.5, 1, false); - worldObj.addWeatherEffect(new EntityLightningBolt(worldObj, xCoord, yCoord, zCoord)); - - for (int i = 0; i < 16; i++) - { - SpellHelper.sendIndexedParticleToAllAround(worldObj, xCoord, yCoord, zCoord, 20, worldObj.provider.dimensionId, 2, xCoord, yCoord, zCoord); - } - } - -} diff --git a/1.7.2/main/java/WayofTime/alchemicalWizardry/common/tileEntity/TEPlinth.java b/1.7.2/main/java/WayofTime/alchemicalWizardry/common/tileEntity/TEPlinth.java deleted file mode 100644 index f9cfdbf4..00000000 --- a/1.7.2/main/java/WayofTime/alchemicalWizardry/common/tileEntity/TEPlinth.java +++ /dev/null @@ -1,694 +0,0 @@ -package WayofTime.alchemicalWizardry.common.tileEntity; - -import java.util.ArrayList; -import java.util.List; - -import net.minecraft.entity.EntityLivingBase; -import net.minecraft.entity.player.EntityPlayer; -import net.minecraft.inventory.IInventory; -import net.minecraft.item.Item; -import net.minecraft.item.ItemBlock; -import net.minecraft.item.ItemStack; -import net.minecraft.nbt.NBTTagCompound; -import net.minecraft.nbt.NBTTagList; -import net.minecraft.network.Packet; -import net.minecraft.network.play.server.S35PacketUpdateTileEntity; -import net.minecraft.tileentity.TileEntity; -import net.minecraftforge.common.util.Constants; -import net.minecraftforge.oredict.OreDictionary; -import WayofTime.alchemicalWizardry.api.summoningRegistry.SummoningRegistry; -import WayofTime.alchemicalWizardry.api.summoningRegistry.SummoningRegistryComponent; -import WayofTime.alchemicalWizardry.common.IDemon; -import WayofTime.alchemicalWizardry.common.NewPacketHandler; -import WayofTime.alchemicalWizardry.common.PlinthComponent; -import WayofTime.alchemicalWizardry.common.items.EnergyBattery; - -public class TEPlinth extends TileEntity implements IInventory -{ - private ItemStack[] inv; - - private boolean isActive; - private boolean paradigm; - - private ItemStack[] ring1Inv; - private ItemStack[] ring2Inv; - private ItemStack[] ring3Inv; - - public static final int sizeInv = 1; - - private int progressInterval; - private int progress; - - public static List pedestalPositions = new ArrayList(); - - public TEPlinth() - { - this.inv = new ItemStack[1]; - this.ring1Inv = new ItemStack[6]; - this.ring2Inv = new ItemStack[6]; - this.ring3Inv = new ItemStack[6]; - isActive = false; - progress = 0; - progressInterval = 50; - } - - @Override - public void readFromNBT(NBTTagCompound par1NBTTagCompound) - { - super.readFromNBT(par1NBTTagCompound); - NBTTagList tagList = par1NBTTagCompound.getTagList("Inventory",Constants.NBT.TAG_COMPOUND); - - for (int i = 0; i < tagList.tagCount(); i++) - { - NBTTagCompound tag = (NBTTagCompound) tagList.getCompoundTagAt(i); - int slot = tag.getByte("Slot"); - - if (slot >= 0 && slot < inv.length) - { - inv[slot] = ItemStack.loadItemStackFromNBT(tag); - } - } - - NBTTagList ring1TagList = par1NBTTagCompound.getTagList("ring1Inv",Constants.NBT.TAG_COMPOUND); - - for (int i = 0; i < ring1TagList.tagCount(); i++) - { - NBTTagCompound tag = (NBTTagCompound) ring1TagList.getCompoundTagAt(i); - int slot = tag.getByte("Slot"); - - if (slot >= 0 && slot < inv.length) - { - ring1Inv[slot] = ItemStack.loadItemStackFromNBT(tag); - } - } - - NBTTagList ring2TagList = par1NBTTagCompound.getTagList("ring2Inv",Constants.NBT.TAG_COMPOUND); - - for (int i = 0; i < ring2TagList.tagCount(); i++) - { - NBTTagCompound tag = (NBTTagCompound) ring2TagList.getCompoundTagAt(i); - int slot = tag.getByte("Slot"); - - if (slot >= 0 && slot < inv.length) - { - ring2Inv[slot] = ItemStack.loadItemStackFromNBT(tag); - } - } - - NBTTagList ring3TagList = par1NBTTagCompound.getTagList("ring3Inv",Constants.NBT.TAG_COMPOUND); - - for (int i = 0; i < ring3TagList.tagCount(); i++) - { - NBTTagCompound tag = (NBTTagCompound) ring3TagList.getCompoundTagAt(i); - int slot = tag.getByte("Slot"); - - if (slot >= 0 && slot < inv.length) - { - ring3Inv[slot] = ItemStack.loadItemStackFromNBT(tag); - } - } - - progress = par1NBTTagCompound.getInteger("progress"); - progressInterval = par1NBTTagCompound.getInteger("progressInterval"); - isActive = par1NBTTagCompound.getBoolean("isActive"); - } - - @Override - public void writeToNBT(NBTTagCompound par1NBTTagCompound) - { - super.writeToNBT(par1NBTTagCompound); - NBTTagList itemList = new NBTTagList(); - - for (int i = 0; i < inv.length; i++) - { - ItemStack stack = inv[i]; - - if (inv[i] != null) - { - NBTTagCompound tag = new NBTTagCompound(); - tag.setByte("Slot", (byte) i); - inv[i].writeToNBT(tag); - itemList.appendTag(tag); - } - } - - par1NBTTagCompound.setTag("Inventory", itemList); - NBTTagList ring1ItemList = new NBTTagList(); - - for (int i = 0; i < ring1Inv.length; i++) - { - ItemStack stack = ring1Inv[i]; - - if (ring1Inv[i] != null) - { - NBTTagCompound tag = new NBTTagCompound(); - tag.setByte("Slot", (byte) i); - ring1Inv[i].writeToNBT(tag); - ring1ItemList.appendTag(tag); - } - } - - par1NBTTagCompound.setTag("ring1Inv", ring1ItemList); - NBTTagList ring2ItemList = new NBTTagList(); - - for (int i = 0; i < ring2Inv.length; i++) - { - ItemStack stack = ring2Inv[i]; - - if (ring2Inv[i] != null) - { - NBTTagCompound tag = new NBTTagCompound(); - tag.setByte("Slot", (byte) i); - ring2Inv[i].writeToNBT(tag); - ring2ItemList.appendTag(tag); - } - } - - par1NBTTagCompound.setTag("ring2Inv", ring1ItemList); - NBTTagList ring3ItemList = new NBTTagList(); - - for (int i = 0; i < ring3Inv.length; i++) - { - ItemStack stack = ring3Inv[i]; - - if (ring3Inv[i] != null) - { - NBTTagCompound tag = new NBTTagCompound(); - tag.setByte("Slot", (byte) i); - ring3Inv[i].writeToNBT(tag); - ring3ItemList.appendTag(tag); - } - } - - par1NBTTagCompound.setTag("ring3Inv", ring1ItemList); - par1NBTTagCompound.setInteger("progress", progress); - par1NBTTagCompound.setInteger("progressInterval", progressInterval); - par1NBTTagCompound.setBoolean("isActive", isActive); - } - - @Override - public int getSizeInventory() - { - return 1; - } - - @Override - public ItemStack getStackInSlot(int slot) - { - return inv[slot]; - } - - @Override - public ItemStack decrStackSize(int slot, int amt) - { - ItemStack stack = getStackInSlot(slot); - - if (stack != null) - { - if (stack.stackSize <= amt) - { - setInventorySlotContents(slot, null); - } else - { - stack = stack.splitStack(amt); - - if (stack.stackSize == 0) - { - setInventorySlotContents(slot, null); - } - } - } - - return stack; - } - - @Override - public ItemStack getStackInSlotOnClosing(int slot) - { - ItemStack stack = getStackInSlot(slot); - - if (stack != null) - { - setInventorySlotContents(slot, null); - } - - return stack; - } - - @Override - public void setInventorySlotContents(int slot, ItemStack itemStack) - { - inv[slot] = itemStack; - - if (itemStack != null && itemStack.stackSize > getInventoryStackLimit()) - { - itemStack.stackSize = getInventoryStackLimit(); - } - } - - @Override - public String getInventoryName() - { - return "TEPlinth"; - } - - @Override - public boolean hasCustomInventoryName() - { - return false; - } - - @Override - public int getInventoryStackLimit() - { - return 1; - } - - @Override - public boolean isUseableByPlayer(EntityPlayer entityPlayer) - { - return worldObj.getTileEntity(xCoord, yCoord, zCoord) == this && entityPlayer.getDistanceSq(xCoord + 0.5, yCoord + 0.5, zCoord + 0.5) < 64; - } - - @Override - public void openInventory() - { - // TODO Auto-generated method stub - } - - @Override - public void closeInventory() - { - // TODO Auto-generated method stub - } - - //Logic for the actual block is under here - @Override - public void updateEntity() - { - super.updateEntity(); - - if (worldObj.isRemote) - { - return; - } - - if (!isActive()) - { - if (getStackInSlot(0) != null && getStackInSlot(0).getItem() instanceof EnergyBattery) - { - int bloodOrbLevel = ((EnergyBattery) getStackInSlot(0).getItem()).getOrbLevel(); - - if (SummoningRegistry.isRecipeValid(bloodOrbLevel, composeItemsForRingAndParadigm(1, true), composeItemsForRingAndParadigm(2, true), composeItemsForRingAndParadigm(3, true))) - { - SummoningRegistryComponent src = SummoningRegistry.getRegistryComponent(bloodOrbLevel, composeItemsForRingAndParadigm(1, true), composeItemsForRingAndParadigm(2, true), composeItemsForRingAndParadigm(3, true)); - isActive = true; - paradigm = true; - progress = 0; - ring1Inv = src.getRingRecipeForRing(1); - ring2Inv = src.getRingRecipeForRing(2); - ring3Inv = src.getRingRecipeForRing(3); - } else if (SummoningRegistry.isRecipeValid(bloodOrbLevel, composeItemsForRingAndParadigm(1, false), composeItemsForRingAndParadigm(2, false), composeItemsForRingAndParadigm(3, false))) - { - SummoningRegistryComponent src = SummoningRegistry.getRegistryComponent(bloodOrbLevel, composeItemsForRingAndParadigm(1, false), composeItemsForRingAndParadigm(2, false), composeItemsForRingAndParadigm(3, false)); - isActive = true; - paradigm = false; - progress = 0; - ring1Inv = src.getRingRecipeForRing(1); - ring2Inv = src.getRingRecipeForRing(2); - ring3Inv = src.getRingRecipeForRing(3); - } else - { - isActive = false; - progress = 0; - } - } - } else - { - if (getStackInSlot(0) != null && getStackInSlot(0).getItem() instanceof EnergyBattery) - { - if (progress % progressInterval == 0) - { - int ring = (progress / progressInterval) / 6 + 1; - int slot = (progress / progressInterval) % 6; - ItemStack itemStack; - - switch (ring) - { - case 1: - itemStack = this.ring1Inv[slot]; - break; - - case 2: - itemStack = this.ring2Inv[slot]; - break; - - case 3: - itemStack = this.ring3Inv[slot]; - break; - - default: - itemStack = null; - } - - if (itemStack == null) - { - progress += progressInterval; - } else - { - if (this.deleteItemStackInRing(ring, itemStack)) - { - progress++; - } - } - } else - { - progress++; - } - - if (progress >= progressInterval * 18) - { - int bloodOrbLevel = ((EnergyBattery) getStackInSlot(0).getItem()).getOrbLevel(); - EntityLivingBase entity = SummoningRegistry.getEntity(worldObj, bloodOrbLevel, ring1Inv, ring2Inv, ring3Inv); - //EntityLivingBase entity = new EntityFallenAngel(worldObj); - - if (entity != null) - { - //entity.worldObj = worldObj; - entity.setPosition(xCoord + 0.5, yCoord + 1, zCoord + 0.5); - worldObj.spawnEntityInWorld(entity); - - if (entity instanceof IDemon) - { - ((IDemon) entity).setSummonedConditions(); - } - - worldObj.createExplosion(entity, entity.posX, entity.posY, entity.posZ, 3, false); - deleteItemsInRing(1); - isActive = false; - progress = 0; - - if (worldObj != null) - { - worldObj.markBlockForUpdate(xCoord, yCoord, zCoord); - } - } - } - } - } - } - - public void deleteItemsInRing(int ring) - { - if (paradigm) - { - int i = 0; - - for (PlinthComponent pc : pedestalPositions) - { - if (i < 6 && pc.getRing() == ring) - { - TileEntity tileEntity = worldObj.getTileEntity(xCoord + pc.xOffset, yCoord + pc.yOffset, zCoord + pc.zOffset); - - if (tileEntity instanceof TEPedestal) - { - ((TEPedestal) tileEntity).setInventorySlotContents(0, null); - worldObj.markBlockForUpdate(xCoord + pc.xOffset, yCoord + pc.yOffset, zCoord + pc.zOffset); - i++; - } - } - } - } else - { - int i = 0; - - for (PlinthComponent pc : pedestalPositions) - { - if (i < 6 && pc.getRing() == ring) - { - TileEntity tileEntity = worldObj.getTileEntity(xCoord + pc.zOffset, yCoord + pc.yOffset, zCoord + pc.xOffset); - - if (tileEntity instanceof TEPedestal) - { - ((TEPedestal) tileEntity).setInventorySlotContents(0, null); - worldObj.markBlockForUpdate(xCoord + pc.zOffset, yCoord + pc.yOffset, zCoord + pc.xOffset); - i++; - } - } - } - } - } - - public boolean deleteItemStackInRing(int ring, ItemStack itemStack) - { - if (itemStack == null) - { - return true; - } - - if (paradigm) - { - int i = 0; - - for (PlinthComponent pc : pedestalPositions) - { - if (i < 6 && pc.getRing() == ring) - { - TileEntity tileEntity = worldObj.getTileEntity(xCoord + pc.xOffset, yCoord + pc.yOffset, zCoord + pc.zOffset); - - if (tileEntity instanceof TEPedestal) - { - ItemStack possibleItem = ((TEPedestal) tileEntity).getStackInSlot(0); - - if (possibleItem == null) - { - i++; - continue; - } - - boolean test = false; - - if (possibleItem.getItem() instanceof ItemBlock) - { - if (itemStack.getItem() instanceof ItemBlock) - { - test = true; - } - } else if (!(itemStack.getItem() instanceof ItemBlock)) - { - test = true; - } - - if (test) - { - if (itemStack.getItem()== possibleItem.getItem() && (itemStack.getItemDamage() == possibleItem.getItemDamage() || itemStack.getItemDamage() == OreDictionary.WILDCARD_VALUE)) - { - ((TEPedestal) tileEntity).decrStackSize(0, 1); - if(((TEPedestal) tileEntity).getStackInSlot(0) !=null && ((TEPedestal) tileEntity).getStackInSlot(0).stackSize==0) - { - ((TEPedestal) tileEntity).setInventorySlotContents(0, null); - } - ((TEPedestal) tileEntity).onItemDeletion(); - worldObj.markBlockForUpdate(xCoord + pc.xOffset, yCoord + pc.yOffset, zCoord + pc.zOffset); - return true; - } - } - - i++; - } - } - } - } else - { - int i = 0; - - for (PlinthComponent pc : pedestalPositions) - { - if (i < 6 && pc.getRing() == ring) - { - TileEntity tileEntity = worldObj.getTileEntity(xCoord + pc.zOffset, yCoord + pc.yOffset, zCoord + pc.xOffset); - - if (tileEntity instanceof TEPedestal) - { - ItemStack possibleItem = ((TEPedestal) tileEntity).getStackInSlot(0); - - if (possibleItem == null) - { - i++; - continue; - } - - boolean test = false; - - if (possibleItem.getItem() instanceof ItemBlock) - { - if (itemStack.getItem() instanceof ItemBlock) - { - test = true; - } - } else if (!(itemStack.getItem() instanceof ItemBlock)) - { - test = true; - } - - if (test) - { - if (itemStack.getItem() == possibleItem.getItem() && (itemStack.getItemDamage() == possibleItem.getItemDamage() || itemStack.getItemDamage() == OreDictionary.WILDCARD_VALUE)) - { - ((TEPedestal) tileEntity).decrStackSize(0, 1); - ((TEPedestal) tileEntity).onItemDeletion(); - //worldObj.markBlockForUpdate(xCoord + pc.xOffset, yCoord + pc.yOffset, zCoord + pc.zOffset); - worldObj.markBlockForUpdate(xCoord + pc.zOffset, yCoord + pc.yOffset, zCoord + pc.zOffset); - return true; - } - } - - i++; - } - } - } - } - - return false; - } - - public ItemStack[] composeItemsForRingAndParadigm(int ring, boolean paradigm) - { - ItemStack[] composed = new ItemStack[6]; - - if (paradigm) - { - int i = 0; - - for (PlinthComponent pc : pedestalPositions) - { - if (i < 6 && pc.getRing() == ring) - { - TileEntity tileEntity = worldObj.getTileEntity(xCoord + pc.xOffset, yCoord + pc.yOffset, zCoord + pc.zOffset); - - if (tileEntity instanceof TEPedestal) - { - composed[i] = ((TEPedestal) tileEntity).getStackInSlot(0); - i++; - } - } - } - } else - { - int i = 0; - - for (PlinthComponent pc : pedestalPositions) - { - if (i < 6 && pc.getRing() == ring) - { - TileEntity tileEntity = worldObj.getTileEntity(xCoord + pc.zOffset, yCoord + pc.yOffset, zCoord + pc.xOffset); - - if (tileEntity instanceof TEPedestal) - { - composed[i] = ((TEPedestal) tileEntity).getStackInSlot(0); - i++; - } - } - } - } - - return composed; - } - - public void setActive() - { - isActive = false; - } - - public boolean isActive() - { - return isActive; - } - - @Override - public Packet getDescriptionPacket() - { - return NewPacketHandler.getPacket(this); - } - - public void handlePacketData(int[] intData) - { - if (intData == null) - { - return; - } - - if (intData.length == 3) - { - for (int i = 0; i < 1; i++) - { - if (intData[i * 3 + 2] != 0) - { - ItemStack is = new ItemStack(Item.getItemById(intData[i * 3]), intData[i * 3 + 2], intData[i * 3 + 1]); - inv[i] = is; - } else - { - inv[i] = null; - } - } - } - } - - public int[] buildIntDataList() - { - int[] sortList = new int[1 * 3]; - int pos = 0; - - for (ItemStack is : inv) - { - if (is != null) - { - sortList[pos++] = Item.getIdFromItem(is.getItem()); - sortList[pos++] = is.getItemDamage(); - sortList[pos++] = is.stackSize; - } else - { - sortList[pos++] = 0; - sortList[pos++] = 0; - sortList[pos++] = 0; - } - } - - return sortList; - } - - @Override - public boolean isItemValidForSlot(int slot, ItemStack itemstack) - { - if (slot == 0) - { - return true; - } - - return false; - } - - public static void initialize() - { - pedestalPositions.add(new PlinthComponent(1, 0, -2, 1)); - pedestalPositions.add(new PlinthComponent(2, 0, 0, 1)); - pedestalPositions.add(new PlinthComponent(1, 0, +2, 1)); - pedestalPositions.add(new PlinthComponent(-1, 0, -2, 1)); - pedestalPositions.add(new PlinthComponent(-2, 0, 0, 1)); - pedestalPositions.add(new PlinthComponent(-1, 0, +2, 1)); - pedestalPositions.add(new PlinthComponent(3, 1, -5, 2)); - pedestalPositions.add(new PlinthComponent(6, 1, 0, 2)); - pedestalPositions.add(new PlinthComponent(3, 1, +5, 2)); - pedestalPositions.add(new PlinthComponent(-3, 1, -5, 2)); - pedestalPositions.add(new PlinthComponent(-6, 1, 0, 2)); - pedestalPositions.add(new PlinthComponent(-3, 1, +5, 2)); - pedestalPositions.add(new PlinthComponent(0, 2, -9, 3)); - pedestalPositions.add(new PlinthComponent(7, 2, -4, 3)); - pedestalPositions.add(new PlinthComponent(7, 2, +4, 3)); - pedestalPositions.add(new PlinthComponent(0, 2, +9, 3)); - pedestalPositions.add(new PlinthComponent(-7, 2, -4, 3)); - pedestalPositions.add(new PlinthComponent(-7, 2, 4, 3)); - } - - -} diff --git a/1.7.2/main/java/WayofTime/alchemicalWizardry/common/tileEntity/TESchematicSaver.java b/1.7.2/main/java/WayofTime/alchemicalWizardry/common/tileEntity/TESchematicSaver.java deleted file mode 100644 index 8accb62e..00000000 --- a/1.7.2/main/java/WayofTime/alchemicalWizardry/common/tileEntity/TESchematicSaver.java +++ /dev/null @@ -1,158 +0,0 @@ -package WayofTime.alchemicalWizardry.common.tileEntity; - -import java.io.FileWriter; -import java.io.IOException; -import java.io.Writer; -import java.util.Random; - -import net.minecraft.block.Block; -import net.minecraft.entity.player.EntityPlayer; -import net.minecraft.tileentity.TileEntity; -import WayofTime.alchemicalWizardry.ModBlocks; -import WayofTime.alchemicalWizardry.common.demonVillage.BuildingSchematic; - -import com.google.gson.Gson; -import com.google.gson.GsonBuilder; - -public class TESchematicSaver extends TileEntity -{ - public Block targetBlock = ModBlocks.blockBuildingSchematicSaver; - - public void rightClickBlock(EntityPlayer player, int side) - { - BuildingSchematic schematic = new BuildingSchematic(); - - int negX = this.getNegXLimit(); - int negY = this.getNegYLimit(); - int negZ = this.getNegZLimit(); - int posX = this.getPosXLimit(); - int posY = this.getPosYLimit(); - int posZ = this.getPosZLimit(); - - for(int i=-negX+1; i<=posX-1; i++) - { - for(int j=-negY+1; j<=posY-1; j++) - { - for(int k=-negZ+1; k<=posZ-1; k++) - { - int meta = worldObj.getBlockMetadata(xCoord + i, yCoord + j, zCoord + k); - Block block = worldObj.getBlock(xCoord + i, yCoord + j, zCoord + k); - - if(!block.isAir(worldObj, xCoord + i, yCoord + j, zCoord + k)) - { - schematic.addBlockWithMeta(block, meta, i, j, k); - } - - } - } - - System.out.println("" + i); - } - - System.out.println("I got here!"); - Gson gson = new GsonBuilder().setPrettyPrinting().create(); - String json = gson.toJson(schematic); - System.out.println("Here, too!"); - Writer writer; - try - { - writer = new FileWriter("config/BloodMagic/schematics/" + new Random().nextInt() + ".json"); - writer.write(json); - writer.close(); - } - catch (IOException e) - { - e.printStackTrace(); - } - } - - public int getPosYLimit() - { - int i=1; - while(i<100) - { - if(targetBlock == (worldObj.getBlock(xCoord, yCoord + i, zCoord))) - { - return i; - } - - i++; - } - return 1; - } - - public int getNegYLimit() - { - int i=1; - while(i<100) - { - if(targetBlock == (worldObj.getBlock(xCoord, yCoord - i, zCoord))) - { - return i; - } - - i++; - } - return 1; - } - - public int getPosXLimit() - { - int i=1; - while(i<100) - { - if(targetBlock == (worldObj.getBlock(xCoord + i, yCoord, zCoord))) - { - return i; - } - - i++; - } - return 1; - } - - public int getNegXLimit() - { - int i=1; - while(i<100) - { - if(targetBlock == (worldObj.getBlock(xCoord - i, yCoord, zCoord))) - { - return i; - } - - i++; - } - return 1; - } - - public int getPosZLimit() - { - int i=1; - while(i<100) - { - if(targetBlock == (worldObj.getBlock(xCoord, yCoord, zCoord + i))) - { - return i; - } - - i++; - } - return 1; - } - - public int getNegZLimit() - { - int i=1; - while(i<100) - { - if(targetBlock == (worldObj.getBlock(xCoord, yCoord, zCoord - i))) - { - return i; - } - - i++; - } - return 1; - } -} \ No newline at end of file diff --git a/1.7.2/main/java/WayofTime/alchemicalWizardry/common/tileEntity/TESocket.java b/1.7.2/main/java/WayofTime/alchemicalWizardry/common/tileEntity/TESocket.java deleted file mode 100644 index 9f43b483..00000000 --- a/1.7.2/main/java/WayofTime/alchemicalWizardry/common/tileEntity/TESocket.java +++ /dev/null @@ -1,255 +0,0 @@ -package WayofTime.alchemicalWizardry.common.tileEntity; - -import net.minecraft.entity.player.EntityPlayer; -import net.minecraft.inventory.IInventory; -import net.minecraft.item.Item; -import net.minecraft.item.ItemStack; -import net.minecraft.nbt.NBTTagCompound; -import net.minecraft.nbt.NBTTagList; -import net.minecraft.network.Packet; -import net.minecraft.network.play.server.S35PacketUpdateTileEntity; -import net.minecraft.tileentity.TileEntity; -import net.minecraftforge.common.util.Constants; -import WayofTime.alchemicalWizardry.common.NewPacketHandler; - -public class TESocket extends TileEntity implements IInventory -{ - private ItemStack[] inv; - private int resultID; - private int resultDamage; - - public static final int sizeInv = 1; - - private boolean isActive; - - public TESocket() - { - this.inv = new ItemStack[1]; - resultID = 0; - resultDamage = 0; - isActive = false; - } - - @Override - public void readFromNBT(NBTTagCompound par1NBTTagCompound) - { - super.readFromNBT(par1NBTTagCompound); - NBTTagList tagList = par1NBTTagCompound.getTagList("Inventory",Constants.NBT.TAG_COMPOUND); - - for (int i = 0; i < tagList.tagCount(); i++) - { - NBTTagCompound tag = (NBTTagCompound) tagList.getCompoundTagAt(i); - int slot = tag.getByte("Slot"); - - if (slot >= 0 && slot < inv.length) - { - inv[slot] = ItemStack.loadItemStackFromNBT(tag); - } - } - - resultID = par1NBTTagCompound.getInteger("resultID"); - resultDamage = par1NBTTagCompound.getInteger("resultDamage"); - isActive = par1NBTTagCompound.getBoolean("isActive"); - } - - @Override - public void writeToNBT(NBTTagCompound par1NBTTagCompound) - { - super.writeToNBT(par1NBTTagCompound); - NBTTagList itemList = new NBTTagList(); - - for (int i = 0; i < inv.length; i++) - { - ItemStack stack = inv[i]; - - if (inv[i] != null) - { - NBTTagCompound tag = new NBTTagCompound(); - tag.setByte("Slot", (byte) i); - inv[i].writeToNBT(tag); - itemList.appendTag(tag); - } - } - - par1NBTTagCompound.setInteger("resultID", resultID); - par1NBTTagCompound.setInteger("resultDamage", resultDamage); - par1NBTTagCompound.setTag("Inventory", itemList); - par1NBTTagCompound.setBoolean("isActive", isActive); - } - - @Override - public int getSizeInventory() - { - return 1; - } - - @Override - public ItemStack getStackInSlot(int slot) - { - return inv[slot]; - } - - @Override - public ItemStack decrStackSize(int slot, int amt) - { - ItemStack stack = getStackInSlot(slot); - - if (stack != null) - { - if (stack.stackSize <= amt) - { - setInventorySlotContents(slot, null); - } else - { - stack = stack.splitStack(amt); - - if (stack.stackSize == 0) - { - setInventorySlotContents(slot, null); - } - } - } - - return stack; - } - - @Override - public ItemStack getStackInSlotOnClosing(int slot) - { - ItemStack stack = getStackInSlot(slot); - - if (stack != null) - { - setInventorySlotContents(slot, null); - } - - return stack; - } - - @Override - public void setInventorySlotContents(int slot, ItemStack itemStack) - { - inv[slot] = itemStack; - - if (itemStack != null && itemStack.stackSize > getInventoryStackLimit()) - { - itemStack.stackSize = getInventoryStackLimit(); - } - } - - @Override - public String getInventoryName() - { - return "TESocket"; - } - - @Override - public boolean hasCustomInventoryName() - { - return false; - } - - @Override - public int getInventoryStackLimit() - { - return 1; - } - - @Override - public boolean isUseableByPlayer(EntityPlayer entityPlayer) - { - return worldObj.getTileEntity(xCoord, yCoord, zCoord) == this && entityPlayer.getDistanceSq(xCoord + 0.5, yCoord + 0.5, zCoord + 0.5) < 64; - } - - @Override - public void openInventory() - { - // TODO Auto-generated method stub - } - - @Override - public void closeInventory() - { - // TODO Auto-generated method stub - } - - //Logic for the actual block is under here - @Override - public void updateEntity() - { - super.updateEntity(); - } - - public void setActive() - { - isActive = false; - } - - public boolean isActive() - { - return isActive; - } - - @Override - public Packet getDescriptionPacket() - { - return NewPacketHandler.getPacket(this); - } - - public void handlePacketData(int[] intData) - { - if (intData == null) - { - return; - } - - if (intData.length == 3) - { - for (int i = 0; i < 1; i++) - { - if (intData[i * 3 + 2] != 0) - { - ItemStack is = new ItemStack(Item.getItemById(intData[i * 3]), intData[i * 3 + 2], intData[i * 3 + 1]); - inv[i] = is; - } else - { - inv[i] = null; - } - } - } - } - - public int[] buildIntDataList() - { - int[] sortList = new int[1 * 3]; - int pos = 0; - - for (ItemStack is : inv) - { - if (is != null) - { - sortList[pos++] = Item.getIdFromItem(is.getItem()); - sortList[pos++] = is.getItemDamage(); - sortList[pos++] = is.stackSize; - } else - { - sortList[pos++] = 0; - sortList[pos++] = 0; - sortList[pos++] = 0; - } - } - - return sortList; - } - - @Override - public boolean isItemValidForSlot(int slot, ItemStack itemstack) - { - if (slot == 0) - { - return true; - } - - return false; - } -} diff --git a/1.7.2/main/java/WayofTime/alchemicalWizardry/common/tileEntity/TESpectralContainer.java b/1.7.2/main/java/WayofTime/alchemicalWizardry/common/tileEntity/TESpectralContainer.java deleted file mode 100644 index 25994003..00000000 --- a/1.7.2/main/java/WayofTime/alchemicalWizardry/common/tileEntity/TESpectralContainer.java +++ /dev/null @@ -1,149 +0,0 @@ -package WayofTime.alchemicalWizardry.common.tileEntity; - -import net.minecraft.block.Block; -import net.minecraft.item.ItemBlock; -import net.minecraft.item.ItemStack; -import net.minecraft.nbt.NBTTagCompound; -import net.minecraft.nbt.NBTTagList; -import net.minecraft.tileentity.TileEntity; -import net.minecraft.world.World; -import net.minecraftforge.common.util.Constants; -import net.minecraftforge.fluids.IFluidBlock; -import WayofTime.alchemicalWizardry.ModBlocks; - -public class TESpectralContainer extends TileEntity -{ - private ItemStack[] inv; - - private int ticksRemaining; - - public TESpectralContainer() - { - this.inv = new ItemStack[1]; - - ticksRemaining = 0; - } - - @Override - public void readFromNBT(NBTTagCompound par1NBTTagCompound) - { - super.readFromNBT(par1NBTTagCompound); - NBTTagList tagList = par1NBTTagCompound.getTagList("Inventory", Constants.NBT.TAG_COMPOUND); - - for (int i = 0; i < tagList.tagCount(); i++) - { - NBTTagCompound tag = (NBTTagCompound) tagList.getCompoundTagAt(i); - int slot = tag.getByte("Slot"); - - if (slot >= 0 && slot < inv.length) - { - inv[slot] = ItemStack.loadItemStackFromNBT(tag); - } - } - - ticksRemaining = par1NBTTagCompound.getInteger("ticksRemaining"); - } - - @Override - public void writeToNBT(NBTTagCompound par1NBTTagCompound) - { - super.writeToNBT(par1NBTTagCompound); - NBTTagList itemList = new NBTTagList(); - - for (int i = 0; i < inv.length; i++) - { - ItemStack stack = inv[i]; - - if (inv[i] != null) - { - NBTTagCompound tag = new NBTTagCompound(); - tag.setByte("Slot", (byte) i); - inv[i].writeToNBT(tag); - itemList.appendTag(tag); - } - } - - par1NBTTagCompound.setTag("Inventory", itemList); - par1NBTTagCompound.setInteger("ticksRemaining", ticksRemaining); - } - - @Override - public void updateEntity() - { - super.updateEntity(); - - this.ticksRemaining--; - - if(this.ticksRemaining<=0) - { - this.returnContainedBlock(); - } - } - - public static boolean createSpectralBlockAtLocation(World world, int x, int y, int z, int duration) - { - Block block = world.getBlock(x, y, z); - - if(block==null) - { - return false; - } - - if(world.getTileEntity(x, y, z)==null || block instanceof IFluidBlock) - { - int meta = world.getBlockMetadata(x, y, z); - ItemStack item = new ItemStack(block, 1, meta); - - world.setBlock(x, y, z, ModBlocks.blockSpectralContainer); - TileEntity tile = world.getTileEntity(x, y, z); - if(tile instanceof TESpectralContainer) - { - ((TESpectralContainer) tile).setContainedItem(item); - ((TESpectralContainer) tile).setDuration(duration); - return true; - } - } - - return false; - } - - public void setDuration(int dur) - { - this.ticksRemaining = dur; - } - - public void resetDuration(int dur) - { - if(this.ticksRemaining stringList = parad.effectList; -// SpellParadigmSelf spellParadSelf = SpellParadigmSelf.getParadigmForStringArray(stringList); -// for(String str : stringList) -// { -// ChatMessageComponent chat = new ChatMessageComponent(); -// chat.addText(str); -// entity.sendChatToPlayer(chat); -// } -// spellParadSelf.castSpell(world, entity, spellCasterStack); -// } -// else if(parad instanceof SpellParadigmProjectile) -// { -// List stringList = parad.effectList; -// SpellParadigmProjectile spellParadSelf = SpellParadigmProjectile.getParadigmForStringArray(stringList); -// for(String str : stringList) -// { -// ChatMessageComponent chat = new ChatMessageComponent(); -// chat.addText(str); -// entity.sendChatToPlayer(chat); -// } -// spellParadSelf.castSpell(world, entity, spellCasterStack); -// }else - { - parad.applyAllSpellEffects(); - parad.castSpell(world, entity, spellCasterStack); - } - - } - - @Override - public String getResourceLocationForMeta(int meta) - { - switch(meta) - { - case 0: return "alchemicalwizardry:textures/models/SpellParadigmProjectile.png"; - case 1: return "alchemicalwizardry:textures/models/SpellParadigmSelf.png"; - case 2: return "alchemicalwizardry:textures/models/SpellParadigmMelee.png"; - case 3: return "alchemicalwizardry:textures/models/SpellParadigmTool.png"; - } - return "alchemicalwizardry:textures/models/SpellParadigmProjectile.png"; - } - - @Override - public void setInputDirection(ForgeDirection direction) - { - - } - - @Override - public ForgeDirection getInputDirection() - { - return ForgeDirection.UNKNOWN; - } -} diff --git a/1.7.2/main/java/WayofTime/alchemicalWizardry/common/tileEntity/TETeleposer.java b/1.7.2/main/java/WayofTime/alchemicalWizardry/common/tileEntity/TETeleposer.java deleted file mode 100644 index e1ae21fc..00000000 --- a/1.7.2/main/java/WayofTime/alchemicalWizardry/common/tileEntity/TETeleposer.java +++ /dev/null @@ -1,374 +0,0 @@ -package WayofTime.alchemicalWizardry.common.tileEntity; - -import java.util.Iterator; -import java.util.List; - -import net.minecraft.entity.EntityLivingBase; -import net.minecraft.entity.player.EntityPlayer; -import net.minecraft.inventory.IInventory; -import net.minecraft.item.Item; -import net.minecraft.item.ItemStack; -import net.minecraft.nbt.NBTTagCompound; -import net.minecraft.nbt.NBTTagList; -import net.minecraft.network.Packet; -import net.minecraft.network.play.server.S35PacketUpdateTileEntity; -import net.minecraft.tileentity.TileEntity; -import net.minecraft.util.AxisAlignedBB; -import net.minecraft.world.World; -import net.minecraftforge.common.util.Constants; -import WayofTime.alchemicalWizardry.common.NewPacketHandler; -import WayofTime.alchemicalWizardry.common.block.BlockTeleposer; -import WayofTime.alchemicalWizardry.common.items.EnergyItems; -import WayofTime.alchemicalWizardry.common.items.TelepositionFocus; - -public class TETeleposer extends TileEntity implements IInventory -{ - private ItemStack[] inv; - private int resultID; - private int resultDamage; - private int previousInput; - - public static final int sizeInv = 1; - - private boolean isActive; - - public TETeleposer() - { - this.inv = new ItemStack[1]; - resultID = 0; - resultDamage = 0; - isActive = false; - previousInput = 0; - } - - @Override - public void readFromNBT(NBTTagCompound par1NBTTagCompound) - { - super.readFromNBT(par1NBTTagCompound); - NBTTagList tagList = par1NBTTagCompound.getTagList("Inventory", Constants.NBT.TAG_COMPOUND); - - for (int i = 0; i < tagList.tagCount(); i++) - { - NBTTagCompound tag = (NBTTagCompound) tagList.getCompoundTagAt(i); - int slot = tag.getByte("Slot"); - - if (slot >= 0 && slot < inv.length) - { - inv[slot] = ItemStack.loadItemStackFromNBT(tag); - } - } - - resultID = par1NBTTagCompound.getInteger("resultID"); - resultDamage = par1NBTTagCompound.getInteger("resultDamage"); - isActive = par1NBTTagCompound.getBoolean("isActive"); - previousInput = par1NBTTagCompound.getInteger("previousInput"); - } - - @Override - public void writeToNBT(NBTTagCompound par1NBTTagCompound) - { - super.writeToNBT(par1NBTTagCompound); - NBTTagList itemList = new NBTTagList(); - - for (int i = 0; i < inv.length; i++) - { - ItemStack stack = inv[i]; - - if (inv[i] != null) - { - NBTTagCompound tag = new NBTTagCompound(); - tag.setByte("Slot", (byte) i); - inv[i].writeToNBT(tag); - itemList.appendTag(tag); - } - } - - par1NBTTagCompound.setInteger("resultID", resultID); - par1NBTTagCompound.setInteger("resultDamage", resultDamage); - par1NBTTagCompound.setTag("Inventory", itemList); - par1NBTTagCompound.setBoolean("isActive", isActive); - par1NBTTagCompound.setInteger("previousInput", previousInput); - } - - @Override - public int getSizeInventory() - { - return 1; - } - - @Override - public ItemStack getStackInSlot(int slot) - { - return inv[slot]; - } - - @Override - public ItemStack decrStackSize(int slot, int amt) - { - ItemStack stack = getStackInSlot(slot); - - if (stack != null) - { - if (stack.stackSize <= amt) - { - setInventorySlotContents(slot, null); - } else - { - stack = stack.splitStack(amt); - - if (stack.stackSize == 0) - { - setInventorySlotContents(slot, null); - } - } - } - - return stack; - } - - @Override - public ItemStack getStackInSlotOnClosing(int slot) - { - ItemStack stack = getStackInSlot(slot); - - if (stack != null) - { - setInventorySlotContents(slot, null); - } - - return stack; - } - - @Override - public void setInventorySlotContents(int slot, ItemStack itemStack) - { - inv[slot] = itemStack; - - if (itemStack != null && itemStack.stackSize > getInventoryStackLimit()) - { - itemStack.stackSize = getInventoryStackLimit(); - } - } - - @Override - public String getInventoryName() - { - return "TETeleposer"; - } - - @Override - public boolean hasCustomInventoryName() - { - return false; - } - - @Override - public int getInventoryStackLimit() - { - return 1; - } - - @Override - public boolean isUseableByPlayer(EntityPlayer entityPlayer) - { - return worldObj.getTileEntity(xCoord, yCoord, zCoord) == this && entityPlayer.getDistanceSq(xCoord + 0.5, yCoord + 0.5, zCoord + 0.5) < 64; - } - - @Override - public void openInventory() - { - // TODO Auto-generated method stub - } - - @Override - public void closeInventory() - { - // TODO Auto-generated method stub - } - - //Logic for the actual block is under here - @Override - public void updateEntity() - { - super.updateEntity(); - - if (worldObj.isRemote) - { - return; - } - - int currentInput = worldObj.getBlockPowerInput(xCoord, yCoord, zCoord); - - if (previousInput == 0 && currentInput != 0) - { - ItemStack focus = this.getStackInSlot(0); - - if (focus != null && focus.getItem() instanceof TelepositionFocus) - { - TelepositionFocus focusItem = (TelepositionFocus) (focus.getItem()); - int xf = focusItem.xCoord(focus); - int yf = focusItem.yCoord(focus); - int zf = focusItem.zCoord(focus); - World worldF = focusItem.getWorld(focus); - int damage = (int) (0.5f * Math.sqrt((xCoord - xf) * (xCoord - xf) + (yCoord - yf + 1) * (yCoord - yf + 1) + (zCoord - zf) * (zCoord - zf))); - int focusLevel = ((TelepositionFocus) focusItem).getFocusLevel(); - int transportCount = 0; - int entityCount = 0; - - if (worldF != null && worldF.getTileEntity(xf, yf, zf) instanceof TETeleposer && !worldF.getTileEntity(xf, yf, zf).equals(this)) - { - //Prime the teleportation - int d0 = focusLevel - 1; - AxisAlignedBB axisalignedbb1 = AxisAlignedBB.getAABBPool().getAABB((double) this.xCoord, (double) this.yCoord + d0 + 1, (double) this.zCoord, (double) (this.xCoord + 1), (double) (this.yCoord + 2 + d0), (double) (this.zCoord + 1)).expand(d0, d0, d0); - axisalignedbb1.maxY = Math.min((double) this.worldObj.getHeight(), this.yCoord + 2 + d0 + d0); - List list1 = this.worldObj.getEntitiesWithinAABB(EntityLivingBase.class, axisalignedbb1); - Iterator iterator1 = list1.iterator(); - EntityLivingBase entityplayer1; - - while (iterator1.hasNext()) - { - entityplayer1 = (EntityLivingBase) iterator1.next(); - entityCount++; - } - - //int d0 = focusLevel-1; - AxisAlignedBB axisalignedbb2 = AxisAlignedBB.getAABBPool().getAABB(xf, yf + d0 + 1, zf, xf + 1, yf + 2 + d0, zf).expand(d0, d0, d0); - //axisalignedbb2.maxY = Math.min((double)worldF.getHeight(),yf+1+d0+d0); - List list2 = worldF.getEntitiesWithinAABB(EntityLivingBase.class, axisalignedbb2); - Iterator iterator2 = list2.iterator(); - EntityLivingBase entityplayer2; - - while (iterator2.hasNext()) - { - entityplayer2 = (EntityLivingBase) iterator2.next(); - entityCount++; - } - - if (EnergyItems.canSyphonInContainer(focus, damage * (focusLevel * 2 - 1) * (focusLevel * 2 - 1) * (focusLevel * 2 - 1) + damage * entityCount)) - { - for (int k = 0; k <= (focusLevel * 2 - 2); k++) - //for(int k=(focusLevel*2-1);k>=0;k--) - { - for (int i = -(focusLevel - 1); i <= (focusLevel - 1); i++) - { - for (int j = -(focusLevel - 1); j <= (focusLevel - 1); j++) - { - { - if (BlockTeleposer.swapBlocks(worldObj, worldF, xCoord + i, yCoord + 1 + k, zCoord + j, xf + i, yf + 1 + k, zf + j)) - { - transportCount++; - } - } - } - } - } - - if (!worldF.equals(worldObj)) - { - entityCount = 0; - } - - EnergyItems.syphonWhileInContainer(focus, damage * transportCount + damage * entityCount); - //Teleport - - if (worldF.equals(worldObj)) - { - iterator1 = list1.iterator(); - iterator2 = list2.iterator(); - - while (iterator1.hasNext()) - { - entityplayer1 = (EntityLivingBase) iterator1.next(); - entityplayer1.worldObj = worldF; - entityplayer1.setPositionAndUpdate(entityplayer1.posX - this.xCoord + xf, entityplayer1.posY - this.yCoord + yf, entityplayer1.posZ - this.zCoord + zf); - } - - while (iterator2.hasNext()) - { - entityplayer2 = (EntityLivingBase) iterator2.next(); - entityplayer2.worldObj = worldF; - entityplayer2.setPositionAndUpdate(entityplayer2.posX + this.xCoord - xf, entityplayer2.posY + this.yCoord - yf, entityplayer2.posZ + this.zCoord - zf); - } - } - } - } - } - } - - previousInput = currentInput; - } - - public void setActive() - { - isActive = false; - } - - public boolean isActive() - { - return isActive; - } - - @Override - public Packet getDescriptionPacket() - { - return NewPacketHandler.getPacket(this); - } - - public void handlePacketData(int[] intData) - { - if (intData == null) - { - return; - } - - if (intData.length == 3) - { - for (int i = 0; i < 1; i++) - { - if (intData[i * 3 + 2] != 0) - { - ItemStack is = new ItemStack(Item.getItemById(intData[i * 3]), intData[i * 3 + 2], intData[i * 3 + 1]); - inv[i] = is; - } else - { - inv[i] = null; - } - } - } - } - - public int[] buildIntDataList() - { - int[] sortList = new int[1 * 3]; - int pos = 0; - - for (ItemStack is : inv) - { - if (is != null) - { - sortList[pos++] = Item.getIdFromItem(is.getItem()); - sortList[pos++] = is.getItemDamage(); - sortList[pos++] = is.stackSize; - } else - { - sortList[pos++] = 0; - sortList[pos++] = 0; - sortList[pos++] = 0; - } - } - - return sortList; - } - - @Override - public boolean isItemValidForSlot(int slot, ItemStack itemstack) - { - if (slot == 0) - { - return true; - } - - return false; - } - -} diff --git a/1.7.2/main/java/WayofTime/alchemicalWizardry/common/tileEntity/TEWritingTable.java b/1.7.2/main/java/WayofTime/alchemicalWizardry/common/tileEntity/TEWritingTable.java deleted file mode 100644 index bc005c4a..00000000 --- a/1.7.2/main/java/WayofTime/alchemicalWizardry/common/tileEntity/TEWritingTable.java +++ /dev/null @@ -1,815 +0,0 @@ -package WayofTime.alchemicalWizardry.common.tileEntity; - -import net.minecraft.entity.player.EntityPlayer; -import net.minecraft.inventory.IInventory; -import net.minecraft.item.Item; -import net.minecraft.item.ItemBlock; -import net.minecraft.item.ItemStack; -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; -import WayofTime.alchemicalWizardry.common.NewPacketHandler; -import WayofTime.alchemicalWizardry.common.items.EnergyItems; -import WayofTime.alchemicalWizardry.common.items.potion.AlchemyFlask; -import WayofTime.alchemicalWizardry.common.spell.complex.effect.SpellHelper; - -public class TEWritingTable extends TileEntity implements IInventory -{ - private ItemStack[] inv; - private int progress; - private int progressNeeded = 100; - private int amountUsed; - - public static final int sizeInv = 7; - - public TEWritingTable() - { - inv = new ItemStack[7]; - } - - @Override - public int getSizeInventory() - { - return inv.length; - } - - @Override - public ItemStack getStackInSlot(int slot) - { - return inv[slot]; - } - - @Override - public void setInventorySlotContents(int slot, ItemStack stack) - { - inv[slot] = stack; - - if (stack != null && stack.stackSize > getInventoryStackLimit()) - { - stack.stackSize = getInventoryStackLimit(); - } - } - - @Override - public ItemStack decrStackSize(int slot, int amt) - { - ItemStack stack = getStackInSlot(slot); - - if (stack != null) - { - if (stack.stackSize <= amt) - { - setInventorySlotContents(slot, null); - } else - { - stack = stack.splitStack(amt); - - if (stack.stackSize == 0) - { - setInventorySlotContents(slot, null); - } - } - } - - return stack; - } - - @Override - public ItemStack getStackInSlotOnClosing(int slot) - { - ItemStack stack = getStackInSlot(slot); - - if (stack != null) - { - setInventorySlotContents(slot, null); - } - - return stack; - } - - @Override - public int getInventoryStackLimit() - { - return 64; - } - - @Override - public boolean isUseableByPlayer(EntityPlayer player) - { - return worldObj.getTileEntity(xCoord, yCoord, zCoord) == this && player.getDistanceSq(xCoord + 0.5, yCoord + 0.5, zCoord + 0.5) < 64; - } - - @Override - public void openInventory() - { - } - - @Override - public void closeInventory() - { - } - - @Override - public void readFromNBT(NBTTagCompound tagCompound) - { - super.readFromNBT(tagCompound); - NBTTagList tagList = tagCompound.getTagList("Inventory",Constants.NBT.TAG_COMPOUND); - - for (int i = 0; i < tagList.tagCount(); i++) - { - NBTTagCompound tag = (NBTTagCompound) tagList.getCompoundTagAt(i); - byte slot = tag.getByte("Slot"); - - if (slot >= 0 && slot < inv.length) - { - inv[slot] = ItemStack.loadItemStackFromNBT(tag); - } - } - - progress = tagCompound.getInteger("progress"); - amountUsed = tagCompound.getInteger("amountUsed"); - } - - @Override - public void writeToNBT(NBTTagCompound tagCompound) - { - super.writeToNBT(tagCompound); - NBTTagList itemList = new NBTTagList(); - - for (int i = 0; i < inv.length; i++) - { - ItemStack stack = inv[i]; - - if (stack != null) - { - NBTTagCompound tag = new NBTTagCompound(); - tag.setByte("Slot", (byte) i); - stack.writeToNBT(tag); - itemList.appendTag(tag); - } - } - - tagCompound.setTag("Inventory", itemList); - tagCompound.setInteger("progress", progress); - tagCompound.setInteger("amountUsed", amountUsed); - } - - @Override - public String getInventoryName() - { - return "aw.TEWritingTable"; - } - - @Override - public boolean hasCustomInventoryName() - { - // TODO Auto-generated method stub - return false; - } - - @Override - public boolean isItemValidForSlot(int i, ItemStack itemstack) - { - // TODO Auto-generated method stub - return false; - } - - @Override - public net.minecraft.network.Packet getDescriptionPacket() - { - return NewPacketHandler.getPacket(this); - } - - public void handlePacketData(int[] intData) - { - if (intData == null) - { - return; - } - - if (intData.length == 3 * 7) - { - for (int i = 0; i < 7; i++) - { - if (intData[i * 3 + 2] != 0) - { - ItemStack is = new ItemStack(Item.getItemById(intData[i * 3]), intData[i * 3 + 2], intData[i * 3 + 1]); - inv[i] = is; - } else - { - inv[i] = null; - } - } - } - } - - public int[] buildIntDataList() - { - int[] sortList = new int[7 * 3]; - int pos = 0; - - for (ItemStack is : inv) - { - if (is != null) - { - sortList[pos++] = Item.getIdFromItem(is.getItem()); - sortList[pos++] = is.getItemDamage(); - sortList[pos++] = is.stackSize; - } else - { - sortList[pos++] = 0; - sortList[pos++] = 0; - sortList[pos++] = 0; - } - } - - return sortList; - } - - public ItemStack getResultingItemStack() - { - ItemStack[] composedRecipe = new ItemStack[5]; - - for (int i = 0; i < 5; i++) - { - composedRecipe[i] = inv[i + 1]; - } - - return AlchemyRecipeRegistry.getResult(composedRecipe, inv[0]); - } - - public boolean isRecipeValid() - { - return (getResultingItemStack() != null); - } - - public int getAmountNeeded(ItemStack bloodOrb) - { - ItemStack[] composedRecipe = new ItemStack[5]; - - for (int i = 0; i < 5; i++) - { - composedRecipe[i] = inv[i + 1]; - } - - return AlchemyRecipeRegistry.getAmountNeeded(composedRecipe, bloodOrb); - } - - public boolean containsPotionFlask() - { - if (getPotionFlaskPosition() != -1) - { - return true; - } else - { - return false; - } - } - - public int getPotionFlaskPosition() - { - for (int i = 1; i <= 5; i++) - { - if (inv[i] != null && !(inv[i].getItem() instanceof ItemBlock) && inv[i].getItem() == ModItems.alchemyFlask) - { - return i; - } - } - - return -1; - } - - public boolean containsRegisteredPotionIngredient() - { - if (getRegisteredPotionIngredientPosition() != -1) - { - return true; - } else - { - return false; - } - } - - public int getRegisteredPotionIngredientPosition() - { - ItemStack[] composedRecipe = new ItemStack[5]; - - for (int i = 0; i < 5; i++) - { - composedRecipe[i] = inv[i + 1]; - } - - int location = AlchemicalPotionCreationHandler.getRegisteredPotionIngredientPosition(composedRecipe); - - if (location != -1) - { - return location + 1; - } - - return -1; - } - - public boolean containsCatalyst() - { - if (getCatalystPosition() != -1) - { - return true; - } - - return false; - } - - public int getCatalystPosition() - { - for (int i = 0; i < 5; i++) - { - if (inv[i + 1] != null && inv[i + 1].getItem() instanceof ICatalyst) - { - return i + 1; - } - } - - return -1; - } - - public boolean containsBindingAgent() - { - if (getBindingAgentPosition() != -1) - { - return true; - } - - return false; - } - - public int getBindingAgentPosition() - { - for (int i = 0; i < 5; i++) - { - if (inv[i + 1] != null && inv[i + 1].getItem() instanceof IBindingAgent) - { - return i + 1; - } - } - - return -1; - } - - public boolean containsFillingAgent() - { - if (getFillingAgentPosition() != -1) - { - return true; - } - - return false; - } - - public int getFillingAgentPosition() - { - for (int i = 0; i < 5; i++) - { - if (inv[i + 1] != null && inv[i + 1].getItem() instanceof IFillingAgent) - { - return i + 1; - } - } - - return -1; - } - - public boolean containsBlankSlate() - { - if (getBlankSlatePosition() != -1) - { - return true; - } - - return false; - } - - public int getBlankSlatePosition() - { - for (int i = 0; i < 5; i++) - { - if (inv[i + 1] != null && inv[i + 1].getItem() == ModItems.blankSlate) - { - return i + 1; - } - } - - return -1; - } - - @Override - public void updateEntity() - { - long worldTime = worldObj.getWorldTime(); - - if (worldObj.isRemote) - { - return; - } - -// if(worldTime%100==0) -// { -// if (worldObj != null) -// { -// worldObj.markBlockForUpdate(xCoord, yCoord, zCoord); -// } -// } - - if (containsPotionFlask() && containsRegisteredPotionIngredient()) - { - if (containsCatalyst()) - { - if (getStackInSlot(6) == null) - { - progress++; - - if (worldTime % 4 == 0) - { - SpellHelper.sendIndexedParticleToAllAround(worldObj, xCoord, yCoord, zCoord, 20, worldObj.provider.dimensionId, 1, xCoord, yCoord, zCoord); - } - - if (progress >= progressNeeded) - { - ItemStack flaskStack = inv[this.getPotionFlaskPosition()]; - ItemStack ingredientStack = inv[this.getRegisteredPotionIngredientPosition()]; - ItemStack catalystStack = inv[this.getCatalystPosition()]; - - if (flaskStack == null || ingredientStack == null || catalystStack == null) - { - progress = 0; - - if (worldObj != null) - { - worldObj.markBlockForUpdate(xCoord, yCoord, zCoord); - } - - return; - } - - int potionID = AlchemicalPotionCreationHandler.getPotionIDForStack(ingredientStack); - int catalystLevel = ((ICatalyst) catalystStack.getItem()).getCatalystLevel(); - boolean isConcentration = ((ICatalyst) catalystStack.getItem()).isConcentration(); - - if (potionID == -1 || catalystLevel < 0) - { - progress = 0; - - if (worldObj != null) - { - worldObj.markBlockForUpdate(xCoord, yCoord, zCoord); - } - - return; - } - - if (isConcentration) - { - ((AlchemyFlask) flaskStack.getItem()).setConcentrationOfPotion(flaskStack, potionID, catalystLevel); - } else - { - ((AlchemyFlask) flaskStack.getItem()).setDurationFactorOfPotion(flaskStack, potionID, catalystLevel); - } - - //((AlchemyFlask)flaskStack.getItem()).setConcentrationOfPotion(flaskStack, Potion.regeneration.id, 2); - this.setInventorySlotContents(6, flaskStack); - this.decrStackSize(this.getPotionFlaskPosition(), 1); - this.decrStackSize(this.getCatalystPosition(), 1); - this.decrStackSize(this.getRegisteredPotionIngredientPosition(), 1); - progress = 0; - - if (worldObj != null) - { - worldObj.markBlockForUpdate(xCoord, yCoord, zCoord); - } - } - } - } else if (containsBindingAgent()) - { - if (getStackInSlot(6) == null) - { - progress++; - - if (worldTime % 4 == 0) - { - SpellHelper.sendIndexedParticleToAllAround(worldObj, xCoord, yCoord, zCoord, 20, worldObj.provider.dimensionId, 1, xCoord, yCoord, zCoord); - } - - if (progress >= progressNeeded) - { - ItemStack flaskStack = inv[this.getPotionFlaskPosition()]; - ItemStack ingredientStack = inv[this.getRegisteredPotionIngredientPosition()]; - ItemStack agentStack = inv[this.getBindingAgentPosition()]; - - if (flaskStack == null || ingredientStack == null || agentStack == null) - { - progress = 0; - - if (worldObj != null) - { - worldObj.markBlockForUpdate(xCoord, yCoord, zCoord); - } - - return; - } - - int potionEffectNumber = ((AlchemyFlask) flaskStack.getItem()).getNumberOfPotionEffects(flaskStack); - int potionID = AlchemicalPotionCreationHandler.getPotionIDForStack(ingredientStack); - int tickDuration = AlchemicalPotionCreationHandler.getPotionTickDurationForStack(ingredientStack); - float successChance = ((IBindingAgent) agentStack.getItem()).getSuccessRateForPotionNumber(potionEffectNumber); - //boolean isConcentration = ((ICatalyst)catalystStack.getItem()).isConcentration(); - - if (potionID == -1) - { - progress = 0; - - if (worldObj != null) - { - worldObj.markBlockForUpdate(xCoord, yCoord, zCoord); - } - - return; - } - - ((AlchemyFlask) flaskStack.getItem()).addPotionEffect(flaskStack, potionID, tickDuration); - - //((AlchemyFlask)flaskStack.getItem()).addPotionEffect(flaskStack, Potion.regeneration.id, 1000); - - if (successChance > worldObj.rand.nextFloat()) - { - this.setInventorySlotContents(6, flaskStack); - } else - { - worldObj.createExplosion(null, xCoord + 0.5, yCoord + 1, zCoord + 0.5, 2, false); - } - - this.decrStackSize(this.getPotionFlaskPosition(), 1); - this.decrStackSize(this.getBindingAgentPosition(), 1); - this.decrStackSize(this.getRegisteredPotionIngredientPosition(), 1); - progress = 0; - - if (worldObj != null) - { - worldObj.markBlockForUpdate(xCoord, yCoord, zCoord); - } - } - } - } - } else if (this.containsBlankSlate() && this.containsPotionFlask()) - { - if (getStackInSlot(6) == null) - { - progress++; - - if (worldTime % 4 == 0) - { - SpellHelper.sendIndexedParticleToAllAround(worldObj, xCoord, yCoord, zCoord, 20, worldObj.provider.dimensionId, 1, xCoord, yCoord, zCoord); - } - - if (progress >= progressNeeded) - { - ItemStack flaskStack = inv[this.getPotionFlaskPosition()]; - //ItemStack ingredientStack = inv[this.getRegisteredPotionIngredientPosition()]; - ItemStack blankSlate = inv[this.getBlankSlatePosition()]; - - if (flaskStack == null || blankSlate == null) - { - progress = 0; - - if (worldObj != null) - { - worldObj.markBlockForUpdate(xCoord, yCoord, zCoord); - } - - return; - } - - //boolean isConcentration = ((ICatalyst)catalystStack.getItem()).isConcentration(); - ((AlchemyFlask) flaskStack.getItem()).setIsPotionThrowable(true, flaskStack); - //((AlchemyFlask)flaskStack.getItem()).addPotionEffect(flaskStack, Potion.regeneration.id, 1000); - //if(successChance>worldObj.rand.nextFloat()) - this.setInventorySlotContents(6, flaskStack); - this.decrStackSize(this.getPotionFlaskPosition(), 1); - this.decrStackSize(this.getBlankSlatePosition(), 1); - //this.decrStackSize(this.getRegisteredPotionIngredientPosition(), 1); - progress = 0; - - if (worldObj != null) - { - worldObj.markBlockForUpdate(xCoord, yCoord, zCoord); - } - } - } - } else if (this.containsFillingAgent() && this.containsPotionFlask()) - { - //TODO - if (getStackInSlot(6) == null) - { - progress++; - - if (worldTime % 4 == 0) - { - SpellHelper.sendIndexedParticleToAllAround(worldObj, xCoord, yCoord, zCoord, 20, worldObj.provider.dimensionId, 1, xCoord, yCoord, zCoord); - } - - if (progress >= progressNeeded) - { - ItemStack flaskStack = inv[this.getPotionFlaskPosition()]; - //ItemStack ingredientStack = inv[this.getRegisteredPotionIngredientPosition()]; - ItemStack fillingAgent = inv[this.getFillingAgentPosition()]; - - if (flaskStack == null || fillingAgent == null) - { - progress = 0; - - if (worldObj != null) - { - worldObj.markBlockForUpdate(xCoord, yCoord, zCoord); - } - - return; - } - - //boolean isConcentration = ((ICatalyst)catalystStack.getItem()).isConcentration(); - int potionEffects = ((AlchemyFlask) flaskStack.getItem()).getNumberOfPotionEffects(flaskStack); - int potionFillAmount = ((IFillingAgent) fillingAgent.getItem()).getFilledAmountForPotionNumber(potionEffects); - flaskStack.setItemDamage(Math.max(0, flaskStack.getItemDamage() - potionFillAmount)); - //((AlchemyFlask)flaskStack.getItem()).addPotionEffect(flaskStack, Potion.regeneration.id, 1000); - //if(successChance>worldObj.rand.nextFloat()) - this.setInventorySlotContents(6, flaskStack); - this.decrStackSize(this.getPotionFlaskPosition(), 1); - this.decrStackSize(this.getFillingAgentPosition(), 1); - //this.decrStackSize(this.getRegisteredPotionIngredientPosition(), 1); - progress = 0; - - if (worldObj != null) - { - worldObj.markBlockForUpdate(xCoord, yCoord, zCoord); - } - } - } - } else - { - if (!isRecipeValid()) - { - progress = 0; - return; - } - - if (progress <= 0) - { - progress = 0; - amountUsed = this.getAmountNeeded(getStackInSlot(0)); - - if (worldObj != null) - { - worldObj.markBlockForUpdate(xCoord, yCoord, zCoord); - } - } - - if (getStackInSlot(6) == null) - { - if (!EnergyItems.syphonWhileInContainer(getStackInSlot(0), amountUsed)) - { - return; - } - - if (worldTime % 4 == 0) - { - SpellHelper.sendIndexedParticleToAllAround(worldObj, xCoord, yCoord, zCoord, 20, worldObj.provider.dimensionId, 1, xCoord, yCoord, zCoord); - } - - progress++; - - if (progress >= progressNeeded) - { - progress = 0; - this.setInventorySlotContents(6, 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) - { - worldObj.markBlockForUpdate(xCoord, yCoord, zCoord); - } - } - } else if (getStackInSlot(6).getItem() == getResultingItemStack().getItem() && getResultingItemStack().stackSize <= (getStackInSlot(6).getMaxStackSize() - getStackInSlot(6).stackSize)) - { - if (worldTime % 4 == 0) - { - SpellHelper.sendIndexedParticleToAllAround(worldObj, xCoord, yCoord, zCoord, 20, worldObj.provider.dimensionId, 1, xCoord, yCoord, zCoord); - } - - if (!EnergyItems.syphonWhileInContainer(getStackInSlot(0), amountUsed)) - { - return; - } - - progress++; - - if (progress >= progressNeeded) - { - progress = 0; - ItemStack result = getResultingItemStack().copy(); - result.stackSize += getStackInSlot(6).stackSize; - this.setInventorySlotContents(6, result); - - 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) - { - worldObj.markBlockForUpdate(xCoord, yCoord, zCoord); - } - } - } - } - - //worldObj.markBlockForUpdate(xCoord, yCoord, zCoord); - } - - public void decrementSlots(ItemStack[] recipe) //TODO Fix this. This doesn't work. - { - boolean[] decrementedList = new boolean[]{false,false,false,false,false}; - - for(int i=0; i<(Math.min(recipe.length,5)); i++) - { - ItemStack decStack = recipe[i]; - - if(decStack == null) - { - continue; - } - - for(int j=0; j<5; j++) - { - ItemStack testStack = this.getStackInSlot(j+1); - - if(testStack != null && (testStack.isItemEqual(decStack) || (testStack.getItem() == decStack.getItem() && decStack.getItemDamage() == OreDictionary.WILDCARD_VALUE)) && !(decrementedList[j])) - { - 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/main/java/WayofTime/alchemicalWizardry/common/tileEntity/container/ContainerAltar.java b/1.7.2/main/java/WayofTime/alchemicalWizardry/common/tileEntity/container/ContainerAltar.java deleted file mode 100644 index 9f926427..00000000 --- a/1.7.2/main/java/WayofTime/alchemicalWizardry/common/tileEntity/container/ContainerAltar.java +++ /dev/null @@ -1,96 +0,0 @@ -package WayofTime.alchemicalWizardry.common.tileEntity.container; - -import WayofTime.alchemicalWizardry.common.tileEntity.TEAltar; -import net.minecraft.entity.player.EntityPlayer; -import net.minecraft.entity.player.InventoryPlayer; -import net.minecraft.inventory.Container; -import net.minecraft.inventory.Slot; -import net.minecraft.item.ItemStack; - -public class ContainerAltar extends Container -{ - protected TEAltar tileEntity; - - public ContainerAltar(InventoryPlayer inventoryPlayer, TEAltar te) - { - tileEntity = te; - - for (int i = 0; i < 3; i++) - { - for (int j = 0; j < 3; j++) - { - addSlotToContainer(new Slot(tileEntity, j + i * 3, 62 + j * 18, 17 + i * 18)); - } - } - - bindPlayerInventory(inventoryPlayer); - } - - @Override - public boolean canInteractWith(EntityPlayer entityplayer) - { - return tileEntity.isUseableByPlayer(entityplayer); - } - - protected void bindPlayerInventory(InventoryPlayer inventoryPlayer) - { - for (int i = 0; i < 3; i++) - { - for (int j = 0; j < 9; j++) - { - addSlotToContainer(new Slot(inventoryPlayer, j + i * 9 + 9, - 8 + j * 18, 84 + i * 18)); - } - } - - for (int i = 0; i < 9; i++) - { - addSlotToContainer(new Slot(inventoryPlayer, i, 8 + i * 18, 142)); - } - } - - @Override - public ItemStack transferStackInSlot(EntityPlayer player, int slot) - { - ItemStack stack = null; - Slot slotObject = (Slot) inventorySlots.get(slot); - - //null checks and checks if the item can be stacked (maxStackSize > 1) - if (slotObject != null && slotObject.getHasStack()) - { - ItemStack stackInSlot = slotObject.getStack(); - stack = stackInSlot.copy(); - - //merges the item into player inventory since its in the tileEntity - if (slot < 9) - { - if (!this.mergeItemStack(stackInSlot, 0, 35, true)) - { - return null; - } - } - //places it into the tileEntity is possible since its in the player inventory - else if (!this.mergeItemStack(stackInSlot, 0, 9, false)) - { - return null; - } - - if (stackInSlot.stackSize == 0) - { - slotObject.putStack(null); - } else - { - slotObject.onSlotChanged(); - } - - if (stackInSlot.stackSize == stack.stackSize) - { - return null; - } - - slotObject.onPickupFromSlot(player, stackInSlot); - } - - return stack; - } -} diff --git a/1.7.2/main/java/WayofTime/alchemicalWizardry/common/tileEntity/container/ContainerTeleposer.java b/1.7.2/main/java/WayofTime/alchemicalWizardry/common/tileEntity/container/ContainerTeleposer.java deleted file mode 100644 index 09104284..00000000 --- a/1.7.2/main/java/WayofTime/alchemicalWizardry/common/tileEntity/container/ContainerTeleposer.java +++ /dev/null @@ -1,106 +0,0 @@ -package WayofTime.alchemicalWizardry.common.tileEntity.container; - -import WayofTime.alchemicalWizardry.common.tileEntity.TETeleposer; -import net.minecraft.entity.player.EntityPlayer; -import net.minecraft.entity.player.InventoryPlayer; -import net.minecraft.inventory.Container; -import net.minecraft.inventory.Slot; -import net.minecraft.item.ItemStack; - -public class ContainerTeleposer extends Container -{ - protected TETeleposer tileEntity; - - public ContainerTeleposer(InventoryPlayer inventoryPlayer, TETeleposer te) - { - tileEntity = te; - //the Slot constructor takes the IInventory and the slot number in that it binds to - //and the x-y coordinates it resides on-screen -// addSlotToContainer(new Slot(tileEntity, 0, 152, 110)); -// addSlotToContainer(new Slot(tileEntity, 1, 80, 18)); -// addSlotToContainer(new Slot(tileEntity, 2, 33, 52)); -// addSlotToContainer(new Slot(tileEntity, 3, 51, 110)); -// addSlotToContainer(new Slot(tileEntity, 4, 109, 110)); -// addSlotToContainer(new Slot(tileEntity, 5, 127, 52)); - addSlotToContainer(new Slot(tileEntity, 0, 80, 67)); - //commonly used vanilla code that adds the player's inventory - bindPlayerInventory(inventoryPlayer); - } - - @Override - public boolean canInteractWith(EntityPlayer player) - { - return tileEntity.isUseableByPlayer(player); - } - - protected void bindPlayerInventory(InventoryPlayer inventoryPlayer) - { - for (int i = 0; i < 3; i++) - { - for (int j = 0; j < 9; j++) - { - addSlotToContainer(new Slot(inventoryPlayer, j + i * 9 + 9, 8 + j * 18, 140 + i * 18)); - } - } - - for (int i = 0; i < 9; i++) - { - addSlotToContainer(new Slot(inventoryPlayer, i, 8 + i * 18, 198)); - } - } - - @Override - public ItemStack transferStackInSlot(EntityPlayer player, int slot) - { - ItemStack stack = null; - Slot slotObject = (Slot) inventorySlots.get(slot); - - //null checks and checks if the item can be stacked (maxStackSize > 1) - if (slotObject != null && slotObject.getHasStack()) - { - ItemStack stackInSlot = slotObject.getStack(); - stack = stackInSlot.copy(); - - if (slot == 7) - { - if (!this.mergeItemStack(stackInSlot, 7, 35, true)) - { - return null; - } - - slotObject.onSlotChange(stackInSlot, stack); - } - - //merges the item into player inventory since its in the tileEntity - if (slot < 1) - { - if (!this.mergeItemStack(stackInSlot, 7, 35, true)) - { - return null; - } - } - //places it into the tileEntity is possible since its in the player inventory - else if (!this.mergeItemStack(stackInSlot, 0, 0, false)) - { - return null; - } - - if (stackInSlot.stackSize == 0) - { - slotObject.putStack(null); - } else - { - slotObject.onSlotChanged(); - } - - if (stackInSlot.stackSize == stack.stackSize) - { - return null; - } - - slotObject.onPickupFromSlot(player, stackInSlot); - } - - return stack; - } -} \ No newline at end of file diff --git a/1.7.2/main/java/WayofTime/alchemicalWizardry/common/tileEntity/container/ContainerWritingTable.java b/1.7.2/main/java/WayofTime/alchemicalWizardry/common/tileEntity/container/ContainerWritingTable.java deleted file mode 100644 index 03c42933..00000000 --- a/1.7.2/main/java/WayofTime/alchemicalWizardry/common/tileEntity/container/ContainerWritingTable.java +++ /dev/null @@ -1,104 +0,0 @@ -package WayofTime.alchemicalWizardry.common.tileEntity.container; - -import net.minecraft.entity.player.EntityPlayer; -import net.minecraft.entity.player.InventoryPlayer; -import net.minecraft.inventory.Container; -import net.minecraft.inventory.Slot; -import net.minecraft.item.ItemStack; -import WayofTime.alchemicalWizardry.api.items.interfaces.IBloodOrb; -import WayofTime.alchemicalWizardry.common.tileEntity.TEWritingTable; - -public class ContainerWritingTable extends Container -{ - protected TEWritingTable tileEntity; - - public ContainerWritingTable(InventoryPlayer inventoryPlayer, TEWritingTable te) - { - tileEntity = te; - //the Slot constructor takes the IInventory and the slot number in that it binds to - //and the x-y coordinates it resides on-screen - addSlotToContainer(new Slot(tileEntity, 0, 152, 110)); - addSlotToContainer(new Slot(tileEntity, 1, 80, 18)); - addSlotToContainer(new Slot(tileEntity, 2, 33, 52)); - addSlotToContainer(new Slot(tileEntity, 3, 51, 110)); - addSlotToContainer(new Slot(tileEntity, 4, 109, 110)); - addSlotToContainer(new Slot(tileEntity, 5, 127, 52)); - addSlotToContainer(new Slot(tileEntity, 6, 80, 67)); - //commonly used vanilla code that adds the player's inventory - bindPlayerInventory(inventoryPlayer); - } - - @Override - public boolean canInteractWith(EntityPlayer player) - { - return tileEntity.isUseableByPlayer(player); - } - - protected void bindPlayerInventory(InventoryPlayer inventoryPlayer) - { - for (int i = 0; i < 3; i++) - { - for (int j = 0; j < 9; j++) - { - addSlotToContainer(new Slot(inventoryPlayer, j + i * 9 + 9, 8 + j * 18, 140 + i * 18)); - } - } - - for (int i = 0; i < 9; i++) - { - addSlotToContainer(new Slot(inventoryPlayer, i, 8 + i * 18, 198)); - } - } - - @Override - public ItemStack transferStackInSlot(EntityPlayer player, int slot) - { - ItemStack stack = null; - Slot slotObject = (Slot) inventorySlots.get(slot); - - //null checks and checks if the item can be stacked (maxStackSize > 1) - if (slotObject != null && slotObject.getHasStack()) - { - ItemStack stackInSlot = slotObject.getStack(); - stack = stackInSlot.copy(); - - //merges the item into player inventory since its in the tileEntity - if (slot <= 6) - { - if (!this.mergeItemStack(stackInSlot, 7, 43, true)) - { - return null; - } - } - else if(stack.getItem() instanceof IBloodOrb) - { - if (!this.mergeItemStack(stackInSlot, 0, 1, false)) - { - return null; - } - } - //places it into the tileEntity is possible since its in the player inventory - else if (!this.mergeItemStack(stackInSlot, 1, 6, false)) - { - return null; - } - - if (stackInSlot.stackSize == 0) - { - slotObject.putStack(null); - } else - { - slotObject.onSlotChanged(); - } - - if (stackInSlot.stackSize == stack.stackSize) - { - return null; - } - - slotObject.onPickupFromSlot(player, stackInSlot); - } - - return stack; - } -} \ No newline at end of file diff --git a/1.7.2/main/java/WayofTime/alchemicalWizardry/common/tileEntity/gui/GuiHandler.java b/1.7.2/main/java/WayofTime/alchemicalWizardry/common/tileEntity/gui/GuiHandler.java deleted file mode 100644 index 2c50234a..00000000 --- a/1.7.2/main/java/WayofTime/alchemicalWizardry/common/tileEntity/gui/GuiHandler.java +++ /dev/null @@ -1,73 +0,0 @@ -package WayofTime.alchemicalWizardry.common.tileEntity.gui; - -import WayofTime.alchemicalWizardry.common.tileEntity.TETeleposer; -import WayofTime.alchemicalWizardry.common.tileEntity.TEWritingTable; -import WayofTime.alchemicalWizardry.common.tileEntity.container.ContainerTeleposer; -import WayofTime.alchemicalWizardry.common.tileEntity.container.ContainerWritingTable; -import cpw.mods.fml.common.network.IGuiHandler; -import net.minecraft.entity.player.EntityPlayer; -import net.minecraft.tileentity.TileEntity; -import net.minecraft.world.World; - -public class GuiHandler implements IGuiHandler -{ - //returns an instance of the Container you made earlier - @Override - public Object getServerGuiElement(int id, EntityPlayer player, World world, int x, int y, int z) - { - TileEntity tileEntity; - - switch (id) - { - case 0: - tileEntity = world.getTileEntity(x, y, z); - - if (tileEntity instanceof TEWritingTable) - { - return new ContainerWritingTable(player.inventory, (TEWritingTable) tileEntity); - } - - case 1: - tileEntity = world.getTileEntity(x, y, z); - - if (tileEntity instanceof TETeleposer) - { - return new ContainerTeleposer(player.inventory, (TETeleposer) tileEntity); - } - } - - return null; - } - - //returns an instance of the Gui you made earlier - @Override - public Object getClientGuiElement(int id, EntityPlayer player, World world, int x, int y, int z) - { - TileEntity tileEntity; - - switch (id) - { - case 0: - tileEntity = world.getTileEntity(x, y, z); - - if (tileEntity instanceof TEWritingTable) - { - return new GuiWritingTable(player.inventory, (TEWritingTable) tileEntity); - } - - break; - - case 1: - tileEntity = world.getTileEntity(x, y, z); - - if (tileEntity instanceof TETeleposer) - { - return new GuiTeleposer(player.inventory, (TETeleposer) tileEntity); - } - - break; - } - - return null; - } -} \ No newline at end of file diff --git a/1.7.2/main/java/WayofTime/alchemicalWizardry/common/tileEntity/gui/GuiTeleposer.java b/1.7.2/main/java/WayofTime/alchemicalWizardry/common/tileEntity/gui/GuiTeleposer.java deleted file mode 100644 index a6d5f58a..00000000 --- a/1.7.2/main/java/WayofTime/alchemicalWizardry/common/tileEntity/gui/GuiTeleposer.java +++ /dev/null @@ -1,47 +0,0 @@ -package WayofTime.alchemicalWizardry.common.tileEntity.gui; - -import net.minecraft.client.gui.inventory.GuiBrewingStand; -import net.minecraft.client.gui.inventory.GuiContainer; -import net.minecraft.entity.player.InventoryPlayer; -import net.minecraft.util.ResourceLocation; -import net.minecraft.util.StatCollector; - -import org.lwjgl.opengl.GL11; - -import WayofTime.alchemicalWizardry.common.tileEntity.TETeleposer; -import WayofTime.alchemicalWizardry.common.tileEntity.container.ContainerTeleposer; - -public class GuiTeleposer extends GuiContainer -{ - public GuiTeleposer(InventoryPlayer inventoryPlayer, TETeleposer tileEntity) - { - //the container is instanciated and passed to the superclass for handling - super(new ContainerTeleposer(inventoryPlayer, tileEntity)); - xSize = 176; - ySize = 222; - } - - @Override - protected void drawGuiContainerForegroundLayer(int param1, int param2) - { - //draw text and stuff here - //the parameters for drawString are: string, x, y, color - fontRendererObj.drawString("Teleposer", 8, 6, 4210752); - //draws "Inventory" or your regional equivalent - fontRendererObj.drawString(StatCollector.translateToLocal("container.inventory"), 8, 130, 4210752); - } - - @Override - protected void drawGuiContainerBackgroundLayer(float par1, int par2, int par3) - { - //draw your Gui here, only thing you need to change is the path - //ResourceLocation texture = mc.renderEngine.getTexture("/gui/trap.png"); - ResourceLocation test = new ResourceLocation("alchemicalwizardry", "gui/Teleposer.png"); - GL11.glColor4f(1.0F, 1.0F, 1.0F, 1.0F); - this.mc.getTextureManager().bindTexture(test); - int x = (width - xSize) / 2; - int y = (height - ySize) / 2; - this.drawTexturedModalRect(x, y, 0, 0, xSize, ySize); - GuiBrewingStand d; - } -} \ No newline at end of file diff --git a/1.7.2/main/java/WayofTime/alchemicalWizardry/common/tileEntity/gui/GuiWritingTable.java b/1.7.2/main/java/WayofTime/alchemicalWizardry/common/tileEntity/gui/GuiWritingTable.java deleted file mode 100644 index 53a74f19..00000000 --- a/1.7.2/main/java/WayofTime/alchemicalWizardry/common/tileEntity/gui/GuiWritingTable.java +++ /dev/null @@ -1,45 +0,0 @@ -package WayofTime.alchemicalWizardry.common.tileEntity.gui; - -import WayofTime.alchemicalWizardry.common.tileEntity.TEWritingTable; -import WayofTime.alchemicalWizardry.common.tileEntity.container.ContainerWritingTable; -import net.minecraft.client.gui.inventory.GuiBrewingStand; -import net.minecraft.client.gui.inventory.GuiContainer; -import net.minecraft.entity.player.InventoryPlayer; -import net.minecraft.util.ResourceLocation; -import net.minecraft.util.StatCollector; -import org.lwjgl.opengl.GL11; - -public class GuiWritingTable extends GuiContainer -{ - public GuiWritingTable(InventoryPlayer inventoryPlayer, TEWritingTable tileEntity) - { - //the container is instanciated and passed to the superclass for handling - super(new ContainerWritingTable(inventoryPlayer, tileEntity)); - xSize = 176; - ySize = 222; - } - - @Override - protected void drawGuiContainerForegroundLayer(int param1, int param2) - { - //draw text and stuff here - //the parameters for drawString are: string, x, y, color - fontRendererObj.drawString("Alchemic Chemistry Set", 8, 6, 4210752); - //draws "Inventory" or your regional equivalent - fontRendererObj.drawString(StatCollector.translateToLocal("container.inventory"), 8, 130, 4210752); - } - - @Override - protected void drawGuiContainerBackgroundLayer(float par1, int par2, int par3) - { - //draw your Gui here, only thing you need to change is the path - //ResourceLocation texture = mc.renderEngine.getTexture("/gui/trap.png"); - ResourceLocation test = new ResourceLocation("alchemicalwizardry", "gui/WritingTable.png"); - GL11.glColor4f(1.0F, 1.0F, 1.0F, 1.0F); - this.mc.getTextureManager().bindTexture(test); - int x = (width - xSize) / 2; - int y = (height - ySize) / 2; - this.drawTexturedModalRect(x, y, 0, 0, xSize, ySize); - GuiBrewingStand d; - } -} \ No newline at end of file diff --git a/1.7.2/main/java/joshie/alchemicalWizardy/ShapedBloodOrbRecipe.java b/1.7.2/main/java/joshie/alchemicalWizardy/ShapedBloodOrbRecipe.java deleted file mode 100644 index f508fe6a..00000000 --- a/1.7.2/main/java/joshie/alchemicalWizardy/ShapedBloodOrbRecipe.java +++ /dev/null @@ -1,227 +0,0 @@ -package joshie.alchemicalWizardy; - -import java.util.ArrayList; -import java.util.HashMap; -import java.util.Iterator; -import java.util.Map; -import java.util.Map.Entry; - -import net.minecraft.block.Block; -import net.minecraft.inventory.InventoryCrafting; -import net.minecraft.item.Item; -import net.minecraft.item.ItemStack; -import net.minecraft.item.crafting.IRecipe; -import net.minecraft.item.crafting.ShapedRecipes; -import net.minecraft.world.World; -import net.minecraftforge.oredict.OreDictionary; -import WayofTime.alchemicalWizardry.api.items.interfaces.IBloodOrb; - -/** Shaped Blood Orb Recipe Handler by joshie **/ -public class ShapedBloodOrbRecipe implements IRecipe { - private static final int MAX_CRAFT_GRID_WIDTH = 3; - private static final int MAX_CRAFT_GRID_HEIGHT = 3; - - private ItemStack output = null; - private Object[] input = null; - public int width = 0; - public int height = 0; - private boolean mirrored = true; - - public ShapedBloodOrbRecipe(Block result, Object... recipe) { - this(new ItemStack(result), recipe); - } - - public ShapedBloodOrbRecipe(Item result, Object... recipe) { - this(new ItemStack(result), recipe); - } - - public ShapedBloodOrbRecipe(ItemStack result, Object... recipe) { - output = result.copy(); - - 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 IBloodOrb || (in instanceof ItemStack && ((ItemStack)in).getItem() instanceof IBloodOrb)) { //If the item is an instanceof IBloodOrb then save the level of the orb - if(in instanceof ItemStack) itemMap.put(chr, (Integer)(((IBloodOrb)((ItemStack)in).getItem()).getOrbLevel())); - else itemMap.put(chr, (Integer)(((IBloodOrb)in).getOrbLevel())); - } else 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); - } - } - - ShapedBloodOrbRecipe(ShapedRecipes recipe, Map replacements) { - output = recipe.getRecipeOutput(); - width = recipe.recipeWidth; - height = recipe.recipeHeight; - - input = new Object[recipe.recipeItems.length]; - - for (int i = 0; i < input.length; i++) { - ItemStack ingred = recipe.recipeItems[i]; - - if (ingred == null) - continue; - - input[i] = recipe.recipeItems[i]; - - for (Entry replace : replacements.entrySet()) { - if (OreDictionary.itemMatches(replace.getKey(), ingred, true)) { - input[i] = OreDictionary.getOres(replace.getValue()); - break; - } - } - } - } - - @Override - public ItemStack getCraftingResult(InventoryCrafting var1) { - return output.copy(); - } - - @Override - public int getRecipeSize() { - return input.length; - } - - @Override - public ItemStack getRecipeOutput() { - return output; - } - - @Override - public boolean matches(InventoryCrafting inv, World world) { - 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; - } - - @SuppressWarnings("unchecked") - private boolean checkMatch(InventoryCrafting 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 = inv.getStackInRowAndColumn(x, y); - //If target is integer, then we should be check the blood orb value of the item instead - if(target instanceof Integer) { - if(slot != null && slot.getItem() instanceof IBloodOrb) { - IBloodOrb orb = (IBloodOrb) slot.getItem(); - if(orb.getOrbLevel() < (Integer)target) { - return false; - } - } else return false; - } else if (target instanceof ItemStack) { - if (!OreDictionary.itemMatches((ItemStack) target, slot, false)) { - return false; - } - } else if (target instanceof ArrayList) { - boolean matched = false; - - Iterator itr = ((ArrayList) target).iterator(); - while (itr.hasNext() && !matched) { - matched = OreDictionary.itemMatches(itr.next(), slot, false); - } - - if (!matched) { - return false; - } - } else if (target == null && slot != null) { - return false; - } - } - } - - return true; - } - - public ShapedBloodOrbRecipe setMirrored(boolean mirror) { - mirrored = mirror; - return this; - } - - public Object[] getInput() { - return this.input; - } -} \ No newline at end of file diff --git a/1.7.2/main/java/joshie/alchemicalWizardy/ShapelessBloodOrbRecipe.java b/1.7.2/main/java/joshie/alchemicalWizardy/ShapelessBloodOrbRecipe.java deleted file mode 100644 index f33f9158..00000000 --- a/1.7.2/main/java/joshie/alchemicalWizardy/ShapelessBloodOrbRecipe.java +++ /dev/null @@ -1,140 +0,0 @@ -package joshie.alchemicalWizardy; - -import java.util.ArrayList; -import java.util.Iterator; -import java.util.List; -import java.util.Map; -import java.util.Map.Entry; - -import net.minecraft.block.Block; -import net.minecraft.inventory.InventoryCrafting; -import net.minecraft.item.Item; -import net.minecraft.item.ItemStack; -import net.minecraft.item.crafting.IRecipe; -import net.minecraft.item.crafting.ShapelessRecipes; -import net.minecraft.world.World; -import net.minecraftforge.oredict.OreDictionary; -import WayofTime.alchemicalWizardry.api.items.interfaces.IBloodOrb; - -/** Shapeless Blood Orb Recipe Handler by joshie **/ -public class ShapelessBloodOrbRecipe implements IRecipe { - private ItemStack output = null; - private ArrayList input = new ArrayList(); - - public ShapelessBloodOrbRecipe(Block result, Object... recipe) { - this(new ItemStack(result), recipe); - } - - public ShapelessBloodOrbRecipe(Item result, Object... recipe) { - this(new ItemStack(result), recipe); - } - - public ShapelessBloodOrbRecipe(ItemStack result, Object... recipe) { - output = result.copy(); - for (Object in : recipe) { - if (in instanceof ItemStack) { - input.add(((ItemStack) in).copy()); - } else if (in instanceof IBloodOrb) { //If the item is an instanceof IBloodOrb then save the level of the orb - input.add((Integer)(((IBloodOrb)in).getOrbLevel())); - } 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); - } - } - } - - @SuppressWarnings("unchecked") - ShapelessBloodOrbRecipe(ShapelessRecipes recipe, Map replacements) { - output = recipe.getRecipeOutput(); - - for (ItemStack ingred : ((List) recipe.recipeItems)) { - Object finalObj = ingred; - for (Entry replace : replacements.entrySet()) { - if (OreDictionary.itemMatches(replace.getKey(), ingred, false)) { - finalObj = OreDictionary.getOres(replace.getValue()); - break; - } - } - input.add(finalObj); - } - } - - @Override - public int getRecipeSize() { - return input.size(); - } - - @Override - public ItemStack getRecipeOutput() { - return output; - } - - @Override - public ItemStack getCraftingResult(InventoryCrafting var1) { - return output.copy(); - } - - @SuppressWarnings("unchecked") - @Override - public boolean matches(InventoryCrafting var1, World world) { - ArrayList required = new ArrayList(input); - - for (int x = 0; x < var1.getSizeInventory(); 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 target is integer, then we should be check the blood orb value of the item instead - if(next instanceof Integer) { - if(slot != null && slot.getItem() instanceof IBloodOrb) { - IBloodOrb orb = (IBloodOrb) slot.getItem(); - if(orb.getOrbLevel() < (Integer)next) { - return false; - } - } else return false; - } else if (next instanceof ItemStack) { - match = OreDictionary.itemMatches((ItemStack) next, slot, false); - } else if (next instanceof ArrayList) { - Iterator itr = ((ArrayList) next).iterator(); - while (itr.hasNext() && !match) { - match = OreDictionary.itemMatches(itr.next(), slot, false); - } - } - - if (match) { - inRecipe = true; - required.remove(next); - break; - } - } - - if (!inRecipe) { - return false; - } - } - } - - return required.isEmpty(); - } - - public ArrayList getInput() { - return this.input; - } -} \ No newline at end of file diff --git a/1.7.2/main/java/joshie/alchemicalWizardy/nei/NEIAlchemyRecipeHandler.java b/1.7.2/main/java/joshie/alchemicalWizardy/nei/NEIAlchemyRecipeHandler.java deleted file mode 100644 index 55765d28..00000000 --- a/1.7.2/main/java/joshie/alchemicalWizardy/nei/NEIAlchemyRecipeHandler.java +++ /dev/null @@ -1,153 +0,0 @@ -package joshie.alchemicalWizardy.nei; - -import static joshie.alchemicalWizardy.nei.NEIConfig.bloodOrbs; - -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 WayofTime.alchemicalWizardry.api.items.interfaces.IBloodOrb; -import codechicken.nei.ItemList; -import codechicken.nei.NEIServerUtils; -import codechicken.nei.PositionedStack; -import codechicken.nei.recipe.TemplateRecipeHandler; - -public class NEIAlchemyRecipeHandler extends TemplateRecipeHandler { - 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, ItemStack orb) { - this(recipe); - this.orbs = new ArrayList(); - orbs.add(new BloodOrbs(orb)); - } - - 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(Item orb: bloodOrbs) { - if(((IBloodOrb)orb).getOrbLevel() >= recipe.getOrbLevel()) { - orbs.add(new BloodOrbs(new ItemStack(orb))); - } - } - } - - @Override - public List getIngredients() { - return inputs; - } - - @Override - public PositionedStack getResult() { - return output; - } - - @Override - public PositionedStack getOtherStack() { - if(orbs == null || orbs.size() <= 0) return null; - return orbs.get((cycleticks/48) % orbs.size()).stack; - } - } - - @Override - public TemplateRecipeHandler newInstance() { - for(ItemStack item : ItemList.items) { - if(item != null && item.getItem() instanceof IBloodOrb) { - bloodOrbs.add(item.getItem()); - } - } - - return super.newInstance(); - } - - @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) { - if(ingredient.getItem() instanceof IBloodOrb) { - for(AlchemyRecipe recipe: AlchemyRecipeRegistry.recipes) { - if(((IBloodOrb)ingredient.getItem()).getOrbLevel() >= recipe.getOrbLevel()) { - arecipes.add(new CachedAlchemyRecipe(recipe, ingredient)); - } - } - } else { - for(AlchemyRecipe recipe: AlchemyRecipeRegistry.recipes) { - ItemStack[] stacks = recipe.getRecipe(); - for(ItemStack stack: stacks) { - if(NEIServerUtils.areStacksSameTypeCrafting(stack, ingredient)) { - arecipes.add(new CachedAlchemyRecipe(recipe)); - break; - } - } - } - } - } - - @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 deleted file mode 100644 index 3a4dd5ef..00000000 --- a/1.7.2/main/java/joshie/alchemicalWizardy/nei/NEIAltarRecipeHandler.java +++ /dev/null @@ -1,182 +0,0 @@ -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_146294_l"); - 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_146295_m"); - 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/NEIBloodOrbShapedHandler.java b/1.7.2/main/java/joshie/alchemicalWizardy/nei/NEIBloodOrbShapedHandler.java deleted file mode 100644 index 95faa19b..00000000 --- a/1.7.2/main/java/joshie/alchemicalWizardy/nei/NEIBloodOrbShapedHandler.java +++ /dev/null @@ -1,141 +0,0 @@ -package joshie.alchemicalWizardy.nei; - -import java.awt.Rectangle; -import java.util.ArrayList; -import java.util.List; - -import joshie.alchemicalWizardy.ShapedBloodOrbRecipe; -import net.minecraft.item.Item; -import net.minecraft.item.ItemStack; -import net.minecraft.item.crafting.CraftingManager; -import net.minecraft.item.crafting.IRecipe; -import net.minecraft.util.StatCollector; -import WayofTime.alchemicalWizardry.api.items.interfaces.IBloodOrb; -import codechicken.core.ReflectionManager; -import codechicken.nei.NEIServerUtils; -import codechicken.nei.PositionedStack; -import codechicken.nei.recipe.ShapedRecipeHandler; -import codechicken.nei.recipe.TemplateRecipeHandler.RecipeTransferRect; - -/** Extended from the default recipe handler **/ -public class NEIBloodOrbShapedHandler extends ShapedRecipeHandler { - public class CachedBloodOrbRecipe extends CachedShapedRecipe { - public CachedBloodOrbRecipe(int width, int height, Object[] items, ItemStack out) { - super(width, height, items, out); - } - - @Override - public void setIngredients(int width, int height, Object[] items) { - for (int x = 0; x < width; x++) { - for (int y = 0; y < height; y++) { - if (items[y * width + x] == null) - continue; - - Object o = items[y * width + x]; - if (o instanceof ItemStack) { - PositionedStack stack = new PositionedStack(items[y * width + x], 25 + x * 18, 6 + y * 18, false); - stack.setMaxSize(1); - ingredients.add(stack); - } else if (o instanceof Integer) { - ArrayList orbs = new ArrayList(); - for (Item item : NEIConfig.bloodOrbs) { - if (((IBloodOrb) item).getOrbLevel() >= (Integer) o) { - orbs.add(new ItemStack(item)); - } - } - - PositionedStack stack = new PositionedStack(orbs, 25 + x * 18, 6 + y * 18, false); - stack.setMaxSize(1); - ingredients.add(stack); - } - } - } - } - } - - @Override - public void loadCraftingRecipes(String outputId, Object... results) { - if (outputId.equals("orbCrafting") && getClass() == NEIBloodOrbShapedHandler.class) { - for (IRecipe irecipe : (List) CraftingManager.getInstance().getRecipeList()) { - if (irecipe instanceof ShapedBloodOrbRecipe) { - CachedBloodOrbRecipe recipe = forgeShapedRecipe((ShapedBloodOrbRecipe) irecipe); - if (recipe == null) - continue; - - recipe.computeVisuals(); - arecipes.add(recipe); - } - } - } else { - super.loadCraftingRecipes(outputId, results); - } - } - - @Override - public void loadCraftingRecipes(ItemStack result) { - for (IRecipe irecipe : (List) CraftingManager.getInstance().getRecipeList()) { - if (irecipe instanceof ShapedBloodOrbRecipe) { - CachedBloodOrbRecipe recipe = forgeShapedRecipe((ShapedBloodOrbRecipe) irecipe); - if (recipe == null || !NEIServerUtils.areStacksSameTypeCrafting(recipe.result.item, result)) - continue; - - recipe.computeVisuals(); - arecipes.add(recipe); - } - } - } - - @Override - public void loadUsageRecipes(ItemStack ingredient) { - for (IRecipe irecipe : (List) CraftingManager.getInstance().getRecipeList()) { - CachedShapedRecipe recipe = null; - if (irecipe instanceof ShapedBloodOrbRecipe) - recipe = forgeShapedRecipe((ShapedBloodOrbRecipe) irecipe); - - if (recipe == null || !recipe.contains(recipe.ingredients, ingredient.getItem())) - continue; - - recipe.computeVisuals(); - if (recipe.contains(recipe.ingredients, ingredient)) { - recipe.setIngredientPermutation(recipe.ingredients, ingredient); - arecipes.add(recipe); - } - } - } - - private CachedBloodOrbRecipe forgeShapedRecipe(ShapedBloodOrbRecipe recipe) { - int width; - int height; - try { - width = recipe.width; - height = recipe.height; - } catch (Exception e) { - e.printStackTrace(); - return null; - } - - Object[] items = recipe.getInput(); - for (Object item : items) - if (item instanceof List && ((List) item).isEmpty())// ore - // handler, - // no ores - return null; - - return new CachedBloodOrbRecipe(width, height, items, recipe.getRecipeOutput()); - } - - @Override - public void loadTransferRects() { - transferRects.add(new RecipeTransferRect(new Rectangle(84, 23, 24, 18), "orbCrafting")); - } - - @Override - public String getOverlayIdentifier() { - return "orbCrafting"; - } - - @Override - public String getRecipeName() { - return StatCollector.translateToLocal("bm.string.crafting.orb.shaped"); - } -} diff --git a/1.7.2/main/java/joshie/alchemicalWizardy/nei/NEIBloodOrbShapelessHandler.java b/1.7.2/main/java/joshie/alchemicalWizardy/nei/NEIBloodOrbShapelessHandler.java deleted file mode 100644 index a82a6b35..00000000 --- a/1.7.2/main/java/joshie/alchemicalWizardy/nei/NEIBloodOrbShapelessHandler.java +++ /dev/null @@ -1,130 +0,0 @@ -package joshie.alchemicalWizardy.nei; - -import java.awt.Rectangle; -import java.util.ArrayList; -import java.util.List; - -import joshie.alchemicalWizardy.ShapelessBloodOrbRecipe; -import net.minecraft.item.Item; -import net.minecraft.item.ItemStack; -import net.minecraft.item.crafting.CraftingManager; -import net.minecraft.item.crafting.IRecipe; -import net.minecraft.item.crafting.ShapelessRecipes; -import net.minecraft.util.StatCollector; -import net.minecraftforge.oredict.ShapelessOreRecipe; -import WayofTime.alchemicalWizardry.api.items.interfaces.IBloodOrb; -import codechicken.nei.NEIServerUtils; -import codechicken.nei.PositionedStack; -import codechicken.nei.recipe.ShapelessRecipeHandler; -import codechicken.nei.recipe.ShapelessRecipeHandler.CachedShapelessRecipe; - -public class NEIBloodOrbShapelessHandler extends ShapelessRecipeHandler { - public class CachedBloodOrbRecipe extends CachedShapelessRecipe { - public CachedBloodOrbRecipe(ArrayList items, ItemStack recipeOutput) { - super(items, recipeOutput); - } - - @Override - public void setIngredients(List items) { - ingredients.clear(); - for (int ingred = 0; ingred < items.size(); ingred++) { - Object o = items.get(ingred); - if (o instanceof ItemStack) { - PositionedStack stack = new PositionedStack(items.get(ingred), 25 + stackorder[ingred][0] * 18, 6 + stackorder[ingred][1] * 18); - stack.setMaxSize(1); - ingredients.add(stack); - } else if (o instanceof Integer) { - ArrayList orbs = new ArrayList(); - for (Item item : NEIConfig.bloodOrbs) { - if (((IBloodOrb) item).getOrbLevel() >= (Integer) o) { - orbs.add(new ItemStack(item)); - } - } - - PositionedStack stack = new PositionedStack(orbs, 25 + stackorder[ingred][0] * 18, 6 + stackorder[ingred][1] * 18); - stack.setMaxSize(1); - ingredients.add(stack); - } - } - } - } - - @Override - public void loadCraftingRecipes(String outputId, Object... results) { - if (outputId.equals("orbCrafting") && getClass() == NEIBloodOrbShapelessHandler.class) { - List allrecipes = CraftingManager.getInstance().getRecipeList(); - for (IRecipe irecipe : allrecipes) { - CachedBloodOrbRecipe recipe = null; - if (irecipe instanceof ShapelessBloodOrbRecipe) - recipe = forgeShapelessRecipe((ShapelessBloodOrbRecipe) irecipe); - - if (recipe == null) - continue; - - arecipes.add(recipe); - } - } else { - super.loadCraftingRecipes(outputId, results); - } - } - - @Override - public void loadCraftingRecipes(ItemStack result) { - List allrecipes = CraftingManager.getInstance().getRecipeList(); - for (IRecipe irecipe : allrecipes) { - if (NEIServerUtils.areStacksSameTypeCrafting(irecipe.getRecipeOutput(), result)) { - CachedBloodOrbRecipe recipe = null; - if (irecipe instanceof ShapelessBloodOrbRecipe) - recipe = forgeShapelessRecipe((ShapelessBloodOrbRecipe) irecipe); - - if (recipe == null) - continue; - - arecipes.add(recipe); - } - } - } - - @Override - public void loadUsageRecipes(ItemStack ingredient) { - List allrecipes = CraftingManager.getInstance().getRecipeList(); - for (IRecipe irecipe : allrecipes) { - CachedBloodOrbRecipe recipe = null; - if (irecipe instanceof ShapelessBloodOrbRecipe) - recipe = forgeShapelessRecipe((ShapelessBloodOrbRecipe) irecipe); - - if (recipe == null) - continue; - - if (recipe.contains(recipe.ingredients, ingredient)) { - recipe.setIngredientPermutation(recipe.ingredients, ingredient); - arecipes.add(recipe); - } - } - } - - public CachedBloodOrbRecipe forgeShapelessRecipe(ShapelessBloodOrbRecipe recipe) { - ArrayList items = recipe.getInput(); - - for (Object item : items) - if (item instanceof List && ((List) item).isEmpty())//ore handler, no ores - return null; - - return new CachedBloodOrbRecipe(items, recipe.getRecipeOutput()); - } - - @Override - public void loadTransferRects() { - transferRects.add(new RecipeTransferRect(new Rectangle(84, 23, 24, 18), "orbCrafting")); - } - - @Override - public String getOverlayIdentifier() { - return "orbCrafting"; - } - - @Override - public String getRecipeName() { - return StatCollector.translateToLocal("bm.string.crafting.orb.shapeless"); - } -} diff --git a/1.7.2/main/java/joshie/alchemicalWizardy/nei/NEIConfig.java b/1.7.2/main/java/joshie/alchemicalWizardy/nei/NEIConfig.java deleted file mode 100644 index 90703207..00000000 --- a/1.7.2/main/java/joshie/alchemicalWizardy/nei/NEIConfig.java +++ /dev/null @@ -1,33 +0,0 @@ -package joshie.alchemicalWizardy.nei; - -import java.util.ArrayList; - -import net.minecraft.item.Item; -import codechicken.nei.api.API; -import codechicken.nei.api.IConfigureNEI; - -public class NEIConfig implements IConfigureNEI { - public static ArrayList bloodOrbs = new ArrayList(); - - @Override - public void loadConfig() { - API.registerRecipeHandler(new NEIAlchemyRecipeHandler()); - API.registerUsageHandler(new NEIAlchemyRecipeHandler()); - API.registerRecipeHandler(new NEIAltarRecipeHandler()); - API.registerUsageHandler(new NEIAltarRecipeHandler()); - API.registerRecipeHandler(new NEIBloodOrbShapedHandler()); - API.registerUsageHandler(new NEIBloodOrbShapedHandler()); - API.registerRecipeHandler(new NEIBloodOrbShapelessHandler()); - API.registerUsageHandler(new NEIBloodOrbShapelessHandler()); - } - - @Override - public String getName() { - return "Blood Magic NEI"; - } - - @Override - public String getVersion() { - return "1.2"; - } -} diff --git a/1.7.2/main/resources/assets/alchemicalwizardry/altar.png b/1.7.2/main/resources/assets/alchemicalwizardry/altar.png deleted file mode 100644 index 6b6ac12e2fc7b3b2884e97a899c6630c43da9e5a..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 59034 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 - - - - The Architect - -My name is Tiberius. I was a kid when the demons came for my village during The Wars. They ransacked the houses and turned the shacks into splinters, wielding fire and water to blast the land asunder. I woke up to some travelling merchants that were passing by, equipping the warriors who were futily trying to drive off the demons that still clawed the village. - -I was brought to a village nearby, where a magician named Magus helped tend to my wounds. The magic that he used was something that I had never seen before – it wasn’t Thaumaturgy, nor Alchemy, and it was definitely not Botany. He winked at me once he saw that my eyes were open, holding his finger to his lips. - - - - - Fast-forward several years, and I have learned almost everything from Master Magus, being his third student ever to master his arts. Against his wishes, I have recorded my research and put several wards and spells on this book. So welcome, apprentice. I am known as The Architect, and I am a Blood Mage. - -It took several years of pestering before I managed to convince Magus to teach me. He kept on telling me that, “Magic that uses the life essence of living beings requires patience and preparation in order to master it. One false move, go a little past your natural endurance, and you may find yourself taking a nice vacation in Tartarus.†The thing was, I wanted to go there – I had some unfinished business with the demons. - - - - - The process that Magus originally constructed required powerful artifacts that he constructed himself, but were rather lacking where teaching was concerned. After studying a bit of alchemy and the process of “Equivalent Exchange,†I managed to construct myself an altar that would transmute items inside of its basin into new powerful forms. The only issue was that it needed a worthy catalyst, and so with a prick of the finger I set the Blood Altar alight! - - - - - The Blood Altar - -To start any form of transmutation involving blood, you would need to construct a blood altar and a sacrificial knife, as well as have a solitary diamond in your possession. After placing the blood altar down, Magus advised me to be careful as I filled it slowly with my blood, and said that I would need to be really close to the altar (about a metre) for the knife to work. With about 2 buckets of blood in the altar, which Master Magus reminds me is about 10 hearts worth, I placed the diamond inside of the altar by activating it with the diamond in hand. - -The blood dissipated in a cloud of red swirls as I waited for the atoms of the diamond to shift and reform. There were a few - - - - - moments where the particles turned gray, which meant that the altar was empty and I had to hurry to fill it. After the diamond burst in a shower of red particles, what finally sat in the altar was a Weak Blood Orb. - - - - - - Blood Altar - - bloodAltar - three - - - - - Sacrificial Knife - - sacrificialKnife - three - - - - - The Soul Network - -One thing that I initially didn’t understand was the overarching connection between the blood orb and myself. When I initially met Magus, I could see many sparkling strands branching off of him, flowing throughout his house and linking with intricate stones and runic drawings. I asked Magus about the strands, but he had no clue what I was talking about. It took three years of thorough research to finally find the answer, and when I brought my notes to him he was really impressed with what I have found. - -When you send power into the orb, the energy is transmitted from the strand connecting the orb and into the very soul of the person the orb is bound to. Similarly, and Magus - - - - - - managed to show this effect with several of his rituals, when you use something that drains energy it will drain the energy directly from the soul. The thing is that if you use an item whose owner has no energy left, the item will instead grab the requisite energy from the user of the item. Directly. From his or her life force. As such, the unit of measurement is called “Life Points,†or LP. I experimented with this, and one heart equals 200 LP. - -I have christened this system to be the “Soul Network,†and is used in all branches of Blood Magic indirectly. - - - - - - Sigils - -Magus is a master at rituals. His power in the intricate layering of stones and inks is unmatched. The problem is that these rituals are rather… static in nature. Sure, being able to summon a meteor is all fine and dandy, but won’t exactly protect you when you are on fire. To this end, I decided to link my soul network to powerful items that I have created. To start, I decided to transmute a piece of smooth stone in the Blood Altar with just 1kLP to create a blank slate. - -The first thing I did was to arrange the blank slate with some reflective glass and my weak blood orb. Pouring my power into the configuration created a Divination Sigil, which I could link to my network and see - - - - - - how much power that my soul network holds. What is more, holding the sigil to the Blood Altar flooded my mind with information, giving me the knowledge about its current tier, capacity, and even how much it was holding. - - Happy with the sigil, I brought a fresh unbound one to Master Magus for him to use. When I took the divination sigil back in my hands and tried to use it to view his network, for some reason I could not gleam any information from him. I don’t really see why this is, considering that I used this same method for other people and I saw that they had no power at all, but to gleam actually … nothing from Magus is strange. - - - - - Divination Sigil - - divinationSigil - three - - - - - - - - - - - \ No newline at end of file diff --git a/1.7.2/main/resources/assets/alchemicalwizardry/gui/Teleposer.png b/1.7.2/main/resources/assets/alchemicalwizardry/gui/Teleposer.png deleted file mode 100644 index 394b08ad78281189973442d0c0532e437a8abc9e..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 986 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 diff --git a/1.7.2/main/resources/assets/alchemicalwizardry/gui/nei/alchemy.png b/1.7.2/main/resources/assets/alchemicalwizardry/gui/nei/alchemy.png deleted file mode 100644 index 70819322dbb723c5af4eb70e5fdf6fd4631fb262..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1400 zcmeAS@N?(olHy`uVBq!ia0y~yU<5K5893O0R7}x|G$6%N?Bp530R%N1DIGvQXMsm# zF;M+_5N34R|6B_wC{yAZQ4*Y=R#Ki=l*-_klAn~S;FejGTAp8&U98|7Z1!T$rXHYK zpFCY0Ln`LHy&IS(>?z`KG3&^x4`x-$6Zi1zABl922s_K(oHog^@nGJix7FvwJs$3q zJsSSf>rce9ImtbS(^7waW52P}^7*HW*FR|3^?!VO^uI03hVuIQyd}$XfBP-|MmU(=bQP7pA_#fIm}=n3f*wtFZ(0# z-s=Av=bQglzF_Ft__zA&^-|gApMNep{zJ5kZ$oQ4|AA|M%O{JAwLj%yIK%=*a~SWO z;IwsDV<>;nGH-DaH$x&54#fX=c0>KEy}zQXr#wIS&!&Vy?&;oN{hw@Z$Zuy5P=ldw z7up-@n}nHbcw9Hd3hMRbf;ogm^)9){C=aB#VtJ0UD?t%ZG`lje}_itTXKfitl zYl8tJ(dajdS-FzQXDpvfBu892pctb!-SC*i_1C3mET{ADo8yeIAD6!{#ow=EsjjNp z^^@^hsqFdl=bz2^e7hJJKWB@7Y@Gj&CFc6qW$YI7&p-b8^QKI3U3Fh*>Fq+eFELHS z6nX!SIpTWhob%6T%O8;`zOg*D$M88Y-F=*Yl-rDH=H_E)B!A47S2^RRP+Vqz z+-<>I3udB22^gNzjc0EDmD!f8Ji&7J{AA?|WjQQH>EDZUSZ?(hGjIqKjW!FOm~;1h zqV@YcmL}Uxf-mae3G>G8_J(atvq7%j&Qxpc3A=#-P85s_tkvadO*LJp+f%j_xTLK zthY($^W6T{yB{9y?+<5Wh>~G)A~Np`17$bj+wPkF$>(xi1S};PJYD@<);T3K0RW;= B{^S4v diff --git a/1.7.2/main/resources/assets/alchemicalwizardry/gui/nei/altar.png b/1.7.2/main/resources/assets/alchemicalwizardry/gui/nei/altar.png deleted file mode 100644 index b1de616ac851daf73b82273aca4dbc6db7331e48..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 4204 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 ZTxejAW&Vw z7MSx}#I9fqLL5(>4Yv1Odld+Lt=)9LsP{LyAIP0Av?DyHVC1|&*+=6v;8u9q4c!pX9| z6{GjjhfBXHjL{!Zhwc&|Ny!Jt%f?O?A_uCOM=?ifGlOGgBc;hnh7s*th2m;+11K(e zG<}qT(pXYsmZ^=ThmH+IBrI9P(=d=EYd{TpOK=U>wLBMSD;w1y|1MEIw!j|t#he+o zIc%j|8eua_Uv>h}GSH6$_vn7k$W!fRl@}i8wBu!%Z(em^| z6qma0{hHr3<0cz^axWnVBo=`!zQPEa5T%3_`h96?w#s)eB2wt&*u^NN>aau=%6Yz2 z$)i^K>?l9Q+=HhWi4?w~2Ps{duP!@9=2nVEX6wsb_?2((G9hE}nQ$`SQZl?=Rtr`kS$u=L=`n+ZUj}>V{Sq diff --git a/1.7.2/main/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 deleted file mode 100644 index 6ec1ced0d0c8336b19787d6a18619f2b3a7f0f8c..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 3785 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 diff --git a/1.7.2/main/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 deleted file mode 100644 index 7fe14b5eb1e8124cefa080ffa6873913f1677e14..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 3149 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 diff --git a/1.7.2/main/resources/assets/alchemicalwizardry/models/armor/boundArmour_layer_1.png b/1.7.2/main/resources/assets/alchemicalwizardry/models/armor/boundArmour_layer_1.png deleted file mode 100644 index d472d41df372757ba91ff3fbd3195e0038fec8d6..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 3830 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 diff --git a/1.7.2/main/resources/assets/alchemicalwizardry/textures/blocks/AlchemicChemistrySet.png b/1.7.2/main/resources/assets/alchemicalwizardry/textures/blocks/AlchemicChemistrySet.png deleted file mode 100644 index 23e179ab1e5bc2cc0132f2f1f6261e70f074b35a..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 450 zcmV;z0X_bSP)mGh0000TX;fHrLvL+uWo~o;00000Lvm$d zbY)~9cWHEJAV*0}P-HG;2LJ#8I7vi7R5;7Eld(<$K@>&L>?|`Z$!aj6F(z6VdcJ{@ z-!LRvXd)0P_yf?=#y_y%e=yc2wAff6CSc*Z2=gpNA_R~GopLhw=FG`^N<`S?cD_mDodWMI2)OEW)Yf>s z(8ba(RI*v|!w{EFbD_0-e1)ZzBx`|f*H^=e8&brQN21i@h= zD)dgI5f$7CqJpCTO>jUP+=}4vBUF%f!h2sg zO`0T(F|k=XpMShq@PqPB)3lSxWVKp3=Zc~bLd@s$JJ%1q_uprGhzyBnI2D$XFap&N=pdZ>??i#r%c#-g89f?0Vg2S=P2q7>0FK*YEK7 zrThE$Uy>vuNs_WG$rB)Jnr86fg9pTCPlXWUPhWvCdHa@g$QRy*IS^>jEQqPp$0 zF&_Mnt5@F?Q5+cc;DR!!HfnpP=A z4<7&#B5JJwKybu$-(qcRd&kFp45i zWQ^flDAo79k}@*JY#tTIQYi(DIifU8vMj?mPK>dRymQuCr?lGeRaG?@3^?a?T@wHR zAaWw&mo8pNl6ZLYhPr$Sz;D`N7&_+wVB@pg+2+@-27ypYVHgHo*DV$ctu+w=fOD=a r%hS_SYpwTQDP@dVE|*HF*=+V7^X72Gm7@z|00000NkvXXu0mjfPRcM_*HG0000TX;fHrLvL+uWo~o;00000Lvm$d zbY)~9cWHEJAV*0}P-HG;2LJ#8B1uF+R5;76lf6msGOxm$0xRG;09gaP3PpK7fDXf0000TX;fHrLvL+uWo~o;00000Lvm$d zbY)~9cWHEJAV*0}P-HG;2LJ#8XGugsR5;6}lCg>tQ51&1GYQEgkx9V762wLe#YT*8 zu&~8~+ij6-v52<5mSSh@Oy>)TRmc$a) z3ZsbIIHr+htkV<~F*BeB`~`Zzq<{pwzkikti71N5^Be=h!VIt|Ad{*DTaDXoWt$Cw zL;}P>TD(nn%m7HLJi~rp7of+jma1xw0_MG*o`Ggi2?(m@dpa0M-<2tID_xjU zz{`GLmtn};^8kLr*=x80PD&sLfLG0?#zBC*=eKjb85*u=;yd8Q9^?R!0?BH{!a2sy zu`%O4umm0yV?4Tv0FP=leduSB74#A0Y3EmySH7})pgx84FD*mIOpDb zN+|#UfDj^tAcPpl(K$ys=gQcZO;fb{$XGJE$@^R?N2f_j)t1G9F`my5#`Nn{ ztk!Z0jMC9hA{DM}Cxl)Aj!Dw*+ne3kBHS+-x?-s#JjB-@A);ZxVWD$I5vlxHz7opU`Oi;v0kz08ne~d_Mon`|FoW5Xr;C zBX<6m&!0WO|G)h@4Ff{>!+L#Q6&N7^z>Kjx&#T$&^7a zW1k{~5JCj^l-|C6b<|pj6dBC{Nh!Vec)QzSj3odK@kNZ=?UqtHan3OAtu4!v5Mr&( zGBu7C05HK=8-tArjKr=JLL5hjoYM)7#>5Ec=Vy7IBaF2+06;nC#@NN>^OaGJ{3AO6|Z_0#na>#FoIOq`$Uy2&!m7zWUz zLseyp0wEkipnc!3fBvanURi7Xci-NHB_SlsGP7D~Df2w{-VehtON9#IbUM)_VaHP+ zpPr< z{|`Aib^^x|C2_UlvIk!WGxGt15&!=F8OQPY`T2Z413(DDTD$MN)*1i+plw@bZrgU- zHX_p2+Pm7ety0Q4M?}LgF!Sr{D**I;&&*Rw!FwTuzBldrZmo?mrZhi2J>71%QcB?=t5WK4h)Sta%DQBwlnx;*%Q{V| z);f;UAx0sDwRTxnCFQa#%=Hihfbib$`!3%v5fM?XFbt1f*9j@tH3NXO)>dXB`f@xX=5@_Y zV~FVfDCb&4?79vBLhvz0>6|CpmDY$zwBv?KDF7J9vFkdeR7xp?AcYh{GPC;q>!|yJ?zI3IJ%Wg%H>4)j4O3Mnv5-CZ+l9?ah17%=gtVm&=_{Yt1<$A|i$m b&gb)gc+5&GHlu-0 diff --git a/1.7.2/main/resources/assets/alchemicalwizardry/textures/blocks/BlockBloodLight.png b/1.7.2/main/resources/assets/alchemicalwizardry/textures/blocks/BlockBloodLight.png deleted file mode 100644 index 67bede34b0014ac5964d4adb386140460a1d1485..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 220 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 diff --git a/1.7.2/main/resources/assets/alchemicalwizardry/textures/blocks/BloodAltar_Top.png b/1.7.2/main/resources/assets/alchemicalwizardry/textures/blocks/BloodAltar_Top.png deleted file mode 100644 index 3bc3a60a69433c4b057d123d841eb6b352e17217..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2261 zcmV;`2rBo9P)KLZ*U+R`sCEkzKl)gj5&q@hY_5?)@_euSf22N!q0z{yc?Q2YY_Kym8e z5Fvwu2%hQO!{u_psMvL#(bD64NQRTZj^-}DnS22ry9f-;mW=gZvQj}U-ZdMsK&I8^7~DvX`q=iI&Sh-R*iMaebxT^cqSRbo0)-@Q z)3mfwCHMsJ4o|%H8}P_G5<+|eZUuyLaTB0eLJ^8msV$|A>!yim9A9R9X3p7rFCHdm zI&IlcXYaFad+q;P>o2cC1vg<8fRcx+`s{XccoS%azbL?zwec@AK0VWFPOqD-o3Ywh z^Gs{~i}I7T+Ui!|#!*!5>FQ^Ls@rV|8?XvhD?d@3mfwT7r+ff5heaqMz=~ljb45%Z z0&K%^$l!M2tB~?CTMF^sZ2rL7firW?Y=^WA75Mg+Z^60D_M(=s2+Lq!fw$lU^fLRl zG571Z4Z}`$V9iWO3GNm?q|}Kz6u#l)R7~$B6)SbrVP=D~b0Ph=@E?13JH(?i`A11l zTWO+txB>PoY{Mdal=)yxC$q1jr$T%j-OSydvoEE%DW-Pjyy~qcy;EdsG2TYjRJWZy zP}PvWEv$sN>dbq_7?A^G=0e zr3a-CF)4V&2?B-cx4ikCwLLEho@>H&XOCCS*gD|Kspqu_V3fY58N~}eBt^=Y)Y`vW zdp<Cg5xcjmY0J|JTf` z$VdbTDOn^yp_-Hw6A)md#eD_x(-v(v;hXSb;h&39L15jQq$qf6*P7;6N}-ydKz?9& z!@CeuLY>H3OydyOt{#cgv=H?1(o>*B?XCWhg`wE~6 zkvGL8!J=xUuR3WV_8fSag`u}0>IK!)s&_<^G5=`7k58T4A5@(pUnuh5e6YE<^I)m) zw+DxL*%|EZEgV_=dUyV3J3D>vP|l@zQuTeMH;N0e2gL-Y8F*{fG+oQHb?2Uq(HqGj z7fDTX|DeCUw|@}BQV3sp^2w(b<|CS5FdSJUxvID3yD46F_EwWFs4l?mu2tl>{f$8E>eY<=hPx0v2N{J z2pV`@%xsIIYElQly~3+7jM_0G$k`aY$mNiJbo|&z%;8|LRaH)@z0WmuM7o`_TNJ<8 z`tYK)*Q_mL0{X)2C>#|2@nQ22MW4<#rAg}HY>ZZ<=wm-j6dJpT=p&|O@e|KNg@MH@rcq)7xLg|q(})^~=()3Y;G(i9qu`Q_&3pZ51pW?s;w%qI1)k7gpJm`_4nhVf97 zpFj^b0C)tn@GrzDkl>OXUmNG_T4;V9ajGiRB0m(~@IHnps4-?OMgdWN>+H<1IRd>F zimunDXca!5$)B&AOU4L*J|E*15rOZG>OXq7;*1CeqC(TWJgWa-jDfWnuNVR8!>ch~ z?__Tu)}N;>551`h7-OuVLX5~TYZ7Yxidv1+>m z;P%>z*v(utvM%ym6M_{R<5g#k>Y)-;MNbMLy;IVNfZ?xTFw~pi7O@>4U87vK(@lzdzll{>&$vrtG z3_Laphf}1unxJSbRR2FFTTSuYvc<;u`>81&K5ev~3fhc$(ZftWP}r%;wK3s300000NkvXXu0mjfQYS!_ diff --git a/1.7.2/main/resources/assets/alchemicalwizardry/textures/blocks/BloodSocket.png b/1.7.2/main/resources/assets/alchemicalwizardry/textures/blocks/BloodSocket.png deleted file mode 100644 index ce0abab056d7672cba674c8f1a95853e86916a88..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 481 zcmV<70UrK|P)BH9Z+ifM+?dGx(;Cc@ z$Q&O>_4(st@V>V+m^p;SNy1O6_Fy!%MyTIuTNGh0L9%M zJIBoJ>+5HLl7y1Py}d<4MFfCDpwS3G2%#5A2mv7|NpA8SfXT8rzg{fPHX9B>O4)Pp z&Vl*r;Gnh^fUc@v#sH|Ty*@eubM*NDx~6%*;O~bAA;fSzKHF^K-TusGYB1I5!-Rm-qM4XS;1|>-Wniep>JU XwAsu-zt6@i00000NkvXXu0mjfb|c&5 diff --git a/1.7.2/main/resources/assets/alchemicalwizardry/textures/blocks/BloodStoneBrick.png b/1.7.2/main/resources/assets/alchemicalwizardry/textures/blocks/BloodStoneBrick.png deleted file mode 100644 index 1fd91f9e0a175ea2eff4a789bd7a8670603cd3ef..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 459 zcmV;+0W|)JP)b0000TX;fHrLvL+uWo~o;00000Lvm$d zbY)~9cWHEJAV*0}P-HG;2LJ#8K}keGR4C7N(M@g>K@>&db6>q`yB#?)QJ5kzVks#1d2pc)H#EB8Fl3 zEjcXEQaZZ7tZUa=gDeUd03D1CKZz_gI7CQLOW*1w*48rdB1@1=XP7}?&-t*pCvlZ3 zGFWoX-d%)QIum!M8jQgdDDZBXwXU<2VS#GtTuPuhXhbzDV4{N#O#de#t!6hF(X8vD ztaFRENfrF5F$8z;3uQQzB0@+2k}!AQl&@x9-BK7J85rE@fyO~D8m6ukP>azzO;vE-bQ@BQBM z@oDGxo{xJeo4=MPHp>ZvoF|MdU>002ovPDHLkV1l*U Bx>x`J diff --git a/1.7.2/main/resources/assets/alchemicalwizardry/textures/blocks/DislocationRune.png b/1.7.2/main/resources/assets/alchemicalwizardry/textures/blocks/DislocationRune.png deleted file mode 100644 index ed6c886f95969e1ae04bda4228251c1671f8456d..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 741 zcmVXopTqOOBi_7zwcqbA zE-tp)EdXn6S(Y(Ir4#@FRaG%_RaMKfgb-9&mM2kz_bvtj1z>uUgA*D>=j zj@B3cu0C#rg{p_r*>q<&V^E?C4TAxyq==cAeo8GSdhfg3gqUK?GX$SRRb7wc1PCDn0P@~kWw0_DIX0 z-~KhNf1kt{WuL(j$98`I$N!y_GNp7p%u-5atvwu$!!YKYQJf&O~!XndPe|hok)HDqMYmIYG)wLOh zsW!FuK7{yuee?I@M-YW&krloCA@%*Z*=&|22tmv&zkl|fG4<8e(-S<{zJk zb9H~^CZ&`R;^E<;u4}E8_g)o+9>?kK?#>v)%%|(S-EP0%H%*gsp6A(n@4dIyZnxVn Xl5I!`(@Hx|00000NkvXXu0mjfCNWOv diff --git a/1.7.2/main/resources/assets/alchemicalwizardry/textures/blocks/DuskRitualStone.png b/1.7.2/main/resources/assets/alchemicalwizardry/textures/blocks/DuskRitualStone.png deleted file mode 100644 index 34c6a0a4ebe5228de488166c28e75a81d0dac973..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 762 zcmVxnc+ei?lc~r>; zDNz=7025qMb&<52sJ}LeNJIlngb4)xL{U~4Gvk^2IH!w#`w#zq_pVwjdiU-*Ymr8%*TX`Dk7#B zkIIq&KvE(iVooUmKnwv?Rkf~b9|9l(0H}&80GRFZxUMPyK!Cg`y!S-3JsP!bs{psR zx6azUC=?(wW^Xd#`x_fsmi_whq4)mm;^N=y>&K5C0V1d}^ZDiF^^YIVo<4o{|)~i>vT>f)>45~2% z!;E{cUo!wA=6Nn6P1_P;C(oIPn3v0?VK&Ar?(Ukl9SjDh-|vT}A)-#Fvsf%LV~FUu sED`aqw{KThRuEBClgMB=><@%02dv6B!55H6dF zN(D$-uGi7>Ju}VnZf8D zJokn7VE!EM!nvGMzu&)paa@ML01;j8JqjTVVhlxL@BTvz?o~n&bUlS2D@0=e2aLlW!ifWVd zBS$j)@(Ms!?YhpFWjUjJU^cVs-~awx{x}|wscm!47rTeOUT=8%X1;qk+}N0%oyD91 zKt=lfKAa;mBFZUg&Q~E_N<>6NR|YflB64GK;#N-0JnZ)RAJpz*_Ylnc%lEoa$GUU= z7r@h;my=(yt}14}-1~X9d63!9Ht#VLob%o@_}|fiu&<_1+8>@8QBf4$h}29~MTCg< z7bl)|eD+pNJ;|-rdjREN(A0GxP9nalDl*GCGjO^0sA-y;i<5f#Thq4V*`Le($1z67 zdbh>*)>MtmJLk)?M2Bhp5iN}Dnwl|*NZ~zz z?XPc{n3;PjMoi3pGMW4r9|I`Ma=BcJ2mo*9oTHzf70xlUnqAK4gBWjYZ~qS^jAAX< S?p?nC0000fHj4>KxhGEzg%bH36&?k79w&MG+Yl=_5 zFUqSc=WJ<=QU&K6t+fCkrMw=q*SG1*``)v#`YS1=zg92JoA~1&N=g}HY?`yy8nxEW zImTFfi;t!yB6yvjw(hW=U(Fm8-k-0-iv?heF#tg4+-kKt91hOSLI`W^nOW5)U~IG5 zoWyv17azXqaU2m508mOw0%b)uE1BDF8U+V*>cLX!>DDkcbG0=zMO= zvIGF~^d^)#2w!IjQc6i6zhVUr+Z?+x>D}{j(eLT#w_#5r;5@ zrqWxLXH0ADy~pF}gorZBq?GH;dKmltjgK)Jt)^*OE|&}$&2w3rd3FGR9C5NXhL8Zd zw)^sN-m^Z&NJK=G64bpm#xTTbvH*a2o~Iaz=z6(y&Q6ofGD$?2M=hCpS@^V50AP$R z%Mz8+M4k)boFnpXcARqnXxp}`s+<3EqM5H1GGq*6jQocW_gbsFyIb!)K)TRbmW2=i zpl{XE z)7O>#E(a^0inft}wjWSvou`Xqh{frp!5alx6gga;uQpUP*x2r^(J`S(=W&qm?T^au zKDzDwJ<-Merfh^*`H>q5%63(rF7=G(=hU-wa%5==2sF;T%cY^Tb{bPB$GJHNU%NZB zL~(U^R5P(3dHq%?A#Jwa#!^FQOEi`$h`X4{oqNxD&v{Q5vw!&U zz{agx&3HUBJ8Sbis;cT_G66(Hj4}4C6%jxLfU2tI=jUlKHwTDO#EE=7K2}xdeb=@@ z#H1u5Nfi;9nV1OxbLPt0wrwX(Lvns@i(-=Hc3+0SKx@ zL_|MczqIl5Um_AjL?nhl=g*$4s;XC(w}1J2=f>r(ZAB!{^XYmB;njsR>(37k&VAy& z2LQOawq}gk-hcPQwF}}sXW7;t{~|z)(HQe!`C`T#LfG6p`u4LkbzNgo6vmkQi|57r z5JJ;5#+aQOm+vht7-KSK*L9lG(37|W@{~cv9gje7uIh4`p<*qi{81q z-&a-f-T-u6mu1=Z{<|k@i|;>t7>!1ljPW9>`rVatn|nuDo?B~)2#J`vD2i`hzWwQ| z<)8|P5+hC~6AdAR0Ej!+FKzz*I>wmiIcJ%*_U?-}Prtkd0Gd*WF@%5yz>AzV%@n@3 zw6Okc-;0D8*Prcw|M{nF+dAixY7k)}SY25mV*sEmOI7WhLx7?z2@#3fwq+t_9-p3e z&JBk{9t;N3b%(P%In{tumEXf0uqmUjRE002ov JPDHLkV1i|UX5#<= diff --git a/1.7.2/main/resources/assets/alchemicalwizardry/textures/blocks/HomHeart_bottom.png b/1.7.2/main/resources/assets/alchemicalwizardry/textures/blocks/HomHeart_bottom.png deleted file mode 100644 index de3fb1bf8630edb6f47d80c425fe72bf844e7759..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 680 zcmV;Z0$2TsP)n z5rvq_P?$KEY-Z=n#l8Q0eeKW@sdr!2b*vQ;L*M|=y;(}B)_T7`o}ZqVb@Aq>^NE?? z-mWh%F9}f1iGZ57VW{`VV;sk6nmT}pp8h!f_jV;@1gy2HYOO;lnVCsM03d`AI3OS+ zxi=B5LwP*zA%<<;VhG*)vMf1eDy4`D021?dzpL52EZU4i00bh+L%Ba5%{wACcM{Rl z>HP8WVP-J|Ird{ex;FrLdU{gT%jvvsn~D$-GliUD83t8}F?RQ_U%xENno{cC2~kCI z8QgulZ#icKAQ4@bb(*H$`=JtJiZR9zo4c5Gz!)Mkx7LpRKtvkHv3p;aRpnUc1ra*{ zhp-=V>>?ubGLOTMQy!;L%;@cUB_<9LiO!eH_5B?Y&1}d?RfbxLSXHK}nkgd@6CKCl z-pqVmw-}>{GP9Yr*1CHxrA`wP9lIa`rIdQ_W^I~AGZoR4f{4TvTeF-?ARLFq9%xl zkde@z;6wyRQ8Uz`KO=~U17i#!Bt}AT;14+PL)3xY_nv!h?x|h-;h-I^(PF_0PtVTe zQ}+9Sh=>RPs!B1M>LnskOi4x7j}PVPKydcqtv{>Z@%qOhgkWZ1#>}c}W)!1}h^l>I z`Ehyh`fC^|ep3?NqwcHXX5dbV`eDd9Um8*=ep~TJ`04bjnxUHZ{c!j6mHe=W&oH{D zWy{O~k%$7Ke`(=9{rc{WQZf-CGXp@3@t3!*_o&12u^E|1g5BKYt5ITBJ#0rB|csySxpiG+=F}xs$+<)fV?U@` z-@A^Y>r>0lbG?*Azf| Q?EnA(07*qoM6N<$f||2cUH||9 diff --git a/1.7.2/main/resources/assets/alchemicalwizardry/textures/blocks/HomHeart_top.png b/1.7.2/main/resources/assets/alchemicalwizardry/textures/blocks/HomHeart_top.png deleted file mode 100644 index 45c4f5bb975cedf63d9049d5b63990f2aa2148c7..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 622 zcmV-!0+IcRP) z=vs5c;9qV+(HQQ8a_uk++FHx(N4!zB*38W3*OxhGs06Y~I}>Dhz(_->05&6O06>O& zR>p1L2}HQr#cAhS63+ANtySe(B(}Q)kjlIT#n;;_Ky&sMLYc?g>tj{!N;9wAJJa0- z&D=51=@Cvhw`27CxrEBhQthlkYu+S*1bDPzEh2NTJ&gcp27;xWYq}8xC=gY-_nP|* zlA{ebtJIupWrn*XH!rEAu$IbW99aofWYw+|(AyvZpj4x`+xAM%>~iiy@gxA zsidS`Wp2vaxq!%ARr@}(H`|#bx&&IYhxa`zRob}>WIUH||9 diff --git a/1.7.2/main/resources/assets/alchemicalwizardry/textures/blocks/HomHeart_top1.png b/1.7.2/main/resources/assets/alchemicalwizardry/textures/blocks/HomHeart_top1.png deleted file mode 100644 index d8ad8f9e4d4c223d00daf0ed92a2223ee4e87127..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 197 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61SBU+%rFB|oCO|{#S9GG!XV7ZFl&wkP>{XE z)7O>#E{Cu%tD^n2_m_b}vY8S|xv6<2KrRD=b5UwyNotBhd1gt5g1e`0K#E=} zJ5b!()5S4FX(dgro>bh!6mP07#md znWxkYLt3`&&E4JW^;)&YQ;UpR0f79I^SbMH(-aXPlWJ|+_V3Nj9yn;*T1wO!5wl50 zb`i>Xk&?SVMRA^=F*lfR}303rYY$mC!qKoS5-0+IldA?<*5*IkX{8?$$(ry$QRE`ChY zfja?`A}JYWHL&S>0!MB8;rMvF-G05i{CIM*awiEAq?wU4NRJ-?KnAIlvim+Fn#SBo zHttK{x)hl4^K!XbENUqvB|-9t_ix{N&R@3MnSldit-~Vt+(&pyC?(B^AVC`U`vu5;cD14+8m%-m^~Xtpb50$%j}jBi%JY~ACAB`C|i;NsbmRTd&ZWGAcR3d0mB#jrOJ|$Cj&+rY0b>c7zm{h1RZ|w zJ%fc@awyG=$TATmic-?ieJIOJ5++F=5DF{kn3%{g9GqnXWm(#jtF)7{mtffv>ew*dAx#xcjLVMbjH%eWnX%i5l6)8rMBW=KP)#~m__Wf}db9XQ1EN2G`j{=c0>Fy5d0AhlaQBIUO z9vU7im<|Ld+%)+08|w-SCvOFQB{dZW)d?Ksj8Xj z>3Dp9f8T62&o3|YJg>|kayT3ShzJpZSyVUo_n)7iS65dG;K$wF?}vvXiinAbss>dC zB0@y8H8cDB@o{}~}-904v~zg%*?FJaU7o?A2U;#+1<^| z%&JOMsVXx80AL^^JfbpNYbv4{VP;Szq9U5ck%(67HC46NJYs0g-HB-W{vO9s8JOK0 zGgY~}hzw>RI!+T+F_4)NF_<0aIWkpLi70wsOn3LzTCa)-RaKGRI|E=|%z%l&+=gK} zMnvJB5mhx!lSdE{5mnX2#f7a_0C0JE31%iTGXWT=OlF42@pyFig=uDHrp~>ePN!v7 zRb~c|%#umWsS1(SngCFxDrD97;jpX|k*aEIOQ0fR!(e8ESyp|0eMObJdq%|a12E6? zBK5yWD>G)!s#r`D(a+s3B3f$z78LFtnbS16`#jIRcQ9|aTL4hix7XM0ZUM;NT{>z?V^>DifOWvy5wE(D8f zo&X^s4iL*yq)2ce$DDG_W8@jQfH)!Llz@TZk=`}M7>zMa)AarDh8gQM0Ce52#+;s>E|<56StK))77=UhFbr+m zzUX@}-8wuVz{jYWU;X_y-?;JAjnnB=L}HBU-u_(?F~+=f?&iVcdVimZbWuo*La=x5 zsN1(ceg5)eQCwVXX0sXBb?uxZA^?gN01@%ddGCXB05LNFfOZ~s&dulZ*D)>+o-nH{ z;$sZnXJoCkNYYwOAKZV@U+$7z6h+&%0LsEJQCSuc0l>^eBq2&n5(0pX975m_!e+DG z@gyn6$jqwHM3j-iq_iTX09;>qk0A1I{82RhB zZ_NBm>D52)G;@dnK$1j?MUqyUh&LZTJ}*n}9ROC$*W)ND0Z1u9atZ-SvSdk;iHfoW z5iwt1j{vkWW*l7z;g28g{Q3R}InN(G%m6cs$iMH8K=fPJjm}wHH%+4_llt;7J`g;p P00000NkvXXu0mjfnIS@q diff --git a/1.7.2/main/resources/assets/alchemicalwizardry/textures/blocks/RitualStone.png b/1.7.2/main/resources/assets/alchemicalwizardry/textures/blocks/RitualStone.png deleted file mode 100644 index 0bd9343bc10d2647997185714921fe7355fe598e..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 630 zcmV-+0*U>JP)`6pHR4C6al1XkOF%Sf6YqHt2YzeX-X3YQp;IY&j zYny}Snn)x9h{QkN-|OS?{_#;u@ra1nwhf7h$ld2!RTYU4vG;zv-S~dJB9W_}s(*ie zBH|q5*mqNfOjXSYA`%f6VMHk+z1H97lg2PrLd=L(D-xL*i_}_|-fJn5sj5QE=NQ|* zU$56vt1y>RYOVXepU1&O?jG*Xb=5KY+nX@a7^C;zde4Zdl#H+lW@ct0GBZ_;2vv16 zInT5A&ZQtg0Ibg^0K8o;nOSR9)p?%B7yzKE$8iWx(=kRR$_O1prl~CpBR;ncGKtyU z&8)Td_c%m^T5ABH=c!|u*}AUbew?S75z!=a9!F#{k(<3j3io-QUt<7Zs$upLGE@N( z03sqXGm~B=LPUV2cM&0?h#*83`ThMJV=!}OP9n8dS+{MPrp$ErsT4vaW8e7{lF5DUmse zxO?v%5hK&w%}fAssOGv}-rrxW>$=XZnfn+6iD=*d+f)^1X{|8;A~Lh8CV-i_dl8{p z_kCB@%zQkbECPsfzu)yZh^V#pcswQ%B7#h2e!E<5*XxVNBR;>r?w_Ck03JwbSeu$$ Q_5c6?07*qoM6N<$f_RV+PXGV_ diff --git a/1.7.2/main/resources/assets/alchemicalwizardry/textures/blocks/RuneOfSacrifice.png b/1.7.2/main/resources/assets/alchemicalwizardry/textures/blocks/RuneOfSacrifice.png deleted file mode 100644 index 20faa107af08bdeb448bc05776bc349a93977e75..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 741 zcmVUt2*KQh*ZD~A{O~OTD zflzo4BqW|Tc?Kj9B4J6K2pr>)?Y>o4pXw?Wv;7y}&wly&r?zc(yWQz@0s!ZnQYxh+ zga7~l&|2r5wbt`I6Om9#Jy)$Y=iC@WM4Qbf=X^LE0ARgd=bXE~ch)k-#IuxAQc8L6 z`+nGNxAM(f607ZZ-!kuy$K(C|o+0L35E}WmQ%Gy?U9p+a)dcOX|A5SZfLtfEXit@#1ng_+ijm5fKv6?bdql z0e})&Yn58blz0fG6wY~7dCvK=EMc5D=fXKRj-l)NQcBx)mG_J>bT%wGP187zIhV>i z0A{UCDdG9)2@&OLC8fOE+?~&7Aq31MtqCDCO~W~lF?#RjIRXH3#4t^HSqebcc3SIk z45gH1S%|0<*lh0Vx@L$WOaOpNsgg4hec3cIP9aRXWax+V_>fXEM#mWIx&{E}toI&` zu|$ar5o07uagJa7{s*LVjj^t4&UxSW&N*br80MV$H(!5ct$BQWNGSmnnHKZ;GyV9Q z)CvHE5R9?QmR-!hLLDS#28}{eB9sPmUO*drIcFh5W+M~<2WMX@p$|n XWDHc~-BJXQ00000NkvXXu0mjfrH4wD diff --git a/1.7.2/main/resources/assets/alchemicalwizardry/textures/blocks/RuneOfSelfSacrifice.png b/1.7.2/main/resources/assets/alchemicalwizardry/textures/blocks/RuneOfSelfSacrifice.png deleted file mode 100644 index 748a287df2cde601c2e28469cf21a0425e7ec558..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 830 zcmV-E1Ht@>P)vI{@14&%`!017C-IuZ&Dzo~ z>%?da(u6bt0$zAPNRuYI88#E#*X73cb78{d;L6o(90J; zL{a24~Ihl za9vkxy^Led7($4An3Pg(rKncdCvR1!U85+N%xP=WS!?TA@3i7n`a@?B*ccRO({r078vMqkql)O&midAc)Xj8HSjnEZ0GXW14;s8li+p%~nBe*E?$@y#JwLq36%|Su-7Wv)kK(fnKTMj8Ge$<2n_V*aGeZMmZ-0KMsWA1yQ2J6jv695Pyv-^!;A}}eNCdu=h zluBkCucp%}V@zue0I$!RLWn4uJC0KnMV4i03IMm9^Vw|nKQWC>+3%f4k^lez07*qo IM6N<$f`gZRH~;_u diff --git a/1.7.2/main/resources/assets/alchemicalwizardry/textures/blocks/SoulForge.png b/1.7.2/main/resources/assets/alchemicalwizardry/textures/blocks/SoulForge.png deleted file mode 100644 index 11dc21a42ad191f178ccfcb8f3952a542f6bfb82..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 632 zcmV-;0*C#HP)hQ|6ohBaIq%&y zAwZLVKt!9027=kdNC+vC?e*I#zc3p|iBds87(taL9X|q5L|T^h+k5XBiVf1VGozW0 zPw(CPd$)75FdN;s^L)3I+WWp%H~Vz4*v_+?Nh%SN{PS_#*9xije&{`=qgrN4ByU@j z1VBJa=H%f1?KHW2i3oR+DFJxAUJGzC+#jx1l2VGfwM8i-nVECuqiGt*Svny*@YTgd zmjI09^78V>%_c~G^W@2~aWMP&*|QQKQkLiE@7}!GZMV0zk}MH}djP0_0g`Iw*?J8i z0RUBcaCQb@AVL1J*|=Fa`P=pNE( zgQO$^U6OQ=?w_81L3YW2FVD}Nl++|6X%@G&woCyu%ie$8Y{Kl&+Ti}(G~K*-;bfJD zVUYB3DfY=?5oQ1YI7y&ol3Y&HAFp3aYMH(F-F{y)_qEz0!hk}alrp*x?#pQkvy=|C z0>~paKvHJfKZk>Wf2G@bJ~F;}{`~an>i6sG*1P`S2B1s(TCGGFNg&M3ETwTAgIr!+ znR}PqtVEQEAU``fiKDejhg!d1ulG_Rf7)yo!|?Fp!bt#cU%l#5nuR-mxO1mvj_xh9 zxbJHfX7=!!ZKA3Ii`S`D--QjSY>tyXcr6Y>Dwf_Lwwp>X$ SP;ejs0000WFU8GbZ8()Nlj2>E@cM*00G%aL_t(I%SF>sZ(~&q z1mMrUxlP)nT?8x(LgN3w@|%zlg59W_ZPKP`Y#z=n`0;3tJ)RlI?aJ@XLxjJ({bbZJ zIAeu3?-gE~w z!CrXl_Ote;1;N@JI`(0IiTbCvIEuzMHr(mYq$cIiQg)YcL9-9A>iSw3v4tfzF- zbcWB(U9vBB%^hkq2$$dxe3h9-OP*uj4 zoH5_;(wWJ7&pA($1Xeb$efcmRkIS-bG#ZrBG|l+nf9DGJ^F08-Aq1sVmSxS(<7>C~ zDuAMJ3p@MeQX69e0LA+rX>BD+MNvcu!NwQ>sBb^S7{kRIecGk1E$6)MA7xp}7-MU9 z+`Ara-PT&iag68h{${P!{UiMGG)+^n-pO-q-X71ciuF!*+D+4}c-Ko`{|x}xdw*l^ z>2Nr-w%|8+ymy0t4!kP>p`RW+nZEjKq0yM8DXeVF-Fg53WPAB~a-$^{m*tPEp{mfu zYlM)HBH6eX&R*tut~Pd|ejO0#em9CD>YTeeIbFPgYl! zIp>%VDMYMd_rqHG;U(vswzj&Qtc{WDI~72=)DCB_@?3`y z$}(J?yr?Q@cJ{dt2xF}c0AS8}vbp>1-#_bH4@W02v^I=I&N)h{_g+fjy{Di40|2Gs zBuTK8@zwEReS6Qn@2QPlTUbH}02pIxwHhJBTC0@82qT0;2&BD!b7ALEBfBh@+PdGJ z(TuU|^BDk8O3SOu(P$*4j3R2SrHn;ikN>cVil@^M0sxd{IUEirlS!>stE$QvW38Qa b27|$OP>xd4_+pbY00000NkvXXu0mjfd5dO& diff --git a/1.7.2/main/resources/assets/alchemicalwizardry/textures/blocks/Teleposer_Side.png b/1.7.2/main/resources/assets/alchemicalwizardry/textures/blocks/Teleposer_Side.png deleted file mode 100644 index 45a0707b4930b35a21b5b1ed52a33e05547e1abd..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 719 zcmV;=0x+fdF2SOxq?AT0oDtoc3 zXtjCsfl7*c&%u4f$nZwYC_Td)FmTG2_2Pq=FfxP)BSV;>A>uv58|k`})sNLd)Uk6j z+ct@Fs90mHs7_@gLpY_efUI80jo!?J`e;1_R3sW9k|yR96%#>~>Qshurd25L=S1=I z$Zvr(AsB;`gHB1EEjybVqDqX+j~5H$MTn>>ZLig?2!udBIXHKzHhQBvcC+{Am0C8D z`ye7j6Cb4XXiv8!&JfHPIG@j5s*T@Ta_G_I_Uof3uUCIx`QA5?mtI03MpQ{cw9=~? z&UN-~o6gS7mfp`d2~i@HUYwd!bK3dAR0)CEi?f60^7~h7hsSS|$i34G+4;P7_D2j< zQY(W(OaP~-(k?~C<}TL;Ch~_@Ye3&b{_8?522rI|y58;p$l6t0>&g%sV@0bih=^E> zhzJlOWn0pU^*!n9Zpx{J!mU_NWp{I6f2-$C7Phux6f+4?%n%_MmDH9!=r51fpG))W zH`I(YVS2{qPZT|O`_sgFy5pxW@#B{$Lbc15KI(5AD_*{3F+!d4_$k2j3>pC5yzdzL z;d4x!xi+t-F?jZh5RkR2I!eQTtX@Qf#UhO+e*q+w8Mx9F<)Huo002ovPDHLkV1jeR BK%@Ww diff --git a/1.7.2/main/resources/assets/alchemicalwizardry/textures/blocks/Teleposer_Top.png b/1.7.2/main/resources/assets/alchemicalwizardry/textures/blocks/Teleposer_Top.png deleted file mode 100644 index 3818b504681bacd9f0598de3cb976b5c3d7e950d..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 696 zcmV;p0!RIcP)I{#)W?0000TX;fHrLvL+uWo~o;00000Lvm$d zbY)~9cWHEJAV*0}P-HG;2LJ#9E=fc|R4C7FlFv(2Q545N_s*Ma5Oz!#Usc{T$JnMS#{A!l)~v7Jr45#G-7}u#`edy3Sw>Cui+SkN;*76%c5w z2*=uqyY{Q&{zi?t_r#(|rRYA3)*L+q8laDdW(Q)#7O)Ad|u?aiEcl1({9amGDZ?l%OfG znYSdlP>?N2yb_rdBA14B4yWb9vcByAT%Ou~>Cw$^0PT-Zur3sNv zIt&c!BUw2xthK>&%D~_#4H4R!<@~ZPjfM+EF3sHrTR^4Pzv0l{B86anSw{qgjI1lO z_}NU4gtlI<_>rBB#7I(SJSBHlR ej3H`KuJQ}scj@ezE>xKS0000b z;A)FjoD54+-Sa*W?r-nx4+c>`x?qgY;wiycWSOy+F{iS+=K8^ev;Y7D0D;tX{d!|P zxB1C;-+P{4ELEb5uK++Wri{hY$t<2!?J1ID%*{yQ663u6;q>tK@&1iNN-1N!b?5lu z4?hAz|NZ*LjuHvUQ>wk~0L3PcYSl7Yw9h}fMof?{``*ep`m|mR2b0Bc5P8{|7BQ~v zqZiMgqTHN4d#seytjdtEh$8@$OOj_A6=arDiiG7`JGbfw4=JWjF5^``O4u6CCmII; t66aFmfmRCh)K!_2*N9{cfq7K8mN z)?(oow{M@W*IV=X>esI?-h8R5ecvMy5tUM^5K>BSf4g)3#(vwji^W0?SF2D}>*M26 z^4r71s;Xj2IcH`Tk(?4C0ss@4SsX|4B5epKn~fHY(?p1-T8Dr{IcF9LArRA6*Qr@b zN%}WG41l?0VQgkIVLp2O&F;;Y!!Z2+``zV7KbBI!?4O^%G&5$B`PHW}Mj+bS-Zu5l zdjQC)%!~j;lykoD*}kgA7`v{MX`0%$W$zI{0Zum?RW&m+!?W(HiZKE}N@*NNVduse z1JTi|duED=M8t@jzBkpQKfXmoGyCwy{_!}92!4L+)-Vi&Xl6O*qPnxQ1Bj=ajd#vD zH;p4QZ_Q?_gM)T9BO=mLs;VO9QVIa%lr-nFAu%OD1OR<6DrXQOuK)ZF0MzV=X>t7- zA@+aY@6`yAnA%TYIFS&7oc6tQ&dk~?kDd2%nua&`iCIJtvAO)nIX9or9XkW?-je~u zlvK5pf{4z0B4lP_M#Q?Vo2IFoCaWS*DnkO(qNCW^*gowb5nP*+M*xp9O6PBiFcF&z# b?(V(=pQ%^n7QE~g00000NkvXXu0mjfJwizy diff --git a/1.7.2/main/resources/assets/alchemicalwizardry/textures/blocks/fireEffectBlock_blank.png b/1.7.2/main/resources/assets/alchemicalwizardry/textures/blocks/fireEffectBlock_blank.png deleted file mode 100644 index 29c332d44a7c388db65717d41d73ca1467bde589..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 311 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61SBU+%rFB|oCO|{#S9GG!XV7ZFl&wkP>{XE z)7O>#9-{=GkYWDJJ9mIWvY8S|xv6<2KrRD=b5UwyNotBhd1gt5g1e`0K#E=} zJ5YSBr;B5V#`&p}PVyc$;9+TZ>N8to)yuH+j@PRq)q6G?l2$zG&%7t3O<&^i+efBL z*r4Z(@W;y3$O#ivOz-@Ok}*Cn@IL+dnVW72&!iL>J{CF_ReP3vllv$(NnzpM!o>Y@ zOdIm&Bx_ygAXBTez;(T#M%;ZLfH>R&+0uygk{JUEcU%U3o zudjL^W`@Un=3P)^+BWg$-0HK;w_@y0oc>;4!}!xFt$SI@tm7abdAj{XE z)7O>#9-{=Gl*VE0e#rMLhV|<~O9AJXEvx$7(-@ zq_(vl{n}oQES{GdHm4U##46rB*S9#Co#~|v1Ea&Pc!kPpPm3+zy^3#eNQ*S2c(-qJ zy;pagli}O3Z5n<#oP~?56>kd6dcJtFMZ4kBi(68%kEeeP7Cn)yHb1yNShP%VmB~NiGP>fSd{p}U`M}XF3&sP>MwpDmh9eP@oaUOY0|oPf6IS7 hHLv;Eu&ZYOb?GMyYIIgvaNGuY*wfX|Wt~$(69DT1ffWD% diff --git a/1.7.2/main/resources/assets/alchemicalwizardry/textures/blocks/fireEffectBlock_output.png b/1.7.2/main/resources/assets/alchemicalwizardry/textures/blocks/fireEffectBlock_output.png deleted file mode 100644 index 524902475233dc3ce8b8ef7caef9a8814dfa1390..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 314 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61SBU+%rFB|oCO|{#S9GG!XV7ZFl&wkP>{XE z)7O>#9-{=Gu+jVOJ?cOq+02lL66gHf+|;}hAeVu`xhOTUBsE2$JhLQ2!QIn0AVn{g z9VouR)5S4F{XE z)7O>#9-{=Gw4QNrRsv8+HZvrm#5q4VH#M&W$Yo$~E=o--Nlj5G&n(GMaQE~LNYP7W z2a50aba4#PI6rk#q|hM)9_RVStm`Ju+iY++Xx*WmRg=2;y4Jy&77VV#G^B&$0`(ZXjY9jdseI!86f-N0K$f#Gp#|CCeSPEl#P#rj6`oYYb> zG-DQ4CO<1>3gE6TIm~EW+_L?7UQGQNuG?X=vU5(H^>na_S}xolHoLIJh+#fYXpqKt z#v5504`Zf&c=$8hWS0EYM=r_s9BY=Snj8ydZC^Jh+~m;{yRBcBaLZ5m@OR%ltyz_i T@}oOvg8b;|>gTe~DWM4fcj diff --git a/1.7.2/main/resources/assets/alchemicalwizardry/textures/blocks/lifeEssenceFlowing.png b/1.7.2/main/resources/assets/alchemicalwizardry/textures/blocks/lifeEssenceFlowing.png deleted file mode 100644 index 05cfdd4e85dfb8e2f646d98e518acf8529bb1e5f..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 576 zcmV-G0>AxWFU8GbZ8()Nlj2>E@cM*00E>)L_t(I%T1GAPQx$| zguk^nX(&R7n{aDR!Zo-7LJ_1*op_grwVOUzk*%Ha{5W#^`1s`S5BvJU*A-EPaRdN& zs1=3*d3!^ipFsow83xk(JIXv`-{1J}ZvfnJ_ZX}-&Ps{%Z3D9)m?qNYg8H)HKR@{8 zf{Y^$G2|X9YK2xLU1-1=xhLqyQoMR9|O)1A7Ko#a0WnJNV#Y+kQ z?m=P}fN=~3`yNEw7H3aS__CnXdYA0(NJ=qm1|o<%ZWjAaQY-8`e!ZgoCJ_l{k;7-s z2e6dL0T8nY^mZe8DPV@TWXT!HIeg|Es}W!p7Me25P)fngkRBG`Jt%j$-41YXr>|O3 ze*j9(_`V||@fNo2sIO<0Qp}4$N+juzru)tL$N+FNyuX7MED%Je6ADCqIm0jnuoLzc zy5tUQV3{V;{jj}2Q9YVy3V0-FmSvinf_+CGeW}J8hL{Ds`9&le5VkKtNr!0#A O0000-p~Wgp&QK2!369ZK7kp) zfb*V3igJvpa~e@o<#_J23P=q3mhxoO=0ZtQh`Yp8h}ExygU_V z6`*wlgXb{HGUU|fTwH9Vg0zThZ1L+_M& x#cbOu4^|r23)PF2YyK1G^&QX^rop+x>j!M+!f6LpXzc(1002ovPDHLkV1ht*(4+tW diff --git a/1.7.2/main/resources/assets/alchemicalwizardry/textures/entities/energyBlastProjectile.png b/1.7.2/main/resources/assets/alchemicalwizardry/textures/entities/energyBlastProjectile.png deleted file mode 100644 index 91b4a55d75669dd58cbe8ff5678197e7428011cc..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 302 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%`Y)RhkE)4%caKYZ?lYt_f1s;*b z3=G`DAk4@xYmNj^kiEpy*OmPaw=j#ovDrjFW1tXEW=KSdbAE1aYF-JD%fPT_-KLp9 zYO$w_V~EA+HB z`zSLrGshUS8=J?R-Fn_VkS9^e)tFtFzgcX(Y1j7|9=s-eYH}iW!kXI-Gi=hHq0xKH zG3mhP`Q;Mz|9>C-@bbJg8xXYh*T)$e0KuOhzeU%5IKE#$V)3LDaRq6YsVzr5a)S1K jf6K&taEXs!+9IHTTne4O?ywK%207c))z4*}Q$iB}M?_|* diff --git a/1.7.2/main/resources/assets/alchemicalwizardry/textures/entities/explosionProjectile.png b/1.7.2/main/resources/assets/alchemicalwizardry/textures/entities/explosionProjectile.png deleted file mode 100644 index 24b7a2f44377c09820e1cd1e859d83440e03ef7b..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 383 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%`oCO|{#S9GG!XV7ZFl&wkP>{XE z)7O>#E{CwFI19&W^RGZ5+02lL66gHf+|;}hAeVu`xhOTUBsE2$JhLQ2!QIn0AVn{g z9Vq_Q)5S5w;`H9hXZ@TE1zPuKGU&fLCGh=NYvR#K$0w>!NWZ9l;dtW7S*?bF%+^oh zn*VyfUZl7+M&WwG9AEX9FK5m)UM}SHU`Bw9e zcWS3Njwy2s*5{t^!;5^-HL@1g#~OukLgYARhUpMIO!y|MOCTxn#%19Ft7tDnm{r-UW| DkEd8I diff --git a/1.7.2/main/resources/assets/alchemicalwizardry/textures/entities/holyProjectile.png b/1.7.2/main/resources/assets/alchemicalwizardry/textures/entities/holyProjectile.png deleted file mode 100644 index 35a03e3d4311320da52fe5b265b932f86aa79f27..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 271 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%`oCO|{#S9GG!XV7ZFl&wkP>{XE z)7O>#E{CwF9FqZ;W+zZcHZvrm#5q4VH#M&W$Yo$~E=o--Nlj5G&n(GMaQE~LNYP7W z2a30Px;TbdoIX1FG;fOm59|Extg}3<7xsVIw#A`KVN1h;wwtG$jvSAohe_#?#4b6bjjYGVOVo-5Ku0|L9drl4--=ztZ-5&Oi9sw^H&n$fcgH KelF{r5}E)x{$L0I diff --git a/1.7.2/main/resources/assets/alchemicalwizardry/textures/entities/iceProjectile.png b/1.7.2/main/resources/assets/alchemicalwizardry/textures/entities/iceProjectile.png deleted file mode 100644 index 9eab38e012662f0b91111f28c67e17062cd1276c..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 327 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 diff --git a/1.7.2/main/resources/assets/alchemicalwizardry/textures/gui/bookcrafting.png b/1.7.2/main/resources/assets/alchemicalwizardry/textures/gui/bookcrafting.png deleted file mode 100644 index e9ee759fbd6140faf98e3d8357b559b4accd938d..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 3756 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 DUAT>Y diff --git a/1.7.2/main/resources/assets/alchemicalwizardry/textures/gui/bookleft.png b/1.7.2/main/resources/assets/alchemicalwizardry/textures/gui/bookleft.png deleted file mode 100644 index 08b462df1c3a95725497df9fb6e36574e26fa4e7..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 11940 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 diff --git a/1.7.2/main/resources/assets/alchemicalwizardry/textures/gui/bookright.png b/1.7.2/main/resources/assets/alchemicalwizardry/textures/gui/bookright.png deleted file mode 100644 index 8c255a77cb6dfab982d0040a1480c6574eddc29f..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 8536 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 E7Yh?KnE(I) diff --git a/1.7.2/main/resources/assets/alchemicalwizardry/textures/items/8wWtY8d.png b/1.7.2/main/resources/assets/alchemicalwizardry/textures/items/8wWtY8d.png deleted file mode 100644 index 0e9d01e2f189c9aff5ce00e1101c5e3c45cc2927..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 319 zcmV-F0l@x=P)!pi(DB7Engip-3R%Lw^2$PE@sN z{w3FGzlGy&J@sL;f^X}a5W+{)wk>!dD1b+c{-ihiQ+O1T*m}tGF@m(#`lE*YY3-W6 z_ZHBUw+Dc?`xa`RkQX3^aQPDeyvqx*1OS%%2~qf8Js}Fe2!ItL2CzU#0BVR-cng3O zei&|06CU*{|Gw|Dn>2@{0J^RNjeky`^)H1l0Z7L8ahS|C08;o^Uk#9hh$qJTdO1%4 zau6IKr%yuE0!XHDmjE<+_bu>Wi&W8+u=&(V)93yvy~ckQG;Yhc+!DIR{{>B68}ULj R$-)2t002ovPDHLkV1n?;hFbst diff --git a/1.7.2/main/resources/assets/alchemicalwizardry/textures/items/Aether.png b/1.7.2/main/resources/assets/alchemicalwizardry/textures/items/Aether.png deleted file mode 100644 index 9bf829d9d836e98c7c2fe7c0891b73dc0252651d..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 3540 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 diff --git a/1.7.2/main/resources/assets/alchemicalwizardry/textures/items/AirSigil.png b/1.7.2/main/resources/assets/alchemicalwizardry/textures/items/AirSigil.png deleted file mode 100644 index 17246bb022da7525278ee0988a5acfac40359bd2..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 500 zcmV!vPrrzn>GAt(xh zkKn>5@oB_`k0SUAilQXNQYpA|qaa$Of8*jNX>N;xI51?A+;i@kIU}kHKz#mL0G3*( zm3RISk`l=7zLL}!vv9C@cx1jV&h&SJ$;2m6b+yO>q268#fPa-SE>k6~HdyQ4r&IS- zU&JDThyz&*h!4zxm&@gXN1%5%f@)5#z;FmQaNk-x9>K?8Fa$7CT@k6SIFtw&3tKfX z0$~W&z~(kY_cJwfEl83s8ZFQ%1Obf4u)YD$eNbFma}Le>HRdq}F*659YstW=11W*8 zsaA)lt|LL9-*YX5VR~ZVDbTl9^+-CA>vc3rri;71)_`UkR6~y-8=#9I8WFU8GbZ8()Nlj2>E@cM*00N^)L_t(I%bk-;NK|nY z#()1ib7!2HX1eO=s5#~X46U&2g=9q%M2l)u3yaKEAT6RrL=Z(-5H5mf6(K?Nf&v#s zFQr8g{hedjwbA*JMR5KVOwn*bvX0gcS9 zXTm0woIHCDado}KsdDhdQ3~@sR27vGHIvwPv`E5H~&C}NBOK;)Mx>2cV9yGzMK}B?a8JvoQ-3u7V}HW=~pwv%@p+oB~)rfyh(@=6x!sOI!fz}R1y8KQK)U08+B%ckXwWxMGJ@ec=D9Xd7I`DlnSmg3^^THKm zBt~n8A_45J9g5t%shv%kB)d-@qis(+V~Hs$O3GMcI(g}mn9(TS@i1TAZr;6q!?nZf zi5m;pxmS@2fDkYm>ZhSXN5nFm`#yxt>*jkZL2$00jN3(QUVzFNtf-%2=;M6=EbCVb z?>{|4^Odu8g`LT_U4$R^voH`OxO_Pihw^EQR@1)KskHcHddfpR&aCDYxxYo8{M}R`InIRD+&iT2ysd*(pE(3#eQEFmI zYKlU6W=V#EyQgnJie4%^0|TSAr;B5V#p%71cY84hinv}sncc?I*MIDslTj~+GKXj4 z;@na<&xYn%L z&+0NwW0T8%CKIXNGcpB7*p|DLE&Nlh=6Q4F_17MY+`QRKN>1!e$`dJGDW&`LwMybo zU7&_1Gn7Ju*bcBrDD{ND+aWt==JU!Bt*P&UQW5ZcpM#0Y(Xfsf?~XjEwUbORmPuYhM4C?ak`dYKr^TK8zMU z&t&s@)y$dVnI%f~=uV2Q$W%3H9pXqm(fWp_))z4*} HQ$iB}|FN}S diff --git a/1.7.2/main/resources/assets/alchemicalwizardry/textures/items/ArchmageBloodOrb.png b/1.7.2/main/resources/assets/alchemicalwizardry/textures/items/ArchmageBloodOrb.png deleted file mode 100644 index 327d2b272bc2d6a9f59a9ef272ef6d296bddc02d..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 590 zcmV-U0-W03B&m zSad^gZEa<4bN~PV002XBWnpw>WFU8GbZ8()Nlj2>E@cM*00FW|L_t(I%YD;5YZOr! z1>on-%$mgz7xY&swg#~h;x7>VAZQt3e}RRjN@HguSXc>GK?Dn{Ac$b2V5bq((o#`l zWU@OmuSKqFCK_M3#hiQ3Iq%n`i14o%r={M-oo*wQsrc(%+AlCpOHoNKSkwunQmygG zD{wcSrUM1WX(=vQG*H>mXf@h>j*q?WiBx+pE4%oXdWMxs&}s!jKjUJr`$eZU`Fm)v zo1$2ox+?>t+nD~ z9wpP?O{}n!!38Wx`C%AHCfR9%p`?<06&CW&q=>MZMzL&uroK1YjCJ{J2}8*f+t%V+ znyvDUG>XgSXEUGeI?8-LWFU8GbZ8()Nlj2>E@cM*00D$aL_t(I%Z-zfUf`610wkndizTX*Y3L%kNQ$I^ z$O5y4mm8Y9)7iP$j5NhcGvEF@^RJ;HCf;fN+=^1e|Hi~SjX`73BN2^3=YjPw^UeEF z$}2X=`HK?xZpVy5AoFgqlJb^P!I6l*1Rb!c1A2>gT9SYPQBwY1b)aL4(YKUrPY%K;8&hw5Ps%) z)f|H!tgZ37+hs3G$qITBAYZ-X49sviteWTN zbY~;w?vJh2onqo;Hm$r7l7PPFu@2bK-I}fIkVY%lA+B}8st7N_BMd7T44=7LZt43z iRdSDPvkbEATmJ(-j{ZfduXz6e0000WFU8GbZ8()Nlj2>E@cM*00EFmL_t(I%Z-!IY7uESuR(9t9CE zXpwP&;`w5KbL>6S)ZMHk|0P#&D56h6$8>Z|`(`D1QW=u_0Q8l$`j&1rBo8{0J36cg zNK&Um(3jTgkui8r-dF1bLe+`Mh zk6133W;UDs&679#bY&v>>|a}}&(eP3N{ zu!by6Gf4;)m*_LJGz223)zDBj^xDS>B8bKa3i>ADP-H|6O$~*j-urg%)6mk3g@H>w zaF&O2ew;rXK@#IgVod!}K(W$bvC<%n`7}u6D|;-Jclay7K)P@M@$g zqOTRYN{xsktncH$BD@8Bq103AmwPiTLh}gLi{cy~+4&3L)de7>mcJHd^OL zA{q&g1^|Gz7Axgl#^OnIEb%HOoR??ZoE?ghBPe50s2^}LIggIDcq3s*_`V*>9qK?C zi^4{e6VoYl?^_@(3;`hpZZA)S6o8cSXF#s%F*1`z@9rAyi(?@i2h)TWW9 z^L3FVgP}DR*0$L1tAKAUkzTFQHzweV|Nl%M1%Ixf%n%-S00000NkvXXu0mjfD37A- diff --git a/1.7.2/main/resources/assets/alchemicalwizardry/textures/items/AveragePowerCatalyst.png b/1.7.2/main/resources/assets/alchemicalwizardry/textures/items/AveragePowerCatalyst.png deleted file mode 100644 index bef44443936dd63e701188c36d86b277d11c1370..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 387 zcmV-}0et?6P)Y6r5eWFU8GbZ8()Nlj2>E@cM*00E9kL_t(I%bk;3Zqz^! zMNjq1o=%2^pa>}u?26^E6~q@i03}~p$jIaN^sD%Y9W=-wh5Br@j!xg(C8`R*^Oth~ z#`m9ZPP}1c1AM%{S8FZadzO??RYU|t0Qm9vDE|a}xVuv;!Z421*3jNjRg5tJzk%y) zK(ieL@3Gc$Sr*0+IK)VAjaDnxIjpsa2(7g%19R;oSm(&4P)k7p>ph2YL{*tnqP0e; zmD?D@6<|{m5o)cZc?RGx49xRPE#=kHh%n7_25^6dl5-};NcSF9eaQnDLZH-&3xQVa z>wUMItO&y}05F|S48wr)9v1?}80NnLwnkD)gkhk!hOw5E67N>v`F!T*)06CmC?a_8 z>Ae%2qvrhb57zXj(}_cjSGK!PK$WyC+#HY8Qn1D_P18$-tL1);>oaPt8g}c s`1S^xk507*qoM6N<$f*oD%^#A|> diff --git a/1.7.2/main/resources/assets/alchemicalwizardry/textures/items/BlankSpell.png b/1.7.2/main/resources/assets/alchemicalwizardry/textures/items/BlankSpell.png deleted file mode 100644 index ba1131998f6bd1a44b3f00b76b2b0da9a76afa9b..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 339 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%`oCO|{#S9GG!XV7ZFl&wkP>{XE z)7O>#E{7;1mwu}Kx0^sA+02lL66gHf+|;}hAeVu`xhOTUBsE2$JhLQ2!QIn0AVn{g z9VmX%)5S5w;`GtU8+i{Ih`8K8+PUB)!N_{qK7YUae`*?!<3WchJDEM_UOMBmmu23OrQYw4J5_ymm~`}rg!X+=&ng36?N-AJ z@4nAhJGS2ZfT)ElQ!)GGUE9{HnK^KuVPVTT{MC5DiZ?kuOg8+D+y&g;9kKHzxD%2C z81*_Tn!Vcoo3=jg=6P+WdF07#M@@;P`=rhv+MFoHw~no~<#5FB5_c_gpRFlOd{XE z)7O>#9-|Z=1J6?)jj2E(+02lL66gHf+|;}hAeVu`xhOTUBsE2$JhLQ2!QIn0AVn{g z9Vq_L)5S5w;`G%?hTex01ls1WKOzvc#EFZw@PyKi9W3pC8sGfW{y)pYLtLF*b`eLQ zb5v%s-p_NoF5JEf-g{rZ+wr`$`u&6Z?VX1m7H__pus~z!+3A^$j2(v^+7Gqgt8oIQQbtboYWWPhQ z?$OuWLDM>}FkD%;w6G;jYeMC3)_wPiSDh8>c3maqy3%jo#hFKIX8jYL^d+WFU8GbZ8()Nlj2>E@cM*00DeSL_t(I%cYV{Qrkcf zMql?pk}LRsACQY&3dkJ-l*`;9c2?Yhi{PJBwgdwQ$Tm`cS&Sr#*sy@Eni|!N=F`)g zHc7mv_L_&@u#kDeu)JV-mg0}1{P=LU{H5VcN8U3;Jy#Q z{qKbVc$4Iwi1>?HD!)%wP?OB3D~!N=pC6aM>d;ehr|FOHZ`mo#)$1hdHv z$7hFIzt9FeZq^2(iV|>6&&N+MnQ?MH#yugl+d&pN7Kr(D{i5~bZwHte4|l7^vf9xd z6zY%0>Wz-n8y330LjBPfU0$Ap-t$@GQXG^OtKcl0EI2F`Fzg^WB}82`c87D*#T;vaFPH z>U)p$IuZI!-`ELF)>MCas%530Ovp%E&A!jf z8zG6awRvGC8JyNwDm{|TFB`I_6njdM*^tNmX7CD(wdTmSIkIi`l;Zd1sYGI(w7nMg z+X`K!FwJv(?)LxyXZK$ER!fj=V?JMNJZg<;o&x}uBtpwV_aQn@P^>`8d%K^_fVHrZ zz-f);?Q4LK-406hL;ZF|tLADB;j&O$E*{V0ba5sEUxbbOQ?+xJ^hLFqO wH7{Pj?%?UMBs(z{h$?EVUVM^*JiomO1Ebdq0IXx8*6mxEja7PC!V#kOVT66ML&Z>-jZ#WaCbM_Hj7xdMbYOLbHfse#d)IlMmS2jtk}FJ^FSu>zopr05c6rqyPW_ diff --git a/1.7.2/main/resources/assets/alchemicalwizardry/textures/items/BoundPickaxe_activated.png b/1.7.2/main/resources/assets/alchemicalwizardry/textures/items/BoundPickaxe_activated.png deleted file mode 100644 index 88c6026430e749358cc4d4c006f1a54a68c691c1..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 394 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%`Y)RhkE)4%caKYZ?lYt_f1s;*b z3=G`DAk4@xYmNj^kiEpy*OmP)2OFcb%HtVd3>X*~#XVgdLo7~j4chH>BtT?Nb^f6; zDP}Q7=No2komSNxWRpJV6fxybqr3`>*k7jqO7au55|X#ix@&qn(@3o9`$Eq%T7Jb3 z3!crHX(|3gKcwfR(3ST!hKa%RGqg6bD0|ngzHb}Pz|glQ`l8i>q%*ZYGbhnk&*i>5L#D0x4O$caiOL4s&sl6}C+s8@hGu3YkB0{~HmXhNSogda` zSxr8uNF*LEV2t6#O~_SNIMT5p;7zAPz7ipoZYs;N##?x7ElDA3IMOlf-Q6L9Z97IG zYjC|489M{7eJLf!C#UrY89*!8vTcfvPxJF!Mg*E)7eC;jTqY=&hXew^0u11FuKymR zkv`dk#h9EvWomA2gxCdKV`w8p2ZSkmZ+r^1_hl(LEpl1|&=#m0gI4|f+n~$AU7U^e zXB84-z>7OCg{)!Iw)qr6D@7Ez3%VRv6sh!6#1Bbzs_U;VsP8w*lxEJ)+yOu}&L-+$vbqd>vkYfwh$00000NkvXXu0mjfM!&j! diff --git a/1.7.2/main/resources/assets/alchemicalwizardry/textures/items/BoundPlate.png b/1.7.2/main/resources/assets/alchemicalwizardry/textures/items/BoundPlate.png deleted file mode 100644 index 49702f68c49b07d97ed92df9d7eb16144f8e2565..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 282 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%`Y)RhkE)4%caKYZ?lYt_f1s;*b z3=G`DAk4@xYmNj^kiEpy*OmP)2MYtQs`8o3XMsY?JzX3_EKV;C-pzMdL143TTaVA* zh8ovxb=CDPipk4+w(mS0D99z4siSyg?pa$44bF0dt8E@ylcct`Phw!uZg}!MHtE}1 z*7FQAemnV|*x+}{@_^4Nl{T@=kD+N-nN<}hRqc53vM=0yLe2d>J)8_>o$s4WwCqeS zavh34pAjl%JLO{ivjcuDnI#i0v3^|0zPRZ!kI$pBh5z2mT$v$l+~2mN`rz986{7MJ X=K62DVqth0=wt>@S3j3^P6ce%5)=3oyno&vS-hI1|qq*b5L5=6TLIj>!r?HunNVgjtp~;`V)s zcqyRWEFyHth?-Agnx>577}i>h$7AJ^Pz?Y{k`MrlF@F+wfGCO}BCyt?EK6tcLJmY^ k(KN?auD|iO^6=042K$C-z5YVHg8%>k07*qoM6N<$g0H)x&Hw-a diff --git a/1.7.2/main/resources/assets/alchemicalwizardry/textures/items/BoundSword_activated.png b/1.7.2/main/resources/assets/alchemicalwizardry/textures/items/BoundSword_activated.png deleted file mode 100644 index 4ae9464f22511e007eebf689d25f68fd69e521ef..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 386 zcmV-|0e$|7P)ejqZo7NaPS zwAOT(4#Ki?uR2w>cPt{z^PD2WSse3vGT|(ac^HO#d%fkRyBM57JM-Pk4fggg)yBYe z#dZ}UGMKsc&chf(Yb|S$EXyb&+X)zBSQG`5Bw<~Nh>VIff!5jvUT+^HvQ+T2UrNSxyKRQ|cK`qY07*qoM6N<$f_i?VvH$=8 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 deleted file mode 100644 index f79088b62c785300831b255c1b367bc0e7b0de11..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 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*^ diff --git a/1.7.2/main/resources/assets/alchemicalwizardry/textures/items/BridgeSigil_activated.png b/1.7.2/main/resources/assets/alchemicalwizardry/textures/items/BridgeSigil_activated.png deleted file mode 100644 index 37ddd60495a6a1325a5d28dae219832251f9eccb..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 632 zcmV-;0*C#HP)WFU8GbZ8()Nlj2>E@cM*00G=dL_t(I%bk<4Yg17a z#((GDBu!pk`*L5B8pRHRlc@iJAdcdyvxsgkE{;+VCrAAcTomc#?pAaX9IBl}6a-6b z+SJ4*efJ)R=SzH;r5?C&xrgt&-}%ltqN)IVcsi;9^>cTdLyi$r5VX@&MFb;)_Z|fV zKm>pvySuW8pi*2y2syyo9HcrY0aE8wWX@3#n&QD2gNP8k#~Q=_jYs&Xg@%BLP=E`? zGhDeKL8Am80<|yi8D70dwsszt+xXZqtu)XO2q6$hQLW?wK)Tw~z3UG#qX8(WfQSJx z1Tj#LS=m^}Oh)Vu2J){0fax!ycdrnE`0WdtZ=Qp#u)O&Ureh3&zr8?JXD4+|lU7UZ z&Bxm9bhO*)s7n%cC)d>6d7|#@1?}`sY3iI7m~sh!5+OYe(F$Y}Q1GhQM$FQ;k7QXk zlV56M?qTls@XBq(*!%}TjYWdTzI;HXT3tLy#V`Q`?=jY5jbU)@KJ~5F1Xb+UE$aS| zoqm6@0)V6L8G`qS2$gCTtuwWOHEV^8n;1&dA9`icd&;CY;S*()e~;92XPcxfS=>BKlV2MZ~O+YvfJNH SZ{R-w0000|YZJb^_T`DBQ`L!=n;xK*lnH#x*%wRl>aicR_?$-fup zbST`J=#smxXM62#X3m)t?`BSap3`TiWE|wh@WoR2-41K^$)39xJ6=t+wN~ZOs-N7k z;11*4ua*p}Z%5mvIaFHg+v%Vdrz5`QG%Lg7#Py5qiWV9bl>d5cslUHobBnpOj_S3| z!pF?T4R(aM-eH_k7VE+?$zZcm1k1Z~D{{FL?&rUJe6&nxL_(%*L? z4Lo0*mCTQSe%o>N*xq_YuAoT%OX{6AE`L9LnjN?Q<+s}v1~XL};>*i_-rWDO{IGeaUuobz*YQ}arITm}Z`qSVBa z)D(sC%#sWRcTeAd6une-p!iZx7sn8b)5(AS|F>sWZRl)ta@feIb41I=$dUbB`0OU_ z9+jOBPO!}VAAj#oTE)jdk}u;LGM@otq<#H>VVQJBnIRD+&iT2ysd*(pE(3#eQEFmI zYKlU6W=V#EyQgnJie4%^0|O(Ir;B5V#p$J!ef~vC2yx-_HCvyWUqQdqV5<*vNmUw|$t{qH?d>>2jpd z`g___E{Oe_rBar+b{ z1>LUv+FSM5fbe0dg%>3JU@m3PtWn1Tq{B(OUDmUh`b9BXTYr=f3u6G~#WyBS{jTYBfZJ-F6E= zzu)J69Cd9TkH@&KOB}}}Nm3YXv)Q1OV!2#inp_%qo=2YN9FIrRG`*w(yEOQS&;hQx79mSsdyM4F~(tsgJ3-ENE4nr5@f;c&oOi!lZf z!F63$s}WtBvu=HdA`jL~Dd0d<-yl@i@1>rND(28W7qq0w<4VSf!bJ#k1}t#-th$ lnmcK(={8#3TI>3qe*l0R|B@je-u(ao002ovPDHLkV1l6ao8SNd diff --git a/1.7.2/main/resources/assets/alchemicalwizardry/textures/items/DaggerOfSacrifice.png b/1.7.2/main/resources/assets/alchemicalwizardry/textures/items/DaggerOfSacrifice.png deleted file mode 100644 index 2d7f4a1ca39fd4f642783c25d1fea4f99844b600..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 476 zcmV<20VDp2P)axxldL z;0;EG|Ns9JjeYIZ|6e%1`~SJ4JO77!8vpHYurZe8{N;>o@Lb)=d8!{i8R4)-+vfBx7mxMp8F_5aB77#g;>BNUWo zg#JH!WXJ!#TUY%*b9g(3W{fa6Fx4I&rx{Uh|3f3=89sdc#K6bL!!UbVA0*V#028hN z%g8HZ`26J?gOHFQ!`_`+7-lTn#fVKUBXUBzvA5&@gVPHbxHa+_ezS=%2nh->WF?0& z9J}_O5m)S>xIn|Xg7F6v2gBDJ6B#%ezcRGc730;6;eu_QTL0gN>|hXH?S`Syqv8f5 zUKi}>(D={v{~v?!YBvUtiW`hPA}Vl2Zl#wP3A$iMhsJ+=HWB3oasU$pg#Z8-F%?W$ S5LGMy0000!*I diff --git a/1.7.2/main/resources/assets/alchemicalwizardry/textures/items/DemonBloodShard.png b/1.7.2/main/resources/assets/alchemicalwizardry/textures/items/DemonBloodShard.png deleted file mode 100644 index 0aa05b5cfd567c99955fa76699e60422740a426a..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 457 zcmV;)0XF`LP)*N6Y(WflAV|?`VQ{8aAhqnd=0@;^K-foV5LOr@46Qg zC-;OOmA%%*gY`$*hWrAVvzV@{ARtgN+I79{CLW9vF2a6^=Q##O8F-!xkd$5w09a1? z(hX;92uAIUn+kvj$eg!54a%_f!lE_8w^HGxHFPhK~e zGAFRC^<~#GwI>N3ygRP@1|GteITL-(YJA}_p00000NkvXXu0mjfi0`o! diff --git a/1.7.2/main/resources/assets/alchemicalwizardry/textures/items/DemonPlacer.png b/1.7.2/main/resources/assets/alchemicalwizardry/textures/items/DemonPlacer.png deleted file mode 100644 index 371ffac6a7fd217ebbad2326102cc29d4ee539f5..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 399 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%`oCO|{#S9GG!XV7ZFl&wkP>{XE z)7O>#E;p~ZuI}uh|DS+DvY8S|xv6<2KrRD=b5UwyNotBhd1gt5g1e`0K#E=} zI|BnFtEY=&h{frnlh1lFI|{Vyzvt;E_+Noz-q(a07S`Go0xXICTwITKzjVB~+U1MH zb%n=i!E!=n$$!$!S{d8w0Ng+ z;$<$2Wg`2!sIIy5I^x8C`={k7{$9Dl)@GKh zT!)II{`#vn$7b0#PkQ_`?115u{gOwMRG+afxjkd%tNztyHP1IbNXuU+610nZt(r)( qM8%H3vsQaVm-wvqy7}*~)PII@xus^xO2#WeA?4}n=d#Wzp$Pzf37QiC diff --git a/1.7.2/main/resources/assets/alchemicalwizardry/textures/items/DemonSlate.png b/1.7.2/main/resources/assets/alchemicalwizardry/textures/items/DemonSlate.png deleted file mode 100644 index ca195b9e863009938193e573c1a1fac1e5c8e23f..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 571 zcmV-B0>u4^P)WFU8GbZ8()Nlj2>E@cM*00Ey#L_t(I%bk-?YZO5g z#DDdAW_D+d2SveLvam-9LV|uPKaL;9gD20zN(f#;@Dd1m5SC=;U#9!zurrBEvO=s| zH{I1$^{VCW0Q~s02H@?-XFLTO3Em$ac?f|#&uQu!cSjOP0DN06^-qF#hld^{CetZ> zjPzYc>^h3FL}vGd14cp{H;Ozbgh1OgOpAg%1Xh=qbajo)FbPS-7`GH;+j>OEGS*jD z{JFT``TjmKLw!$E*EC(nq%2A9?9FCeSJl0RF$YQfIy*xW4w!_ylTtzwFXwY)#`5H3 z+ro&ZsxXPyiv_`qSMxbYyjd)eM3!ZQ5bn;~qqA|R$aBn$u5B?13js+KMX@`B(M|-q zn;T+Em>DrfWSh6Ds^a_UsUB4zX_Gb(BvMK^ATv^o^nK5?EVmRquwYq+yVJJqM)G8W zNvx}CQ>wp0-zw5Lh2Q7r_>j0sm>GSHcWZ#3tCb#P;O@wb7Y7IUa3L=W+?^OBJ_Nh7 zNFR=m-GM9w(vUhs`zA#}+qNX&^OvvMX<=_R1K_%lYyg!5Oy^;U`002ov JPDHLkV1mRj>tO%@ diff --git a/1.7.2/main/resources/assets/alchemicalwizardry/textures/items/DemonicTeleposerFocus.png b/1.7.2/main/resources/assets/alchemicalwizardry/textures/items/DemonicTeleposerFocus.png deleted file mode 100644 index 72f3c0365432d55596450dc6e0cd70378232e333..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 603 zcmV-h0;K(kP)R5;6}lig}lQ4oc{Is3E~6LU(7B8iv=6h(~M zNH6;uf~{z+f_Vr*dskpbY(F>C&zqh5|*wzQV(z1o^$}shNIVqcVGNSGC-WyHt?`=!|}4^ z(SQt8O-!-Da@{fTqfLwfDn(Oi3ML%9_~7|^lxXLR0??6POH7aEgMVnsRXWn#&&E-uurK0A7FctlV@&QRu!iSgJb?dSd;f=kdJzcM7${)LaN7`r~2q zbC}gJ_-)(M>%-t^p_>aX+uA6{XE z)7O>#E|0u0t71dLx79!)+02lL66gHf+|;}hAeVu`xhOTUBsE2$JhLQ2!QIn0AVn{g z9Vouf)5S5w;`GvBZN9?>BA>g<8YgYqD4S5TV#(3ex3O-^WtVDm>2XQjxAdxN-kDH! z^Vj4_S1$!GIZ=16SV*zc*5U})E2lllmjiuzHt4mas#VCWue*O_$Ml&8tQOhceI&JF zbLkh~S$&_rb1riFQ+oY@8q1{Fp-&U4#ltLj9KER;XA)4fV#X75m${+g3_IqWee!UP zqeoSsJ;$Xdhu^aw{QNbp&8+!i%39@1EgSj{Ce?F)p6Q%+{gd*VdxZ=s@5|*F^Y|F^ T&iqi=0`j7#tDnm{r-UW|qd|Xz diff --git a/1.7.2/main/resources/assets/alchemicalwizardry/textures/items/DivinationSigil.png b/1.7.2/main/resources/assets/alchemicalwizardry/textures/items/DivinationSigil.png deleted file mode 100644 index 53dd25c7e572d119fd067f313714b5f69a22336a..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 625 zcmV-%0*?KOP)WFU8GbZ8()Nlj2>E@cM*00GrWL_t(I%bk-wYg9oL zhMzNEcXP84J4J|{L{|A(MOV$#HDqy8K#5kVsaQ;8r}wn9J%q_7jT&>$FvW$)g- zA2Y{db2Uq1Aim`c=biWCjHoIAA0HI~=v{d@JKzkEj^NtjqFQV5-ZL&sR22~c5dc2y z?#ihIR~Hu4ijehsv@xP7v2lB!r&|{R{t_OdBQ)JX@E&U|)p$%V1ZMIa)x`SpSFCeb zYY`D*j8h8Sv>w4aN8L0SV|cuI9v=ez*&anvFe*!|F(g&`c^-zNQT@k4mqYhTY+DfF z!JS{k6iG3Gz>^mj0NCBzlj912x~{pu{u5P2QB)@`H@D|$+Ln-o3HgZ@4)JVz9_J=k z!@+#1I@sAM%aW?DS-J5EV=Zg9z97aR#!wW+RHbG*L&1AbN{Nk? zZ=@6_dmylS^E1Q2fSEi$rG-P>Tl-EM4O_1+<7~t8?MsZSio2`(ynNk1d6BvnRF!dA zVx8mM+#Jq1ejFU&oFmIJM1=P{J912csv^eFR24o1j0jcJFs^I7_mfssX^#XrmBIC; zB~2;etVIAZhS;{G7;)Z{RB4)qH*ep`KP~k0+yV?oqj=`u_`moKhXLR<={C#Z00000 LNkvXXu0mjfv5fP)8-A5QWbeV{Neo zD@Dn@q6Nv15gsB^PMPAjK)F|*E9=Pwj03J0qk>L)>!RImr-raDB@O_t>mm$8R4SFdhjV8#Y!Y%Z4r zT5FoA+4fD@>7RBC3t~j^oJXTJa)2tpfx<1I*`h$Yxus8$I>IZ-7ZLCKAl2VaeI&xMuLN%;2Q`Vgafu(tt1CTgq==@84Jvw5c-WD zY(!dXn!j-eTmpd~B==sPpFt2`EQj^Fsgt002ovPDHLkV1mH!3rGL} diff --git a/1.7.2/main/resources/assets/alchemicalwizardry/textures/items/EarthScribeTool.png b/1.7.2/main/resources/assets/alchemicalwizardry/textures/items/EarthScribeTool.png deleted file mode 100644 index a7f197a4972ead6917d15e5a1748316de95368fa..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1078 zcmV-61j+k}P)KLZ*U+R`sCEkzKl)gj5&q@hY_5?)@_euSf22N!q0z{yc?Q2YY_Kym8e z5Fvwu2%hQO!{u_psMvL#(bD64NQRTZj^-}DnS22ry9f-;mW=gZvQj}U-ZdMsK&I8^7~DvX`q=i^=@Ar=%uH&1$TK}1lzbP+vx@ghic38JfqwLqu{3D#cARYfgWHOmu3IqE&9u;%7O^;!g}5Gz=KsB67SQ%UbaFB`cHj4>q6CFp6z%-8h3Gw~531;qte{@7b1!uQ wUw}`bYKsqE(nwb7Fj^A8(T~XyK#*&D04OsMQh)O&`~Uy|07*qoM6N<$f(gsry8r+H diff --git a/1.7.2/main/resources/assets/alchemicalwizardry/textures/items/ElementalSigil_activated.png b/1.7.2/main/resources/assets/alchemicalwizardry/textures/items/ElementalSigil_activated.png deleted file mode 100644 index 04c3aafc2193273d91ef979bea4e4b6082aa1962..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 659 zcmV;E0&M+>P)WFU8GbZ8()Nlj2>E@cM*00H+&L_t(I%bnB9OI1-6 z$MNsl>%6>LQfZRCgm6%Qf+HP?8eQlC4uXQF{UOn~S@fVmL0u^i>ZquJ(SOim5JVc4 zU@z?GJ$IkI8l=X>3~Y@y8}^6wW3MG<2EfZ}KNBE3ak=vcJ1E%zE?qosst(nNve_hx z0wD;&8~`_Nzmk6f7tRlwh|tsHFg&5ED2fR0BLK_{kw3-;7;Rj1b~-EshK3eUg%AW) zV}8Du)zuEhCl;A%9KrhvRksOko?0y-NsVAIJ$;Bg@24z{W*IX!zDQ9R_4<3v0=}x~ zs@0M<;QGzilBN|Q7*!P*9sR&`-U}h+!Tkf6!Q9+FR6!6{ilS_b0I<9qvsxIcia3a) zgyE65v^-RmFg&uv?p;Eoadc}00Ouf%LB#Ro@c{MuM;<*qNJj=!Q$09mw zJ%CWQN@9yJes^Ogh$va6tgWqa>&_ebD}V^%z$_3)N}33W;45Qt@-revnq_TI+9G7B z5k+w3^e4t9-jV0WND^TtKaBUry}Nx_sI~`GjVLnaX7}>!X&+96?(T$>rxx%Y&YoLh zeeSjbW`?e}9VanmQ)zk6m#?1Z^Zls8?92cmgza}BP6Ayu&$sW65Oi~NRh6=A;hb>g t>I>Q5w`VH=&{eA`z)De6JKo0stzT;c+*SS@uwMWG002ovPDHLkV1h|l7CZm| diff --git a/1.7.2/main/resources/assets/alchemicalwizardry/textures/items/ElementalSigil_deactivated.png b/1.7.2/main/resources/assets/alchemicalwizardry/textures/items/ElementalSigil_deactivated.png deleted file mode 100644 index f91496e1342b14f3afc609aba0225da9efeee659..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 598 zcmV-c0;&CpP)WFU8GbZ8()Nlj2>E@cM*00Fv5L_t(I%bkPH#LmI@>Ab~{7gCJ^J5IhY95<)`6cAOAL1ks~lXPwUFrO!A7S6fR7?Z`(HpX+&x4Jze5Njiahx5JFj~gj9Akolbf6W?<(!uz876Ao9Khn&F(|VEh#%D%I+e zgL5MsjKA@z|CzhpHr_k7w^Agrkv3rNawR~B+x07~-?@%6qf)8z;o}Iy*xfrKgcSfu zm~$YA;uvR+(>&)SJE7NY0kFN5QWW{>Sr9-FL1lT1uj{>MHao>ROV diff --git a/1.7.2/main/resources/assets/alchemicalwizardry/textures/items/EnergyBattery.png b/1.7.2/main/resources/assets/alchemicalwizardry/textures/items/EnergyBattery.png deleted file mode 100644 index 1ab960d1f3ec4f5b6a693d634524eff6dd62e348..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 845 zcmV-T1G4;yP)WFU8GbZ8()Nlj2>E@cM*00OZ|L_t(I%WacOY*b|w z$A8~4n zvNJ{vF(fS1sFem1EmWYLz9!Qt*SYWSxTsQWdv+%||6k7epL3Lmuvc^`B`<1?4Sa13 zO%b(Mo!SXFV_EVyaH?F!-oKyNbxAyrALr-!AW4uNpw!dJ3CogmM~~vyYIw`bB)(7L z`vi>!(+3Z7&GR^>wR~^P6Nr8qa6l=v)?~|NGNlr&r6rOuq*$pC)a%5q%eelZWE*fy zYk75gn%2@1&AWHWISwWW@Ryfay?K*Nv51w;@GIOe)BRHu{xq^eU&-aG#m>1-!oz5N-}gM)0$&5?H;{IxYq z5YRa~O0d4Zwa!L^D;J-q(0`cfloAaPdK+|Bd%8%^OM?`f57?aR!h|7RV;;?1KyLUA9@ZLk zw>Ee<`z2aiTL7nWlG$H>rj!@jy9UVVQFQtdh1V5{8b;hd>FyXosmDCK?*MBHw&a?Jjo~4X)dwxxPSesmPGi&syys&y2jxh0C9F z{U=cx;G?Uz)yJQF%Avy*R{ol$ZD5A^#m7k4q*K@FD_EqGIve#G&XJQ`{bEbJ>zUp^ zcU=DX?K_?uo4`aq0PSrFQ5aC}clhSpABYm3i1++PfG}v0Zp$J9N-02yWFU8GbZ8()Nlj2>E@cM*00JCIL_t(I%Z-z7OH*MO z#(($m?3}4>I3}}cN;Q+jtduM$EP_BOq*r}{pa}X%z42QFGkXyv6$EQ_64R7T{JXW8 z?(A$kd!F97r5LvB-F@@iKW?t;ene|cLl^8jT5H8xbwOxR(g28v1{g4JA!4vrecuwq zI64fF@jt+kt^Nz>w{9MLJ#0T9U<4R#pKggFy@4^Uv|`IoG15MbZ3Y?b8=+itNw24I zyrevgKht%k5m6Y1iC6KM&(BKJg8^$o2ed`ljxc_4oKP@CC>$c?d?CA+rJ@cvs2?B* zhM1fS4-n)G$=z3C0%WS61mJq-Bb_Vc*{bi*hCw9UjazeZiWxR)sivuM^P27s#sM%J z&9TlI?fGSve=V_BEntboaNAWz5?An-73Zznx{=JLpOT^W`?{IJVW2El=H*){DLoy% zgzYHbchhX=w|O!(L)40q2u?PQT`IqoV*p?IO;$J%q00^v@91N7=O+svKQl3S1Emy~ z?7RBJ9RQ@=*8(up`$GGwMy`~j;1(!W3b?frv9nQzx`y$!e=J7xXfYjou9f)Y-5nfn zP5=_tq~7=T`TD~l7VRPHX8Gp^Q$0_0U8=1A&NPPsR;ur$=KJgx^K2H@35rF(HK9)c zHcA_0imN!~y3B3Oic*?3Z7_J~h3Hf6{&D|Ht+cR`Tg37Hf-l?mv>_&r e_eM?yw4y&jVf7_)&~1GH0000ndmf diff --git a/1.7.2/main/resources/assets/alchemicalwizardry/textures/items/EnergyBlaster_activated.png b/1.7.2/main/resources/assets/alchemicalwizardry/textures/items/EnergyBlaster_activated.png deleted file mode 100644 index 2e245f2fbea48a29a2b6e425ad3ee6210610f272..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 525 zcmV+o0`mQdP)_)IrXk1se*3axdHC>xsbAiTe+TxDfkUEQFyrqb`Fs@lvE<=f_)iRs3Jy+cgD z2Y^6h1HD}%@^yN_6vl=Z#Ih`Q!Uq7<)mPKj-kO0F1lW;~8XsMh#Jgk+)LQcxd%^U3 zuq^8vBnQwR9GCa_M~?e;B&3dyPB}lj{`rvRrq{&lH48?kwa%oGy@e7H=BC!<{w{{c zSI*MP#E-dWi|t5A8OfwW%26be@n6OHQc#ZLFwi$C6%}p(HnwKfU%vAv1xd9Jvvn`A P00000NkvXXu0mjf=Ca$3 diff --git a/1.7.2/main/resources/assets/alchemicalwizardry/textures/items/EnhancedFillingAgent.png b/1.7.2/main/resources/assets/alchemicalwizardry/textures/items/EnhancedFillingAgent.png deleted file mode 100644 index 1713701435be6de4353a3c6389a28a6cb6186244..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 606 zcmV-k0-^nhP)WFU8GbZ8()Nlj2>E@cM*00F{DL_t(I%cYXdYZGA@ z#DDMZ2BV2dmDCR+f`UqkTA}1m5D$9LOYtP0q#gv%q6e?ul->meK@TFHJP1OSdb0Uw z(x`<}JqT$v-H>c{v+uk6_y@F`R2+Ct&oDDEqeO)NftB>oS~FkB$$TL<(m^F9Xti2$ zVzUh*tW6%KSS+f1KEI9UBqIoPos?rylxjWPe0AP53}eqR&9h?5tll;b3L ziO9C|eV@isRm@%Fl4K5=y}3K&gR+ekIan*aa+ diff --git a/1.7.2/main/resources/assets/alchemicalwizardry/textures/items/EnhancedTeleposerFocus.png b/1.7.2/main/resources/assets/alchemicalwizardry/textures/items/EnhancedTeleposerFocus.png deleted file mode 100644 index 06436a18f1c2f6b8e75be5d25e4a60b28dd2e7f8..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 498 zcmVg(BkrT%%0Cd%pt*gIi~M+#sIzckK`*N6^r=%--6o08 zSimQ(g&?1`|H^5{gvrF_q9dO*rBd)*g|j;uz(oC005mY=dM<3Q(9;F0vyRBa_W@HB z!_P%Wr3#0qzC%$9LF}P4=lFf>Q4HmTg3w^C=!pG01U(_79Q-=+P3bn$Cjiy`eAcwJ z;5rEkInzebv3H!fJetw+pKY!lZ?Rljx_Pkjoosr@v|bDt`)0bhmxTb{g9JfxCobUf z`jTq&+)}a2Ac_(JNl0QmgLapk3jL@NW3X2YrC#NJ=ekGF=Hv?mYyC$(Lj*A-0XOqD9c oZ@tq-FOo?1_TFj7*q8st7qEHH7&CqbssI2007*qoM6N<$f;~XhRR910 diff --git a/1.7.2/main/resources/assets/alchemicalwizardry/textures/items/FireScribeTool.png b/1.7.2/main/resources/assets/alchemicalwizardry/textures/items/FireScribeTool.png deleted file mode 100644 index 537d7a230864ae9a3599908ea4930d3eb6ecce4b..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1050 zcmV+#1m*jQP)KLZ*U+R`sCEkzKl)gj5&q@hY_5?)@_euSf22N!q0z{yc?Q2YY_Kym8e z5Fvwu2%hQO!{u_psMvL#(bD64NQRTZj^-}DnS22ry9f-;mW=gZvQj}U-ZdMsK&I8^7~DvX`q=idDE;$S`6*HvBVr zD{8eGuIo~*RzpKraU}(jcbx|qmzz^WEfoOs3PTr0JpC~*KObx&;gtV z`he#q`5RzVDWp>I)qs>z-&Kl!;1tjeoCnr{6z~uj1zwuxt3dEu1rb{-UNtN418&aD zKqiAuBzRgba|L(?Tm@d3_l*4Uxu9uCuPrXpIXKAsg$25Ldbqx{#5ynrd^UyIaGbWz z0_%VBmz81wxIZ_CH$TsIvx(N4Ev;Fbo#o#2G#?CLI-8Au9(V^Rz!@3>A!vE#CtwMI z&gW^EBK_Xgg{_o`6(9rD0g+0Pv~7~|L3w%4Mfg}T51Qv#exwE_s z$s~3nfk>seG&RM8Vv%!z-{#(jQXmKd@z`-VX`0Q%$Os$0Pv`hJCv2M=#Uf{cT7(lc zbSKOyMGue$`hnMgG#351&(*hm7PRhjO0j9$a&Ls>kw&tp!)PRc;~$e_fH>pV0KYEu UL>`oJ^#A|>07*qoM6N<$g3=GmLjV8( diff --git a/1.7.2/main/resources/assets/alchemicalwizardry/textures/items/GreaterLengtheningCatalyst.png b/1.7.2/main/resources/assets/alchemicalwizardry/textures/items/GreaterLengtheningCatalyst.png deleted file mode 100644 index dd7811a1c3b5e6791bdd9aa2ffe89ad1a170fb73..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 491 zcmVcZF6NN@W)ChuT1pP%W-Dt_Qa-*3pTevQ%1c%X~5+W$Cts4Bh4(4#s6vQJ)WSAfVm{ONi1r{~WN*~c#wkxPc){;USYlC}Uc zo8=F~RegR24FrD>gU_an&#U+E{J5_MeRvvByW?99PyD#W5-8 h@GeZ~B(^GOB2K~tId{itrzg}o@j;-tN`b})of@v?R2P1=9?#J;G|QNQW7ZzHGHGC zLC>K3IMA*|zv~MEl1M#I&pv9bFY9T0Lk-Yg30cyRDdaf`FcwEt_m62pj*u*@?1%VdxoD_Hk762c(2DbVeSeD=-4D?V*bjXk63Fr=V3pxNP z%gTG;;!yLUk88fN+2^z-nXBIY4IqljH?b|aY-R)GFVrP-15|#!7kbcbx3PT=f5D9U aoj(Ak7Xj^##s|Fs0000WFU8GbZ8()Nlj2>E@cM*00D+cL_t(I%cYauYEwZJ zg}*g3=Nx-%C4Gz*FN9cYZ1G(}pGpM5XHiQr#Eat3Tc{vO+hk^MFAj+bIlZy_YGC&M zSZnPWxjPT3v^pG*4?U%T6|h_&fEy@^ki^%wKh+1&O2P5Pz&!&72;8A*3`ZE4Ycow#0H|sqId#g! z;P?hXn;{;J2VMu`?B)F4&@QL@+}*&B_rJ9jVrN5Z_J_|0B*Ez94`06Rkr$C-Mjee( zr`;_8D8l*aoU3U|Oo0%(@Jfz^7y(#Pqfq)SJiQorSr#6(Vl>>fF}WUaw=k~X{9Eak zg0kpj+}=1>(irAXP)WFU8GbZ8()Nlj2>E@cM*00DPNL_t(I%cYXRZWBQa zhCh2|Hz=Y&;R2%Kz>U6D#Zw`qN_`~+y#pek2o<6>glu;FbC~VYpoIhV$zyvy`L}J7 zxQ*p&=lJAMIXh7x`T`CLuw-~P-oC!DDS%yfaQyOt)B^z+NMKe07`O|CA=Ui(={E!L zk%YsLbe!al1nbW`EUe}+B-OgXMgRgc12e9c9WuetbV^QyD1CrHHwYu(-RXtNg$r(VNVM|?bNfpN60=8+Osw8-#`x;P7J!G(=ajzZ&8y!l-2;@a4ooGue{_ei z!sW*u^T(N-6J58X$!YHn_9QUmA|NO1OWzpr|CWFU8GbZ8()Nlj2>E@cM*00D+cL_t(I%cYaCZWBQi zMbDjC+X0%S;9pQk5RPcgpQJ!ag=3|#V;3OtFRUZcVL1^Xls`cV4N_$9&U+NQ>yWUi z{HmE(oOkBVjNF}VDr**>UhO#qVifCDNfHPV0z|>P zq&l9(aE{4wbGkwNo7)C(ytvWF!(D$lzMJ^1N`|PKORvR!xP6*Wy5iZH$`Ux^C<=}j zH)=Id-Coy*Uhj|2?{c}Gd})73O+`Vf6|FY-KAKY`qbH;Dbmwt^fK>tg+1m%n7#_u1 z8D9G1fFe2l>43#B=UIR^(@OotxB_0CU69P$pYn%;JvWCeM53jYi7s-L23Zi4_RC^; kesXpHPiWiU7}&D@0#D$qH}^38djJ3c07*qoM6N<$g3=`43jhEB diff --git a/1.7.2/main/resources/assets/alchemicalwizardry/textures/items/HasteSigil_deactivated.png b/1.7.2/main/resources/assets/alchemicalwizardry/textures/items/HasteSigil_deactivated.png deleted file mode 100644 index aff173d788cf6542d59e83f2e312cbaeb75d54ac..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 562 zcmV-20?qx2P)_06N8*cnkml03B&m zSad^gZEa<4bN~PV002XBWnpw>WFU8GbZ8()Nlj2>E@cM*00EXsL_t(I%cYY$Zc|YZ zhQEK#y>XC8{Gwqi2(bVHP6I7FNP(0+P*AW99zsHqA}A;#U^P7Km^f1KJ!gjEVq?Tj z<*7zTNB?~D&x|61ZK7HwFYXNkjFd!KW{QLdm_ZUe{WMdTfK~+0?hGOV%*4m@Js#}; zBq!m32@L1~3lEZs5*;n{QcIW! ziU)_c7UTkzg8RcuayZ2uM{N3LtK{fxsw8;%ZNR(fKCi#-0Z>9TrO;#t+LqFW8@6dk z33xJ|F&SUbv$jeAALe~d<|A$z>{JO!|F-}T0hfr)$r{1I=z^4ts;a4Jz3L=bRZKYf z&z~H^BWQ8~M9!I`v#B}>Brpm0zZD!fo%Po=k8fXfFVgzKpeaEUEnE}EqtQ9pof~ps z_j&;VzjE;Yyq!HjEk|;!GOkEeIj$GT4kyz-hod>Wz^iGC{^rMk9R&yD1;xF4m7m`o zh6hw;nENtBEkhoVB)lnjGLFCedlTCB8jUUEH=Gr^RE-+BUjP6A07*qoM6N<$f-C0W AbpQYW diff --git a/1.7.2/main/resources/assets/alchemicalwizardry/textures/items/IceSigil_activated.png b/1.7.2/main/resources/assets/alchemicalwizardry/textures/items/IceSigil_activated.png deleted file mode 100644 index 30ff69d307e58d87b12caf6f21b8a03b46560ee3..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 557 zcmV+|0@D47P)lR-`tQ4of|s`t8KnjVQ8y#t9mRwTrj zz`}*`0>l$|7FQm@E4V=u0+@IM4}x@04?VAb7sHT2XBPOcYEk*#Uw^$aNdWx%+||JD z!Nl36UiNCoo_MuH11m&MvOBf~^Dn;T>~M zrY)1?xI67mO$JWe36tbxGv2lhcJFwl2f#w&>+g=P1n>5z99I>iM1+_Fr+W=QX9Kkv zQqVR{{RptK6cU$RPfkwl4hFC5itE`xPKmjMVchop-J=Xv3IzcO!|vw~iBV!cj+i@I z8^bpxTO^8tf)NpX?*~rWhMY3)zBz-X#QXgz6L%D%0+J^xKoZlcVq%Y1`WL`B?*TX1A`3I74gCG5jcBjJKIm#Ia3Zh8#V?m+KxA5WOS^$ASVy~(gN|4N0NR$Z7 v;M2h?d-3x5zW{)?X%fI~-lTB_@K@fz$>UlB2WD_C5)>e{DByNCl z96NA{h!b!YRvdvdfD+rXgcFXyf|#EifyjQ~r#I6q{DTe7BJ^rTs;TL!>Xy3$@afH@ z0&E|?dT_%XN(+M1!O$gP5;4V92mo(e4Q(RG76>WWOlla>2g8SwU0P3wa09V~JWJc|%1&HG3gzpy@92~cCcM{G{ zwOSeHd10$9S(Xv9j9Q}sa{-dLzPx0w-N9wJgb?FAFV-Y1DtTgS`#vDdZ0UrV;R2a~ z{&-;O+Ns18=F~)_{#8|FHx<*h; z#?+g~Tz?$0*KFaQkVLpwVZZa7tMm7S5N=PQy8Dn+mNSiJn2Z!7UY3*#TbFIwsifoR9z^M%^<)FtW{XE z)7O>#E+?}H7hmGPW3ANc;jyC6RH;_@1%oV5BGo8w~_PN|ub#_aFFD)ZIhO5L%bPnsKa4Y#gr zWUF9h*~7g3z|^&@?BaoO>{`;yrB}im%^w6Nxj$O-H045EPO5G1E%m)z3<(ksm=dPt zT>3LfQsjW~2L=%{X3kQ^GDq{za(qmym?gb(7=&lfJS!L9lkY5(U1!Ir-JIPpb;m9C w&;u*3E?#%OM0U1o%oWFU8GbZ8()Nlj2>E@cM*00F^CL_t(I%bk-=Y8yci zg}W`JSdoQE=bw@|dOo_&CO`WfAR26@d0+0zj!sG8(OZB=(+J z2)hAhhKVp}xAAdIs49{yW6*5!dT$RxU@@I?d3`NA0U|;aMI>2U2;u25HLu(Gf*a{QVXTkg_C%fI9b_JfLyRd_Kpi^7+eG rX(!EX0Kk5u;Q)R-JykEh#{aEfnw`o+s2@$d00000NkvXXu0mjfhxGkU diff --git a/1.7.2/main/resources/assets/alchemicalwizardry/textures/items/LavaCrystal.png b/1.7.2/main/resources/assets/alchemicalwizardry/textures/items/LavaCrystal.png deleted file mode 100644 index 688b609185880b35061279ca9197d5fceaee591c..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 585 zcmV-P0=E5$P)#-y9bO z!_=sSf@gi+=Um=%3=v@?5o3e#SAcs-iF;9rNbtuTqumJZWhHpf*>ixdgGX3;c@Hdb zu2qbG0^GckEkkDrs&i=DV)Kp+-Mdc`E-o?+RnC?vL4oH~|A%qEiRrtVeoSH92; z7qRy2BYo;7ZeB$yn!m&aB?#0@Q}_*!A6xq=zMDacpBVB2vbhRfef#12Y9VKGwUbr{ z8v0LPfm{aNX;XUogpm^_dq)En-n^nbJxyb2mdx4PU;u<`MhL*{O=I&wz@1Mu0g(QY|(UXi*eD3pc3U;PLQiBN^r8(vwj)Sz> zfiqb#+=7x#%NnbyNoS9;{rCW;okV|_CDu1c%;aBj7nXlvuZ*aVgu#{c{pE1Bc# zi^n7mk5PGW0q0KC#`cGlS3(1}jhsV&Tc-B*5!m3|SjQnnKm{e#z`6Uoa9x1^@{Kb@?P)WFU8GbZ8()Nlj2>E@cM*00E&%L_t(I%cYY|Y7|iv zg}?Kvs$W%g+8B|z578C40>P03b>bh!fdj!M2u=(^Cn6?W5Ck`&i*S@d8w}l@>gsy+ zu7j>LUBm<=4<7eU?#DUzM`p%lUV56`^4?Owy00#_UHnA_f+OvQkb*&aSCUWq)fZT{#1Yk_y^Ue?i6Gh^h>YjzA?`3}P z-Hg-$3$cZR1Rm|p@L9i!J%C4C_u|3cj0~1eYw($PxI0A&1iJtLPz=P-3kQtS1X>Z2 zNS1*aEJA;zJ-`BEV4|8Eg~Z#(Ih4lxCnX-Y+K+P;fuv6e_ zhh1c0(EyFOf@A;w2#!SX@aEGTD#w?nL&ABRXlC5bbNlvk1Hux0_v4g&0Gl{|*G3Dy zE$jhqdT;7FAJ=Xo=`^<8@W1~$)b@?7vkCyJs-h^0|GGw9_MHC$Ro1M)`T&0S00000 LNkvXXu0mjfDHZUo diff --git a/1.7.2/main/resources/assets/alchemicalwizardry/textures/items/LifeBucket.png b/1.7.2/main/resources/assets/alchemicalwizardry/textures/items/LifeBucket.png deleted file mode 100644 index 52756dbff7151e7b96b1f7094a54f51b8e253b79..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 659 zcmV;E0&M+>P)Km|DOdS%bC{oLU z(rj56vN7-yC{GZiyaqc%)R_f!p(2nDk&u{Jx>QV&nikuq1NTO@1HvXziL0K)^6}NZ z=l}2jU*99D$}YoU$ML^_LfV0qN@b;3N~O}u@!f7$a>0PCb3qdE`_Tw53<=~humI3R z{`=`^Dn<%fD}Jqt0{3P?PZa?iRep&O0t=Dt8L-Gd4u`mAvgm|f7%owZAQnCF$`ql% zz2ig|Kt=d^Z~(wyFpyLX*s}Ii*;nOG1Q&2bSVR$6A*m7qMO8$VATs8678h7me=+Yz z!{GxG4+w#Rp&Gz7Ie>yHfe1d}o7~{=@M$&-&4d6y&C?gb2}4{Xz95np5&R4qSX)4+ z(*dB-XvFd#uCLiw#gDMCXSOU@fw)?&0?_aGc@`He%tDXsm;rUB0xT0Yl8o4RcY6y! zv)PR0r_<@*ISD=0ttLyo1?6%%#>jX)j(s1uTDV)>Ene=wpkA*lK)ctWn82e7XXZok7Mdjo`Ctg4_M^0v$N$-saRYdPOTOIKhDnqxSP!g9A|eL&{b!| zb1-1z)6ES4pN%FSG%%k7@WyChzQO-5Ujz0AlXQdC!lu}y{`|S1*XsdLtJMH_dvz7d t=e949w7ucFzF=K!+WY)5@Xz*!e*o3E(KK3+-!}jN002ovPDHLkV1j$$8_fU! diff --git a/1.7.2/main/resources/assets/alchemicalwizardry/textures/items/Magicales.png b/1.7.2/main/resources/assets/alchemicalwizardry/textures/items/Magicales.png deleted file mode 100644 index e078a01b4117e990c25d0b0491523cd71289060c..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 408 zcmV;J0cZY+P)M@3!EM^#Z* zX2x$S;FtBcKuZnls%<|4I%?W+a70}PwA8R~0bR9iU%TX%lUPEHtuK*aad?li%ET6v zFv8>6V0|Gn2VCmH4ud*Ns_^RHNO6=@Vn_l&m1UYbvxPuMP1{ioZ=Qk0WH=m-zV!jf z$w^6BW0iBA+9#k$k%)*;MPiF_WOGN&$;t7IND=zj52p(u1~#Cg3JD_|4v!}zV@N_u zN`V3);T)jpSAL2fxlV7)<5{7~h!hz2JVr!`XI=;po7}56$!T^LZZ(!4I5C@qg$M`` zVw*b+f!<6eoW1AOq~RoK@<0xV01tE)44(dd8s7nk6@}kv*E*K~0000WFU8GbZ8()Nlj2>E@cM*00KKnL_t(I%XO1IYg9oL zhM$?ayLWGPlbCE+gGE3SQLqrQSfmq_kkZ%*mih2cqnwIVPICj$Opv?6yxnhGnc`oP7JspPr09T?wit&nDd z)?kc6#J`8(q2?e$6e(0!?tSao9zaA;3bclDbT~&15YE=6(-A~`g8)IG&>F%}qqT=; znUB!g62jTK0I1@XNjWuhjqOg0+T&ZCJL?FH7ignAO@Xxz5m^4DS)G|fWnfocc?TPf zb*xHRt3P4&o5iL+dmK9w>)4Lltm_Xf|M*;B-u7WAs}~_G}Gu}g{`HR*hdTM$R6C8 zyKnB^zL5hox|U1&3J{q68`vBf9~tiX8+%pt=5+<|>)wMSfWFU8GbZ8()Nlj2>E@cM*00JLLL_t(I%XO1GYg9oL z$A4$;Yj+c2iH`(HV_|Qh2v(xtBZ`e62#Tags(@v_fnbwH8?m(#!4wJ#Y9sgo)F4(i zF)?g**X-WSea;+<8_jM^PBRQ={*QC`kEkm9)#5^Pr19WUM?5kAy_3BJe}UI7)flfU z;u(qp-hN1k2k`LmZ#j@)aiOVKF4UNsGKgBbTY@d2uu7*3{Q-Rbnz8g`m&6}tGr-X! zu)bz#jKOxIBq=yo^~(~9a&!bUtbXx)L_Y@O33&;v%?gy|AOd4`IC&yu{_gI6Mz&%M zs8JAD{RzGg4p0YTs=MbaL9mYlfFcLYg-%zA!b;UpodUGlmGF3D55cSJlL}B+h*Kqs zc0d9O7!TUr3UFw=(p;XYF!J*1F+J7v=@bPoj^~^^8=)oi5=auTPSH}Z&fyv1%eS1l zxJFVc8`+M7c3NT`++MHo@l!@`09guHMG%4jfwZ& zhFiZPo|EmH&iQ_gE$c{}(oZe@Lh+qK-Gi;6eBE4&NSrd}8zKX$P^c1HB`}86I@Si3 zMrbfMUT?^c0W?DoV<0rUOxvZy4kf+r3mZwvYHW!D!@YMc`4{EonMs|lL++Hqjar|G z44ur;PL<8f5qO5#_bnNT^2*X1FTa1;7EURLRJ)lY&I=;n5DFX$4fAJCPs|?l8xN|( hb9V%w{q)%g;15=t1y)La>lFY1002ovPDHLkV1f&~B>w;a diff --git a/1.7.2/main/resources/assets/alchemicalwizardry/textures/items/MiningSigil_activated.png b/1.7.2/main/resources/assets/alchemicalwizardry/textures/items/MiningSigil_activated.png deleted file mode 100644 index 8b25db877088d45bb71adecfee848707d2352263..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 670 zcmV;P0%84$P)WFU8GbZ8()Nlj2>E@cM*00II@L_t(I%bk-=Yg0iO zg`fGjH}~Eo4XH>GE7GO@451spKyf3Yf55u5#ht4vZVJVMdv)0&Ze4aOE?o;^yGav` z$-PPD&b%(tq>0*v9(ZAxk2B{zb4G~>0H0s>V<5S_R_*c+P!odH3r6x1fl z@MkMie}AHw<&uYG52?1=p3Ey02@55cAwtRb0(S3 zftF5Nj!9TP*I@5SjYqFD4vuoZ9CWE!a6uq=j2Z`R7ItDF!1rFs>eB)@98ru)&ZdTZ zR8leH_Kbr1Zz;9M3Rr0vbFm7;U`Zng8v4#t2B=13bE|)e_|(Le8f8(!uq;V6SPhXr z3D^X0Kep5ygNRJ4nx>|jrba}FuimW8uANrX&-B0e1^m1B(dhUgvj6}907*qoM6N<$ Ef|Ldw^8f$< diff --git a/1.7.2/main/resources/assets/alchemicalwizardry/textures/items/MiningSigil_deactivated.png b/1.7.2/main/resources/assets/alchemicalwizardry/textures/items/MiningSigil_deactivated.png deleted file mode 100644 index 3d80e3510d53c76d0682382528bc69a9aa9f0a4d..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 649 zcmV;40(Sk0P)WFU8GbZ8()Nlj2>E@cM*00HeuL_t(I%bkM zc>VSrRv;~)IR`WI)T#w%1QiRw%k4Mp?jImP?|KJp#2^Q2pi!^K3xLCKUY25r4H$v3 zhde09S%IjMOU(Lam!$}NfI*s$0i3i}1VE4a>H~}lC8)<4s5!WIqr={ZPh>@)yRnWn zrGjZVKqh|%tS%B*tVK_P=)(j9iHzT zka()|B93u{chnM}3`#+`75RtKB{F z0AAs2;>d$S@K`C0wqPWdTeBu!YFqs=HbfFofmX$m<{l$Z1jqxl>x)lt69ud_tv#QB z(LlwOl7_jb2#`c&bCbVVeCEWp2F0iVW1#BFYLPiH*fd^z{w@myRh_M*RuAV jqg$EJowjD5>3`!F@yYRBj{qPT00000NkvXXu0mjf8B-0z diff --git a/1.7.2/main/resources/assets/alchemicalwizardry/textures/items/MundaneLengtheningCatalyst.png b/1.7.2/main/resources/assets/alchemicalwizardry/textures/items/MundaneLengtheningCatalyst.png deleted file mode 100644 index ce906c3599d755d8ac4c7223787d87d3a78deac8..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 211 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%`oCO|{#S9GG!XV7ZFl&wkP>{XE z)7O>#E+?}HA9w!x=_x>=B2O2`5R22vfByfsXI5?KY;-cnVz6WW_cvMKT;6|u>Bukh zb(mX;7%?>+1~u9DdB?R>SFOqVoEG zJR4h^`RZi`MuvtH^A7y~|6fu{XE z)7O>#E+?}HuNKGaD?fokxt=bLAr`0KUNYorFc4wB@Z_~Z+2zd~^G&UlzB z;dn9UvNn^Am)H_Htk1r&Rp3;a?El36Y0U#B)^l1SBAOOzK#LhXUHx3vIVCg!087S2 A2mk;8 diff --git a/1.7.2/main/resources/assets/alchemicalwizardry/textures/items/PotionFlask.png b/1.7.2/main/resources/assets/alchemicalwizardry/textures/items/PotionFlask.png deleted file mode 100644 index b0d3231edabf5f48fc3a0f473efd1e0524f612cb..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 325 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%`oCO|{#S9GG!XV7ZFl&wkP>{XE z)7O>#E+-Q|gUFTFb6x|5o_M-AhFF|lI@yq~$v~v7p0k-xYISGa0mu9Y3fi6OA4L54 z<{ddX`G#{zQE{q+P%~pPXVdwEQ#^EdU)b+m^8Ww*>DR@61g~Ay{J6?<-+N{Ty^Fl7 z4}0Fu4rTqa{r94@*|Ekt=RbSgQ+_l@`1zg{rF*w&o`^hCAK$mgz<0fixaE7pXfZh5ExOq{ItqicL5eghK!4n$?+mfvqhXP-%q0~(^HAt#o;+$i~KOZNKQ=en9IS!Y<-IaIxhxBT>v&#ctvZ{Jb VRw_Ao>NL>544$rjF6*2Ung9alf~o)j diff --git a/1.7.2/main/resources/assets/alchemicalwizardry/textures/items/ReinforcedSlate.png b/1.7.2/main/resources/assets/alchemicalwizardry/textures/items/ReinforcedSlate.png deleted file mode 100644 index 9485f48aa4d66ee3e21af51075e216816b5222f0..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 709 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᣶WSIN6;# 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 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 deleted file mode 100644 index f2f6c0a0fc444c8510b2d784d51684cf3fee8eb5..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 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 diff --git a/1.7.2/main/resources/assets/alchemicalwizardry/textures/items/SheathedItem.png b/1.7.2/main/resources/assets/alchemicalwizardry/textures/items/SheathedItem.png deleted file mode 100644 index beec20e9345d6675b3b7ccb722b767ab541e6f31..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 474 zcmV<00VV#4P) zK~y-)#gn~C13?spze$$OC{a{I(D<`pBN#-mv@kwHM6gOqA3$uZ?5u;0U8Hquo2VFPCr_D}n;Rl_0M{4-gm|AYVegMl;qiS%%FYK_ ztpNxGYQ~^d@BSw2a9B;UwfUkVVhpLf^HNM3wr!hF5wudofoj;{_*SuydRCS-6TL{? zu8-?&NXhY$zGn+KxSL{q$yM>V#n9%B>Q_H64~<26Xe>&jbtX|b_3yv&8`%>V!Z diff --git a/1.7.2/main/resources/assets/alchemicalwizardry/textures/items/SigilOfHolding.png b/1.7.2/main/resources/assets/alchemicalwizardry/textures/items/SigilOfHolding.png deleted file mode 100644 index 0eb3443ce47bc547f99f9208d4c0ce48f6ede7ad..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 697 zcmV;q0!ICbP)WFU8GbZ8()Nlj2>E@cM*00JFJL_t(I%bk-wYgADX zhMzh2oV(e?n2&{|5&T$nQ4oVcQz)XXzrw;sh)M`(6w?S2{6L7t&O-l*q*4nZL`0Jy zv9MUstdY%T@7;6GSeO-;#6qW;DP|sq_ni?{1>pVMMhbKt9q;+UKZLXa&xeP#rHU8> zAz($eI)3Gg)vD|SuRtwW>Au+fl;q9FzyegT% z>05_ce6&iRbK7kMm@Ad^$d!HAE(6xEFtfsm$uglH2u`qGkhK=+i;coqV>#ajcs4Yo z)y*bnrYpRA_?dc^A;zFF5=0oiQKmZcg^KS@#v049!$yECMj{Y0Wj)L2NmEW;Eu$iQ z&oaV#pq6^t!`lE+l~e_>N>PMwdCsfHpBR}qK*3n-fTNfsJ71!z;*8<+z{~JF6buWFU8GbZ8()Nlj2>E@cM*00E{+L_t(I%bk-;juSBu zhQBJen@%SyHi%PjnlOS95kl-)^4PI}72*I$AWa}bz=*?e1ug(+lCe8&7Yk2!l*tHb zsFfe(um1XNifd@N=gX~ z5J3b|HZ~!2dkUbKb^JJ9B$u@idPGVc6+u*SE+4kAqrmDz!(>vna*Cu}dfsl0W+J3y zR|AH7I(`(!$+zVMGsD=@C*$|8$m`F$E7eQIG2rX6;rnW~M-{+VLeuPv*2^BO-q*$P z3)w1ys)B&3?a4m?crVW z00=HqgGK-V010qNS#tmY3ljhU3ljkVnw%H_000McNliru-3$!^3kWFU8GbZ8()Nlj2>E@cM*00Fj1L_t(I%bk-?iW5N; zhrjo#y6tr0#*KIcVVKNHL=7H8^b#)pvvZ*<@eVG;bI8m>SCRqo0A4^PX}goI`nhP6 znV3Ns9~2Z6^}SzxRb`R@IDNe=)vKC5o&4kyWgEcrM`MKm$Z6XiccUl_3?z8@ZfXAn zJb6&7EFxwiIxx>+%<3nb%szQBVM!_YRRM2tpGP*+viwC&0_fERBU)^$BG3=X<( zjU<9QDJ60im|+Gfi>7T?I|*Qr_33MivhZk_8ExBR<`{zqb0>tne}wap+XpqH(XiAk zI#NyuW4#vD$Vf>S1MJWE_@%*vf#BX@jU*(|C-LKZ$E){eSL!?6fj*1bwC4WN)iWw! zW)#t=s@>53cl$6oql63`lvf4ulX$d5{)k+|KtLNCFur zr_FY8b~K?+i4UI}ifD9QLRl9-IqP)WFU8GbZ8()Nlj2>E@cM*00Fs4L_t(I%bk-yYgADX z#eXyRzJ0z##WrLS>l9W7C5>MpAh;j|`~dkl)&YwYAwo!NXlv5mG$vD3_n)F7vY`(~_+;c=} ztVY8DqKaDv1X0Dh_o!u5!fg=&hUK24fGfm;kaAD35{m00000NkvXXu0mjfucz>F diff --git a/1.7.2/main/resources/assets/alchemicalwizardry/textures/items/SigilOfSeverance_deactivated.png b/1.7.2/main/resources/assets/alchemicalwizardry/textures/items/SigilOfSeverance_deactivated.png deleted file mode 100644 index 7fcc68cdb991eedc403e6b47e229ba86a0d0888b..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 614 zcmV-s0-61ZP)WFU8GbZ8()Nlj2>E@cM*00GKLL_t(I%bkG9NLIQ&PXdEQ~0-3~&In^G~u4 zkSv3s3r2c{_yo~_my}3k_-vo;PM1dMl^I6j%3#KM@mW?JG_%(h6-JFZ$nRG*2E;kU zdBi7R2C8g#`@B3j+B!Ks9^W~LYHTJ|Mk4I>2lv)IJZzz+oSYtyS4!v?U!+-nV@Q=k zXN+4d#5qhOL`Bk+YP(IGPjTY^?ZHwz{U6}U>|6}+A+Fp7NvNG);w4=VP?Yh09WzD6 zffKwhVWyZFNjU?ccGg)BFpE@rZ4$qMC*h{~gsqEfZt6AmxY$B26nyS_kZ&b%=!Z05d~y)OweQz`_Cxa-tfQ_IEs%jMYsR}010qNS#tmY3ljhU3ljkVnw%H_000McNliru-UI~{3nzPT<^ccz03B&m zSad^gZEa<4bN~PV002XBWnpw>WFU8GbZ8()Nlj2>E@cM*00H4iL_t(I%bkv$uP9#=k-o(KHrXhzeFA5>G6wwH8akaNKd>PJ*RaYina9F=`q?uu1*_Nw5|K zL6nf}ubFuk%dJ@s1@o$Tyy5eG?>ldlhyd{U*#Q7&?|1m0P*cE#x$EMbrzmm&f-pdb zhSC-|@7OK3)jt8}TUW%G2r0p6gDAmDK~WY69t6C2I!Om(T5SJ#rvQQ}$$5u}FzCMF zQM|@->oo!x6A_u1$=nCxR-1mbNkG8OQ}<3Z0b&VV#3b(lFwU0H7?dbN39EKdtYnK= zZ(0BHd>=qh0ef~w%}3Y7hyg&CF@?$)bT{jH2XS>CrVFzk0G!qrW%cC8Iv=M!5Ko{C z%gHOA%3Vs8^8MF0_Uum6gDMG`WYq{y@;hiW{q{y(f1qCAyluRKKALzO-cCDG6p}Me zm*^)IWO%SZZqr(QrUL*+rSP!zlE4S_lMP0PivWx|?`QU)0f?gnr%C`;^V{^h>rB!f zNF}(E-r%T5GbYX_S7p@RVw6>i2n>_Ab^UREi~Z~;yY|mk)&LRVTzpx?LlB1OP~)t{ zdW%sJVW9CiGJDwYpf>T0xg%jMYsR}010qNS#tmY3ljhU3ljkVnw%H_000McNliru-UI~{3pyBSir4@E03B&m zSad^gZEa<4bN~PV002XBWnpw>WFU8GbZ8()Nlj2>E@cM*00HSqL_t(I%bk-=Yg0iK zhM&22<|b)So0On`Komc^5wSI<7A(3@X|3Q!aN*jY5QG6b zG$c00dB=9LrTz&xpIZ`RA|wH$4Wa}qF>w+jco6X7DHe(tlVhv6e3MW6O%gTW`|dY(Y-iGgGzn?<(h)xN-=NV{=hm|N*_q2YZzokt$rAy-wf*s^v8rKR41{DXmQH!2}>56>us6pwoXz zwX#aPTL(!6KkmNephr_C&KIuA^4vWdy;Ko_rSjdZ{=WZ$y`=EMTOfcOXe6Ec_0sWU&r)xp78qay^r5+ij`BBNz!prv&%U?LPGyyH3d zym`-kj)MS);3V%8s}$6Q5gCVjmc~lI6l1)Qp*1)cuSqIv6V+l=Xmrg%o|>q zKv5LhUu9g^C6^PiD~Nd%Y}<|i>h-z+Xf~S>fMr=?sex_VQLS3RF!S`C?zA2R0av$o zSdE5Q`UjI?!_2RSaT2}nbTJACI1l%H_IiwlL;TT*q^eHe#3ra!D*%K+z`%9!eIL*B z*x5HZ+}lO{Ln9Vrzx#?10!>xPq|*d}Pa=^Z7>^elTwdS&G^9k=b&{zR`nJJKr$ejj zkj-Y7Q%GtW>tYs5Jhxjsy?=m|GbrQlAPiBZ{EaNc48mB0RrC!+^@CQ(daN-3 O00001vJ&Y97f zaW0PLoGdg5Dx(lwNMd%`mFqUG3ZoWMP;FXSVYO(}F4}Y<2!w(bQIRGllo4nU;U)qr z2j?Q4Xl9&qJahgtf2%R0$)Mid_bp!D%l8ST6#oNXt>x~k*BE#_%H8tc3B+mzS1t+# zFq6E2B>|rgO$cnq$-X#qa{ZbFmoEs_-#>tDXPBIPM&iH-X5CJ#@-p#gl*x$+G)?2s zz%g+oP{V={VB7O7I~KYw*zUdL;Wv|~S(9`sMQ>*(9lLtCf9s~Iso>t7HkD4N0qEO1 zK)#S+s%4NxwSk#Tj-GHmwsc9v8~N~dnn!~t1b|*;swhQQS3i;1COl6eDh}Ohmgjmq zI}$NommCf@HDTs*$V#Pl3sUC!^zk~@(k%9}iEU-kLO}wh5}mOI#?y#wopB7$rb|oiu0ctNY8b@nmK=6pc%vHC7qr^$|CC`9W-v-L!#jDZfuk}peYum zTIGs@)citVF*{Ci$;ELaB#l1G&S$*$r-+v4crrFh+%VX@Wh-XB@OuVB!-}KF7exO1 zG@9OuWd$)>50i-Qr@Qb5fQD!czhD3JDOcgTB_53QDk&X2Y2)_?DSIVuo2LPIb?&TK olc0)A=fyAc(6Czjnf?Vo0DzD1Z^ceB+W-In07*qoM6N<$g6_i~`2YX_ diff --git a/1.7.2/main/resources/assets/alchemicalwizardry/textures/items/StandardFillingAgent.png b/1.7.2/main/resources/assets/alchemicalwizardry/textures/items/StandardFillingAgent.png deleted file mode 100644 index 4e4c8f45ff5ec7842c4029a7a2ec7af66bf69b3b..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 610 zcmV-o0-gPdP)!s=W=sG803B&m zSad^gZEa<4bN~PV002XBWnpw>WFU8GbZ8()Nlj2>E@cM*00G8HL_t(I%cYV_YZGx4 z#ee^K(E3VhNmY!sv}i#JDwJ$p=t4v{f(vmcuEd4z?8ZnxfEy`-6uZ!c=tjhk;8J4V zNgo=tqQyq@u$g2!^UqvAKr(5?3wLwx;hY2KC=ua*#t3`(zRyA|A`7v|Km`@%pjZ%Dh{^NY@0m>`)Ib8y^H?jb wh^PR=w9$@BV1jL$%$zx`49nbIm3KRT0V|amqXbjc+W-In07*qoM6N<$f|C3SSO5S3 diff --git a/1.7.2/main/resources/assets/alchemicalwizardry/textures/items/TeleposerFocus.png b/1.7.2/main/resources/assets/alchemicalwizardry/textures/items/TeleposerFocus.png deleted file mode 100644 index 6d9533faa617fa1a3698a05c80a99d56c88886a5..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 530 zcmV+t0`2{YP)WFU8GbZ8()Nlj2>E@cM*00DMML_t(I%hi+5N?TDF z#DCvC!9|0))@u|*%{7G7TCalppeyqRU09_qeF(uy@gW2^1)`Gj8R_6@EaAv;mm?WNpfG6U449WwhI5bs@20$S+6+(M7Yvym_b>6g` zI9eWdzIqixV|CWiyoFMq=|^3b)?2#7sk~`<+Of6g(Qhb67{K>)lreahI6m!rYL_V! zNl0R%A8pP%6>_Mbvr6gda*K~X>3jn+a34(N`F5u+sgkM*UF133odJI~vl&lLTrY$|5wAc;6^3*r!srE->DqBjHRL&a&d_nz-|(815TtQeYB zW*kA#p1(6#OdO4-*#6>~%=7Ot0#u8}!36?1tjnrJqjrg!w@|x!xC4(G{C}V64txmH UyyJ&&JOBUy07*qoM6N<$f-a`uWB>pF diff --git a/1.7.2/main/resources/assets/alchemicalwizardry/textures/items/Tennebrae.png b/1.7.2/main/resources/assets/alchemicalwizardry/textures/items/Tennebrae.png deleted file mode 100644 index e4768e2236aab8cd7b270bb9a88188a01d3cd3cc..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 397 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%`Y)RhkE)4%caKYZ?lYt_f1s;*b z3=G`DAk4@xYmNj^kiEpy*OmP)Coi9-=ss@G??55h%#er@=ltB<)VvZPmw~~#C^fMp zHASI3vm`^o-P1Q9MK6^dDE`sY#WBR<^wG(VtC|f2+V-y$%;I12I_^-f+=cEb^Oiku z>YQfs|8|I=a;tmgp2o=3XVOOTNt1r4`PE3)a~l|+c~jo7YSk7KW~MEzI?uB`qBiSz z=T2L-Ec42?wf7b*@e|s%eS^=s*RyQS&wMWVTqgE9W9HwND|Y5aZ_;`Evu0iJ>s@K} zb6YafvSzWpw>5M-_uSafO|GB)oMl_$gR-OtkdlT?D?5y;vT)CIi kO8)TKJ>7Tg-(T~844jJ|8Ez;`Xa|Lgr>mdKI;Vst0RO0-iU0rr diff --git a/1.7.2/main/resources/assets/alchemicalwizardry/textures/items/Terrae.png b/1.7.2/main/resources/assets/alchemicalwizardry/textures/items/Terrae.png deleted file mode 100644 index 81e1154abdfbe43cf9a43ecf18da6d4192b768bd..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 460 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 Eg0P3-2LJ#7 diff --git a/1.7.2/main/resources/assets/alchemicalwizardry/textures/items/WaterSigil.png b/1.7.2/main/resources/assets/alchemicalwizardry/textures/items/WaterSigil.png deleted file mode 100644 index dfd095b5da355ae1863931fcb99865239b9c307c..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 590 zcmV-U0WFU8GbZ8()Nlj2>E@cM*00FW|L_t(I%cYaej*L+d zhM%hQ{q@Ag4UCNut0u(HmJ65*kXf*pn3zO}2$4u^M+hRZkY-$gg&VM9(+shauyO-3 z>BRT7@6;&^wEoe(pjPLcobyz@Z`BcZ=YJymz1Y8e>L*DAP;i^L`1#9ASqK0KAz;ao z1QJTr!2v1qKMAIQI({e;2$GW(fe;Ej-e-v(ca zvB9kc5xVC#_^|zW0wCii9#~#=2|}hBZP-PVa_H`-3c6twSkAUMcJNBbCx;rcTPP?WKE(tKe za7l;@5D+g&T2DwAc`*K1ToJE+WfWY%C6Tn@b^p1{9i+Oh>2x}O{dEUdRx5yypI$U` c0sj&|03lezJP$tf`~Uy|07*qoM6N<$f~x-UzyJUM diff --git a/1.7.2/main/resources/assets/alchemicalwizardry/textures/items/WeakBindingAgent.png b/1.7.2/main/resources/assets/alchemicalwizardry/textures/items/WeakBindingAgent.png deleted file mode 100644 index 2cf917b971c73d31ff1d150fec943cb0e9788b17..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 402 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%`Y)RhkEcES>O>_ z%)r1c48n{Iv*t(u1=&kHeO=k_a!WBWi%1j~WCMj{GeaUuobz*YQ}arITm}Z`qSVBa z)D(sC%#sWRcTeAd6une-p!hdW7sn8b(^n_&^{N}|1=DS(7y>1>fG!cDbnVBukf5K&#U9#Aw3yt|& zI$KNFYmM}SVmIF35|I-=S)#TfuU~*^r@2-B`;xuNx;ti8vNPR(y)esXR#?d`saGeK zb4%GS diff --git a/1.7.2/main/resources/assets/alchemicalwizardry/textures/items/WeakBloodShard.png b/1.7.2/main/resources/assets/alchemicalwizardry/textures/items/WeakBloodShard.png deleted file mode 100644 index b09932c47acd21e7a366f232ce68ef78ea4a4bd0..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 473 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%`Y)RhkE)4%caKYZ?lYt_f1s;*b z3=G`DAk4@xYmNj^kiEpy*OmP)2Md!tW6J)?3xPtinIRD+&iT2ysd*(pE(3#eQEFmI zYKlU6W=V#EyQgnJie4%^0|TS2r;B5V#p$J!H)bDlkT`mOE{o~~6BfR%$w#>qU%b0_ z(ADve`=9Vv7k0*4m1LkA`%k}|vG?|kShx8GO&eXc@h zu-Bs_rx@d+*M@k1U+2BJ)bK#@;)5C6e_z}_?dXEb2j@QDDDYrSkYl}-X!Y7Dho0B) zo&VfbT3|b~!&%l&|x z9Rro4fx%`+Hogze=AC44EJ6NWzT$HR&q)byexG?KZ|x)W=*s&)tSq88_&O}6GlD|c M)78&qol`;+0GbB7;s5{u diff --git a/1.7.2/main/resources/assets/alchemicalwizardry/textures/items/WeakFillingAgent.png b/1.7.2/main/resources/assets/alchemicalwizardry/textures/items/WeakFillingAgent.png deleted file mode 100644 index d9b054eeaf59883e9353268d820bcf5373fa5fd4..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 582 zcmV-M0=fN(P)WFU8GbZ8()Nlj2>E@cM*00F8=L_t(I%cYXNYg1tq z#((F%?+t-UA`)@PAPQ1SMWuA|3v?_l{t1q53W|cRg6@BKIqj_pk=9yrr^_&pDtM^u&n8B=yh)0D+VO&1%ri4Ibhpxf>0shurQ zrFZ-U&1O^T_4*#2EhA@H)_-&J#<6~2xw9R;%ChX=5;*7h{-vk*oYNO(#M%-sRo%0r z(TMfsmS)MAGh)LYAoSYjr__3HrnfYAfWI$XWqYHd*Km-tsgYrKEWjkL+`+6S%z z2Bc%p(2Wogc89+(2tO~~WwpJkr2r8j2rZk}?h!>hoc-{Ujk#MGgm3XC&c_(9lX_4v z81xCkkV^Fkz00?WH6>1CEFnQ)D6C8_lE`1dDE^K232H(r7%aj#&(T22i&PW^owYS} z7w@y1L_}nO!{Y(V^vBoC&Ckn3fcKuS-Os9`7-Pv2M`0ig0%p&j6JvwJRr#><2ft13 UNnTDINB{r;07*qoM6N<$f|+9RivR!s diff --git a/1.7.2/main/resources/assets/alchemicalwizardry/textures/items/WindSigil_activated.png b/1.7.2/main/resources/assets/alchemicalwizardry/textures/items/WindSigil_activated.png deleted file mode 100644 index df200e2b09011941b1664a55f902a4b40c332707..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 624 zcmV-$0+0QPP)WFU8GbZ8()Nlj2>E@cM*00GoVL_t(I%bk)s z6%$ROI1KWOm}Ls9{`bVV6{V_9ZR z_kcG&V|5=r(4z$ggS>$2g6qLv8$@!6y8T`NtX#BMgmdTNLXdrgFiC!9F-HJbMB^ngk!~Uc1wYGXVgZzN$ne=yhSf1{h-6Q&r9378+H5Gju1Odqu(<}GKf&4xEG&X$!%p2iVT6ZJDqBN=L@rO7 zPMn!A;F=AvZ8#P{dl!-ONrvvo{Z7WuH&mURKnl?i5u0mOc)JPJ zIYWHrI=p-i7c1a-AmSYA169SUOeslXengBw7{T}{`1aL+?e}vG?CdI)siC6;`l*w! zX#KR=Z9y19lJMol>pwiLn$5uX3xV$!R26r==8c~HZRVW#KjSy{NZQSdJP(Bc0000< KMNUMnLSTZ|762^( diff --git a/1.7.2/main/resources/assets/alchemicalwizardry/textures/items/WindSigil_deactivated.png b/1.7.2/main/resources/assets/alchemicalwizardry/textures/items/WindSigil_deactivated.png deleted file mode 100644 index bfb6ab4db76dd7bd580f6d0f384e3de5b1aa9201..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 503 zcmVWFU8GbZ8()Nlj2>E@cM*00CP`L_t(I%bk)0ja z;6G)pP7%G->OdIkS<=$~;wKUM`Is`$fevEb=Q*^yFnj=Dw_dNl&t_kRghGY`x!`se zvXu3QoP^Nq?Hd4@PNc{HU^G-vmcn5Zf&d<~Qr?OL_a)v%W6I$1s5Ex1LhJRK0}v<5 zHAdGsfyJV@?9z7t-_}k~1Di`JZgu9u%*#Ng6Y(Hf3iG)dnCGfH4B`37m9gRhoQZ`e zaRM)6?E%nrG*lzC0+p?uC?eSYK*;m5C$=`f@jNIR$@T|j4;b^cq*@?cg}vU~`eYF) tW+RG%Mid1iLiOytwtDu{^g8iB;~NR@t*J>{_GthB002ovPDHLkV1k{-%X9z$ diff --git a/1.7.2/main/resources/assets/alchemicalwizardry/textures/items/activationCrystalAwakened.png b/1.7.2/main/resources/assets/alchemicalwizardry/textures/items/activationCrystalAwakened.png deleted file mode 100644 index 7fb3dd1fe61eae909c6f4ff1474fd8f51d7b2971..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 689 zcmV;i0#5yjP)WFU8GbZ8()Nlj2>E@cM*00I?BL_t(I%cYY`YZOrs zg}>W5_y9qvtL# z803UONT6e+-NuXOOZTBVkzhPsl*XAkoU16S3NaDr5S0xPgj$j^__W1Ne_b6RXr@at zaefZ(9lfy#w|s@*a|cl%lMUj>FNuZ~CQ8_S|90P!25{D5OiEc+IpcHvX1)NbEGH^p3!2lc1Re8P*&`;)7p>c#XFXYc1x%Gm6{SK!oD%Jkm%}{T#KIQ?kn;K>7I+7S95C}mH z3W_^7C*K;HgTH%yAN!Cf22-)<*D?h z7*og0&QKLO*1nJ7?%AbnNY{2(OJt>V?~Tf$%h?GoU+|p|F diff --git a/1.7.2/main/resources/assets/alchemicalwizardry/textures/items/activationCrystalWeak.png b/1.7.2/main/resources/assets/alchemicalwizardry/textures/items/activationCrystalWeak.png deleted file mode 100644 index d6ee0b77fd428f8916f9d9370494a9fd8e41d964..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 765 zcmVd4I8pr?u03B&m zSad^gZEa<4bN~PV002XBWnpw>WFU8GbZ8()Nlj2>E@cM*00Lo2L_t(I%cYacPZMDj z#ed&0Gi`xBpinSWgklI3B9ux%UEoF&mM%<;(ZroQ{umZ)NR06n6XVY48WM?#yyX3m zfFfX9pmc0IFrD^u;S&X7;@#exlaq6QM@T98pHYuntVM1~Beze9s$-$hJo!i*btnFG zu-ly{053ekcHcgDZ z6na-T6_X|%(@(`;0?TbTWFlNde0G7F>Hux^wP0B&m6f1ryc&9g$XjG90z}sxG)z7b zKQqYNHhanU>`YlW91bGUc4R8W=U5z>HL;|i+2bOyoyA_5W8N&K;dcj%t=Hsk@PML? zPuTtd0*PPRgrZUA-p%l(xP&vsI*Fvgrjfy|72!%&&^hx=r~ujY7W%FvW94wBc0p08 zztl}3lcBk-6~*mF8U|I>)qEHpA+eoC7Bo5m1weC^W6J_*b0553qPiyDtut z=nUYi@=%DyY3#iMx{f>CiuV1@b>}-+i^m}t#FcO#4bt1z>vFG2#avxQN$#M!im9yh z~wk2v0s1$D+Izy(2T(IPpjYRx*jYpG5(3OS^TFaWHLCVhxHyEbW-8bkBJ zh7vvghQ}7iH15w4VP|3e^zk2)gVpr^!hJur_rhP4 z-TI+avDa=N$F(lg_|AiJC04OQp54Emi{JjO`c_UNaetxF`gI3pvVDFezP$TQAsGbEzKIX^cyHLnE7WngeFN=+qYZTFAU%(Aa{J({E9F)4-p#HKf29=}3y2B6R%PZ!4!i_=>t@AYDK6lvWryf{## z=f;w)K_8Bam@pm<3W|z|yzwJO%&w(XKslxK`;C~xr8C!bSQN}mJvS%++@Cc$pQm5@ zefCN5$(`&6%+ep+DG#ka=XKC5`GZC8bg?MSnCAS0<_}i)rD(}M3i%{w!2W85_=9uT z`r9og?va0{b%x>a1uI73lkACW8gdh~Uphb7#2U$@r_!HvG*U=A;rr`j4ZaUd9Dn_M zth|bS4SR;D~-mv_+eLo^=J{$MR?f<9jy$lQo22WQ% Jmvv4FO#ljslotR1 diff --git a/1.7.2/main/resources/assets/alchemicalwizardry/textures/items/baseAlchemyItemOrbisTerrae.png b/1.7.2/main/resources/assets/alchemicalwizardry/textures/items/baseAlchemyItemOrbisTerrae.png deleted file mode 100644 index 33ffb99d7df2c9fd1a2a6ba78f69ccd8e6cb7665..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 425 zcmV;a0apHrP)#zsXS!TSAft(b zqP6Np*V7+GwWun;DZ?-8Z-IP}X+FsGM?i1Ct!Bj#Z(F`X76QG4Ov80cvTk^}sE9Y0 zBcFioUZz1Rv~tVjQHeJqsz<*RF&|&HZA02Ol=n4SDkv1UQ|c1JjwL^8A~M^9e2}Sk zLb_{k&&unKW2GCS3dRCf@TKAfaGtA^ku(z2CB&OTmQ|Wku8x6bM%ZH&RSwNVX#gmdxPhY%JA7jaW!`BGg0J5uVN`P=gzKYzotH z&DHUH{KgDs)jw=&T`0*`fUgt~{6tYzOiZJBAuzv%ZsTk_jYh;)W1r}xZ+`{o_6D}qJ|szU@?5ifa7^dy zW-dg`GdH&*jL~Rq2}2*HEJ`XqK3;jeyA%sQm|m7-sUirz*6CPc5wzNe{LIApY0gqf zX-ZbAK0-LeqXJoIJnu`o(~5{rrOi@N|DA7PfG7achk+tgr1c8fLhzL!}~!;}<;NiNJbr4Ww5_1u~I b{?2>?oh6k!r^M>F00000NkvXXu0mjfg#f)% diff --git a/1.7.2/main/resources/assets/alchemicalwizardry/textures/items/baseAlchemyItemPraesidium.png b/1.7.2/main/resources/assets/alchemicalwizardry/textures/items/baseAlchemyItemPraesidium.png deleted file mode 100644 index 8bcc782c5b493ed89cece11842547f6d4cca8a17..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 456 zcmV;(0XP1MP)OkPkaL0;#e-h=Q;Lcdfx4Y(Y~6 z{iu5N`n3`f{w3c22K=Garwo9I@cxj$JCB$zFGPg8uBEPPdBlvdN<{cjiXWp4uv{)> zu~=ZO<$Arc*=*FSwbUyS*Xy+uMZsh;!CDLOWs@fno2HRG&$-=hSZgWEk}S(e)0C!Z z89zVC_S81MbSBuNtbzUO#6;=Mo*zfl^=V;rO zD2kX)r_Ul*Ri#d+6CnipzQ-6t6h&BT(OT1W9a?LQF`qPedd6Q$=Xp*Df%ExH2!XEa yNYj+o3rO) zrHK-vrTEn|KR#yQf2VP(v2m(#-i*v!-af1Y@Y>F~JuBtcz|OJ8bkpE1gaAUsJ_Wj0 zL4E{wPc&{Eqy&T{5d_F{Pl%CWyX4{gDHmHJ%Qe>X&#i1_pcsW62 zdU?0GL{*hh?&$Z&{Tt;dpav2nK%9Mp#!($r z!RC&qz9oAOcqhDdJhe^1xJd7M#to(sfW782)&|Pb6GCLrDgbC-%=yAB=p*0X_jmFR X^mUPs@aTw)00000NkvXXu0mjfG~u>9 diff --git a/1.7.2/main/resources/assets/alchemicalwizardry/textures/items/baseAlchemyItemStrengthenedCatalyst.png b/1.7.2/main/resources/assets/alchemicalwizardry/textures/items/baseAlchemyItemStrengthenedCatalyst.png deleted file mode 100644 index dbc9c8aafc34c7bd8bd311131f9b1f135fc1b926..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 430 zcmV;f0a5;mP)C010qNS#tmY3ljhU3ljkVnw%H_000McNliru-UAQ}8ZjHN`85Cl0Xs=V zK~y-)rIS5N!%!54pOn(prfPAMIuwx#QaU=h6k4cD{+eB!{1;A|NYSB#xCjQpEM~M$ zwrP{J^yWBd9MVtqg$tK^cpuJr4_6Zr{-e~gV%yMY8`|FhmSq8mzEhI#`}%;`Ts%4@ ze^3Wl3=xr;W16O{^Clvs7qxbAekSSkS9v;}Qm#~gm4Q~SR8dNyl#0#TT7Y>*+LM8bZ<=>ErYwxH9_DrnT#2S6T)n`8W2P7 zyB$VDk4S{T4~ax5=!MyJB|np8SpwiXHpAhF&8-5xw|9HsvGO>HS435u08t^};B YPg^*}N6O9Z`~Uy|07*qoM6N<$f+o7J-T(jq diff --git a/1.7.2/main/resources/assets/alchemicalwizardry/textures/items/baseAlchemyItemVirtus.png b/1.7.2/main/resources/assets/alchemicalwizardry/textures/items/baseAlchemyItemVirtus.png deleted file mode 100644 index f2fee0063dd8ab90fa81768b2258d4a0c3753ec4..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 417 zcmV;S0bc%zP)?=+3fG%`~cq|-bGJwhkM z))nzK1odM?z&Ef2CT0w(%C;7PsA?uybG^m;+@ik~#2V#zji!R|FZb0vnvrQ?)WI9O&oC6=p zFastbumVCGP`|Q4RoTRh2)M)&xDSEX)CC6)%aW-XSFLV%{ao9Su^FGhQH*#JJ)1E# z<1(3Rk4b7a*Na6%9=WRodMT~*)~&-lSFLTjunw~BWBt|GuHX3w(HIKydtBNj00000 LNkvXXu0mjf=~<&E diff --git a/1.7.2/main/resources/assets/alchemicalwizardry/textures/items/baseItemCostCore.png b/1.7.2/main/resources/assets/alchemicalwizardry/textures/items/baseItemCostCore.png deleted file mode 100644 index 1fdfd2d42c57d7a144fcf36771e7b6e1799d5ff2..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 471 zcmV;|0Vw{7P)VGd000McNliru-UAR4IRXrEVK@K)0c1%; zK~y-)&5}KD6G0G$pSim|`+ULjhk~F$bg7`Fqv98&^G~Fprc9R}i6V%~fMhHr6mzz7 zd$+eU6p@VcrKBToHLKM;`_8)q|66kB&1`5_&hIOE7+^Lu@{IAD7huq}p0M8Hzf`w^ z2FdIA}ie6r$i0d zryA2OPExw(0nU@Ve<43Qz?B8DZjjFnm=RtYXvA72ehcuimYWXtlT9WFU8GbZ8()Nlj2>E@cM*00D1FL_t(I%cYacj^Z#7 zMUPGAfe?9!7!(9M{{Nd;AQl}9DI}7WSh#vc1_q{QT2m{lWS_cKx2!~j{|WsrX^atL z%s-Jo-cq$@zu!~WwTK95nyTaR_;&?LDU304I2`D@4iRCoSm2!dqoOCk{lPen6JWVq zQkEr2lCWN{UqBzf_nzlDr_+fL0$G+JB6#mnN>SJKbPu3u8ug?ggh1c-jN=GEnx=T~ zxn8f#W-|cBail1UUv1xQG{(qwyTyBt)*5RqX`14kBS{jnEW=t$S(aF9vDPXPd2S&| z5&&+u8(M3+u4A=YF`v&Fh5-QY{WPy>2KVa2F!1^LNeBUeD2k?Y+qOheMBBDBO`~31 zIG@i9!+_SBs;by*HYla&`<@U2T5IAsez8$Ku5wjXA|mW|yD8T+4I)BO6j*DYs=wH1 ztyPaU<#~=$3hzD6xwo6BzWYpfP#niN=eS%h>PLV_kcdnQe+>98z5rm=$*7hJ#T)H=O_Iu2Hj2h<4_wMck3SIGZaSX9IeRh(s&_M@**8MD^ zT+;*AHF~c+B^mOx=-anLO`n84TYAn0n*3N;FJ+pHO&Xs%KVy->PS|EHewtRV$z?l$E`3Pp_ z$^wB8E6S3*k9IftvC1%{ug<;QueVwfUZ7v!=>Z=Db+|6Zw5=!tJK z&%vJ5ghh8;xq>PK>Si&Ceh4jO`m!%_NkF&BB@X|r=blogx|6b%S2F%PU&*i~!a4QN T)b3e8|1o&F`njxgN@xNATKIKf diff --git a/1.7.2/main/resources/assets/alchemicalwizardry/textures/items/baseItemDefensiveCore.png b/1.7.2/main/resources/assets/alchemicalwizardry/textures/items/baseItemDefensiveCore.png deleted file mode 100644 index 49c595c35c93ee2a7ef35adaf6c89dfeeda9cdbf..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 502 zcmVZ5010qNS#tmY4#NNd4#NS*Z>VGd000McNliru-UAK{6Dsi0t2_Vz0fR|I zK~y-)&62%t6G0S4&+g2umvwd>DW(G2Q1~541r)%0SaM+r35f@wK%$~R;(a1&KLElK zP~kYp-ktUQ>|dG$WlbXJ;I?;kbiTPC{ObvBTfBbtvh&^}g&>L|-n@Mm{1sq6n|1)t zp1;65hp#+BNsIG+1ML2E7R0S+da~MV^ypDWxvhZntD@ z$G7ia5kj)f^B$mQa5Nqh1mL~n;2=e7jgpGQnBEn_{VUwN|A3}$`Lg^>kr!yK@l}PjmMl$wD^l+dt}Fl^9v>5_ s2x|>=0Y6q}*WdiP%2$otga3zf0cPm98WtUqV*mgE07*qoM6N<$f=tNOvj6}9 diff --git a/1.7.2/main/resources/assets/alchemicalwizardry/textures/items/baseItemEarthenCore.png b/1.7.2/main/resources/assets/alchemicalwizardry/textures/items/baseItemEarthenCore.png deleted file mode 100644 index d275736f943f4192cade3ef5c7f388dd7d1877a1..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 454 zcmV;%0XhDOP)VGd000McNliru-UA5@F&gc!k3IkZ0aHmt zK~y-)y_4T7L_rkCKWAp{y)GgzQg|V1Np1Xlvhv{XyHY$TdGsSn?B2aUW{!u+Zi^Ku z=WUuf-!tDIM-KM8{G|+kEH~|_KfWz%VRdrHCo8*My3r701!+_1emx@@>CIZ+Dw1Qy?A~Ff! zn-XnG0)PSmf(L6E=@7g{#gWcbpKS~tOaguwxrSy;P#kCp)nJKw@G@ckNQ2|^u3X%M z2-r08HUgGNL6aQga_$!^POrvRehQMw;&cu1N7XZUpW?$DmRm@E5F}ODwBYM^3WnyMF0Q*07*qoM6N<$g55j4eEYueawTGU=YH*LbS$-n(?x42AQ e;`99u2gCAY&!hiyH=O_Iu2HJo=ha+Rc?fq5qyPjv*GO&rUk+ci4f)wLksR z1us#dHI9EcJKm>VJn!hSRQihhq?tQ)=7?PqxF}ok{QAby+#lJSR~~t5yh$>GA+@6Z z=gw=(q@I^AU~zR|e>?lR`Rc^}x#s$E4y;~`LPuCW+JW?!#xCy$tUDvPW*Ub{qH4RB+MPWEU@Ev0%GuaU{upD>J9l z-Tccx)RY^zp6EW=c0M{j#!*#6^ujK^`%CQ^&9v9V{@$gw;Kz{)-rcq@t{$xXeOff7 zuHNc|^>sy#O$VL{%;J{wP)VGd000McNliru-UA5@DIA8^vQhv50d+}4 zK~y-)#ga{K(_j#WpZRRZc0-60+(Mv;RW~d^+@Lq;o@;R#&H&3Ukf;Py>LNCUKpV%2 z?Qez!2oX#wc71pA_vjtXz->!*70Nw~^{+tTU`KB+S%UFG*gHDJT?H_V;9Rj_qigTjgev|9K=JemO%r#hjq^CEa_Ee`h?n>5=|aaTn7yNB~_8 ehd1=zu6_WnH==*`+Ut=30000P)VGd000McNliru-UA5@H3pr+7Igps0d+}4 zK~y-)#gfTR8$l3;zouv69^(bGNJxNCSY$Xrl$VK=Cq!`J4LEQ^IYbr-0tFC?*^JFH z2G4k=d%C$<*fIifp>CzB`fB^(vrW7f@HeXNrLTV;iFX0~jj9WzVr6|5i>0A&iETo7 z&>RX9gT;&M%amk+Fzi9xTjD%z@IAkZFC>9bjCn@_!0R^S}N0ZEn; z+k}U#&7@ah%Byf^?irV5gngpoP2h|LKR+DM{!tSbfBtik-XM`APBZRTxQzc1c5e_u z5qTExY_jhQ-rx-$vksB%qMf0oTU@pGaoQkMfufqHEA-n!0w`4jx^bN-3K4-q)@R-p e(nqBH`SuKE>#Zxx%kgXg0000VGd000McNliru-UA5@G7UvhSvmj!0kla( zK~y-)y_3Oe6Hyd~zkBaYGLtj}8%J#+6&J;gi_+OB?tF$Sf-6_<6kOFOh#=xqxKIK< zNj5GNL3$FGuXMp7&!MVwe5((hc~jcKs&=+g!YC(obY*W(Her%P&eR0$LNQplm)4C z%L<$`RFq&+mfgT( zI2D@C(GP}DYS5Ks1@Zkul@1fW)-yt@3ACo+8BD2Y=#r5?fy9RspZM`pwVFh|0H+`j z3>L4nL?X0OfxG}$gL=Lm<@nJv#rIQw4u)9Y66PS|1vv$bH6-W651*^QlKA_qZ(qw+ p*gOc03&Bbd^HSNl@ zoxV36|yh`RVo8B|;Swmf2cp84PckZ^} jP&1s-oFLSE{0HM=TVIavpN{VZx}Cw()z4*}Q$iB}5pr$7 diff --git a/1.7.2/main/resources/assets/alchemicalwizardry/textures/items/baseItemMagicalesCable.png b/1.7.2/main/resources/assets/alchemicalwizardry/textures/items/baseItemMagicalesCable.png deleted file mode 100644 index 40606587c0ad2ab997f8922a98b01baaa799046a..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 284 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%`Y)RhkE({xitX5C6w)^mS#w$IQvV%lzs6S&&gHJzX3_EKa|@WaxJ|K*05)@qNCC zO$@B5>^l6NQx&ewXcG&RIKDBN-_=9XRVnw~m+<_wxSZGG*8^fs`a1CPYrTIP%~$3B zF~{iEOCQUon=DR&A#%xYxBl+Ai=P(S4H^(T{c{G zI^Qm?zB+5a;PDP`J-6l~GpgCyYs>cem}M2N^l09)IV1Glxw{X9vakN%e_>A9PScM% a`%nI~J#jyG$3CE=89ZJ6T-G@yGywpJRc-|U diff --git a/1.7.2/main/resources/assets/alchemicalwizardry/textures/items/baseItemMeleeCore.png b/1.7.2/main/resources/assets/alchemicalwizardry/textures/items/baseItemMeleeCore.png deleted file mode 100644 index 77af87239ab5a01dcd417af7f5bb35a3a012ebb7..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 461 zcmV;;0W$uHP)VGd000McNliru-UA5?IUwS=wzB{L0a{5! zK~y-)#nMe{Q$ZBQ@!!o&n?@5`6jXH6t^~ndcPd@Qjp9P^yZI%=t+b$m1y^p>jVKiH zElF<^)BBQ_adEY`wTasv7-r6y^ZaM#%;BspTC}mfE*$soeV(5iEfRL_-y}ce@E7OX zc6L6^1x5dgJDm+KU1#qd@e<>_9PtwAz;2(ryOpkX>Q0w8=zS^Yan2~ANJ$4^nw?BP z0=(K3I*&H#?a{he21m&${#Kh8x2pQo|1RPc)atBW;p5x#)F}!qquD%)rC%#x1!y$M zM;!blO-tdq76HQv{k#OdXPC@+LYPfC_(AfG80`z}=fr_VL1RV_eOj$KfZH#N=*{=E z+L;yXHyO^D%;@3+Pa_^A)i2bK7ic;f&_IS-#?`D84wdzou+skHFS6Hngza@9JQTtW zAuJ1FO?VOs&l)GY^S`b9{F;z;>5f^g^LV^C_iXJqNK=L_`VB}A00000NkvXXu0mjf Dqb$tE diff --git a/1.7.2/main/resources/assets/alchemicalwizardry/textures/items/baseItemObsidianBrace.png b/1.7.2/main/resources/assets/alchemicalwizardry/textures/items/baseItemObsidianBrace.png deleted file mode 100644 index b4016353ccbb9c01ef9a4479a62e4f527edb957c..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 325 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%`Y)RhkE)4%caKYZ?lYt_f1s;*b z3=DjSL74G){)!Z!AbW|YuPggKW?^vwZq=#UML?lTo-U3d7N?g^+RN8uAmXZfeyyu8sd$2L(tMc2K<{7TD{Pm*Q RwSc~3@O1TaS?83{1OUTLdwc)@ diff --git a/1.7.2/main/resources/assets/alchemicalwizardry/textures/items/baseItemOffensiveCore.png b/1.7.2/main/resources/assets/alchemicalwizardry/textures/items/baseItemOffensiveCore.png deleted file mode 100644 index 33dc2d425064582429903fa52f7d197d814c2a3d..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 353 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%`Y)RhkE(~4_-VEMl2N~A^MK}vQ zB8wRq_zr_GH=O_Iu2HJgh=TyqA>%h2D9(IEGl9K03)T@2~-n>wFFM z0&eja6IOaZpQo69Dzj+WJ+;V5hofoZqL?iOy%m!CgRRZQ*HdBVip8H-oJuM) zan!vXajD%xu(qCcQrJ{hx98@Hxxwf6mWY>`b_xm{w-r|LaJtU_^3BJ2ryOsbcBwP% iRM9=#`uDH-K1QZhMO!V^U1tNG&fw|l=d#Wzp$PzReQR9+ diff --git a/1.7.2/main/resources/assets/alchemicalwizardry/textures/items/baseItemParadigmBackPlate.png b/1.7.2/main/resources/assets/alchemicalwizardry/textures/items/baseItemParadigmBackPlate.png deleted file mode 100644 index 2b84b9765924ce2c92b0dd29a9d3551d3cd44f83..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 306 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%`Y)RhkE)2d5J`7&lR{mZK6yYrJ zh%9Dc;5!V$jK}j=qyPokOFVsD+3zuP@^Yx}cJ`YJ6x#3U;uvCadTH=M-opw!CLNrU z{>)tXHo-$s>laZ=pUpdtS)VZc!(dodF5v#YYxBbQ33tmZWIQ-7^DHiJoxpO| zbBfN+he=VJdY>4ab>-2E>Ak?E`*d08O6ixjeu5Qg|I}=nc5VvGUi^aL_pM8ARpAc} y{(hSJ(ni8c!P{r1b*9|1{8CnigtfVOkJ-=cD{3q4x&9aE6$VdNKbLh*2~7a3)^U0O diff --git a/1.7.2/main/resources/assets/alchemicalwizardry/textures/items/baseItemPotencyCore.png b/1.7.2/main/resources/assets/alchemicalwizardry/textures/items/baseItemPotencyCore.png deleted file mode 100644 index a4d993e885cf8f138b93511e7303abbd072ac7ac..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 378 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%`Y)RhkE)04gn7Q4@9w@?D;1OBO zz`%DHgc*6>*=4{rhMC3#++p#S@^Nc7eBh z_fZbkzaN|C&6%Do{h{UMhR=@`x32D=pH?W{ASAx=+1p3cm)}`e!Sj;$jmW>$JVGd000McNliru-UAR4I0cIi#o7P>0SZY( zK~y-)#nQb_0#OhJ;18l~#6N;2CSYPgZR?Bp0=}IUg|YG-q%rXcG$9&AY>>O_?pk=o zbqQK}ntSK(%*o8~-)O7~TvDbL`*cO_lJkmk6Fbp!mYiW9=atZc;J)3~ijF5tYsE!WH^W`4wXC2&n;CUF z+So->BM5lGZIU=lzxT8D^~o`qPTll+vOE{E%wRH6;5tdni$Z~u5Pqopv4tV!QDp|B zZ+ed~Q=5Sxmmk00000NkvXXu0mjfEn1=g diff --git a/1.7.2/main/resources/assets/alchemicalwizardry/textures/items/baseItemProjectileCore.png b/1.7.2/main/resources/assets/alchemicalwizardry/textures/items/baseItemProjectileCore.png deleted file mode 100644 index 6719e820c1817ac7267f3075894610f562221dd5..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 478 zcmV<40U`d0P)VGd000McNliru-UA5%3?V;O*T4V(0c%M_ zK~y-)t<%A36JZp^@!vO-WC&K#hSHT-72m*xAc9>8E=An&?q}>sH5y&l+|4(`rGFvIGFvOM|KGpyH_~v4 URlWBA>Hq)$07*qoM6N<$f|@eYhyVZp diff --git a/1.7.2/main/resources/assets/alchemicalwizardry/textures/items/baseItemQuartzRod.png b/1.7.2/main/resources/assets/alchemicalwizardry/textures/items/baseItemQuartzRod.png deleted file mode 100644 index 46e59b32a340819bda956cc1a8e0e8c29e9c6ae2..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 251 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%`Y)RhkE;e!fgJD`wkW=KSdbAE1aYF-JD%fR4Vl$uzQ znxasiS(2gP?&%wlqL<3fz`!Wy>Eak-aeC?Gv#Xj7L|XQvL1>h;%CKmXjrDHP1@ z#NoGm^8UMd5!oj<@g(zvhBAJr+Uvq~Vj2Iv>aIl&9F4_%$vg~EuQPO6PhQ!5O)6XW zutCB8`;x~eKL0G~81*{R&GB{!^P+7U-Pjc=>zYu-@3~ty%8D(=Uh)_-`>6MaFq1tuI&PQmK(ELKF_#4ZCmbj=QXdZ7-!^d zzoxYG&pvj=n=7TB%fw!v_}tR>vd%7p*NzrE3l2XNaF%UL+})Y|pXET^{^y^6=9nAK g4Y{~p^iRq@2C3!iGS1Ak$pHnSr>mdKI;Vst0KJs38UO$Q diff --git a/1.7.2/main/resources/assets/alchemicalwizardry/textures/items/baseItemScribedRunicPlate.png b/1.7.2/main/resources/assets/alchemicalwizardry/textures/items/baseItemScribedRunicPlate.png deleted file mode 100644 index 81a8df869afc1077e9394600998779ea162d1fac..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 513 zcmV+c0{;DpP)03B&m zSad^gZEa<4bN~PV002XBWnpw>WFU8GbZ8()Nlj2>E@cM*00Cu5L_t(I%cax5YtvB_ z1@O;{V*LhPojOQMhi;DYCQ-yev`L2+x1#@?gFnF^gJyj?x>sn1LaBs*&j~qaXQ{@l&vpp89YX$Z0N7euvKc~N{|iuTB5$p(8ZIm- z4iA-kdmaym;Caqr8sPloBj>Cgf?QR8bh}1nX@K?dU`=Zhs4>m`(aH+_zO_zAiTf$J zlM>j#jVX;zX^^YRw}S%>6nGn>XEC~&k`l+bK1;;SW-~urUe@2)0qh34X--uAW%L)=Tr z%NU(Qi4XXK_p?NNiox#g$!Y3FYfPiU6VGd000McNliru-UA5?C>IIbFsuLo0X|7Y zK~y-)#gffR0#O)-pBbk@X%P{D$UsE}bp@^31c5GsT34GcArQI(!Apo%<|6trq;<3k zx&c=%Z6kpe>6szZw?&gUzOFM{&j znz~(|-EA9~1*U*1=cPIThx^f@+?H1*Z(TA;$)qK7B$-Lc&|ifj8pPP4i|v4#z%q(& z0uMk8tW>0^J!pMrD+WxXcqVx50CS*rA8@b-gD#w(L#NXMd|(61y9XWv{`N0b&mZEz z_v^qsAm9`5!e9a2?^dNUgrL{^0IEO>cnM1i=mopLbt49Hb(56Lie#2Tlh-@a8&U&h zPr|?8ghF9C!1GYs08GH*!XMGRxSUa;h|~&HUy+*VIEzlt!s;WVoXev|10=9*$md2R baIEzOzk`?B*H-nU00000NkvXXu0mjf0PC^| diff --git a/1.7.2/main/resources/assets/alchemicalwizardry/textures/items/baseItemStoneBrace.png b/1.7.2/main/resources/assets/alchemicalwizardry/textures/items/baseItemStoneBrace.png deleted file mode 100644 index 5a1103225d80d74642e7008218ac4b0c1816f2c3..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 308 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%`Y)RhkE({F}bqv)PWuGwvMK}vQ zB8wRq_zr_GH=O_Iu2n4BGq_?M$&ip@W_-jv*GOljqD@ecpjHLCO7c z%iH*W{x|+TweMm)(bQt%?(UjU?pPAS!ffZ9Fl)MA^ud4!Cl7ZdIW(&CKfaWzT_Dxu zYuv_NAlc+?%nSs|+aek=Z*0qDKm40tUZNoLSSABd^zfm_I{%9|6-&IkyT3Wu_+CcM z|A)+n_x>)Im?9D?!NSVo;mv-cZk|yoSM&7g?B{MIDv8|sIIaG}F+O3#z*haPnH`;4 wHEjlhizV+0^klTm?C>|%JK(g=O@e_T{nWfIWxIb&1$u_T)78&qol`;+0ORv*1^@s6 diff --git a/1.7.2/main/resources/assets/alchemicalwizardry/textures/items/baseItemToolCore.png b/1.7.2/main/resources/assets/alchemicalwizardry/textures/items/baseItemToolCore.png deleted file mode 100644 index f6dd600bddd489ba11303c56ec21889d40e9cbf6..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 453 zcmV;$0XqJPP)VGd000McNliru-Uk8~A{8blF^K0jVN zj=f&nyL%`O5Qo@^E>oQ|=bKmG%p4v%l5G#~PKEXRhcBD8$)>{joRcFC22>R{W6mx& zgOb0CUmjB~nB{ajlojRbR&#cF7t&Ys4ms#^lixb{0|FhI`#5P7L%@$>#T*krPYoSr6EJYftbuj-yL00000NkvXXu0mjfMd84b diff --git a/1.7.2/main/resources/assets/alchemicalwizardry/textures/items/baseItemWoodBrace.png b/1.7.2/main/resources/assets/alchemicalwizardry/textures/items/baseItemWoodBrace.png deleted file mode 100644 index 329d46bc7e70fef9460479dc10ab5b83ff5cb8b7..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 316 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%`Y)RhkE(}u{avAiwtIJG*BAf*t zk;M!Qe1}1p@p%4<6rdn`iKnkC`#ok(22s=feg`H2g-&|9IEGl9PQG*E!YK#N1SR*& zJg0B|PmehFuRn=llY-(|JGDPIVjm9A`q0uLKI&d%8G=Se#D&^Z&m+vuZ+HRKZX4s1H(IOQCWu8 SgBn1i7(8A5T-G@yGywo}^Eqq) diff --git a/1.7.2/main/resources/assets/alchemicalwizardry/textures/items/tYf5ft9.png b/1.7.2/main/resources/assets/alchemicalwizardry/textures/items/tYf5ft9.png deleted file mode 100644 index 052c7ca352a90303bd87cb43ba1f634423d48ac9..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 291 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 Bm_q;n diff --git a/1.7.2/main/resources/assets/alchemicalwizardry/textures/models/BlockSpellEffect.png b/1.7.2/main/resources/assets/alchemicalwizardry/textures/models/BlockSpellEffect.png deleted file mode 100644 index e22b9c40349441ae1673097274da3d2b689e1af9..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 985 zcmV;~119{5P)VGd000McNliru-U0^#01KC)vA_TT17=A? zK~#9!?U>I}+g23De^aX>er zR)X9SV4xL1JGA`@dyvdPs|d>*D6Wb}7y!z>>$UOE;S9MyTQ7l=Lc9q69(eoEZQ9M} z_rYn~j+q8ije!KHXZ)Ps2i1Y_1!QWF+_G)CUFdkw^*|qjo4hCE+7JLxn+K-@jW0pJ zJ=@mK+W)Qt#sRN!4GHLGpyR{LKlTl`<{)J5jK0BO>*H5Nc(s6U!T@b$UvD4y&wN!dV@>xYJ>3By$XpfO()| zH}4-pdjX=QUa8xJP6<*CnKxD!+F7W62T2}u3v&P3zVUr%-Ug=*{_%8(qpGZ6nls>5 zz->Ub0%;MV2ataW;cKXV1F8;w1ZeRIubx;P33tB-s1x856 zi#F#ofR}*t2BP~={2jbw=w@xA_&X33K{r5GAiE9zD@f+S1VG#V@>@V`t4J^f0;$6n zkd*92sz9eOvkl!@sL$Cb$Zgw_sOr6b0R(^BRMBnV2vieHkNZvunjtvdDIj3}xBieZ zPy(t7Ism4?G9`|JUy082%d?=Kaxl$hQ1|5$^f7Ygx;*6md8|#g_+97(ZwgKg#)+Z0 z2q%U^4fZ929x?ewNN|%=U}UCb6sAT*Z~{cIU*yzB-{hx`mk1C7ga9Ex2oOw?5xNNF zOU^vV2wlc3onJ@!|NY7oBQ(yh!H=1xVe1(FywMmeiGWF2h(v(kCX~SmJYTr+DWFfq z=kdtPppo+cDT7xpgC`hv+&$`(COtCIkwejIB7z@?+@(b9Q^$XH0w!f4t9^R3Iz*(D zq<|101PB3w>;E+q)@s&mP1Y4-n00000NkvXX Hu0mjfAnLK& diff --git a/1.7.2/main/resources/assets/alchemicalwizardry/textures/models/BoulderFist.png b/1.7.2/main/resources/assets/alchemicalwizardry/textures/models/BoulderFist.png deleted file mode 100644 index 92839932f539f9c99c14e1429c3d6bae1f31f378..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 4025 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 diff --git a/1.7.2/main/resources/assets/alchemicalwizardry/textures/models/EnergyBazookaMainProjectile.png b/1.7.2/main/resources/assets/alchemicalwizardry/textures/models/EnergyBazookaMainProjectile.png deleted file mode 100644 index 6be1c2b51ac0692f5cc0efc05f8492bca93b02f3..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1948 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 diff --git a/1.7.2/main/resources/assets/alchemicalwizardry/textures/models/FloatingBeacon.png b/1.7.2/main/resources/assets/alchemicalwizardry/textures/models/FloatingBeacon.png deleted file mode 100644 index 7882bb35971c2b3308580084ff7e0a8116febfd1..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 805 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 Y3yrpxMfrf2L;wH)07*qoM6N<$g1fEc#Q*>R diff --git a/1.7.2/main/resources/assets/alchemicalwizardry/textures/models/ParadigmBlock.png b/1.7.2/main/resources/assets/alchemicalwizardry/textures/models/ParadigmBlock.png deleted file mode 100644 index 062cfc791a535fd72d58f2c3ef6956f5e482bc2a..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 923 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 JPDHLkV1f~wyFLH_ diff --git a/1.7.2/main/resources/assets/alchemicalwizardry/textures/models/SmallEarthGolem.png b/1.7.2/main/resources/assets/alchemicalwizardry/textures/models/SmallEarthGolem.png deleted file mode 100644 index d4e5b8a74f4279107410b786d86f69c6242b277c..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 765 zcmVpF2XskIMF-sp1{FF51tHUs0007!D8vq4x>j!t;yB_QB4045B;7<-)S7YtATh(x1Wu^cZ%+sJ+ zN(g8D%>nBe$W;pldr2yT5v=a)Q&G$A<&#*QFacyU1^7co1glyw;8Pos8EJY+DxRI( z6&Nz-H%bIwE;TR;!whONk)fBQGqSNyQ z?1k~F&g2HD1IxW6{dzFQOc$s(q4PxOfqB)dDr=1~pZBYW);G@#2e}n00*Z386JrFP zzMrxo=Q?c-3kcosyTS%W>m_M%rf6H$VlTk%_eAcl$2u58Et-sq%ueO17T00*53VGnlk06w{9MI_+p=b=+B>Ep#=WGlF?!UDiB46+$!pv z9?XPToZ<4o9te6GC3;fVKLVi;b)(LmMq$9c00000NkvXXu0mjf4B}hD diff --git a/1.7.2/main/resources/assets/alchemicalwizardry/textures/models/SpellEffectEarth.png b/1.7.2/main/resources/assets/alchemicalwizardry/textures/models/SpellEffectEarth.png deleted file mode 100644 index eeb026bc6153cf6b2b48fee5842b92adc7377288..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1833 zcmV+^2iEwBP)Z5010qNS#tmY4#NNd4#NS*Z>VGd000McNliru-U0~|2|DVAw8sDd2DV8= zK~#9!?VC?*99JF3KfjsTf8LGPt>ZL6%z+cGgb;@!1RP45sFJ5bNGNK>g(8A-tA<;sKpfbpRidO^IKUxNkQ%`SRMRviiQ~0*Jv+Oz^W*S#lHKwCn_b)4 zCHs{u?R)d)&Ai|H{l33H^DK0MzR0V;dnxlCK%=QNLjhpR3-KE8nR$zB%3Mp?=GyDO z@r8s~bzN<5UoDjmeGaEfgTW{q$cJC`c^$vXwr`Ls? z17!~sSjfTsiupa45`s{8;RtvQs0WHnu?F-MKrH}2fMZ95AXMhF;E37v;v8%|QoM$8 zqG+-0Df%LL`H*UohhMmJGS*W{ynu1%umBX6VkG!g$5L!j%3jDnK2@qUWye=GJ>@}F zu`K0~z`@9Lq3#Gc>+FpAxDKCF2Nb2W$&$AY}{B&nZC&3t3^Srlc%5 zl9h=Mge-vV8f4-6UJ{v@Q35t=GA6&g)Y%$SU0+9?~n04jCG z58$&!!w>g%1}{D$tS7sdd;#Om;hep)H-b}G1hxd406NbyizUVp_|C;K zXeYhd@nywn{$Cs^$}Hf%j0X>H(*b@Zm|>Z<#}9>UyM7hQE-y*YqPBfRgQ z=I0;3^002GbfL zm%3(*=P-TWin+`8&%LddfV*K#>ek9!-)Gz{hy4Br8D0DDsYGsgVtw?Vew0zif*oIZ zr%lDXd7X2|uM?_bi}0&^$pp|*6m2K5_=CC;U_W;`ZUAJ7`D-=@kIkor5UAD1G=V`S zvBNBkh9T?*@Y~JPJ#9W}|Lmhz_}+8ZI8jXQ4xRYU5Axx0A@tIiXx^>?(GYkIU$B6e zTF?92lOn6>=xkr5vk;p|1CkUu+l6qL8uNIrGm&8TE^-vJn-~(j6lSV`sWNm2+!w)lns?u4*%tE)cOW9 z2dV){vbIr*s0%q*%0D?^oll#^gZXciLV5x?;Gog%&{UG$JSYvA8W**C(CP4`F0@yK z*nS+YJ!(uU7@0N!48lmK#it38w`o6yGtP0G*(tG^2}~KH_@dne{$CGr&oILb2ao>& Xdnv-ECL{}e00000NkvXXu0mjfV*Pdn diff --git a/1.7.2/main/resources/assets/alchemicalwizardry/textures/models/SpellEffectFire.png b/1.7.2/main/resources/assets/alchemicalwizardry/textures/models/SpellEffectFire.png deleted file mode 100644 index f079a183cfe4479cb263ab0e21386bfa3d555fd2..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1721 zcmV;q21fabP)VGd000McNliru-U0~{FEzL&Kt%um21ZFl zK~#9!?VHPQ8&wp>e={CGV#j&8p{df802Pl`LM%`>WrJ8$@~|xeflyUiMe06(MfQ;@ zp(;W`NOZ%3DM$#~J+J^31c)jrp{0-1b?n&jV?39|or&%7_%U{z+O3ZiHFxITYv1$u z&Ua336+A?o;7sZm-wGA9BIFV73JaM_dqSniJ@JFTAFGr{SHC^VjDCQinE}U>_uacPr%GC zP??16Jj{RT-vc(F&U%X+{2t9bfZPnI71(_qw8!=D$`SdmrGii)IK*C{HG5%&pc01h z2h!b3(=c@tigOTs3^@zb5~PoTwhQ6}G39r1em?w?uGc>>4BrRnbq^JZZL=;AJQdDB z?huq!*m(&i{(wLh3eyr4Cx4ZzgSp|x0B!R_MCul#V-oO!TaaIea2Bipm=PG;gm4P- zFT&U(2&ADh17gC)1Pihuc6LsH83baGI|^1%W(NnUS8eMwSj`pB?)TRWV_)`Y?g2AE zN*+GE1?5@D%-gB%7E}^oY7n|FaiJW6^lMOvgI1DC0mvSQ;t^2u5Z}6k+>h)%_#4B@h-Cp)dilf2Ajw(=hjy ze`G(<5Kv7Bl%&==SP>a0;Z2B6O2pSv5ZQq6T`0_ehyrE#6JH0i zGK)lW!w>>*B1#Ec8#|KpC_?6UOOak6f)IKDg?Z^M+9OG!tjQ{qFe4xo2v(pHf?^C* z3ueD>9s+|vgtVET8W#vi0BHp(0Ahj#5^P6*BvUsp&a85ihff6+-dsa0U9F}LuXJLZR%xk|SRA-w=~;MU_kh)!2EwXg;2w7(Uh7tk;Ygc`n@YN+ z9kuLr{RjgFK>?R^y^c7z$DQ`%y!IJ^;E<%l5fO4*vKi-gSA@-~#)Wep;CBHw->L`A zhItoUYmQcb-TDrp7G=k&JRt*EDajs%6^7@2@DI3JH(K*5i#x3v8`pK7F0BykE<*e_ z$RC2}Iw)n?!?c23R)a}h7xGIRZHpXtCFoTRF5y&z>{Wv+_T1%9S3tkf*nUBwZcg3X zW!qH+=k#~EvSm;>3`-du67bn$gYpbq+|_+4b1w_jTCCH4fZyK0`)i2nx-OFXjRwHn zTvJ3+*TwZVVCu+uP3OE;HNeNyx_$UAJ)kjG4Tr$kLpfe(IJ4mfsZk=8hY8muddBBY}*>vg+NCgld&G~E14Q!6ScLq_3 z%HJ=RT4$XrrhFze_ym6n(5kU0LCXO+_Xl|aV5@Z5D*;j}pqQX#fbrII$Nz-FVGv;; z-a`nqYl$6XW7G=EKf0b9Zyxi`_`Q=lS4;!ZML=tA%eTwnZY4Nr&;13ReLV?L2Xf?y zz3!;JFV!Zi{W*2xIqDm+zC6HBle1O{2k9|;d!2O@+jz)s!fs$daK$xVwx2jeNbgh6 zQEOHUJS$C6jUf?tI4$f`bPY^DV8w$zI~dadydKZH1zT-D=w+)E)u}AI#@Ac?CCae( z*Xu}6cP=roP0?1KwWoj@1$T=%+91b#vk-7BUl#)1V!{T9q^^sku8R#2?r|rU@>=JN z2figXYKlJN(p6Kmld91xEp4tL#25Ale*o4BC@;XVuQ`zGG@dQ7ZWeWVk)o~k7m?TN zo+J}=Uykxy40+}LrK>tg9pSXcZ=XgeQ*ym10eRpXupWUDfQ?g#z@_fVOwS(Rr)uk_ ziAoNvySCL8APnLkd3XRNH~<*XZ}GY`Z P00000NkvXXu0mjf$Girc diff --git a/1.7.2/main/resources/assets/alchemicalwizardry/textures/models/SpellEffectIce.png b/1.7.2/main/resources/assets/alchemicalwizardry/textures/models/SpellEffectIce.png deleted file mode 100644 index 33b61d44cb62c30209265c76bfa77a2b75fcf755..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1481 zcmV;)1vdJLP)VGd000McNliru-U0~{GZy?cY-#`i1y)H! zK~#9!?OIK28$}fUX1z&pQ%XaVC`xLn5*1Q=Xb~0W0ur2%b{1}tIC7}uLrzEpAtBLY zq2cO7Bo4m!>Ww&&!ZAW>g-{P%h-3kx4JpA5rH$>!VQ1Xg+5dIy>?VGawL7~rv!3_! zy`LF|0HVuy@68SRHs~D=#C5{^c>zi||E7^%LtFMg6{Pe*hxRa`ICtUWq;XwA0{i+-3 z+)ge7AxZ1YPH4xdcZJq~Rs)n~fMkT!1StVM0FmgNCWw*tJV+oEHAkQZs4A`A>y)(L zn2K5t7&M?bjG*Qy$T;yDpi54tI7tpV{>U{zqN+q#y`6-D#w8t_k8Ci4;zG+o$B!`} z4-A-Hu|0u<-cA~d2F)`D!GgHMaUi5iGA!m^U-o8%LH*X39aKIF*mSuLwBGXO9=?9p zwK3mHyMQWTZ*1_ne4=kxDZM|}vSh4(ky*?xHz2sCwO7Rx83^$q)f~;R zT;QY>MNJfhbaSd4l6B>#9>t-Tqs z6D8eWt!`(^Dt#uPS8&r*bfc=sNf|iCfS8(t&jjkW-vlyZ0;_HlMVUZcS=-{AqD&y~ z-e6o5J?WIGD4HZ|4021Y2I&2ZgkBqP{$%*z5}|Yk`0-MFF>_dfR;HbyL9#~b03~rU zxw8v&j`)a`(Q1IKg!MQz$&r$lyFu!PXzezK#W~50@XB{Y*M4^Q5REB-l>lpjV4MOv zZQ$znL}`!e92x_H+)UDtG-(l)Dd!DIl(i?9fQfm)d>LS74lrQY6m)1RjXe(w0}A7! ztYN3ad0l8&gjn4W$KmR>Cu&T~7*;d}#8LXw;sqm_393a=c^z3Ca4aLiu?ZA}WPG8T jz;QjuJ*F{@Y54R%ByrtsSoYAB00000NkvXXu0mjfpnjvY diff --git a/1.7.2/main/resources/assets/alchemicalwizardry/textures/models/SpellEffectWind.png b/1.7.2/main/resources/assets/alchemicalwizardry/textures/models/SpellEffectWind.png deleted file mode 100644 index 6270aa80757c2791d43613252fa771a3ebc088cd..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1679 zcmV;A25|X_P)Z5010qNS#tmY4#NNd4#NS*Z>VGd000McNliru-U0~|0wIGJq~HJm1{_I5 zK~#9!?VC+&8%G$&f4kb1Z7Ejl*p5vaL7}&PfEGeq=p~`MJsAu+hBjbm4>=Scdg=!- zxfDWcXu*db+!S&t5}~EUg4WyTrh?*phW7&%Jy4vYswAO01T50uSOR*j>(u`(C zJI~wv|BuEBJ|f=cnzH)teE??WK~*7t1jQpcK#PJJfpVcf>DEJqkYbpoaJSQ`)QPX5 z`t~Z!py?2shDup(R#oL6fTn|{!NoUVGR`QA=DYvD_z_LtLXX119#DnE1+c3isxTFU z{ap|i=#zEDgp~AhrLiM*@@uqy^5_IO&NRCSmIZoLzS_3*3QdP|3CQPOFAq4DiD|f? zL+%g|kjp~soK(b8QYs>sb@E1BdBjnu_`Rn$TC*~2(&Z=PvQJT= zkgJW+WWNw_bO5CS++->K*}9cy=b>1T zedVI;k4{4Fr91`ZF2eo`I5!P1p4JlQg7lbAe^G`!2@057g6wlB7GWYL-5z8(EG$7j z57}Mm1x~-PrNYk7)cb5pwsScszJgd{=z);N-VV$qVR{y(Ea?fBRRcZ>D4Gn3=!A@Y zMU{xKT872TfC7^Vn5ousf&%dwC>((;M&K9}0$x6qt{qW8)$0(qQi3Os8)wYU*MU#I z3{@MRWg5pUT#^`}TpD^Hr19AwO)eu~4#+A{1rQ06%yFRn!=Z;WEGUoa$LB}`q0A;? z^(PYm({r4d&X})KIAfe~d=c*088#r)0EIVJTKiAXXCv(anN31vDn}8HCpZ@H0+3_i z5(32V{Z-K`5DHqu*8|)x?SAi-PREU9>Nb5((1eoT5b0fj@1%_8uU^yinL zT)^0hbX8AK-4^S#9uT%RaD5Z;z%+$nZZ~0u%%&m?(-aTdAj)HfZ|v7LUu)ml!Pts) ze+o3mYO3MI(Q2}3&ne$#dVmQlygM7+5t*{2_>hNdXG?gO8l z9MdZCy8FA$30gnkrSH6ug^@K+`$51jQC{K|npJv3z+1r$Q_&5oB6o|=$2q`LbLc1p zQavajFa$cN2L^>ex9rd%P(e(zABk{W6g}(GRZ+BC4v^VIBwt;DXp~HJn`G$&&?n%N zU)x`&84%Fw>X)IOSmR6_rfc^N6H{OpPuBxZgbZz76 z9NiBDGXwR2Fh$O8il|`K4_vDtBTtWjuEJp%viZ}`0fQF5OH*O2IVcYp3C4D&6wr=b zISA36bKIygtYSt^0d2WSU;b@wh{dtIyC~Yrb)4}nv2h5Dm^k>t9RjcGMeebTWh{f2 Z{{b~BP<=e&rZxZo002ovPDHLkV1i6>43Yo< diff --git a/1.7.2/main/resources/assets/alchemicalwizardry/textures/models/SpellEnhancementCost1.png b/1.7.2/main/resources/assets/alchemicalwizardry/textures/models/SpellEnhancementCost1.png deleted file mode 100644 index 187b96039e3b618ce348401f25a2253247d3bc40..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 4871 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 diff --git a/1.7.2/main/resources/assets/alchemicalwizardry/textures/models/SpellEnhancementCost2.png b/1.7.2/main/resources/assets/alchemicalwizardry/textures/models/SpellEnhancementCost2.png deleted file mode 100644 index 0a340ef754b97c9b9be376f9c2e8d0faabd8734b..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 3603 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 bFEafVGd000McNliru-U1pE5h&S+rKbP@5OzsK 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 XI*x2&VGd000McNliru-U1pE8Vc_mJ%|7R4PZ$` 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 FV1kO3i^~82 diff --git a/1.7.2/main/resources/assets/alchemicalwizardry/textures/models/SpellEnhancementPower1.png b/1.7.2/main/resources/assets/alchemicalwizardry/textures/models/SpellEnhancementPower1.png deleted file mode 100644 index fb711dc240ddcf80268405f934229e63742af42d..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 4449 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 diff --git a/1.7.2/main/resources/assets/alchemicalwizardry/textures/models/SpellEnhancementPower2.png b/1.7.2/main/resources/assets/alchemicalwizardry/textures/models/SpellEnhancementPower2.png deleted file mode 100644 index c1d61b2ed1da398b77b78dc87dad339f2d04be5f..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 3738 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 Eg3IVN761SM diff --git a/1.7.2/main/resources/assets/alchemicalwizardry/textures/models/SpellEnhancementPower3.png b/1.7.2/main/resources/assets/alchemicalwizardry/textures/models/SpellEnhancementPower3.png deleted file mode 100644 index 7150c0b7022447204061dbea110ee9f6d84fe415..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 4062 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 Q`~Uy|07*qoM6N<$g6@&Aga7~l diff --git a/1.7.2/main/resources/assets/alchemicalwizardry/textures/models/SpellModifierDefault.png b/1.7.2/main/resources/assets/alchemicalwizardry/textures/models/SpellModifierDefault.png deleted file mode 100644 index f72ff9f8b68a33a7c7832535d241de3b10143a23..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1193 zcmV;a1XlZrP)Z5010qNS#tmY4#NNd4#NS*Z>VGd000McNliru-UAK+7#*WPM5_P*1U5-T zK~#9!?VG=E6h{=tKYO>t=U)LUq=3YVqWlw)6{SEakf(Cto`MJ}DoUhCQ97b1MH-x7xYeGZ%Yj*(a@TZ)V4L@B7|--}jBq z2?4taZW~Cwu}RYCZhC-eYU}l5;4cy2q{wksYsUo0ZVVidMRr{g z{akzeUy)#25uFtvTfmw!BLig`c&W^2DVrV(q{;)3$dNHcvgMKBp5CwNbshLeU}W0h zG4MHs zS57$9{0xu@k0<={aoPjMY5jq&NgAtu8O&}T+`?VCZ2(wWv^;wOXB0wz{PM3CyE>uW zJ{4RH`gkH)rVDg!f2W8$Ex3p-Py;N;3Oy-So zqxeIyZiNIO17XmY&4U%oJ}*Ur@9Ny3^?8#0KQm?C826R6>;w0V;iBzk=d}W9(mD>5 zi+E;f(e`l1uv|3AUeP_OLn3bDs2nitwkTSkJ+q)ltQd2o&l)BR=d5MRD|3ki+waEo zd`>IR;338zmJpA+c2qW{W-L{jJMT=RCjCAi?3XIJJHUO7eWTL&o#%J@E@|AaYdi^C_4LI( z@BV_d>;S)IW7gKQ84CF_XDuDzjsWn#Q=twBIn*!ZtFRSrg1ajx=d5L00_YEoeQhlh zfu5i_5*tO^>#tj|wny_XSX;^85RAMV%r`uP8lc(%uwu-i(?#!V4M1$s59)xjwLQP* zi?YF=UjXNiRpCf22`Ruqf~XGXfsHj~u!d!D-WcZxVj0|WpN{aoFM}i90?Rp;&u@b& z5@%Yb!wa3)Rj~|a&0W@nU03@57zlRl%HXg7G**U5%k2G89jruI2CJ;~k6j16w*XYR z)(@=%@=Q9Y-iN@5;lD`IV)C+uf+#D0zRWEWJ}U*s&$ZhEdFNx0y`{Inuw7rM8Z>7H zjWtTJQG$&UY?NT51gi}|*WV{AuYjS_5>V6XiL%TF)$0o!;&00000NkvXX Hu0mjfa$77s diff --git a/1.7.2/main/resources/assets/alchemicalwizardry/textures/models/SpellModifierDefensive.png b/1.7.2/main/resources/assets/alchemicalwizardry/textures/models/SpellModifierDefensive.png deleted file mode 100644 index 1dbdeed6610c8302c0d1391c2fc6d144e0e04403..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1608 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 IM6N<$f>z{NK>z>% diff --git a/1.7.2/main/resources/assets/alchemicalwizardry/textures/models/SpellParadigmMelee.png b/1.7.2/main/resources/assets/alchemicalwizardry/textures/models/SpellParadigmMelee.png deleted file mode 100644 index c74a2dd85c136aa12372adaffdb62bdd5826758b..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1230 zcmV;<1Tp)GP)VGd000McNliru-UA315i5ZB>SX``1Y1c& zK~#9!?U_q!8&?#^f9K8}Nq*FEDJ>7$f|X@P!g`NP`0onIOw8+}`H^7l;Yj zo31gAVUG~VChT8HcmOht;*!H)h=Gh`nR;`Bcldm^H3no5vP8s;Gse#J+x{TII!Z=z z#9J;QFo^@yn;d}CZi6Dt)>y|Ui-T%JtUePsWDr7p0(?fWh%rpPndFeT_Z^VI06w>I zaS6#{Xiy{I5Cv4TKnBG@fD9H#T=r-nNYWJ)P~7CFaYUqzzG#ldCnikPURE+m%mq*) zB4X-PsI#kk_%v`NCe%8U2sHv!-ZZEe4a1&GC_p!{o z4Ai}+bH$^l3SR@T;%%TP-xlt)*CImko3EPd)lE#WHc$>Q6UkuXeNA+>udeZ6mcY%$JQZRp zPyZUa5=hZPv-jWAn$7E6v8Yu$tC7tQmkux}wM4&X5#k{Tyc|_~e|Q`CL{x!M3=ZHT z%ok?(vs4<$+P5cFU=D{I5TO_(z0dVJZ?!Ubdl@~cVlQSmhn%|zXSAYt9X!+58BkTU+Wc0_tCz3!)yvlxE&+Sdx;YyCqme(E2^WcK zOKDD(hO`bZOJGA^0{^QHxK0x686k9Cc<<1wCxMD^k)pNe>Cb+cV2-6(-8?E+7{ zG7k&+j^}>!*0IS13gCBdojUL!DUEJ)fh!@wUT%ZZBCHQF>@1vhc4?v1H{TD2{xXyz sMT!(DQlv|Jkz&~JA4WtSF1RdZaR2}S07*qoM6N<$f)%SOAOHXW diff --git a/1.7.2/main/resources/assets/alchemicalwizardry/textures/models/SpellParadigmProjectile.png b/1.7.2/main/resources/assets/alchemicalwizardry/textures/models/SpellParadigmProjectile.png deleted file mode 100644 index f579c0283fc36a62f396b78694fa9720358bea1d..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1229 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 diff --git a/1.7.2/main/resources/assets/alchemicalwizardry/textures/models/WingedAngel.png b/1.7.2/main/resources/assets/alchemicalwizardry/textures/models/WingedAngel.png deleted file mode 100644 index 4ae2cfd584c3a62b07841b88b374e2d1af7e2086..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 3549 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 Xut2vg5yR&i00000NkvXXu0mjfEE~6? diff --git a/1.7.2/main/resources/assets/alchemicalwizardry/textures/models/WingedFireDemon.png b/1.7.2/main/resources/assets/alchemicalwizardry/textures/models/WingedFireDemon.png deleted file mode 100644 index 0e365babb59fb7b940e83973bdc14b72c31fee8e..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 5121 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 j^h{nX363>00000NkvXXu0mjfg>|Lt diff --git a/1.7.2/main/resources/assets/alchemicalwizardry/textures/models/WritingTable.png b/1.7.2/main/resources/assets/alchemicalwizardry/textures/models/WritingTable.png deleted file mode 100644 index 5aa176e43e0902744d4585bffc51a7c53d0309b7..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1851 zcmV-B2gLY^P)pF2XskIMF-sp0v03{LG#rl000KsNklVr^#)Ty#Iw*pahHC!AB?z=zEnW32T-Y$5(Ys-;B%>6d^zIT6|Gc(`$&de1mKKMpw0K*h$lJe`n55f!J zgKu`$k46fDnqfc?Xkx%Hnkc9N7*T{V8)nr1Km<}0MEo8QVmQ8*4Wd8@zMa*eXo0Oo zpcLbme_cJZ&)c_e+r4}DUSlom@uLz>Jr|RE((@{iule^CEyL$npCm z2tgoJ!$1Icn2pDq3SxexZrOk)Kof?~j;~$2wmCmII5_p5x&hJ; z-dq|?3}YY!qfJT>_|aRP#R$Lp^lT>dgLxE#xWTxQQvoxNdL;lM2xiUz2_Ogp$A*be z)Zf=NLQ|tYWMgL;Ianz>op3Z7T8!BE_4lq`<>DJ}P)cDK22x6!{k3h&_3PK^x{eql z`%j+m$B#eWTu=L#-=#~5u@u@E+0WU3=Zu=cr++w;0dHMO91cn@&?KQt!jr>7P^W?! zG>s6}j;PL9J1SI`6oWAfkslSggLaIh+r z0!@N3yEag@AqF?rs?pg%)KfwYB8Hg}M9^X!nRxCS1vO#J;oKK& zF9WMV5rbTeT#OKeDH}l`D~K3T+>jx=Q-e4o)I9G?f#~WI+tZ>{US3xg9*@l$t&1gb#B8Q=?>KoQ%W4pUq`m23-ip zTvG)C~>r?|(;r|GSSq`rdOXB()jJhKZ3U!|+lVgP<5G z30sXzcrM3=N=+9LhzKfdSQo2~SZ&Ti@c%-982!Gkd1V41@4vmYVe;s=P3_Fo+uAM` ze)EsB8=?2#?#uu!9<3C-rVHL2b**^xw9+2vvq!ZH!f1w;^~r zTvUUwvkd&=Fa0Z(f@EqWQA{9D{w}QrcH;ah&?Pt;{Qj`W)9|iJZScjDfArI2sf| z*jfnFWRwhDE1NEF(F#%FurIWYFsM;Z3`DV(0jo@ydZ&@9AA`V{3j!?KP}lwf`hXXm z`kvbfj@|~xIt}(?6)}vXq1N}{5%eH?Q?%^Fg)F#}hDj^?+}O1i^rLM?mo~}f{}kn= z2e(rl@TxDkuoZnoHE)XrNYT|@M3Cl~-bHOQ2lS)s{**xsLUbks0p(cqmR;E7e~Q9Z z7Z@fZR$X~z5&ZGD7Isi4y6skYIv7oWu^4R>ioxM%Tb2Ag(kX?_LI>>HqFv{U|O$tIMvb!TsQ~NGM_Q+$Mc1LKm>Jt! zTm1InLwTJXaB3A;b{$>Uad3D@KMX9ojt~NeM@O$61H!YzP2&dFGS;TV)?z^^g_EC} zUK@w4?fvsB?SMy*9`$Y8 z()aywdz%u|H2KGg8u^?v(=>7O=1mJB@c8j#_V@Qs)se511Fl@TvIDI4_V%>0p##$1 z-ri@=d#K*G{qW(#&*nNZW5$dbGyb=+ySw}C7w!aS%$PA_#*7&=X3Ur|W5$dbGiJ<~ pF=NJz88c?gm@#9v+002ovPDHLkV1kE7a=ZWl diff --git a/1.7.2/main/resources/assets/alchemicalwizardry/textures/models/altar.png b/1.7.2/main/resources/assets/alchemicalwizardry/textures/models/altar.png deleted file mode 100644 index 6b6ac12e2fc7b3b2884e97a899c6630c43da9e5a..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 59034 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 diff --git a/1.7.2/main/resources/assets/alchemicalwizardry/textures/models/blood.png b/1.7.2/main/resources/assets/alchemicalwizardry/textures/models/blood.png deleted file mode 100644 index 05cfdd4e85dfb8e2f646d98e518acf8529bb1e5f..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 576 zcmV-G0>AxWFU8GbZ8()Nlj2>E@cM*00E>)L_t(I%T1GAPQx$| zguk^nX(&R7n{aDR!Zo-7LJ_1*op_grwVOUzk*%Ha{5W#^`1s`S5BvJU*A-EPaRdN& zs1=3*d3!^ipFsow83xk(JIXv`-{1J}ZvfnJ_ZX}-&Ps{%Z3D9)m?qNYg8H)HKR@{8 zf{Y^$G2|X9YK2xLU1-1=xhLqyQoMR9|O)1A7Ko#a0WnJNV#Y+kQ z?m=P}fN=~3`yNEw7H3aS__CnXdYA0(NJ=qm1|o<%ZWjAaQY-8`e!ZgoCJ_l{k;7-s z2e6dL0T8nY^mZe8DPV@TWXT!HIeg|Es}W!p7Me25P)fngkRBG`Jt%j$-41YXr>|O3 ze*j9(_`V||@fNo2sIO<0Qp}4$N+juzru)tL$N+FNyuX7MED%Je6ADCqIm0jnuoLzc zy5tUQV3{V;{jj}2Q9YVy3V0-FmSvinf_+CGeW}J8hL{Ds`9&le5VkKtNr!0#A O0000. Subcommands are tps, track -commands.forge.usage.tracking=Use /forge track . Valid types are te (Tile Entities). Duration is < 60. -commands.forge.tps.summary=%s : Mean tick time: %d ms. Mean TPS: %d - -commands.forge.tracking.te.enabled=Tile Entity tracking enabled for %d seconds. \ No newline at end of file diff --git a/1.7.2/main/resources/assets/forge/lang/es_ES.lang b/1.7.2/main/resources/assets/forge/lang/es_ES.lang deleted file mode 100644 index b7c198ee..00000000 --- a/1.7.2/main/resources/assets/forge/lang/es_ES.lang +++ /dev/null @@ -1,5 +0,0 @@ -commands.forge.usage=Usa /forge . Los subcomandos son tps, track -commands.forge.usage.tracking=Usa /forge track . Los tipos válidos te (Tile Entities). La duración es < 60. -commands.forge.tps.summary=%s : Tiempo de tick medio: %d ms. TPS medio: %d - -commands.forge.tracking.te.enabled=Rastreo de Tile Entity activado durante %d segundos. diff --git a/1.7.2/main/resources/assets/forge/lang/fr_FR.lang b/1.7.2/main/resources/assets/forge/lang/fr_FR.lang deleted file mode 100644 index bd01daa9..00000000 --- a/1.7.2/main/resources/assets/forge/lang/fr_FR.lang +++ /dev/null @@ -1,5 +0,0 @@ -commands.forge.usage=Utilisez /forge . Les sous-commandes sont tps, track -commands.forge.usage.tracking=Utilisez /forge track . Les types valides sont te (Tile Entities). La durée doit être inférieur à 60. -commands.forge.tps.summary=%s : Duré de tick : %d ms. TPS moyen : %d - -commands.forge.tracking.te.enabled=Trackage des Tile Entity activé pour %d secondes. \ No newline at end of file diff --git a/1.7.2/main/resources/mcmod.info b/1.7.2/main/resources/mcmod.info deleted file mode 100644 index 7000cb30..00000000 --- a/1.7.2/main/resources/mcmod.info +++ /dev/null @@ -1,16 +0,0 @@ -[ -{ - "modid": "AWWayofTime", - "name": "Blood Magic: Alchemical Wizardry", - "description": "Example placeholder mod.", - "version": "${version}", - "mcversion": "${mcversion}", - "url": "", - "updateUrl": "", - "authors": ["WayofTime"], - "credits": "", - "logoFile": "", - "screenshots": [], - "dependencies": [] -} -] diff --git a/BM_src/WayofTime/alchemicalWizardry/AlchemicalWizardry.java b/BM_src/WayofTime/alchemicalWizardry/AlchemicalWizardry.java deleted file mode 100644 index 64a796e8..00000000 --- a/BM_src/WayofTime/alchemicalWizardry/AlchemicalWizardry.java +++ /dev/null @@ -1,1345 +0,0 @@ -package WayofTime.alchemicalWizardry; - -import java.io.File; -import java.lang.reflect.Field; -import java.lang.reflect.Modifier; - -import net.minecraft.block.Block; -import net.minecraft.creativetab.CreativeTabs; -import net.minecraft.item.EnumArmorMaterial; -import net.minecraft.item.EnumToolMaterial; -import net.minecraft.item.Item; -import net.minecraft.item.ItemStack; -import net.minecraft.potion.Potion; -import net.minecraft.util.WeightedRandomChestContent; -import net.minecraftforge.common.ChestGenHooks; -import net.minecraftforge.common.EnumHelper; -import net.minecraftforge.common.MinecraftForge; -import net.minecraftforge.fluids.Fluid; -import net.minecraftforge.fluids.FluidContainerRegistry; -import net.minecraftforge.fluids.FluidRegistry; -import net.minecraftforge.oredict.OreDictionary; -import thaumcraft.api.ItemApi; -import WayofTime.alchemicalWizardry.api.alchemy.AlchemicalPotionCreationHandler; -import WayofTime.alchemicalWizardry.api.alchemy.AlchemyRecipeRegistry; -import WayofTime.alchemicalWizardry.api.altarRecipeRegistry.AltarRecipeRegistry; -import WayofTime.alchemicalWizardry.api.bindingRegistry.BindingRegistry; -import WayofTime.alchemicalWizardry.api.rituals.Rituals; -import WayofTime.alchemicalWizardry.api.summoningRegistry.SummoningRegistry; -import WayofTime.alchemicalWizardry.common.AlchemicalWizardryEventHooks; -import WayofTime.alchemicalWizardry.common.AlchemicalWizardryFuelHandler; -import WayofTime.alchemicalWizardry.common.CommonProxy; -import WayofTime.alchemicalWizardry.common.EntityAirElemental; -import WayofTime.alchemicalWizardry.common.LifeBucketHandler; -import WayofTime.alchemicalWizardry.common.ModLivingDropsEvent; -import WayofTime.alchemicalWizardry.common.PacketHandler; -import WayofTime.alchemicalWizardry.common.PotionBoost; -import WayofTime.alchemicalWizardry.common.PotionDrowning; -import WayofTime.alchemicalWizardry.common.PotionFireFuse; -import WayofTime.alchemicalWizardry.common.PotionFlameCloak; -import WayofTime.alchemicalWizardry.common.PotionFlight; -import WayofTime.alchemicalWizardry.common.PotionHeavyHeart; -import WayofTime.alchemicalWizardry.common.PotionIceCloak; -import WayofTime.alchemicalWizardry.common.PotionInhibit; -import WayofTime.alchemicalWizardry.common.PotionPlanarBinding; -import WayofTime.alchemicalWizardry.common.PotionProjectileProtect; -import WayofTime.alchemicalWizardry.common.PotionReciprocation; -import WayofTime.alchemicalWizardry.common.block.ArmourForge; -import WayofTime.alchemicalWizardry.common.block.LifeEssenceBlock; -import WayofTime.alchemicalWizardry.common.bloodAltarUpgrade.UpgradedAltars; -import WayofTime.alchemicalWizardry.common.entity.mob.EntityBileDemon; -import WayofTime.alchemicalWizardry.common.entity.mob.EntityBoulderFist; -import WayofTime.alchemicalWizardry.common.entity.mob.EntityEarthElemental; -import WayofTime.alchemicalWizardry.common.entity.mob.EntityFallenAngel; -import WayofTime.alchemicalWizardry.common.entity.mob.EntityFireElemental; -import WayofTime.alchemicalWizardry.common.entity.mob.EntityHolyElemental; -import WayofTime.alchemicalWizardry.common.entity.mob.EntityIceDemon; -import WayofTime.alchemicalWizardry.common.entity.mob.EntityLowerGuardian; -import WayofTime.alchemicalWizardry.common.entity.mob.EntityShade; -import WayofTime.alchemicalWizardry.common.entity.mob.EntityShadeElemental; -import WayofTime.alchemicalWizardry.common.entity.mob.EntitySmallEarthGolem; -import WayofTime.alchemicalWizardry.common.entity.mob.EntityTestDemon; -import WayofTime.alchemicalWizardry.common.entity.mob.EntityWaterElemental; -import WayofTime.alchemicalWizardry.common.entity.mob.EntityWingedFireDemon; -import WayofTime.alchemicalWizardry.common.items.ItemBloodRuneBlock; -import WayofTime.alchemicalWizardry.common.items.ItemRitualDiviner; -import WayofTime.alchemicalWizardry.common.items.ItemSpellEffectBlock; -import WayofTime.alchemicalWizardry.common.items.ItemSpellEnhancementBlock; -import WayofTime.alchemicalWizardry.common.items.ItemSpellModifierBlock; -import WayofTime.alchemicalWizardry.common.items.ItemSpellParadigmBlock; -import WayofTime.alchemicalWizardry.common.items.LifeBucket; -import WayofTime.alchemicalWizardry.common.items.books.ItemBloodArchives; -import WayofTime.alchemicalWizardry.common.items.sigil.SigilOfHolding; -import WayofTime.alchemicalWizardry.common.items.thaumcraft.ItemSanguineArmour; -import WayofTime.alchemicalWizardry.common.rituals.RitualEffectAnimalGrowth; -import WayofTime.alchemicalWizardry.common.rituals.RitualEffectAutoAlchemy; -import WayofTime.alchemicalWizardry.common.rituals.RitualEffectBiomeChanger; -import WayofTime.alchemicalWizardry.common.rituals.RitualEffectContainment; -import WayofTime.alchemicalWizardry.common.rituals.RitualEffectCrushing; -import WayofTime.alchemicalWizardry.common.rituals.RitualEffectExpulsion; -import WayofTime.alchemicalWizardry.common.rituals.RitualEffectFeatheredEarth; -import WayofTime.alchemicalWizardry.common.rituals.RitualEffectFeatheredKnife; -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; -import WayofTime.alchemicalWizardry.common.rituals.RitualEffectMagnetic; -import WayofTime.alchemicalWizardry.common.rituals.RitualEffectSoulBound; -import WayofTime.alchemicalWizardry.common.rituals.RitualEffectSummonMeteor; -import WayofTime.alchemicalWizardry.common.rituals.RitualEffectSupression; -import WayofTime.alchemicalWizardry.common.rituals.RitualEffectUnbinding; -import WayofTime.alchemicalWizardry.common.rituals.RitualEffectWater; -import WayofTime.alchemicalWizardry.common.rituals.RitualEffectWellOfSuffering; -import WayofTime.alchemicalWizardry.common.spell.simple.HomSpellRegistry; -import WayofTime.alchemicalWizardry.common.spell.simple.SpellEarthBender; -import WayofTime.alchemicalWizardry.common.spell.simple.SpellExplosions; -import WayofTime.alchemicalWizardry.common.spell.simple.SpellFireBurst; -import WayofTime.alchemicalWizardry.common.spell.simple.SpellFrozenWater; -import WayofTime.alchemicalWizardry.common.spell.simple.SpellHolyBlast; -import WayofTime.alchemicalWizardry.common.spell.simple.SpellLightningBolt; -import WayofTime.alchemicalWizardry.common.spell.simple.SpellTeleport; -import WayofTime.alchemicalWizardry.common.spell.simple.SpellWateryGrave; -import WayofTime.alchemicalWizardry.common.spell.simple.SpellWindGust; -import WayofTime.alchemicalWizardry.common.summoning.SummoningHelperAW; -import WayofTime.alchemicalWizardry.common.summoning.meteor.MeteorRegistry; -import WayofTime.alchemicalWizardry.common.tileEntity.TEAltar; -import WayofTime.alchemicalWizardry.common.tileEntity.TEConduit; -import WayofTime.alchemicalWizardry.common.tileEntity.TEHomHeart; -import WayofTime.alchemicalWizardry.common.tileEntity.TEMasterStone; -import WayofTime.alchemicalWizardry.common.tileEntity.TEOrientable; -import WayofTime.alchemicalWizardry.common.tileEntity.TEPedestal; -import WayofTime.alchemicalWizardry.common.tileEntity.TEPlinth; -import WayofTime.alchemicalWizardry.common.tileEntity.TESocket; -import WayofTime.alchemicalWizardry.common.tileEntity.TESpectralContainer; -import WayofTime.alchemicalWizardry.common.tileEntity.TESpellEffectBlock; -import WayofTime.alchemicalWizardry.common.tileEntity.TESpellEnhancementBlock; -import WayofTime.alchemicalWizardry.common.tileEntity.TESpellModifierBlock; -import WayofTime.alchemicalWizardry.common.tileEntity.TESpellParadigmBlock; -import WayofTime.alchemicalWizardry.common.tileEntity.TETeleposer; -import WayofTime.alchemicalWizardry.common.tileEntity.TEWritingTable; -import WayofTime.alchemicalWizardry.common.tileEntity.gui.GuiHandler; -import cpw.mods.fml.common.Loader; -import cpw.mods.fml.common.Mod; -import cpw.mods.fml.common.Mod.EventHandler; -import cpw.mods.fml.common.Mod.Instance; -import cpw.mods.fml.common.SidedProxy; -import cpw.mods.fml.common.event.FMLInitializationEvent; -import cpw.mods.fml.common.event.FMLPostInitializationEvent; -import cpw.mods.fml.common.event.FMLPreInitializationEvent; -import cpw.mods.fml.common.network.NetworkMod; -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.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 -{ - public static boolean doMeteorsDestroyBlocks = true; - public static String[] diamondMeteorArray; - public static int diamondMeteorRadius; - public static String[] stoneMeteorArray; - public static int stoneMeteorRadius; - public static String[] ironBlockMeteorArray; - public static int ironBlockMeteorRadius; - public static String[] netherStarMeteorArray; - public static int netherStarMeteorRadius; - - public static boolean regenerationAllowed; - public static boolean nightVisionAllowed; - public static boolean fireResistanceAllowed; - public static boolean waterBreathingAllowed; - public static boolean moveSpeedAllowed; - public static boolean healAllowed; - public static boolean poisonAllowed; - public static boolean weaknessAllowed; - public static boolean damageBoostAllowed; - public static boolean jumpAllowed; - public static boolean moveSlowdownAllowed; - public static boolean digSpeedAllowed; - public static boolean drowningAllowed; - public static boolean invisibilityAllowed; - public static boolean resistanceAllowed; - public static boolean saturationAllowed; - public static boolean healthBoostAllowed; - public static boolean absorptionAllowed; - public static boolean boostAllowed; - public static boolean flightAllowed; - public static boolean reciprocationAllowed; - public static boolean planarBindingAllowed; - - public static String[] allowedCrushedOresArray; - - public static Potion customPotionDrowning; - public static Potion customPotionBoost; - public static Potion customPotionProjProt; - public static Potion customPotionInhibit; - public static Potion customPotionFlight; - public static Potion customPotionReciprocation; - public static Potion customPotionFlameCloak; - public static Potion customPotionIceCloak; - public static Potion customPotionHeavyHeart; - public static Potion customPotionFireFuse; - public static Potion customPotionPlanarBinding; - - public static int customPotionDrowningID; - public static int customPotionBoostID; - public static int customPotionProjProtID; - public static int customPotionInhibitID; - public static int customPotionFlightID; - public static int customPotionReciprocationID; - public static int customPotionFlameCloakID; - public static int customPotionIceCloakID; - public static int customPotionHeavyHeartID; - public static int customPotionFireFuseID; - public static int customPotionPlanarBindingID; - - public static boolean isThaumcraftLoaded; - public static boolean isForestryLoaded; - public static boolean isGCLoaded; - - public static boolean wimpySettings; - - public static CreativeTabs tabBloodMagic = new CreativeTabs("tabBloodMagic") - { - public ItemStack getIconItemStack() - { - return new ItemStack(ModItems.weakBloodOrb, 1, 0); - } - }; - - public static EnumToolMaterial bloodBoundToolMaterial = EnumHelper.addToolMaterial("BoundBlood", 4, 1000, 12.0f, 8.0f, 50); - public static EnumArmorMaterial sanguineArmourArmourMaterial = EnumHelper.addArmorMaterial("SanguineArmour", 1000, new int[]{3, 6, 5, 2}, 30); - - //Dungeon loot chances - public static int standardBindingAgentDungeonChance; - public static int mundanePowerCatalystDungeonChance; - public static int averagePowerCatalystDungeonChance; - public static int greaterPowerCatalystDungeonChance; - public static int mundaneLengtheningCatalystDungeonChance; - public static int averageLengtheningCatalystDungeonChance; - public static int greaterLengtheningCatalystDungeonChance; - - //Mob IDs - public static int entityFallenAngelID = 20; - public static int entityLowerGuardianID = 21; - public static int entityBileDemonID = 22; - public static int entityWingedFireDemonID = 23; - public static int entitySmallEarthGolemID = 24; - public static int entityIceDemonID = 25; - public static int entityBoulderFistID = 26; - public static int entityShadeID = 27; - public static int entityAirElementalID = 28; - public static int entityWaterElementalID = 29; - public static int entityEarthElementalID = 30; - public static int entityFireElementalID = 31; - public static int entityShadeElementalID = 32; - public static int entityHolyElementalID = 33; - public static int entityTestDemonID = 34; - - public static Item bucketLife; - public static Fluid lifeEssenceFluid; - - public static int weakBloodOrbItemID; - public static int energyBlasterItemID; - public static int energySwordItemID; - public static int lavaCrystalItemID; - public static int waterSigilItemID; - public static int lavaSigilItemID; - public static int voidSigilItemID; - public static int sigilOfTheFastMinerItemID; - public static int sigilOfElementalAffinityItemID; - public static int sigilOfHasteItemID; - public static int blankSlateItemID; - public static int reinforcedSlateItemID; - public static int sacrificialDaggerItemID; - public static int daggerOfSacrificeItemID; - public static int bucketLifeItemID; - public static int apprenticeBloodOrbItemID; - public static int magicianBloodOrbItemID; - public static int airSigilItemID; - public static int sigilOfHoldingItemID; - public static int divinationSigilItemID; - public static int elementalInkWaterItemID; - public static int elementalInkFireItemID; - public static int elementalInkEarthItemID; - public static int elementalInkAirItemID; - public static int waterScribeToolItemID; - public static int fireScribeToolItemID; - public static int earthScribeToolItemID; - public static int airScribeToolItemID; - public static int weakActivationCrystalItemID; - public static int boundPickaxeItemID; - public static int boundAxeItemID; - public static int boundShovelItemID; - public static int boundHelmetItemID; - public static int boundPlateItemID; - public static int boundLeggingsItemID; - public static int boundBootsItemID; - public static int weakBloodShardItemID; - public static int growthSigilItemID; - //public static int fireSpellItemID; - public static int blankSpellItemID; - public static int masterBloodOrbItemID; - public static int alchemyFlaskItemID; - public static int standardBindingAgentItemID; - public static int mundanePowerCatalystItemID; - public static int averagePowerCatalystItemID; - public static int greaterPowerCatalystItemID; - public static int mundaneLengtheningCatalystItemID; - public static int averageLengtheningCatalystItemID; - public static int greaterLengtheningCatalystItemID; - public static int incendiumItemID; - public static int magicalesItemID; - public static int sanctusItemID; - public static int aetherItemID; - public static int simpleCatalystItemID; - public static int crepitousItemID; - public static int crystallosItemID; - public static int terraeItemID; - public static int aquasalusItemID; - public static int tennebraeItemID; - public static int demonBloodShardItemID; - public static int archmageBloodOrbItemID; - public static int sigilOfWindItemID; - public static int telepositionFocusItemID; - public static int enhancedTelepositionFocusItemID; - public static int reinforcedTelepositionFocusItemID; - public static int demonicTelepositionFocusItemID; - public static int imbuedSlateItemID; - public static int demonicSlateItemID; - public static int duskScribeToolItemID; - public static int sigilOfTheBridgeItemID; - public static int armourInhibitorItemID; - public static int creativeFillerItemID; - public static int demonPlacerItemID; - public static int itemBloodRuneBlockItemID; - public static int weakFillingAgentItemID; - public static int standardFillingAgentItemID; - public static int enhancedFillingAgentItemID; - public static int weakBindingAgentItemID; - public static int itemRitualDivinerItemID; - public static int sanguineHelmetItemID; - public static int focusBloodBlastItemID; - public static int focusGravityWellItemID; - public static int sigilOfMagnetismItemID; - public static int itemKeyOfDiabloItemID; - public static int energyBazookaItemID; - public static int itemBloodLightSigilItemID; - public static int itemComplexSpellCrystalItemID; - public static int itemBloodFrameItemID; - public static int baseComponentsItemID; - public static int baseAlchemyComponentsItemID; - public static int itemSigilOfSupressionItemID; - public static int itemBloodBookItemID; - - public static int testingBlockBlockID; - public static int lifeEssenceFlowingBlockID; - public static int lifeEssenceStillBlockID; - public static int blockAltarBlockID; - public static int bloodRuneBlockID; - public static int speedRuneBlockID; - public static int runeOfSacrificeBlockID; - public static int runeOfSelfSacrificeBlockID; - public static int efficiencyRuneBlockID; - public static int lifeEssenceFluidID; - public static int ritualStoneBlockID; - public static int blockMasterStoneBlockID; - public static int imperfectRitualStoneBlockID; - public static int bloodSocketBlockID; - public static int armourForgeBlockID; - public static int emptySocketBlockID; - public static int largeBloodStoneBrickBlockID; - public static int bloodStoneBrickBlockID; - public static int blockWritingTableBlockID; - public static int blockHomHeartBlockID; - public static int blockPedestalBlockID; - public static int blockPlinthBlockID; - public static int blockTeleposerBlockID; - public static int spectralBlockBlockID; - public static int blockConduitBlockID; - public static int blockBloodLightBlockID; - public static int blockSpellEffectBlockID; - public static int blockSpellParadigmBlockID; - public static int blockSpellModifierBlockID; - public static int blockSpellEnhancementBlockID; - public static int blockSpectralContainerBlockID; - - public static void registerRenderInformation() - { - } - - - - public static void registerRenderThings() - { - } - - - - // The instance of your mod that Forge uses. - @Instance("AWWayofTime") - public static AlchemicalWizardry instance; - - // Says where the client and server 'proxy' code is loaded. - @SidedProxy(clientSide = "WayofTime.alchemicalWizardry.client.ClientProxy", serverSide = "WayofTime.alchemicalWizardry.common.CommonProxy") - public static CommonProxy proxy; - - @EventHandler - public void preInit(FMLPreInitializationEvent event) - { - MinecraftForge.EVENT_BUS.register(new LifeBucketHandler()); - BloodMagicConfiguration.init(new File(event.getModConfigurationDirectory(), "AWWayofTime.cfg")); - - //Custom config stuff goes here - - - Potion[] potionTypes = null; - - for (Field f : Potion.class.getDeclaredFields()) - { - f.setAccessible(true); - - try - { - if (f.getName().equals("potionTypes") || f.getName().equals("field_76425_a")) - { - Field modfield = Field.class.getDeclaredField("modifiers"); - modfield.setAccessible(true); - modfield.setInt(f, f.getModifiers() & ~Modifier.FINAL); - potionTypes = (Potion[]) f.get(null); - final Potion[] newPotionTypes = new Potion[256]; - System.arraycopy(potionTypes, 0, newPotionTypes, 0, potionTypes.length); - f.set(null, newPotionTypes); - } - } catch (Exception e) - { - System.err.println("Severe error, please report this to the mod author:"); - System.err.println(e); - } - } - - MinecraftForge.EVENT_BUS.register(new AlchemicalWizardryEventHooks()); - } - - @EventHandler - public void load(FMLInitializationEvent event) - { - int craftingConstant = OreDictionary.WILDCARD_VALUE; - //TickRegistry.registerTickHandler(new AlchemicalWizardryTickHandler(), Side.SERVER); - //orbOfTesting = new OrbOfTesting(17000); - - //public final static Item glassShard = new GlassShard(17009).setUnlocalizedName("glassShard"); - //public final static Item bloodiedShard = new BloodiedShard(17010).setUnlocalizedName("bloodiedShard"); - -// elementalInkWater = new WaterInk(elementalInkWaterItemID).setUnlocalizedName("waterInk"); -// elementalInkFire = new FireInk(elementalInkFireItemID).setUnlocalizedName("fireInk"); -// elementalInkEarth = new EarthInk(elementalInkEarthItemID).setUnlocalizedName("earthInk"); -// elementalInkAir = new AirInk(elementalInkAirItemID).setUnlocalizedName("airInk"); - - //fireSpell = new SpellFireBurst(fireSpellItemID).setUnlocalizedName("fireSpell"); - - ModItems.init(); - ModBlocks.init(); - - //blocks - - - proxy.registerRenderers(); - proxy.registerEntities(); - //ItemStacks used for crafting go here - ItemStack lapisStack = new ItemStack(Item.dyePowder,1,4); - ItemStack lavaBucketStack = new ItemStack(Item.bucketLava); - ItemStack cobblestoneStack = new ItemStack(Block.cobblestone); - ItemStack glassStack = new ItemStack(Block.glass, 1, craftingConstant); - ItemStack ironIngotStack = new ItemStack(Item.ingotIron); - ItemStack diamondStack = new ItemStack(Item.diamond, 1, craftingConstant); - ItemStack woolStack = new ItemStack(Block.cloth); - ItemStack goldNuggetStack = new ItemStack(Item.goldNugget); - ItemStack stoneStack = new ItemStack(Block.stone, 1, craftingConstant); - ItemStack redstoneStack = new ItemStack(Item.redstone); - ItemStack glowstoneBlockStack = new ItemStack(Block.glowStone); - ItemStack ironBlockStack = new ItemStack(Block.blockIron); - ItemStack waterBucketStack = new ItemStack(Item.bucketWater); - ItemStack emptyBucketStack = new ItemStack(Item.bucketEmpty); - ItemStack magmaCreamStack = new ItemStack(Item.magmaCream); - ItemStack stringStack = new ItemStack(Item.silk); - ItemStack obsidianStack = new ItemStack(Block.obsidian); - ItemStack diamondSwordStack = new ItemStack(Item.swordDiamond); - ItemStack goldIngotStack = new ItemStack(Item.ingotGold); - ItemStack cauldronStack = new ItemStack(Block.cauldron); - ItemStack furnaceStack = new ItemStack(Block.furnaceIdle); - ItemStack sugarStack = new ItemStack(Item.sugar); - ItemStack featherStack = new ItemStack(Item.feather); - ItemStack ghastTearStack = new ItemStack(Item.ghastTear); - ItemStack ironPickaxeStack = new ItemStack(Item.pickaxeIron); - ItemStack ironAxeStack = new ItemStack(Item.axeIron); - ItemStack ironShovelStack = new ItemStack(Item.shovelIron); - ItemStack glowstoneDustStack = new ItemStack(Item.glowstone); - ItemStack saplingStack = new ItemStack(Block.sapling); - ItemStack reedStack = new ItemStack(Item.reed); - ItemStack blankSlateStack = new ItemStack(ModItems.blankSlate, 1, craftingConstant); - //ItemStack glassShardStack = new ItemStack(glassShard); - ItemStack weakBloodOrbStackCrafted = new ItemStack(ModItems.weakBloodOrb); - //ItemStack bloodiedShardStack = new ItemStack(bloodiedShard); - ItemStack reinforcedSlateStack = new ItemStack(ModItems.reinforcedSlate, 1, craftingConstant); - ItemStack weakBloodOrbStack = new ItemStack(ModItems.weakBloodOrb, 1, craftingConstant); - ItemStack imbuedSlateStack = new ItemStack(ModItems.imbuedSlate, 1, craftingConstant); - ItemStack demonSlateStack = new ItemStack(ModItems.demonicSlate, 1, craftingConstant); - ItemStack apprenticeBloodOrbStack = new ItemStack(ModItems.apprenticeBloodOrb, 1, craftingConstant); - ItemStack magicianBloodOrbStack = new ItemStack(ModItems.magicianBloodOrb, 1, craftingConstant); - ItemStack waterSigilStackCrafted = new ItemStack(ModItems.waterSigil); - ItemStack lavaSigilStackCrafted = new ItemStack(ModItems.lavaSigil); - ItemStack voidSigilStackCrafted = new ItemStack(ModItems.voidSigil); - ItemStack airSigilStack = new ItemStack(ModItems.airSigil); - ItemStack lavaCrystalStackCrafted = new ItemStack(ModItems.lavaCrystal); - ItemStack lavaCrystalStack = new ItemStack(ModItems.lavaCrystal); - ItemStack energySwordStack = new ItemStack(ModItems.energySword); - ItemStack energyBlasterStack = new ItemStack(ModItems.energyBlaster); - ItemStack sacrificialDaggerStack = new ItemStack(ModItems.sacrificialDagger); - ItemStack bloodAltarStack = new ItemStack(ModBlocks.blockAltar); - ItemStack bloodRuneCraftedStack = new ItemStack(ModBlocks.bloodRune, 1); - ItemStack bloodRuneStack = new ItemStack(ModBlocks.bloodRune); - ItemStack speedRuneStack = new ItemStack(ModBlocks.speedRune); - ItemStack efficiencyRuneStack = new ItemStack(ModBlocks.efficiencyRune); - ItemStack runeOfSacrificeStack = new ItemStack(ModBlocks.runeOfSacrifice); - ItemStack runeOfSelfSacrificeStack = new ItemStack(ModBlocks.runeOfSelfSacrifice); - ItemStack miningSigilStackCrafted = new ItemStack(ModItems.sigilOfTheFastMiner); - ItemStack divinationSigilStackCrafted = new ItemStack(ModItems.divinationSigil); -// ItemStack elementalInkWaterStack = new ItemStack(elementalInkWater); -// ItemStack elementalInkFireStack = new ItemStack(elementalInkFire); -// ItemStack elementalInkEarthStack = new ItemStack(elementalInkEarth); -// ItemStack elementalInkAirStack = new ItemStack(elementalInkAir); - ItemStack waterScribeToolStack = new ItemStack(ModItems.waterScribeTool); - ItemStack fireScribeToolStack = new ItemStack(ModItems.fireScribeTool); - ItemStack earthScribeToolStack = new ItemStack(ModItems.earthScribeTool); - ItemStack airScribeToolStack = new ItemStack(ModItems.airScribeTool); - ItemStack ritualStoneStackCrafted = new ItemStack(ModBlocks.ritualStone, 4); - ItemStack ritualStoneStack = new ItemStack(ModBlocks.ritualStone); - ItemStack masterRitualStoneStack = new ItemStack(ModBlocks.blockMasterStone); - ItemStack imperfectRitualStoneStack = new ItemStack(ModBlocks.imperfectRitualStone); - ItemStack sigilOfElementalAffinityStackCrafted = new ItemStack(ModItems.sigilOfElementalAffinity); - ItemStack lavaSigilStack = new ItemStack(ModItems.lavaSigil); - ItemStack waterSigilStack = new ItemStack(ModItems.waterSigil); - ItemStack sigilOfHoldingStack = new ItemStack(ModItems.sigilOfHolding); - ItemStack weakBloodShardStack = new ItemStack(ModItems.weakBloodShard); - ItemStack emptySocketStack = new ItemStack(ModBlocks.emptySocket); - ItemStack bloodSocketStack = new ItemStack(ModBlocks.bloodSocket); - ItemStack armourForgeStack = new ItemStack(ModBlocks.armourForge); - ItemStack largeBloodStoneBrickStackCrafted = new ItemStack(ModBlocks.largeBloodStoneBrick, 32); - ItemStack largeBloodStoneBrickStack = new ItemStack(ModBlocks.largeBloodStoneBrick); - ItemStack bloodStoneBrickStackCrafted = new ItemStack(ModBlocks.bloodStoneBrick, 4); - ItemStack growthSigilStack = new ItemStack(ModItems.growthSigil); - ItemStack blockHomHeartStack = new ItemStack(ModBlocks.blockHomHeart); - ItemStack redWoolStack = new ItemStack(Block.cloth, 1, 14); - ItemStack zombieHead = new ItemStack(Item.skull, 1, 2); - ItemStack simpleCatalystStack = new ItemStack(ModItems.simpleCatalyst); - ItemStack duskRitualDivinerStack = new ItemStack(ModItems.itemRitualDiviner); - ((ItemRitualDiviner) duskRitualDivinerStack.getItem()).setMaxRuneDisplacement(duskRitualDivinerStack, 1); - //weakBloodOrbStackCrafted.setItemDamage(weakBloodOrbStackCrafted.getMaxDamage()); - waterSigilStackCrafted.setItemDamage(waterSigilStackCrafted.getMaxDamage()); - lavaSigilStackCrafted.setItemDamage(lavaSigilStackCrafted.getMaxDamage()); - voidSigilStackCrafted.setItemDamage(voidSigilStackCrafted.getMaxDamage()); - lavaCrystalStackCrafted.setItemDamage(lavaCrystalStackCrafted.getMaxDamage()); - miningSigilStackCrafted.setItemDamage(miningSigilStackCrafted.getMaxDamage()); - sigilOfElementalAffinityStackCrafted.setItemDamage(sigilOfElementalAffinityStackCrafted.getMaxDamage()); - ItemStack masterBloodOrbStack = new ItemStack(ModItems.masterBloodOrb); - ItemStack archmageBloodOrbStack = new ItemStack(ModItems.archmageBloodOrb); - ItemStack sanctusStack = new ItemStack(ModItems.sanctus); - ItemStack aetherStack = new ItemStack(ModItems.aether); - ItemStack terraeStack = new ItemStack(ModItems.terrae); - ItemStack incendiumStack = new ItemStack(ModItems.incendium); - ItemStack tennebraeStack = new ItemStack(ModItems.tennebrae); - ItemStack aquasalusStack = new ItemStack(ModItems.aquasalus); - ItemStack crystallosStack = new ItemStack(ModItems.crystallos); - ItemStack crepitousStack = new ItemStack(ModItems.crepitous); - ItemStack magicalesStack = new ItemStack(ModItems.magicales); - ItemStack gunpowderStack = new ItemStack(Item.gunpowder); - //All crafting goes here - // GameRegistry.addRecipe(orbOfTestingStack, "x x", " ", "x x", 'x', cobblestoneStack); - //GameRegistry.addRecipe(glassShardStack, " x", "y ", 'x', ironIngotStack, 'y', glassStack); - //GameRegistry.addRecipe(weakBloodOrbStackCrafted, "xxx", "xdx", "www", 'x', bloodiedShardStack, 'd', diamondStack, 'w', woolStack); - GameRegistry.addRecipe(sacrificialDaggerStack, "ggg", " dg", "i g", 'g', glassStack, 'd', goldIngotStack, 'i', ironIngotStack); - //GameRegistry.addRecipe(blankSlateStack, "sgs", "gig", "sgs", 's', stoneStack, 'g', goldNuggetStack, 'i', ironIngotStack); - //GameRegistry.addRecipe(reinforcedSlateStack, "rir", "ibi", "gig", 'r', redstoneStack, 'i', ironIngotStack, 'b', blankSlateStack, 'g', glowstoneBlockStack); - GameRegistry.addRecipe(lavaCrystalStackCrafted, "glg", "lbl", "odo", 'g', glassStack, 'l', lavaBucketStack, 'b', weakBloodOrbStack, 'd', diamondStack, 'o', obsidianStack); - GameRegistry.addRecipe(waterSigilStackCrafted, "www", "wbw", "wow", 'w', waterBucketStack, 'b', blankSlateStack, 'o', weakBloodOrbStack); - GameRegistry.addRecipe(lavaSigilStackCrafted, "lml", "lbl", "lcl", 'l', lavaBucketStack, 'b', blankSlateStack, 'm', magmaCreamStack, 'c', lavaCrystalStack); - GameRegistry.addRecipe(voidSigilStackCrafted, "ese", "ere", "eoe", 'e', emptyBucketStack, 'r', reinforcedSlateStack, 'o', apprenticeBloodOrbStack, 's', stringStack); - GameRegistry.addRecipe(bloodAltarStack, "s s", "scs", "gdg", 's', stoneStack, 'c', furnaceStack, 'd', diamondStack, 'g', goldIngotStack); - //GameRegistry.addRecipe(energySwordStack, " o ", " o ", " s ", 'o', weakBloodOrbStack, 's', diamondSwordStack); - //GameRegistry.addRecipe(energyBlasterStack, "oi ", "gdi", " rd", 'o', weakBloodOrbStack, 'i', ironIngotStack, 'd', diamondStack, 'r', reinforcedSlateStack, 'g', goldIngotStack); - GameRegistry.addRecipe(bloodRuneCraftedStack, "sss", "ror", "sss", 's', stoneStack, 'o', weakBloodOrbStack, 'r', blankSlateStack); - GameRegistry.addRecipe(speedRuneStack, "sbs", "uru", "sbs", 'u', sugarStack, 's', stoneStack, 'r', bloodRuneStack, 'b', blankSlateStack); - //GameRegistry.addRecipe(efficiencyRuneStack, "sbs", "rur", "sbs", 'r', redstoneStack, 's', stoneStack, 'u', bloodRuneStack,'b',blankSlateStack); - GameRegistry.addRecipe(new ItemStack(ModBlocks.bloodRune, 1, 1), "sbs", "bob", "srs", 's', stoneStack, 'o', magicianBloodOrbStack, 'b', emptyBucketStack, 'r', new ItemStack(ModItems.imbuedSlate)); - GameRegistry.addRecipe(new ItemStack(ModBlocks.bloodRune, 1, 2), "sbs", "bob", "srs", 's', stoneStack, 'o', magicianBloodOrbStack, 'b', waterBucketStack, 'r', new ItemStack(ModItems.imbuedSlate)); - GameRegistry.addRecipe(new ItemStack(ModBlocks.bloodRune, 1, 3), "sws", "ror", "sws", 's', stoneStack, 'o', new ItemStack(ModItems.masterBloodOrb), 'w', weakBloodOrbStack, 'r', new ItemStack(ModItems.demonicSlate)); - GameRegistry.addRecipe(airSigilStack, "fgf", "fsf", "fof", 'f', featherStack, 'g', new ItemStack(Item.ghastTear,1,craftingConstant), 's', reinforcedSlateStack, 'o', apprenticeBloodOrbStack); - GameRegistry.addRecipe(miningSigilStackCrafted, "sps", "hra", "sos", 'o', apprenticeBloodOrbStack, 's', stoneStack, 'p', ironPickaxeStack, 'h', ironShovelStack, 'a', ironAxeStack, 'r', reinforcedSlateStack); - GameRegistry.addRecipe(runeOfSacrificeStack, "srs", "gog", "srs", 's', stoneStack, 'g', goldIngotStack, 'o', apprenticeBloodOrbStack, 'r', reinforcedSlateStack); - GameRegistry.addRecipe(runeOfSelfSacrificeStack, "srs", "gog", "srs", 's', stoneStack, 'g', glowstoneDustStack, 'o', apprenticeBloodOrbStack, 'r', reinforcedSlateStack); - GameRegistry.addRecipe(divinationSigilStackCrafted, "ggg", "gsg", "gog", 'g', glassStack, 's', blankSlateStack, 'o', weakBloodOrbStack); -// GameRegistry.addRecipe(waterScribeToolStack, "f", "i", 'f', featherStack, 'i', elementalInkWaterStack); -// GameRegistry.addRecipe(fireScribeToolStack, "f", "i", 'f', featherStack, 'i', elementalInkFireStack); -// GameRegistry.addRecipe(earthScribeToolStack, "f", "i", 'f', featherStack, 'i', elementalInkEarthStack); -// GameRegistry.addRecipe(airScribeToolStack, "f", "i", 'f', featherStack, 'i', elementalInkAirStack); - GameRegistry.addRecipe(ritualStoneStackCrafted, "srs", "ror", "srs", 's', obsidianStack, 'o', apprenticeBloodOrbStack, 'r', reinforcedSlateStack); - GameRegistry.addRecipe(masterRitualStoneStack, "brb", "ror", "brb", 'b', obsidianStack, 'o', magicianBloodOrbStack, 'r', ritualStoneStack); - GameRegistry.addRecipe(imperfectRitualStoneStack, "bsb", "sos", "bsb", 's', stoneStack, 'b', obsidianStack, 'o', weakBloodOrbStack); - GameRegistry.addRecipe(sigilOfElementalAffinityStackCrafted, "oao", "wsl", "oro", 'o', obsidianStack, 'a', airSigilStack, 'w', waterSigilStack, 'l', lavaSigilStack, 'r', magicianBloodOrbStack, 's', imbuedSlateStack); - GameRegistry.addRecipe(sigilOfHoldingStack, "asa", "srs", "aoa", 'a', blankSlateStack, 's', stoneStack, 'r', imbuedSlateStack, 'o', magicianBloodOrbStack); - GameRegistry.addRecipe(emptySocketStack, "bgb", "gdg", "bgb", 'b', weakBloodShardStack, 'g', glassStack, 'd', diamondStack); - GameRegistry.addRecipe(armourForgeStack, "sfs", "fof", "sfs", 'f', bloodSocketStack, 's', stoneStack, 'o', magicianBloodOrbStack); - GameRegistry.addShapelessRecipe(largeBloodStoneBrickStackCrafted, weakBloodShardStack, stoneStack); - GameRegistry.addRecipe(bloodStoneBrickStackCrafted, "bb", "bb", 'b', largeBloodStoneBrickStack); - GameRegistry.addRecipe(growthSigilStack, "srs", "rer", "sos", 's', saplingStack, 'r', reedStack, 'o', apprenticeBloodOrbStack, 'e', reinforcedSlateStack); - GameRegistry.addRecipe(blockHomHeartStack, "www", "srs", "sos", 'w', redWoolStack, 's', stoneStack, 'r', bloodRuneStack, 'o', apprenticeBloodOrbStack); - GameRegistry.addShapelessRecipe(new ItemStack(Item.skull, 1, 2), new ItemStack(Item.skull, 1, 1), new ItemStack(Item.rottenFlesh), new ItemStack(Item.ingotIron), new ItemStack(Item.leather)); - GameRegistry.addShapelessRecipe(new ItemStack(Item.skull, 1, 0), new ItemStack(Item.skull, 1, 1), new ItemStack(Item.bow, 1, 0), new ItemStack(Item.arrow, 1, 0), new ItemStack(Item.bone)); - GameRegistry.addShapelessRecipe(new ItemStack(Item.skull, 1, 4), new ItemStack(Item.skull, 1, 1), gunpowderStack, new ItemStack(Block.dirt), new ItemStack(Block.sand)); - GameRegistry.addRecipe(new ItemStack(ModBlocks.blockWritingTable), " s ", "ror", 's', new ItemStack(Item.brewingStand), 'r', obsidianStack, 'o', weakBloodOrbStack); - GameRegistry.addRecipe(new ItemStack(ModBlocks.blockPedestal), "ooo", " c ", "ooo", 'o', obsidianStack, 'c', weakBloodShardStack); - GameRegistry.addRecipe(new ItemStack(ModBlocks.blockPlinth), "iii", " p ", "iii", 'i', ironBlockStack, 'p', new ItemStack(ModBlocks.blockPedestal)); - GameRegistry.addShapelessRecipe(new ItemStack(ModItems.alchemyFlask, 1, 0), new ItemStack(ModItems.alchemyFlask, 1, craftingConstant), new ItemStack(Item.netherStalkSeeds), redstoneStack, glowstoneDustStack); - GameRegistry.addRecipe(new ItemStack(ModItems.sigilOfHaste), "csc", "sts", "ror", 'c', new ItemStack(Item.cookie), 's', new ItemStack(Item.sugar), 't', ModItems.demonicSlate, 'r', obsidianStack, 'o', new ItemStack(ModItems.masterBloodOrb)); - GameRegistry.addRecipe(new ItemStack(ModItems.sigilOfWind), "faf", "grg", "fof", 'f', featherStack, 'g', ghastTearStack, 'a', new ItemStack(ModItems.airSigil), 'o', new ItemStack(ModItems.masterBloodOrb), 'r', ModItems.demonicSlate); - GameRegistry.addShapelessRecipe(new ItemStack(ModItems.weakBloodShard, 5, 0), new ItemStack(ModItems.masterBloodOrb), new ItemStack(ModItems.weakBloodShard), imbuedSlateStack); - GameRegistry.addRecipe(new ItemStack(ModBlocks.blockTeleposer), "ggg", "efe", "ggg", 'g', goldIngotStack, 'f', new ItemStack(ModItems.telepositionFocus), 'e', new ItemStack(Item.enderPearl)); - GameRegistry.addShapelessRecipe(new ItemStack(ModItems.reinforcedTelepositionFocus), new ItemStack(ModItems.enhancedTelepositionFocus), new ItemStack(ModItems.weakBloodShard)); - GameRegistry.addShapelessRecipe(new ItemStack(ModItems.demonicTelepositionFocus), new ItemStack(ModItems.reinforcedTelepositionFocus), new ItemStack(ModItems.demonBloodShard)); - GameRegistry.addRecipe(new ItemStack(ModItems.sigilOfTheBridge), "nnn", "nsn", "ror", 'n', stoneStack, 'r', new ItemStack(Block.slowSand), 's', imbuedSlateStack, 'o', magicianBloodOrbStack); - GameRegistry.addRecipe(new ItemStack(ModItems.armourInhibitor), " gg", "gsg", "gg ", 'g', goldIngotStack, 's', new ItemStack(ModItems.weakBloodShard)); - GameRegistry.addRecipe(new ItemStack(ModItems.itemRitualDiviner), "d1d", "2e3", "d4d", '1', new ItemStack(ModItems.airScribeTool), '2', new ItemStack(ModItems.waterScribeTool), '3', new ItemStack(ModItems.fireScribeTool), '4', new ItemStack(ModItems.earthScribeTool), 'd', diamondStack, 'e', new ItemStack(Item.emerald)); - GameRegistry.addRecipe(duskRitualDivinerStack, " d ", "srs", " d ", 'd', new ItemStack(ModItems.duskScribeTool), 's', new ItemStack(ModItems.demonicSlate), 'r', new ItemStack(ModItems.itemRitualDiviner)); - GameRegistry.addRecipe(new ItemStack(ModItems.sigilOfMagnetism), "bgb", "gsg", "bob", 'b', new ItemStack(Block.blockIron), 'g', goldIngotStack, 's', new ItemStack(ModItems.imbuedSlate), 'o', magicianBloodOrbStack); - GameRegistry.addRecipe(new ItemStack(ModItems.energyBazooka), "Ocd", "cb ", "d w", 'O', archmageBloodOrbStack, 'c', crepitousStack, 'b', new ItemStack(ModItems.energyBlaster), 'd', diamondStack, 'w', new ItemStack(ModItems.weakBloodShard)); - GameRegistry.addRecipe(new ItemStack(ModItems.itemBloodLightSigil), "btb", "sss", "bob", 'o', magicianBloodOrbStack, 'b', glowstoneBlockStack, 't', new ItemStack(Block.torchWood), 's', imbuedSlateStack); - GameRegistry.addRecipe(new ItemStack(ModItems.itemKeyOfDiablo), " gw", "gdg", "wg ", 'w', weakBloodShardStack, 'g', goldIngotStack, 'd', diamondStack); - customPotionDrowning = (new PotionDrowning(customPotionDrowningID, true, 0)).setIconIndex(0, 0).setPotionName("Drowning"); - customPotionBoost = (new PotionBoost(customPotionBoostID, false, 0)).setIconIndex(0, 0).setPotionName("Boost"); - customPotionProjProt = (new PotionProjectileProtect(customPotionProjProtID, false, 0)).setIconIndex(0, 0).setPotionName("Whirlwind"); - customPotionInhibit = (new PotionInhibit(customPotionInhibitID, false, 0)).setIconIndex(0, 0).setPotionName("Inhibit"); - customPotionFlight = (new PotionFlight(customPotionFlightID, false, 0)).setIconIndex(0, 0).setPotionName("Flight"); - customPotionReciprocation = (new PotionReciprocation(customPotionReciprocationID, false, 0xFFFFFF)).setIconIndex(0, 0).setPotionName("Reciprocation"); - customPotionFlameCloak = (new PotionFlameCloak(customPotionFlameCloakID,false,0).setIconIndex(0,0).setPotionName("Flame Cloak")); - customPotionIceCloak = (new PotionIceCloak(customPotionIceCloakID,false,0).setIconIndex(0,0).setPotionName("Ice Cloak")); - customPotionHeavyHeart = (new PotionHeavyHeart(customPotionHeavyHeartID,true,0).setIconIndex(0, 0).setPotionName("Heavy Heart")); - customPotionFireFuse = (new PotionFireFuse(customPotionFireFuseID,true,0).setIconIndex(0, 0).setPotionName("Fire Fuse")); - customPotionPlanarBinding = (new PotionPlanarBinding(customPotionPlanarBindingID,true,0).setIconIndex(0,0).setPotionName("Planar Binding")); - - //All items registered go here - //LanguageRegistry.addName(orbOfTesting, "Orb of Testing"); - LanguageRegistry.addName(ModItems.weakBloodOrb, "Weak Blood Orb"); - LanguageRegistry.addName(ModItems.apprenticeBloodOrb, "Apprentice Blood Orb"); - LanguageRegistry.addName(ModItems.magicianBloodOrb, "Magician's Blood Orb"); - LanguageRegistry.addName(ModItems.archmageBloodOrb, "Archmage's Blood Orb"); - LanguageRegistry.addName(ModItems.energyBlaster, "Energy Blaster"); - LanguageRegistry.addName(ModItems.energySword, "Bound Blade"); - LanguageRegistry.addName(ModItems.lavaCrystal, "Lava Crystal"); - LanguageRegistry.addName(ModItems.waterSigil, "Water Sigil"); - LanguageRegistry.addName(ModItems.lavaSigil, "Lava Sigil"); - LanguageRegistry.addName(ModItems.voidSigil, "Void Sigil"); - //LanguageRegistry.addName(glassShard, "Glass Shard"); - //LanguageRegistry.addName(bloodiedShard, "Bloodied Shard"); - LanguageRegistry.addName(ModItems.blankSlate, "Blank Slate"); - LanguageRegistry.addName(ModItems.reinforcedSlate, "Reinforced Slate"); - - if(this.wimpySettings) - { - LanguageRegistry.addName(ModItems.sacrificialDagger, "Sacrificial Orb"); - }else - { - LanguageRegistry.addName(ModItems.sacrificialDagger, "Sacrificial Knife"); - } - - - LanguageRegistry.addName(ModItems.daggerOfSacrifice, "Dagger of Sacrifice"); - LanguageRegistry.addName(ModItems.airSigil, "Air Sigil"); - LanguageRegistry.addName(ModItems.sigilOfTheFastMiner, "Sigil of the Fast Miner"); - LanguageRegistry.addName(ModItems.sigilOfElementalAffinity, "Sigil of Elemental Affinity"); - LanguageRegistry.addName(ModItems.sigilOfHaste, "Sigil of Haste"); - LanguageRegistry.addName(ModItems.sigilOfHolding, "Sigil of Holding"); - LanguageRegistry.addName(ModItems.growthSigil, "Sigil of the Green Grove"); -// LanguageRegistry.addName(elementalInkWater, "Elemental Ink: Water"); -// LanguageRegistry.addName(elementalInkFire, "Elemental Ink: Fire"); -// LanguageRegistry.addName(elementalInkEarth, "Elemental Ink: Earth"); -// LanguageRegistry.addName(elementalInkAir, "Elemental Ink: Air"); - LanguageRegistry.addName(ModItems.divinationSigil, "Divination Sigil"); - LanguageRegistry.addName(new ItemStack(ModItems.activationCrystal, 1, 0), "Weak Activation Crystal"); - LanguageRegistry.addName(new ItemStack(ModItems.activationCrystal, 1, 1), "Awakened Activation Crystal"); - LanguageRegistry.addName(ModItems.waterScribeTool, "Elemental Inscription Tool: Water"); - LanguageRegistry.addName(ModItems.fireScribeTool, "Elemental Inscription Tool: Fire"); - LanguageRegistry.addName(ModItems.earthScribeTool, "Elemental Inscription Tool: Earth"); - LanguageRegistry.addName(ModItems.airScribeTool, "Elemental Inscription Tool: Air"); - LanguageRegistry.addName(ModItems.boundPickaxe, "Bound Pickaxe"); - LanguageRegistry.addName(ModItems.boundAxe, "Bound Axe"); - LanguageRegistry.addName(ModItems.boundShovel, "Bound Shovel"); - LanguageRegistry.addName(ModItems.boundHelmet, "Bound Helmet"); - LanguageRegistry.addName(ModItems.boundPlate, "Bound Chestplate"); - LanguageRegistry.addName(ModItems.boundLeggings, "Bound Leggings"); - LanguageRegistry.addName(ModItems.boundBoots, "Bound Boots"); - LanguageRegistry.addName(ModItems.weakBloodShard, "Weak Blood Shard"); - LanguageRegistry.addName(ModItems.blankSpell, "Unbound Crystal"); - LanguageRegistry.addName(ModItems.masterBloodOrb, "Master Blood Orb"); - LanguageRegistry.addName(ModItems.alchemyFlask, "Potion Flask"); - LanguageRegistry.addName(ModItems.mundanePowerCatalyst, "Mundane Power Catalyst"); - LanguageRegistry.addName(ModItems.averagePowerCatalyst, "Average Power Catalyst"); - LanguageRegistry.addName(ModItems.greaterPowerCatalyst, "Greater Power Catalyst"); - LanguageRegistry.addName(ModItems.mundaneLengtheningCatalyst, "Mundane Lengthening Catalyst"); - LanguageRegistry.addName(ModItems.averageLengtheningCatalyst, "Average Lengthening Catalyst"); - LanguageRegistry.addName(ModItems.greaterLengtheningCatalyst, "Greater Lengthening Catalyst"); - LanguageRegistry.addName(ModItems.standardBindingAgent, "Standard Binding Agent"); - LanguageRegistry.addName(ModItems.incendium, "Incendium"); - LanguageRegistry.addName(ModItems.magicales, "Magicales"); - LanguageRegistry.addName(ModItems.sanctus, "Sanctus"); - LanguageRegistry.addName(ModItems.aether, "Aether"); - LanguageRegistry.addName(ModItems.simpleCatalyst, "Simple Catalyst"); - LanguageRegistry.addName(ModItems.crepitous, "Crepitous"); - LanguageRegistry.addName(ModItems.crystallos, "Crystallos"); - LanguageRegistry.addName(ModItems.terrae, "Terrae"); - LanguageRegistry.addName(ModItems.aquasalus, "Aquasalus"); - LanguageRegistry.addName(ModItems.tennebrae, "Tennebrae"); - LanguageRegistry.addName(ModItems.sigilOfWind, "Sigil of the Whirlwind"); - LanguageRegistry.addName(ModItems.telepositionFocus, "Teleposition Focus"); - LanguageRegistry.addName(ModItems.enhancedTelepositionFocus, "Enhanced Teleposition Focus"); - LanguageRegistry.addName(ModItems.reinforcedTelepositionFocus, "Reinforced Teleposition Focus"); - LanguageRegistry.addName(ModItems.demonicTelepositionFocus, "Demonic Teleposition Focus"); - LanguageRegistry.addName(ModItems.imbuedSlate, "Imbued Slate"); - LanguageRegistry.addName(ModItems.demonicSlate, "Demonic Slate"); - LanguageRegistry.addName(ModItems.duskScribeTool, "Elemental Inscription Tool: Dusk"); - LanguageRegistry.addName(ModItems.sigilOfTheBridge, "Sigil of the Phantom Bridge"); - LanguageRegistry.addName(ModItems.armourInhibitor, "Armour Inhibitor"); - LanguageRegistry.addName(ModItems.creativeFiller, "Orb of Testing"); - LanguageRegistry.addName(ModItems.weakFillingAgent, "Weak Filling Agent"); - LanguageRegistry.addName(ModItems.standardFillingAgent, "Standard Filling Agent"); - LanguageRegistry.addName(ModItems.enhancedFillingAgent, "Enhanced Filling Agent"); - LanguageRegistry.addName(ModItems.weakBindingAgent, "Weak Binding Agent"); - LanguageRegistry.addName(ModItems.itemRitualDiviner, "Ritual Diviner"); - LanguageRegistry.addName(ModItems.sigilOfMagnetism, "Sigil of Magnetism"); - LanguageRegistry.addName(ModItems.itemKeyOfDiablo, "Key of Binding"); - LanguageRegistry.addName(ModItems.energyBazooka, "Energy Bazooka"); - LanguageRegistry.addName(ModItems.itemBloodLightSigil, "Sigil of the Blood Lamp"); - LanguageRegistry.addName(ModItems.demonBloodShard, "Demon Blood Shard"); - LanguageRegistry.addName(ModItems.itemSigilOfSupression, "Sigil of the Dome"); - //FluidStack lifeEssenceFluidStack = new FluidStack(lifeEssenceFluid, 1); - //LiquidStack lifeEssence = new LiquidStack(lifeEssenceFlowing, 1); - //LiquidDictionary.getOrCreateLiquid("Life Essence", lifeEssence); - FluidRegistry.registerFluid(lifeEssenceFluid); - ModBlocks.blockLifeEssence = new LifeEssenceBlock(lifeEssenceFluidID); - ModBlocks.blockLifeEssence.setUnlocalizedName("lifeEssenceBlock"); - bucketLife = (new LifeBucket(bucketLifeItemID, ModBlocks.blockLifeEssence.blockID)).setUnlocalizedName("bucketLife").setContainerItem(Item.bucketEmpty).setCreativeTab(CreativeTabs.tabMisc); - FluidContainerRegistry.registerFluidContainer(lifeEssenceFluid, new ItemStack(bucketLife), FluidContainerRegistry.EMPTY_BUCKET); - FluidRegistry.registerFluid(lifeEssenceFluid); - //lifeEssenceFluid.setUnlocalizedName("lifeEssence"); - //LiquidContainerRegistry.registerLiquid(new LiquidContainerData(LiquidDictionary.getLiquid("Life Essence", LiquidContainerRegistry.BUCKET_VOLUME), new ItemStack(AlchemicalWizardry.bucketLife), new ItemStack(Item.bucketEmpty))); - //GameRegistry.registerBlock(testingBlock, "testingBlock"); - //LanguageRegistry.addName(testingBlock, "Testing Block"); - //MinecraftForge.setBlockHarvestLevel(testingBlock, "pickaxe", 0); - GameRegistry.registerBlock(ModBlocks.blockAltar, "bloodAltar"); - LanguageRegistry.addName(ModBlocks.blockAltar, "Blood Altar"); - GameRegistry.registerBlock(ModBlocks.blockLifeEssence, "lifeEssence"); - LanguageRegistry.addName(ModBlocks.blockLifeEssence, "Life Essence"); - MinecraftForge.setBlockHarvestLevel(ModBlocks.blockAltar, "pickaxe", 1); - //Register Tile Entity - GameRegistry.registerTileEntity(TEAltar.class, "containerAltar"); - GameRegistry.registerTileEntity(TEMasterStone.class, "containerMasterStone"); - GameRegistry.registerTileEntity(TESocket.class, "containerSocket"); - GameRegistry.registerTileEntity(TEWritingTable.class, "containerWritingTable"); - GameRegistry.registerTileEntity(TEHomHeart.class, "containerHomHeart"); - GameRegistry.registerTileEntity(TEPedestal.class, "containerPedestal"); - GameRegistry.registerTileEntity(TEPlinth.class, "containerPlinth"); - GameRegistry.registerTileEntity(TETeleposer.class, "containerTeleposer"); - GameRegistry.registerTileEntity(TEConduit.class, "containerConduit"); - GameRegistry.registerTileEntity(TEOrientable.class, "containerOrientable"); - GameRegistry.registerTileEntity(TESpellParadigmBlock.class, "containerSpellParadigmBlock"); - GameRegistry.registerTileEntity(TESpellEffectBlock.class, "containerSpellEffectBlock"); - GameRegistry.registerTileEntity(TESpellModifierBlock.class, "containerSpellModifierBlock"); - GameRegistry.registerTileEntity(TESpellEnhancementBlock.class, "containerSpellEnhancementBlock"); - GameRegistry.registerTileEntity(TESpectralContainer.class, "containerSpectralBlock"); - // - GameRegistry.registerBlock(ModBlocks.bloodRune, ItemBloodRuneBlock.class, "AlchemicalWizardry" + (ModBlocks.bloodRune.getUnlocalizedName().substring(5))); - LanguageRegistry.addName(new ItemStack(ModBlocks.bloodRune, 1, 0), "Blood Rune"); - LanguageRegistry.addName(new ItemStack(ModBlocks.bloodRune, 1, 1), "Rune of Augmented Capacity"); - LanguageRegistry.addName(new ItemStack(ModBlocks.bloodRune, 1, 2), "Rune of Dislocation"); - LanguageRegistry.addName(new ItemStack(ModBlocks.bloodRune, 1, 3), "Rune of the Orb"); - //TODO - - GameRegistry.registerBlock(ModBlocks.blockSpellParadigm, ItemSpellParadigmBlock.class, "AlchemicalWizardry" + (ModBlocks.blockSpellParadigm.getUnlocalizedName())); - LanguageRegistry.addName(new ItemStack(ModBlocks.blockSpellParadigm, 1, 0), "Particle Generator"); - LanguageRegistry.addName(new ItemStack(ModBlocks.blockSpellParadigm, 1, 1), "Self Augmentator"); - LanguageRegistry.addName(new ItemStack(ModBlocks.blockSpellParadigm, 1, 2), "Melee Aggregator"); - - GameRegistry.registerBlock(ModBlocks.blockSpellEnhancement, ItemSpellEnhancementBlock.class,"AlchemicalWizardry" + (ModBlocks.blockSpellEnhancement.getUnlocalizedName())); - LanguageRegistry.addName(new ItemStack(ModBlocks.blockSpellEnhancement, 1, 0), "Unstable Spell Empowerer"); - LanguageRegistry.addName(new ItemStack(ModBlocks.blockSpellEnhancement, 1, 1), "Standard Spell Empowerer"); - LanguageRegistry.addName(new ItemStack(ModBlocks.blockSpellEnhancement, 1, 2), "Reinforced Spell Empowerer"); - LanguageRegistry.addName(new ItemStack(ModBlocks.blockSpellEnhancement, 1, 3), "Imbued Spell Empowerer"); - LanguageRegistry.addName(new ItemStack(ModBlocks.blockSpellEnhancement, 1, 4), "Demonic Spell Empowerer"); - LanguageRegistry.addName(new ItemStack(ModBlocks.blockSpellEnhancement, 1, 5), "Unstable Spell Dampener"); - LanguageRegistry.addName(new ItemStack(ModBlocks.blockSpellEnhancement, 1, 6), "Standard Spell Dampener"); - LanguageRegistry.addName(new ItemStack(ModBlocks.blockSpellEnhancement, 1, 7), "Reinforced Spell Dampener"); - LanguageRegistry.addName(new ItemStack(ModBlocks.blockSpellEnhancement, 1, 8), "Imbued Spell Dampener"); - LanguageRegistry.addName(new ItemStack(ModBlocks.blockSpellEnhancement, 1, 9), "Demonic Spell Dampener"); - LanguageRegistry.addName(new ItemStack(ModBlocks.blockSpellEnhancement, 1, 10), "Unstable Spell Augmenter"); - LanguageRegistry.addName(new ItemStack(ModBlocks.blockSpellEnhancement, 1, 11), "Standard Spell Augmenter"); - LanguageRegistry.addName(new ItemStack(ModBlocks.blockSpellEnhancement, 1, 12), "Reinforced Spell Augmenter"); - LanguageRegistry.addName(new ItemStack(ModBlocks.blockSpellEnhancement, 1, 13), "Imbued Spell Augmenter"); - LanguageRegistry.addName(new ItemStack(ModBlocks.blockSpellEnhancement, 1, 14), "Demonic Spell Augmenter"); - - GameRegistry.registerBlock(ModBlocks.blockSpellModifier, ItemSpellModifierBlock.class,"AlchemicalWizardry" + (ModBlocks.blockSpellModifier.getUnlocalizedName())); - LanguageRegistry.addName(new ItemStack(ModBlocks.blockSpellModifier, 1, 0), "Default Spell Modifier"); - LanguageRegistry.addName(new ItemStack(ModBlocks.blockSpellModifier, 1, 1), "Offensive Spell Modifier"); - LanguageRegistry.addName(new ItemStack(ModBlocks.blockSpellModifier, 1, 2), "Defensive Spell Modifier"); - LanguageRegistry.addName(new ItemStack(ModBlocks.blockSpellModifier, 1, 3), "Environmental Spell Modifier"); - - GameRegistry.registerBlock(ModBlocks.blockSpellEffect, ItemSpellEffectBlock.class,"AlchemicalWizardry" + (ModBlocks.blockSpellEffect.getUnlocalizedName())); - LanguageRegistry.addName(new ItemStack(ModBlocks.blockSpellEffect, 1, 0), "Crucible of Fire"); - LanguageRegistry.addName(new ItemStack(ModBlocks.blockSpellEffect, 1, 1), "Ice Maker"); - LanguageRegistry.addName(new ItemStack(ModBlocks.blockSpellEffect, 1, 2), "Wind Generator"); - LanguageRegistry.addName(new ItemStack(ModBlocks.blockSpellEffect, 1, 3), "Earth Former"); - - GameRegistry.registerBlock(ModBlocks.speedRune, "speedRune"); - LanguageRegistry.addName(ModBlocks.speedRune, "Speed Rune"); - GameRegistry.registerBlock(ModBlocks.efficiencyRune, "efficiencyRune"); - LanguageRegistry.addName(ModBlocks.efficiencyRune, "Efficiency Rune"); - GameRegistry.registerBlock(ModBlocks.runeOfSacrifice, "runeOfSacrifice"); - LanguageRegistry.addName(ModBlocks.runeOfSacrifice, "Rune of Sacrifice"); - GameRegistry.registerBlock(ModBlocks.runeOfSelfSacrifice, "runeOfSelfSacrifice"); - LanguageRegistry.addName(ModBlocks.runeOfSelfSacrifice, "Rune of Self-sacrifice"); -// GameRegistry.registerBlock(lifeEssenceStill, "lifeEssenceStill"); -// GameRegistry.registerBlock(lifeEssenceFlowing, "lifeEssenceFlowing"); - //LanguageRegistry.addName(lifeEssenceStill, "Life Essence"); - LanguageRegistry.addName(bucketLife, "Bucket of Life"); - GameRegistry.registerBlock(ModBlocks.ritualStone, "ritualStone"); - GameRegistry.registerBlock(ModBlocks.blockMasterStone, "masterStone"); - GameRegistry.registerBlock(ModBlocks.bloodSocket, "bloodSocket"); - LanguageRegistry.addName(ModBlocks.blockMasterStone, "Master Ritual Stone"); - GameRegistry.registerBlock(ModBlocks.imperfectRitualStone, "imperfectRitualStone"); - LanguageRegistry.addName(ModBlocks.imperfectRitualStone, "Imperfect Ritual Stone"); - LanguageRegistry.addName(ModBlocks.ritualStone, "Ritual Stone"); - LanguageRegistry.addName(ModBlocks.armourForge, "Soul Armour Forge"); - LanguageRegistry.addName(ModBlocks.emptySocket, "Empty Socket"); - LanguageRegistry.addName(ModBlocks.bloodSocket, "Filled Socket"); - LanguageRegistry.addName(ModBlocks.bloodStoneBrick, "Bloodstone Brick"); - LanguageRegistry.addName(ModBlocks.largeBloodStoneBrick, "Large Bloodstone Brick"); - LanguageRegistry.addName(ModBlocks.blockHomHeart, "Spell Table"); - LanguageRegistry.addName(ModBlocks.blockPedestal, "Arcane Pedestal"); - LanguageRegistry.addName(ModBlocks.blockPlinth, "Arcane Plinth"); - LanguageRegistry.addName(ModBlocks.blockWritingTable, "Alchemic Chemistry Set"); - LanguageRegistry.addName(ModBlocks.blockTeleposer, "Teleposer"); - LanguageRegistry.addName(ModBlocks.spectralBlock, "Spectral Block"); - LanguageRegistry.addName(ModBlocks.blockBloodLight, "Blood Light"); - LanguageRegistry.addName(ModBlocks.blockConduit, "Spell Conduit"); - //TODO - GameRegistry.registerBlock(ModBlocks.armourForge, "armourForge"); - GameRegistry.registerBlock(ModBlocks.emptySocket, "emptySocket"); - GameRegistry.registerBlock(ModBlocks.bloodStoneBrick, "bloodStoneBrick"); - GameRegistry.registerBlock(ModBlocks.largeBloodStoneBrick, "largeBloodStoneBrick"); - GameRegistry.registerBlock(ModBlocks.blockWritingTable, "blockWritingTable"); - GameRegistry.registerBlock(ModBlocks.blockHomHeart, "blockHomHeart"); - GameRegistry.registerBlock(ModBlocks.blockPedestal, "blockPedestal"); - GameRegistry.registerBlock(ModBlocks.blockPlinth, "blockPlinth"); - GameRegistry.registerBlock(ModBlocks.blockTeleposer, "blockTeleposer"); - GameRegistry.registerBlock(ModBlocks.spectralBlock, "spectralBlock"); - GameRegistry.registerBlock(ModBlocks.blockBloodLight, "bloodLight"); - GameRegistry.registerBlock(ModBlocks.blockConduit,"blockConduit"); - //GameRegistry.registerBlock(ModBlocks.blockSpellEffect,"blockSpellEffect"); - MinecraftForge.setBlockHarvestLevel(ModBlocks.bloodRune, "pickaxe", 2); - MinecraftForge.setBlockHarvestLevel(ModBlocks.speedRune, "pickaxe", 2); - MinecraftForge.setBlockHarvestLevel(ModBlocks.efficiencyRune, "pickaxe", 2); - MinecraftForge.setBlockHarvestLevel(ModBlocks.runeOfSacrifice, "pickaxe", 2); - MinecraftForge.setBlockHarvestLevel(ModBlocks.runeOfSelfSacrifice, "pickaxe", 2); - MinecraftForge.setBlockHarvestLevel(ModBlocks.ritualStone, "pickaxe", 2); - MinecraftForge.setBlockHarvestLevel(ModBlocks.bloodSocket, "pickaxe", 2); - MinecraftForge.setBlockHarvestLevel(ModBlocks.ritualStone, "pickaxe", 2); - MinecraftForge.setBlockHarvestLevel(ModBlocks.imperfectRitualStone, "pickaxe", 2); - MinecraftForge.setBlockHarvestLevel(ModBlocks.blockMasterStone, "pickaxe", 2); - MinecraftForge.setBlockHarvestLevel(ModBlocks.emptySocket, "pickaxe", 2); - MinecraftForge.setBlockHarvestLevel(ModBlocks.bloodStoneBrick, "pickaxe", 0); - MinecraftForge.setBlockHarvestLevel(ModBlocks.largeBloodStoneBrick, "pickaxe", 0); - MinecraftForge.setBlockHarvestLevel(ModBlocks.blockWritingTable, "pickaxe", 1); - MinecraftForge.setBlockHarvestLevel(ModBlocks.blockHomHeart, "pickaxe", 1); - MinecraftForge.setBlockHarvestLevel(ModBlocks.blockPedestal, "pickaxe", 2); - MinecraftForge.setBlockHarvestLevel(ModBlocks.blockPlinth, "pickaxe", 2); - MinecraftForge.setBlockHarvestLevel(ModBlocks.blockTeleposer, "pickaxe", 2); - //Fuel handler - GameRegistry.registerFuelHandler(new AlchemicalWizardryFuelHandler()); - //EntityRegistry.registerModEntity(EnergyBlastProjectile.class, "BlasterProj", 0, this, 128, 5, true); - proxy.registerEntityTrackers(); - //Gui registration - // NetworkRegistry.instance().registerGuiHandler(this, new GuiHandlerAltar()); - - UpgradedAltars.loadAltars(); - SigilOfHolding.initiateSigilOfHolding(); - ArmourForge.initializeRecipes(); - TEPlinth.initialize(); - - //TODO - this.initAlchemyPotionRecipes(); - this.initAltarRecipes(); - this.initRituals(); - this.initBindingRecipes(); - ItemBloodArchives.initBooks(); - - - MinecraftForge.setToolClass(ModItems.boundPickaxe, "pickaxe", 5); - MinecraftForge.setToolClass(ModItems.boundAxe, "axe", 5); - MinecraftForge.setToolClass(ModItems.boundShovel, "shovel", 5); - MinecraftForge.EVENT_BUS.register(new ModLivingDropsEvent()); - proxy.InitRendering(); - NetworkRegistry.instance().registerGuiHandler(this, new GuiHandler()); -// ItemStack[] comp = new ItemStack[5]; -// for(int i=0;i<5;i++) -// { -// comp[i] = redstoneStack; -// } -// AlchemyRecipeRegistry.registerRecipe(glowstoneDustStack, 2, comp, 2); - - - ItemStack offensaStack = new ItemStack(ModItems.baseAlchemyItems,1,0); - ItemStack praesidiumStack = new ItemStack(ModItems.baseAlchemyItems,1,1); - ItemStack orbisTerraeStack = new ItemStack(ModItems.baseAlchemyItems,1,2); - ItemStack strengthenedCatalystStack = new ItemStack(ModItems.baseAlchemyItems,1,3); - ItemStack concentratedCatalystStack = new ItemStack(ModItems.baseAlchemyItems,1,4); - ItemStack fracturedBoneStack = new ItemStack(ModItems.baseAlchemyItems,1,5); - ItemStack virtusStack = new ItemStack(ModItems.baseAlchemyItems,1,6); - ItemStack reductusStack = new ItemStack(ModItems.baseAlchemyItems,1,7); - ItemStack potentiaStack = new ItemStack(ModItems.baseAlchemyItems,1,8); - - ItemStack strengthenedCatalystStackCrafted = new ItemStack(ModItems.baseAlchemyItems,2,3); - ItemStack fracturedBoneStackCrafted = new ItemStack(ModItems.baseAlchemyItems,4,5); - - - - //TODO NEW RECIPES! - AlchemyRecipeRegistry.registerRecipe(new ItemStack(ModItems.weakBindingAgent), 10, new ItemStack[]{simpleCatalystStack, simpleCatalystStack, new ItemStack(Item.clay)}, 2); - AlchemyRecipeRegistry.registerRecipe(new ItemStack(ModItems.standardBindingAgent), 15, new ItemStack[]{new ItemStack(ModItems.weakBindingAgent), sanctusStack, new ItemStack(ModItems.crystallos)}, 3); - AlchemyRecipeRegistry.registerRecipe(simpleCatalystStack, 2, new ItemStack[]{sugarStack, redstoneStack, redstoneStack, glowstoneDustStack, gunpowderStack}, 1); - AlchemyRecipeRegistry.registerRecipe(new ItemStack(ModItems.incendium), 5, new ItemStack[]{lavaBucketStack, new ItemStack(Item.blazePowder), new ItemStack(Item.blazePowder), new ItemStack(Block.netherrack), simpleCatalystStack}, 2); - AlchemyRecipeRegistry.registerRecipe(new ItemStack(ModItems.aether), 5, new ItemStack[]{featherStack, featherStack, glowstoneDustStack, ghastTearStack, simpleCatalystStack}, 2); - AlchemyRecipeRegistry.registerRecipe(new ItemStack(ModItems.sanctus), 5, new ItemStack[]{glowstoneDustStack, new ItemStack(Item.goldNugget), glowstoneDustStack, glassStack, simpleCatalystStack}, 2); - AlchemyRecipeRegistry.registerRecipe(new ItemStack(ModItems.crepitous), 5, new ItemStack[]{gunpowderStack, gunpowderStack, cobblestoneStack, cobblestoneStack, simpleCatalystStack}, 2); - AlchemyRecipeRegistry.registerRecipe(new ItemStack(ModItems.crystallos), 5, new ItemStack[]{new ItemStack(Block.ice), new ItemStack(Block.ice), new ItemStack(Block.blockSnow), new ItemStack(Block.blockSnow), simpleCatalystStack}, 2); - AlchemyRecipeRegistry.registerRecipe(new ItemStack(ModItems.terrae), 5, new ItemStack[]{new ItemStack(Block.dirt), new ItemStack(Block.sand), obsidianStack, obsidianStack, simpleCatalystStack}, 2); - AlchemyRecipeRegistry.registerRecipe(new ItemStack(ModItems.aquasalus), 5, new ItemStack[]{simpleCatalystStack, new ItemStack(Item.dyePowder, 1, 0), new ItemStack(Item.potion, 1, 0), new ItemStack(Item.potion, 1, 0), new ItemStack(Item.potion, 1, 0)}, 2); - AlchemyRecipeRegistry.registerRecipe(new ItemStack(ModItems.tennebrae), 5, new ItemStack[]{simpleCatalystStack, new ItemStack(Item.coal), new ItemStack(Item.coal), new ItemStack(Block.obsidian), new ItemStack(Item.clay)}, 2); - AlchemyRecipeRegistry.registerRecipe(new ItemStack(ModItems.magicales), 5, new ItemStack[]{redstoneStack, simpleCatalystStack, gunpowderStack, new ItemStack(Item.glowstone), new ItemStack(Item.glowstone)}, 2); - AlchemyRecipeRegistry.registerRecipe(new ItemStack(ModItems.mundanePowerCatalyst), 10, new ItemStack[]{glowstoneDustStack, glowstoneDustStack, glowstoneDustStack, new ItemStack(ModItems.weakBindingAgent), simpleCatalystStack}, 3); - AlchemyRecipeRegistry.registerRecipe(new ItemStack(ModItems.mundaneLengtheningCatalyst), 10, new ItemStack[]{redstoneStack, redstoneStack, redstoneStack, new ItemStack(ModItems.weakBindingAgent), simpleCatalystStack}, 3); - AlchemyRecipeRegistry.registerRecipe(new ItemStack(ModItems.averagePowerCatalyst), 20, new ItemStack[]{new ItemStack(ModItems.mundanePowerCatalyst), new ItemStack(ModItems.mundanePowerCatalyst), new ItemStack(ModItems.standardBindingAgent)}, 4); - AlchemyRecipeRegistry.registerRecipe(new ItemStack(ModItems.averageLengtheningCatalyst), 20, new ItemStack[]{new ItemStack(ModItems.mundaneLengtheningCatalyst), new ItemStack(ModItems.mundaneLengtheningCatalyst), new ItemStack(ModItems.standardBindingAgent)}, 4); - AlchemyRecipeRegistry.registerRecipe(new ItemStack(ModItems.greaterPowerCatalyst), 30, new ItemStack[]{new ItemStack(ModItems.averagePowerCatalyst), new ItemStack(ModItems.averagePowerCatalyst), new ItemStack(ModItems.incendium)}, 4); - AlchemyRecipeRegistry.registerRecipe(new ItemStack(ModItems.greaterLengtheningCatalyst), 30, new ItemStack[]{new ItemStack(ModItems.averageLengtheningCatalyst), new ItemStack(ModItems.averageLengtheningCatalyst), new ItemStack(ModItems.aquasalus)}, 4); - AlchemyRecipeRegistry.registerRecipe(new ItemStack(ModItems.weakFillingAgent), 5, new ItemStack[]{simpleCatalystStack, new ItemStack(Item.netherStalkSeeds), redstoneStack, glowstoneDustStack}, 3); - AlchemyRecipeRegistry.registerRecipe(new ItemStack(ModItems.standardFillingAgent), 10, new ItemStack[]{new ItemStack(ModItems.weakFillingAgent), new ItemStack(ModItems.terrae)}, 3); - AlchemyRecipeRegistry.registerRecipe(new ItemStack(ModItems.enhancedFillingAgent), 25, new ItemStack[]{new ItemStack(ModItems.standardFillingAgent), new ItemStack(ModItems.aquasalus), new ItemStack(ModItems.magicales)}, 4); - AlchemyRecipeRegistry.registerRecipe(new ItemStack(ModItems.activationCrystal, 1, 1), 100, new ItemStack[]{new ItemStack(ModItems.activationCrystal, 1, 0), new ItemStack(ModItems.demonBloodShard), incendiumStack, aquasalusStack, aetherStack}, 4); - AlchemyRecipeRegistry.registerRecipe(new ItemStack(ModItems.activationCrystal, 1, 1), 100, new ItemStack[]{new ItemStack(ModItems.activationCrystal, 1, 0), new ItemStack(Item.netherStar), incendiumStack, aquasalusStack, aetherStack}, 4); - - AlchemyRecipeRegistry.registerRecipe(new ItemStack(Block.web),2,new ItemStack[]{new ItemStack(Item.silk),new ItemStack(Item.silk),new ItemStack(Item.silk),new ItemStack(Item.silk),new ItemStack(Item.silk)},1); - AlchemyRecipeRegistry.registerRecipe(new ItemStack(Item.gunpowder,2,0), 2, new ItemStack[]{gunpowderStack, new ItemStack(Item.coal), new ItemStack(Block.sand)}, 1); - - AlchemyRecipeRegistry.registerRecipe(strengthenedCatalystStackCrafted, 10, new ItemStack[]{simpleCatalystStack, simpleCatalystStack, new ItemStack(Item.dyePowder,1,15), new ItemStack(Item.netherStalkSeeds)}, 3); - AlchemyRecipeRegistry.registerRecipe(offensaStack,10, new ItemStack[]{strengthenedCatalystStack,incendiumStack, new ItemStack(Item.arrow), new ItemStack(Item.flint), new ItemStack(Item.arrow)},3); - AlchemyRecipeRegistry.registerRecipe(praesidiumStack, 10, new ItemStack[]{strengthenedCatalystStack,tennebraeStack,ironIngotStack,new ItemStack(Block.web),redstoneStack}, 3); - AlchemyRecipeRegistry.registerRecipe(orbisTerraeStack, 10, new ItemStack[]{strengthenedCatalystStack,terraeStack, gunpowderStack, new ItemStack(Block.netherrack), new ItemStack(Block.sand)}, 3); - AlchemyRecipeRegistry.registerRecipe(concentratedCatalystStack,10,new ItemStack[]{strengthenedCatalystStack,fracturedBoneStack,goldNuggetStack},4); - AlchemyRecipeRegistry.registerRecipe(fracturedBoneStackCrafted, 2, new ItemStack[]{new ItemStack(Item.bone), new ItemStack(Item.bone),new ItemStack(Item.bone),new ItemStack(Item.bone), gunpowderStack},1); - AlchemyRecipeRegistry.registerRecipe(virtusStack,20, new ItemStack[]{redstoneStack, new ItemStack(Item.coal),strengthenedCatalystStack,redstoneStack,gunpowderStack}, 3); - AlchemyRecipeRegistry.registerRecipe(reductusStack,20,new ItemStack[]{redstoneStack, goldIngotStack, strengthenedCatalystStack,new ItemStack(Block.slowSand), new ItemStack(Item.carrot)},3); - AlchemyRecipeRegistry.registerRecipe(potentiaStack,20, new ItemStack[]{glowstoneDustStack,strengthenedCatalystStack,lapisStack,lapisStack,new ItemStack(Item.netherQuartz)}, 3); - - HomSpellRegistry.registerBasicSpell(new ItemStack(Item.flintAndSteel), new SpellFireBurst()); - HomSpellRegistry.registerBasicSpell(new ItemStack(Block.ice), new SpellFrozenWater()); - HomSpellRegistry.registerBasicSpell(new ItemStack(Block.tnt), new SpellExplosions()); - HomSpellRegistry.registerBasicSpell(new ItemStack(ModItems.apprenticeBloodOrb), new SpellHolyBlast()); - HomSpellRegistry.registerBasicSpell(new ItemStack(Item.ghastTear), new SpellWindGust()); - HomSpellRegistry.registerBasicSpell(new ItemStack(Item.glowstone), new SpellLightningBolt()); - HomSpellRegistry.registerBasicSpell(new ItemStack(Item.bucketWater), new SpellWateryGrave()); - HomSpellRegistry.registerBasicSpell(new ItemStack(Block.obsidian), new SpellEarthBender()); - HomSpellRegistry.registerBasicSpell(new ItemStack(Item.enderPearl), new SpellTeleport()); - SummoningRegistry.registerSummon(new SummoningHelperAW(this.entityFallenAngelID), new ItemStack[]{sanctusStack, sanctusStack, sanctusStack, aetherStack, tennebraeStack, terraeStack}, new ItemStack[]{}, new ItemStack[]{}, 0, 4); - SummoningRegistry.registerSummon(new SummoningHelperAW(this.entityLowerGuardianID), new ItemStack[]{cobblestoneStack, cobblestoneStack, terraeStack, tennebraeStack, new ItemStack(Item.ingotIron), new ItemStack(Item.goldNugget)}, new ItemStack[]{}, new ItemStack[]{}, 0, 4); - SummoningRegistry.registerSummon(new SummoningHelperAW(this.entityBileDemonID), new ItemStack[]{new ItemStack(Item.poisonousPotato), tennebraeStack, terraeStack, new ItemStack(Item.porkRaw), new ItemStack(Item.egg), new ItemStack(Item.beefRaw)}, new ItemStack[]{crepitousStack, crepitousStack, terraeStack, ironBlockStack, ironBlockStack, diamondStack}, new ItemStack[]{}, 0, 5); - SummoningRegistry.registerSummon(new SummoningHelperAW(this.entityWingedFireDemonID), new ItemStack[]{aetherStack, incendiumStack, incendiumStack, incendiumStack, tennebraeStack, new ItemStack(Block.netherrack)}, new ItemStack[]{diamondStack, new ItemStack(Block.blockGold), magicalesStack, magicalesStack, new ItemStack(Item.fireballCharge), new ItemStack(Block.coalBlock)}, new ItemStack[]{}, 0, 5); - SummoningRegistry.registerSummon(new SummoningHelperAW(this.entitySmallEarthGolemID), new ItemStack[]{new ItemStack(Item.clay), terraeStack, terraeStack}, new ItemStack[]{}, new ItemStack[]{}, 0, 4); - SummoningRegistry.registerSummon(new SummoningHelperAW(this.entityIceDemonID), new ItemStack[]{crystallosStack, crystallosStack, aquasalusStack, crystallosStack, sanctusStack, terraeStack}, new ItemStack[]{}, new ItemStack[]{}, 0, 4); - SummoningRegistry.registerSummon(new SummoningHelperAW(this.entityBoulderFistID), new ItemStack[]{terraeStack, sanctusStack, tennebraeStack, new ItemStack(Item.bone), new ItemStack(Item.beefCooked), new ItemStack(Item.beefCooked)}, new ItemStack[]{}, new ItemStack[]{}, 0, 4); - SummoningRegistry.registerSummon(new SummoningHelperAW(this.entityShadeID), new ItemStack[]{tennebraeStack, tennebraeStack, tennebraeStack, aetherStack, glassStack, new ItemStack(Item.glassBottle)}, new ItemStack[]{}, new ItemStack[]{}, 0, 4); - SummoningRegistry.registerSummon(new SummoningHelperAW(this.entityAirElementalID), new ItemStack[]{aetherStack, aetherStack, aetherStack, aetherStack, aetherStack, aetherStack}, new ItemStack[]{}, new ItemStack[]{}, 0, 4); - SummoningRegistry.registerSummon(new SummoningHelperAW(this.entityWaterElementalID), new ItemStack[]{aquasalusStack, aquasalusStack, aquasalusStack, aquasalusStack, aquasalusStack, aquasalusStack}, new ItemStack[]{}, new ItemStack[]{}, 0, 4); - SummoningRegistry.registerSummon(new SummoningHelperAW(this.entityEarthElementalID), new ItemStack[]{terraeStack, terraeStack, terraeStack, terraeStack, terraeStack, terraeStack}, new ItemStack[]{}, new ItemStack[]{}, 0, 4); - SummoningRegistry.registerSummon(new SummoningHelperAW(this.entityFireElementalID), new ItemStack[]{incendiumStack, incendiumStack, incendiumStack, incendiumStack, incendiumStack, incendiumStack}, new ItemStack[]{}, new ItemStack[]{}, 0, 4); - //TODO SummoningRegistry.registerSummon(new SummoningHelperAW(this.entityShadeElementalID), new ItemStack[]{tennebraeStack,tennebraeStack,tennebraeStack,tennebraeStack,tennebraeStack,tennebraeStack}, new ItemStack[]{}, new ItemStack[]{}, 0, 4); - SummoningRegistry.registerSummon(new SummoningHelperAW(this.entityHolyElementalID), new ItemStack[]{sanctusStack, sanctusStack, sanctusStack, sanctusStack, sanctusStack, sanctusStack}, new ItemStack[]{}, new ItemStack[]{}, 0, 4); - //SummoningRegistry.registerSummon(new SummoningHelperAW(this.entityTestDemonID), new ItemStack[]{stoneStack,stoneStack,stoneStack,stoneStack,stoneStack,stoneStack}, new ItemStack[]{}, new ItemStack[]{}, 0, 4); - - //Custom mobs - EntityRegistry.registerModEntity(EntityFallenAngel.class, "FallenAngel", this.entityFallenAngelID, this, 80, 3, true); - EntityRegistry.registerModEntity(EntityLowerGuardian.class, "LowerGuardian", this.entityLowerGuardianID, this, 80, 3, true); - EntityRegistry.registerModEntity(EntityBileDemon.class, "BileDemon", this.entityBileDemonID, this, 80, 3, true); - EntityRegistry.registerModEntity(EntityWingedFireDemon.class, "WingedFireDemon", this.entityWingedFireDemonID, this, 80, 3, true); - EntityRegistry.registerModEntity(EntitySmallEarthGolem.class, "SmallEarthGolem", this.entitySmallEarthGolemID, this, 80, 3, true); - EntityRegistry.registerModEntity(EntityIceDemon.class, "IceDemon", this.entityIceDemonID, this, 80, 3, true); - EntityRegistry.registerModEntity(EntityBoulderFist.class, "BoulderFist", this.entityBoulderFistID, this, 80, 3, true); - EntityRegistry.registerModEntity(EntityShade.class, "Shade", this.entityShadeID, this, 80, 3, true); - EntityRegistry.registerModEntity(EntityAirElemental.class, "AirElemental", this.entityAirElementalID, this, 120, 3, true); - EntityRegistry.registerModEntity(EntityWaterElemental.class, "WaterElemental", this.entityWaterElementalID, this, 120, 3, true); - EntityRegistry.registerModEntity(EntityEarthElemental.class, "EarthElemental", this.entityEarthElementalID, this, 120, 3, true); - EntityRegistry.registerModEntity(EntityFireElemental.class, "FireElemental", this.entityFireElementalID, this, 120, 3, true); - EntityRegistry.registerModEntity(EntityShadeElemental.class, "ShadeElemental", this.entityShadeElementalID, this, 120, 3, true); - EntityRegistry.registerModEntity(EntityHolyElemental.class, "HolyElemental", this.entityHolyElementalID, this, 120, 3, true); - EntityRegistry.registerModEntity(EntityTestDemon.class, "TestDemon", this.entityTestDemonID, this, 120, 3, true); - //EntityRegistry.addSpawn(EntityFallenAngel.class, 5, 1, 5, EnumCreatureType.creature, BiomeGenBase.biomeList); - LanguageRegistry.instance().addStringLocalization("entity.AlchemicalWizardry.FallenAngel.name", "en_US", "Fallen Angel"); - LanguageRegistry.instance().addStringLocalization("entity.AlchemicalWizardry.LowerGuardian.name", "en_US", "Lower Stone Guardian"); - LanguageRegistry.instance().addStringLocalization("entity.AlchemicalWizardry.BileDemon.name", "en_US", "Bile Demon"); - LanguageRegistry.instance().addStringLocalization("entity.AlchemicalWizardry.WingedFireDemon.name", "en_US", "Winged Fire Demon"); - LanguageRegistry.instance().addStringLocalization("entity.AlchemicalWizardry.SmallEarthGolem.name", "en_US", "Small Earth Golem"); - LanguageRegistry.instance().addStringLocalization("entity.AlchemicalWizardry.IceDemon.name", "en_US", "Ice Demon"); - LanguageRegistry.instance().addStringLocalization("entity.AlchemicalWizardry.BoulderFist.name", "en_US", "Boulder Fist"); - LanguageRegistry.instance().addStringLocalization("entity.AlchemicalWizardry.Shade.name", "en_US", "Shade"); - LanguageRegistry.instance().addStringLocalization("entity.AlchemicalWizardry.AirElemental.name", "en_US", "Air Elemental"); - LanguageRegistry.instance().addStringLocalization("entity.AlchemicalWizardry.WaterElemental.name", "en_US", "Water Elemental"); - LanguageRegistry.instance().addStringLocalization("entity.AlchemicalWizardry.EarthElemental.name", "en_US", "Earth Elemental"); - LanguageRegistry.instance().addStringLocalization("entity.AlchemicalWizardry.FireElemental.name", "en_US", "Fire Elemental"); - LanguageRegistry.instance().addStringLocalization("entity.AlchemicalWizardry.ShadeElemental.name", "en_US", "Shade Elemental"); - LanguageRegistry.instance().addStringLocalization("entity.AlchemicalWizardry.HolyElemental.name", "en_US", "Holy Elemental"); - LanguageRegistry.instance().addStringLocalization("itemGroup.tabBloodMagic", "en_US", "Blood Magic"); - ChestGenHooks.getInfo(ChestGenHooks.DUNGEON_CHEST).addItem(new WeightedRandomChestContent(new ItemStack(ModItems.standardBindingAgent), 1, 3, this.standardBindingAgentDungeonChance)); - ChestGenHooks.getInfo(ChestGenHooks.DUNGEON_CHEST).addItem(new WeightedRandomChestContent(new ItemStack(ModItems.mundanePowerCatalyst), 1, 1, this.mundanePowerCatalystDungeonChance)); - ChestGenHooks.getInfo(ChestGenHooks.DUNGEON_CHEST).addItem(new WeightedRandomChestContent(new ItemStack(ModItems.mundaneLengtheningCatalyst), 1, 1, this.mundaneLengtheningCatalystDungeonChance)); - ChestGenHooks.getInfo(ChestGenHooks.DUNGEON_CHEST).addItem(new WeightedRandomChestContent(new ItemStack(ModItems.averagePowerCatalyst), 1, 1, this.averagePowerCatalystDungeonChance)); - ChestGenHooks.getInfo(ChestGenHooks.DUNGEON_CHEST).addItem(new WeightedRandomChestContent(new ItemStack(ModItems.averageLengtheningCatalyst), 1, 1, this.averageLengtheningCatalystDungeonChance)); - ChestGenHooks.getInfo(ChestGenHooks.DUNGEON_CHEST).addItem(new WeightedRandomChestContent(new ItemStack(ModItems.greaterPowerCatalyst), 1, 1, this.greaterPowerCatalystDungeonChance)); - ChestGenHooks.getInfo(ChestGenHooks.DUNGEON_CHEST).addItem(new WeightedRandomChestContent(new ItemStack(ModItems.greaterLengtheningCatalyst), 1, 1, this.greaterLengtheningCatalystDungeonChance)); - //Ore Dictionary Registration - OreDictionary.registerOre("oreCoal", Block.oreCoal); - MeteorRegistry.registerMeteorParadigm(diamondStack, diamondMeteorArray, diamondMeteorRadius); - MeteorRegistry.registerMeteorParadigm(stoneStack, this.stoneMeteorArray, this.stoneMeteorRadius); - MeteorRegistry.registerMeteorParadigm(ironBlockStack, this.ironBlockMeteorArray, this.ironBlockMeteorRadius); - MeteorRegistry.registerMeteorParadigm(new ItemStack(Item.netherStar), this.netherStarMeteorArray, this.netherStarMeteorRadius); - - //Register spell component recipes - ItemStack complexSpellCrystalStack = new ItemStack(ModItems.itemComplexSpellCrystal); - ItemStack quartzRodStack = new ItemStack(ModItems.baseItems,1,0); - ItemStack emptyCoreStack = new ItemStack(ModItems.baseItems,1,1); - ItemStack magicalesCableStack = new ItemStack(ModItems.baseItems,1,2); - ItemStack woodBraceStack = new ItemStack(ModItems.baseItems,1,3); - ItemStack stoneBraceStack = new ItemStack(ModItems.baseItems,1,4); - ItemStack projectileCoreStack = new ItemStack(ModItems.baseItems,1,5); - ItemStack selfCoreStack = new ItemStack(ModItems.baseItems,1,6); - ItemStack meleeCoreStack = new ItemStack(ModItems.baseItems,1,7); - ItemStack paradigmBackPlateStack = new ItemStack(ModItems.baseItems,1,8); - ItemStack outputCableStack = new ItemStack(ModItems.baseItems,1,9); - ItemStack flameCoreStack = new ItemStack(ModItems.baseItems,1,10); - ItemStack iceCoreStack = new ItemStack(ModItems.baseItems,1,11); - ItemStack windCoreStack = new ItemStack(ModItems.baseItems,1,12); - ItemStack earthCoreStack = new ItemStack(ModItems.baseItems,1,13); - ItemStack inputCableStack = new ItemStack(ModItems.baseItems,1,14); - ItemStack crackedRunicPlateStack = new ItemStack(ModItems.baseItems,1,15); - ItemStack runicPlateStack = new ItemStack(ModItems.baseItems,1,16); - ItemStack imbuedRunicPlateStack = new ItemStack(ModItems.baseItems,1,17); - ItemStack defaultCoreStack = new ItemStack(ModItems.baseItems,1,18); - ItemStack offenseCoreStack = new ItemStack(ModItems.baseItems,1,19); - ItemStack defensiveCoreStack = new ItemStack(ModItems.baseItems,1,20); - ItemStack environmentalCoreStack = new ItemStack(ModItems.baseItems,1,21); - ItemStack powerCoreStack = new ItemStack(ModItems.baseItems,1,22); - ItemStack costCoreStack = new ItemStack(ModItems.baseItems,1,23); - ItemStack potencyCoreStack = new ItemStack(ModItems.baseItems,1,24); - ItemStack obsidianBraceStack = new ItemStack(ModItems.baseItems,1,25); - - ItemStack magicalesCraftedCableStack = new ItemStack(ModItems.baseItems,5,2); - ItemStack crackedRunicPlateStackCrafted = new ItemStack(ModItems.baseItems,2,15); - ItemStack runicPlateStackCrafted = new ItemStack(ModItems.baseItems,2,16); - - GameRegistry.addRecipe(quartzRodStack, "qqq", 'q', new ItemStack(Item.netherQuartz)); - GameRegistry.addRecipe(emptyCoreStack,"gig","nrn","gig",'n',goldIngotStack,'i',ironIngotStack,'g',glassStack,'r',simpleCatalystStack); - GameRegistry.addRecipe(magicalesCraftedCableStack,"sss","mmm","sss",'s',new ItemStack(Item.silk),'m',magicalesStack); - GameRegistry.addRecipe(woodBraceStack," il","ili","li ",'l', new ItemStack(Block.wood,1,craftingConstant),'i',new ItemStack(Item.silk)); - GameRegistry.addRecipe(stoneBraceStack," is","isi","si ",'i', ironIngotStack,'s',reinforcedSlateStack); - GameRegistry.addRecipe(obsidianBraceStack," is","ibi","si ",'i', obsidianStack,'s',reinforcedSlateStack,'b',stoneBraceStack); - - GameRegistry.addRecipe(projectileCoreStack, "mbm","aca","mom",'c', emptyCoreStack,'b',weakBloodShardStack,'m', magicalesStack,'o', magicianBloodOrbStack,'a',new ItemStack(Item.arrow)); - GameRegistry.addRecipe(selfCoreStack,"sbs","ncn","sos",'c', emptyCoreStack, 's',sanctusStack,'b', weakBloodShardStack,'o', magicianBloodOrbStack,'n',glowstoneDustStack); - GameRegistry.addRecipe(meleeCoreStack,"sbs","ncn","sos",'c', emptyCoreStack, 's',incendiumStack,'b', weakBloodShardStack,'o', magicianBloodOrbStack,'n',new ItemStack(Item.fireballCharge)); - GameRegistry.addRecipe(paradigmBackPlateStack,"isi","rgr","isi",'i',ironIngotStack,'r',stoneStack,'g',goldIngotStack,'s',reinforcedSlateStack); - GameRegistry.addRecipe(outputCableStack, " si","s c"," si",'s',stoneStack,'i',ironIngotStack,'c',simpleCatalystStack); - - GameRegistry.addRecipe(flameCoreStack,"mdm","scs","mom",'m',incendiumStack,'c',emptyCoreStack,'o',magicianBloodOrbStack,'d',diamondStack,'s',weakBloodShardStack); - GameRegistry.addRecipe(iceCoreStack,"mdm","scs","mom",'m',crystallosStack,'c',emptyCoreStack,'o',magicianBloodOrbStack,'d',diamondStack,'s',weakBloodShardStack); - GameRegistry.addRecipe(windCoreStack,"mdm","scs","mom",'m',aetherStack,'c',emptyCoreStack,'o',magicianBloodOrbStack,'d',diamondStack,'s',weakBloodShardStack); - GameRegistry.addRecipe(earthCoreStack,"mdm","scs","mom",'m',terraeStack,'c',emptyCoreStack,'o',magicianBloodOrbStack,'d',diamondStack,'s',weakBloodShardStack); - - GameRegistry.addRecipe(inputCableStack, "ws ","rcs","ws ",'w',blankSlateStack,'s',stoneStack,'r',imbuedSlateStack,'c',simpleCatalystStack); - - GameRegistry.addRecipe(defaultCoreStack,"msm","geg","mom",'m', strengthenedCatalystStack,'e', emptyCoreStack, 'o', magicianBloodOrbStack, 's',weakBloodShardStack, 'g', goldIngotStack); - GameRegistry.addRecipe(offenseCoreStack,"msm","geg","mom",'m', offensaStack,'e', emptyCoreStack, 'o', magicianBloodOrbStack, 's',weakBloodShardStack, 'g', goldIngotStack); - GameRegistry.addRecipe(defensiveCoreStack,"msm","geg","mom",'m', praesidiumStack,'e', emptyCoreStack, 'o', magicianBloodOrbStack, 's',weakBloodShardStack, 'g', goldIngotStack); - GameRegistry.addRecipe(environmentalCoreStack,"msm","geg","mom",'m', orbisTerraeStack,'e', emptyCoreStack, 'o', magicianBloodOrbStack, 's',weakBloodShardStack, 'g', goldIngotStack); - - GameRegistry.addRecipe(powerCoreStack,"msm","geg","mom",'m', virtusStack,'e', emptyCoreStack, 'o', masterBloodOrbStack, 's',weakBloodShardStack, 'g', goldIngotStack); - GameRegistry.addRecipe(costCoreStack,"msm","geg","mom",'m', reductusStack,'e', emptyCoreStack, 'o', masterBloodOrbStack, 's',weakBloodShardStack, 'g', goldIngotStack); - GameRegistry.addRecipe(potencyCoreStack,"msm","geg","mom",'m', potentiaStack,'e', emptyCoreStack, 'o', masterBloodOrbStack, 's',weakBloodShardStack, 'g', goldIngotStack); - - AlchemyRecipeRegistry.registerRecipe(crackedRunicPlateStackCrafted, 10, new ItemStack[]{imbuedSlateStack,imbuedSlateStack,concentratedCatalystStack}, 4); - AlchemyRecipeRegistry.registerRecipe(runicPlateStack, 30, new ItemStack[]{crackedRunicPlateStack,terraeStack}, 5); - AlchemyRecipeRegistry.registerRecipe(imbuedRunicPlateStack, 100, new ItemStack[]{magicalesStack,incendiumStack,runicPlateStack, runicPlateStack,aquasalusStack}, 5); - AlchemyRecipeRegistry.registerRecipe(complexSpellCrystalStack,50,new ItemStack[]{new ItemStack(ModItems.blankSpell), weakBloodShardStack, weakBloodShardStack, diamondStack,goldIngotStack},3); - - GameRegistry.addRecipe(new ItemStack(ModBlocks.blockConduit,1,0),"q q","ccc","q q",'q', quartzRodStack,'c', magicalesCableStack); - - GameRegistry.addRecipe(new ItemStack(ModBlocks.blockSpellParadigm,1,0),"gb ","pcw","gb ",'p',paradigmBackPlateStack,'c', projectileCoreStack,'g',goldIngotStack,'b',stoneBraceStack,'w',outputCableStack); - GameRegistry.addRecipe(new ItemStack(ModBlocks.blockSpellParadigm,1,1),"gb ","pcw","gb ",'p',paradigmBackPlateStack,'c', selfCoreStack,'g',goldIngotStack,'b',stoneBraceStack,'w',outputCableStack); - GameRegistry.addRecipe(new ItemStack(ModBlocks.blockSpellParadigm,1,2),"gb ","pcw","gb ",'p',paradigmBackPlateStack,'c', meleeCoreStack,'g',goldIngotStack,'b',stoneBraceStack,'w',outputCableStack); - - GameRegistry.addRecipe(new ItemStack(ModBlocks.blockSpellEffect,1,0),"bgb","ico","bgb",'c',flameCoreStack,'b',stoneBraceStack,'g',goldIngotStack,'i',inputCableStack,'o',outputCableStack); - GameRegistry.addRecipe(new ItemStack(ModBlocks.blockSpellEffect,1,1),"bgb","ico","bgb",'c',iceCoreStack,'b',stoneBraceStack,'g',goldIngotStack,'i',inputCableStack,'o',outputCableStack); - GameRegistry.addRecipe(new ItemStack(ModBlocks.blockSpellEffect,1,2),"bgb","ico","bgb",'c',windCoreStack,'b',stoneBraceStack,'g',goldIngotStack,'i',inputCableStack,'o',outputCableStack); - GameRegistry.addRecipe(new ItemStack(ModBlocks.blockSpellEffect,1,3),"bgb","ico","bgb",'c',earthCoreStack,'b',stoneBraceStack,'g',goldIngotStack,'i',inputCableStack,'o',outputCableStack); - - GameRegistry.addRecipe(new ItemStack(ModBlocks.blockSpellModifier,1,0),"bgb","ico","bgb",'c',defaultCoreStack,'i',inputCableStack,'o',outputCableStack,'b',stoneBraceStack,'g',ironIngotStack); - GameRegistry.addRecipe(new ItemStack(ModBlocks.blockSpellModifier,1,1),"bgb","ico","bgb",'c',offenseCoreStack,'i',inputCableStack,'o',outputCableStack,'b',stoneBraceStack,'g',ironIngotStack); - GameRegistry.addRecipe(new ItemStack(ModBlocks.blockSpellModifier,1,2),"bgb","ico","bgb",'c',defensiveCoreStack,'i',inputCableStack,'o',outputCableStack,'b',stoneBraceStack,'g',ironIngotStack); - GameRegistry.addRecipe(new ItemStack(ModBlocks.blockSpellModifier,1,3),"bgb","ico","bgb",'c',environmentalCoreStack,'i',inputCableStack,'o',outputCableStack,'b',stoneBraceStack,'g',ironIngotStack); - - GameRegistry.addRecipe(new ItemStack(ModBlocks.blockSpellEnhancement,1,0),"bpb","ico","bpb",'c', powerCoreStack,'b',woodBraceStack,'p',crackedRunicPlateStack,'i',inputCableStack,'o',outputCableStack); - GameRegistry.addRecipe(new ItemStack(ModBlocks.blockSpellEnhancement,1,1),"bpb","ico","bpb",'c', powerCoreStack,'b',stoneBraceStack,'p',runicPlateStack,'i',inputCableStack,'o',outputCableStack); - GameRegistry.addRecipe(new ItemStack(ModBlocks.blockSpellEnhancement,1,2),"bpb","ico","bpb",'c', powerCoreStack,'b',obsidianBraceStack,'p',imbuedRunicPlateStack,'i',inputCableStack,'o',outputCableStack); - GameRegistry.addRecipe(new ItemStack(ModBlocks.blockSpellEnhancement,1,5),"bpb","ico","bpb",'c', costCoreStack,'b',woodBraceStack,'p',crackedRunicPlateStack,'i',inputCableStack,'o',outputCableStack); - GameRegistry.addRecipe(new ItemStack(ModBlocks.blockSpellEnhancement,1,6),"bpb","ico","bpb",'c', costCoreStack,'b',stoneBraceStack,'p',runicPlateStack,'i',inputCableStack,'o',outputCableStack); - GameRegistry.addRecipe(new ItemStack(ModBlocks.blockSpellEnhancement,1,7),"bpb","ico","bpb",'c', costCoreStack,'b',obsidianBraceStack,'p',imbuedRunicPlateStack,'i',inputCableStack,'o',outputCableStack); - GameRegistry.addRecipe(new ItemStack(ModBlocks.blockSpellEnhancement,1,10),"bpb","ico","bpb",'c', potencyCoreStack,'b',woodBraceStack,'p',crackedRunicPlateStack,'i',inputCableStack,'o',outputCableStack); - GameRegistry.addRecipe(new ItemStack(ModBlocks.blockSpellEnhancement,1,11),"bpb","ico","bpb",'c', potencyCoreStack,'b',stoneBraceStack,'p',runicPlateStack,'i',inputCableStack,'o',outputCableStack); - GameRegistry.addRecipe(new ItemStack(ModBlocks.blockSpellEnhancement,1,12),"bpb","ico","bpb",'c', potencyCoreStack,'b',obsidianBraceStack,'p',imbuedRunicPlateStack,'i',inputCableStack,'o',outputCableStack); - - GameRegistry.addShapelessRecipe(new ItemStack(Item.dyePowder,5,15),fracturedBoneStack); - - AlchemyRecipeRegistry.registerRecipe(new ItemStack(Item.flint,2,0), 1, new ItemStack[]{new ItemStack(Block.gravel),new ItemStack(Item.flint)}, 1); - AlchemyRecipeRegistry.registerRecipe(new ItemStack(Block.grass), 2, new ItemStack[]{new ItemStack(Block.dirt),new ItemStack(Item.dyePowder,1,15),new ItemStack(Item.seeds),new ItemStack(Item.seeds)}, 1); - AlchemyRecipeRegistry.registerRecipe(new ItemStack(Item.leather,3,0), 2, new ItemStack[]{new ItemStack(Item.rottenFlesh),new ItemStack(Item.rottenFlesh),new ItemStack(Item.rottenFlesh),waterBucketStack,new ItemStack(Item.flint)}, 1); - AlchemyRecipeRegistry.registerRecipe(new ItemStack(Item.bread), 1, new ItemStack[]{new ItemStack(Item.wheat),new ItemStack(Item.sugar)}, 1); - AlchemyRecipeRegistry.registerRecipe(new ItemStack(Item.fireballCharge,5,0), 3, new ItemStack[]{new ItemStack(Item.coal),new ItemStack(Item.blazePowder),gunpowderStack}, 1); - AlchemyRecipeRegistry.registerRecipe(new ItemStack(Block.sand,2,0), 1, new ItemStack[]{new ItemStack(Block.cobblestone),gunpowderStack}, 1); - AlchemyRecipeRegistry.registerRecipe(new ItemStack(Block.blockClay,4,0), 2, new ItemStack[]{new ItemStack(Block.hardenedClay,1,craftingConstant),new ItemStack(Block.hardenedClay,1,craftingConstant),new ItemStack(Block.hardenedClay,1,craftingConstant),new ItemStack(Block.hardenedClay,1,craftingConstant),waterBucketStack}, 1); - AlchemyRecipeRegistry.registerRecipe(new ItemStack(Item.silk,4,0), 1, new ItemStack[]{new ItemStack(Block.cloth,1,craftingConstant),new ItemStack(Item.flint)}, 1); - AlchemyRecipeRegistry.registerRecipe(new ItemStack(Block.gravel,2,0), 1, new ItemStack[]{new ItemStack(Block.stone),gunpowderStack}, 1); - AlchemyRecipeRegistry.registerRecipe(new ItemStack(Block.obsidian), 1, new ItemStack[]{waterBucketStack,lavaBucketStack}, 1); - AlchemyRecipeRegistry.registerRecipe(new ItemStack(Item.paper), 1, new ItemStack[]{new ItemStack(Item.reed)}, 1); - AlchemyRecipeRegistry.registerRecipe(new ItemStack(Block.slowSand,3,0), 3, new ItemStack[]{new ItemStack(Block.sand),new ItemStack(Block.sand),new ItemStack(Block.sand),waterBucketStack,weakBloodShardStack}, 3); - AlchemyRecipeRegistry.registerRecipe(new ItemStack(Block.mycelium,1,0), 5, new ItemStack[]{new ItemStack(Block.grass),new ItemStack(Block.mushroomBrown), new ItemStack(Block.mushroomRed)}, 2); - AlchemyRecipeRegistry.registerRecipe(new ItemStack(Block.ice), 2, new ItemStack[]{waterBucketStack,new ItemStack(Item.snowball)}, 1); - - 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); - - - - - - - - LanguageRegistry.addName(strengthenedCatalystStack, "Strengthened Catalyst"); - LanguageRegistry.addName(offensaStack, "Offensa"); - LanguageRegistry.addName(praesidiumStack,"Praesidium"); - LanguageRegistry.addName(orbisTerraeStack, "Orbis Terrae"); - LanguageRegistry.addName(fracturedBoneStack,"Fractured Bone"); - LanguageRegistry.addName(concentratedCatalystStack, "Concentrated Catalyst"); - - LanguageRegistry.addName(quartzRodStack, "Quartz Rod"); - LanguageRegistry.addName(emptyCoreStack,"Empty Core"); - LanguageRegistry.addName(magicalesCableStack,"Magicales Cable"); - LanguageRegistry.addName(woodBraceStack,"Wooden Brace"); - LanguageRegistry.addName(stoneBraceStack,"Stone Brace"); - LanguageRegistry.addName(projectileCoreStack,"Projectile Core"); - LanguageRegistry.addName(selfCoreStack,"Self Core"); - LanguageRegistry.addName(meleeCoreStack,"Melee Core"); - LanguageRegistry.addName(paradigmBackPlateStack,"Paradigm Plate"); - LanguageRegistry.addName(outputCableStack,"Output Spell Cable"); - LanguageRegistry.addName(inputCableStack,"Input Spell Cable"); - LanguageRegistry.addName(flameCoreStack,"Fire Core"); - LanguageRegistry.addName(iceCoreStack,"Icy Core"); - LanguageRegistry.addName(windCoreStack,"Gusty Core"); - LanguageRegistry.addName(earthCoreStack,"Earthen Core"); - LanguageRegistry.addName(defaultCoreStack,"Unattuned Core"); - LanguageRegistry.addName(offenseCoreStack,"Offensive Core"); - LanguageRegistry.addName(defensiveCoreStack,"Defensive Core"); - LanguageRegistry.addName(environmentalCoreStack,"Environmental Core"); - LanguageRegistry.addName(crackedRunicPlateStack,"Cracked Runic Plate"); - LanguageRegistry.addName(runicPlateStack,"Runic Plate"); - LanguageRegistry.addName(imbuedRunicPlateStack,"Imbued Runic Plate"); - LanguageRegistry.addName(powerCoreStack, "Power Core"); - LanguageRegistry.addName(costCoreStack, "Reduction Core"); - LanguageRegistry.addName(potencyCoreStack, "Potency Core"); - LanguageRegistry.addName(obsidianBraceStack,"Obsidian Brace"); - LanguageRegistry.addName(virtusStack, "Virtus"); - LanguageRegistry.addName(reductusStack,"Reductus"); - LanguageRegistry.addName(potentiaStack, "Potentia"); - LanguageRegistry.addName(complexSpellCrystalStack, "Complex Spell Crystal"); - - } - - @EventHandler - public void postInit(FMLPostInitializationEvent event) - { - //TODO Thaumcraft Integration - if (Loader.isModLoaded("Thaumcraft")) - { - this.isThaumcraftLoaded = true; - - try - { - //do stuff - ModItems.sanguineHelmet = new ItemSanguineArmour(sanguineHelmetItemID).setUnlocalizedName("sanguineHelmet"); - LanguageRegistry.addName(ModItems.sanguineHelmet, "Sanguine Helmet"); -// focusBloodBlast = new FocusBloodBlast(focusBloodBlastItemID); -// LanguageRegistry.addName(focusBloodBlast,"Wand Focus: Blood Blast"); -// -// focusGravityWell = new FocusGravityWell(focusGravityWellItemID); -// LanguageRegistry.addName(focusGravityWell,"Wand Focus: Gravity Well"); - ItemStack itemGoggles = ItemApi.getItem("itemGoggles", 0); - - if (itemGoggles != null) - { - BindingRegistry.registerRecipe(new ItemStack(ModItems.sanguineHelmet), itemGoggles); - } - - //LogHelper.log(Level.INFO, "Loaded RP2 World addon"); - } catch (Exception e) - { - //LogHelper.log(Level.SEVERE, "Could not load RP2 World addon"); - e.printStackTrace(System.err); - } - } else - { - this.isThaumcraftLoaded = false; - } - - if(Loader.isModLoaded("Forestry")) - { - this.isForestryLoaded = true; - -// ModItems.itemBloodFrame = new ItemBloodFrame(this.itemBloodFrameItemID).setUnlocalizedName("bloodFrame"); -// -// ItemStack provenFrame = GameRegistry.findItemStack("Forestry", "frameImpregnated", 1); -// -// if(provenFrame !=null) -// { -// AltarRecipeRegistry.registerAltarRecipe(new ItemStack(ModItems.itemBloodFrame), provenFrame, 3, 30000, 20, 20, false); -// } - }else - { - this.isForestryLoaded = false; - } - - if(Loader.isModLoaded("GalacticraftCore")) - { - this.isGCLoaded = true; - }else - { - this.isGCLoaded = false; - } - } - - public static void initAlchemyPotionRecipes() - { - if(regenerationAllowed)AlchemicalPotionCreationHandler.addPotion(new ItemStack(Item.ghastTear), Potion.regeneration.id, 450); - if(nightVisionAllowed)AlchemicalPotionCreationHandler.addPotion(new ItemStack(Item.goldenCarrot), Potion.nightVision.id, 2 * 60 * 20); - if(fireResistanceAllowed)AlchemicalPotionCreationHandler.addPotion(new ItemStack(Item.magmaCream), Potion.fireResistance.id, 2 * 60 * 20); - if(waterBreathingAllowed)AlchemicalPotionCreationHandler.addPotion(new ItemStack(Item.bucketWater), Potion.waterBreathing.id, 2 * 60 * 20); - if(moveSpeedAllowed)AlchemicalPotionCreationHandler.addPotion(new ItemStack(Item.sugar), Potion.moveSpeed.id, 2 * 60 * 20); - if(healAllowed)AlchemicalPotionCreationHandler.addPotion(new ItemStack(Item.speckledMelon), Potion.heal.id, 2 * 60 * 20); - if(poisonAllowed)AlchemicalPotionCreationHandler.addPotion(new ItemStack(Item.spiderEye), Potion.poison.id, 450); - if(weaknessAllowed)AlchemicalPotionCreationHandler.addPotion(new ItemStack(Item.fermentedSpiderEye), Potion.weakness.id, 450); - if(damageBoostAllowed)AlchemicalPotionCreationHandler.addPotion(new ItemStack(Item.blazePowder), Potion.damageBoost.id, 2 * 60 * 20); - if(jumpAllowed)AlchemicalPotionCreationHandler.addPotion(new ItemStack(ModItems.aether), Potion.jump.id, 2 * 60 * 20); - if(moveSlowdownAllowed)AlchemicalPotionCreationHandler.addPotion(new ItemStack(Item.clay), Potion.moveSlowdown.id, 450); - if(digSpeedAllowed)AlchemicalPotionCreationHandler.addPotion(new ItemStack(Item.redstone), Potion.digSpeed.id, 2 * 60 * 20); - if(drowningAllowed)AlchemicalPotionCreationHandler.addPotion(new ItemStack(Item.potion, 1, 0), AlchemicalWizardry.customPotionDrowning.id, 450); - if(invisibilityAllowed)AlchemicalPotionCreationHandler.addPotion(new ItemStack(Item.glassBottle), Potion.invisibility.id, 2 * 60 * 20); - if(resistanceAllowed)AlchemicalPotionCreationHandler.addPotion(new ItemStack(Item.diamond), Potion.resistance.id, 2 * 60 * 20); - if(saturationAllowed)AlchemicalPotionCreationHandler.addPotion(new ItemStack(Item.poisonousPotato), Potion.field_76443_y.id, 2); //saturation - if(healthBoostAllowed)AlchemicalPotionCreationHandler.addPotion(new ItemStack(ModItems.demonBloodShard), Potion.field_76434_w.id, 4 * 60 * 20); //health boost - if(absorptionAllowed)AlchemicalPotionCreationHandler.addPotion(new ItemStack(ModItems.weakBloodShard), Potion.field_76444_x.id, 4 * 60 * 20); //Absorption - if(boostAllowed)AlchemicalPotionCreationHandler.addPotion(new ItemStack(ModItems.terrae), AlchemicalWizardry.customPotionBoost.id, 1 * 60 * 20); - if(flightAllowed)AlchemicalPotionCreationHandler.addPotion(new ItemStack(Item.feather), AlchemicalWizardry.customPotionFlight.id, 1 * 60 * 20); - if(reciprocationAllowed)AlchemicalPotionCreationHandler.addPotion(new ItemStack(Item.arrow), AlchemicalWizardry.customPotionReciprocation.id, 1 * 60 * 20); - if(planarBindingAllowed)AlchemicalPotionCreationHandler.addPotion(new ItemStack(Item.enderPearl),AlchemicalWizardry.customPotionPlanarBinding.id,1*60*20); - } - - public static void initAltarRecipes() - { - AltarRecipeRegistry.registerAltarRecipe(new ItemStack(ModItems.weakBloodOrb), new ItemStack(Item.diamond),1,2000,2,1,false); - AltarRecipeRegistry.registerAltarRecipe(new ItemStack(ModItems.apprenticeBloodOrb), new ItemStack(Item.emerald),2,5000,5,5,false); - AltarRecipeRegistry.registerAltarRecipe(new ItemStack(ModItems.magicianBloodOrb), new ItemStack(Block.blockGold),3,25000,20,20,false); - AltarRecipeRegistry.registerAltarRecipe(new ItemStack(ModItems.masterBloodOrb), new ItemStack(ModItems.weakBloodShard),4,40000,30,50,false); - AltarRecipeRegistry.registerAltarRecipe(new ItemStack(ModItems.archmageBloodOrb), new ItemStack(ModItems.demonBloodShard),5,75000,50,100,false); - - AltarRecipeRegistry.registerAltarOrbRecipe(new ItemStack(ModItems.weakBloodOrb),1,2); - AltarRecipeRegistry.registerAltarOrbRecipe(new ItemStack(ModItems.apprenticeBloodOrb),2,5); - AltarRecipeRegistry.registerAltarOrbRecipe(new ItemStack(ModItems.magicianBloodOrb),3,15); - AltarRecipeRegistry.registerAltarOrbRecipe(new ItemStack(ModItems.masterBloodOrb),4,25); - AltarRecipeRegistry.registerAltarOrbRecipe(new ItemStack(ModItems.archmageBloodOrb),5,50); - - AltarRecipeRegistry.registerAltarRecipe(new ItemStack(ModItems.telepositionFocus), new ItemStack(Item.enderPearl),4,2000,10,10,false); - AltarRecipeRegistry.registerAltarRecipe(new ItemStack(ModItems.enhancedTelepositionFocus), new ItemStack(ModItems.telepositionFocus),4,10000,25,15,false); - AltarRecipeRegistry.registerAltarRecipe(new ItemStack(ModItems.demonicSlate), new ItemStack(ModItems.imbuedSlate),4,15000,20,20,false); - AltarRecipeRegistry.registerAltarRecipe(new ItemStack(ModItems.duskScribeTool), new ItemStack(Block.coalBlock),4,2000,20,10,false); - AltarRecipeRegistry.registerAltarRecipe(new ItemStack(ModBlocks.bloodSocket), new ItemStack(ModBlocks.emptySocket),3,30000,40,10,false); - AltarRecipeRegistry.registerAltarRecipe(new ItemStack(ModItems.earthScribeTool), new ItemStack(Block.obsidian),3,1000,5,5,false); - AltarRecipeRegistry.registerAltarRecipe(new ItemStack(ModItems.waterScribeTool), new ItemStack(Block.blockLapis),3,1000,5,5,false); - AltarRecipeRegistry.registerAltarRecipe(new ItemStack(ModItems.blankSpell), new ItemStack(Block.glass),2,1000,5,5,false); - AltarRecipeRegistry.registerAltarRecipe(new ItemStack(ModItems.blankSlate), new ItemStack(Block.stone),1,1000,5,5,false); - AltarRecipeRegistry.registerAltarRecipe(new ItemStack(ModItems.activationCrystal), new ItemStack(ModItems.lavaCrystal),3,10000,20,10,false); - AltarRecipeRegistry.registerAltarRecipe(new ItemStack(ModItems.fireScribeTool), new ItemStack(Item.magmaCream),3,1000,5,5,false); - AltarRecipeRegistry.registerAltarRecipe(new ItemStack(ModItems.airScribeTool), new ItemStack(Item.ghastTear),3,1000,5,5,false); - AltarRecipeRegistry.registerAltarRecipe(new ItemStack(ModItems.imbuedSlate), new ItemStack(ModItems.reinforcedSlate),3,5000,15,10,false); - AltarRecipeRegistry.registerAltarRecipe(new ItemStack(ModItems.daggerOfSacrifice), new ItemStack(Item.swordIron),2,3000,5,5,false); - AltarRecipeRegistry.registerAltarRecipe(new ItemStack(ModItems.alchemyFlask), new ItemStack(Item.glassBottle),2,2000,5,5,false); - AltarRecipeRegistry.registerAltarRecipe(new ItemStack(ModItems.reinforcedSlate), new ItemStack(ModItems.blankSlate),2,2000,5,5,false); - AltarRecipeRegistry.registerAltarRecipe(new ItemStack(AlchemicalWizardry.bucketLife), new ItemStack(Item.bucketEmpty),1,1000,5,0,false); - } - - 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, 25000, new RitualEffectItemSuction(),"Call of the Zephyr")); - //Rituals.ritualList.add(new Rituals(1,100,new RitualEffectApiaryOverclock(),"Apiary Overclock")); - } - - public static void initBindingRecipes() - { - BindingRegistry.registerRecipe(new ItemStack(ModItems.boundPickaxe), new ItemStack(Item.pickaxeDiamond)); - BindingRegistry.registerRecipe(new ItemStack(ModItems.boundAxe), new ItemStack(Item.axeDiamond)); - BindingRegistry.registerRecipe(new ItemStack(ModItems.boundShovel), new ItemStack(Item.shovelDiamond)); - BindingRegistry.registerRecipe(new ItemStack(ModItems.energySword), new ItemStack(Item.swordDiamond)); - BindingRegistry.registerRecipe(new ItemStack(ModItems.energyBlaster), new ItemStack(ModItems.apprenticeBloodOrb)); - } -} diff --git a/BM_src/WayofTime/alchemicalWizardry/BloodMagicConfiguration.java b/BM_src/WayofTime/alchemicalWizardry/BloodMagicConfiguration.java deleted file mode 100644 index b6c3f8b7..00000000 --- a/BM_src/WayofTime/alchemicalWizardry/BloodMagicConfiguration.java +++ /dev/null @@ -1,242 +0,0 @@ -package WayofTime.alchemicalWizardry; - -import java.io.File; -import java.util.logging.Level; - -import net.minecraftforge.common.Configuration; -import WayofTime.alchemicalWizardry.common.summoning.meteor.MeteorParadigm; -import cpw.mods.fml.common.FMLLog; - -/** - * Created with IntelliJ IDEA. - * User: Pokefenn - * Date: 17/01/14 - * Time: 19:50 - */ -public class BloodMagicConfiguration -{ - - - public static Configuration config; - public static final String CATEGORY_GAMEPLAY = "gameplay"; - - - public static void init(File configFile) - { - - config = new Configuration(configFile); - - try - { - - config.load(); - - AlchemicalWizardry.standardBindingAgentDungeonChance = config.get("Dungeon Loot Chances", "standardBindingAgent", 30).getInt(); - AlchemicalWizardry.mundanePowerCatalystDungeonChance = config.get("Dungeon Loot Chances", "mundanePowerCatalyst", 20).getInt(); - AlchemicalWizardry.averagePowerCatalystDungeonChance = config.get("Dungeon Loot Chances", "averagePowerCatalyst", 10).getInt(); - AlchemicalWizardry.greaterPowerCatalystDungeonChance = config.get("Dungeon Loot Chances", "greaterPowerCatalyst", 05).getInt(); - AlchemicalWizardry.mundaneLengtheningCatalystDungeonChance = config.get("Dungeon Loot Chances", "mundaneLengtheningCatalyst", 20).getInt(); - AlchemicalWizardry.averageLengtheningCatalystDungeonChance = config.get("Dungeon Loot Chances", "averageLengtheningCatalyst", 10).getInt(); - AlchemicalWizardry.greaterLengtheningCatalystDungeonChance = config.get("Dungeon Loot Chances", "greaterLengtheningCatalyst", 05).getInt(); - AlchemicalWizardry.customPotionDrowningID = config.get("Potion ID", "Drowning", 100).getInt(); - AlchemicalWizardry.customPotionBoostID = config.get("Potion ID", "Boost", 101).getInt(); - AlchemicalWizardry.customPotionProjProtID = config.get("Potion ID", "ProjProt", 102).getInt(); - AlchemicalWizardry.customPotionInhibitID = config.get("Potion ID", "Inhibit", 103).getInt(); - AlchemicalWizardry.customPotionFlightID = config.get("Potion ID", "Flight", 104).getInt(); - AlchemicalWizardry.customPotionReciprocationID = config.get("Potion ID", "Reciprocation", 105).getInt(); - AlchemicalWizardry.customPotionFlameCloakID = config.get("Potion ID","FlameCloak",106).getInt(); - AlchemicalWizardry.customPotionIceCloakID = config.get("Potion ID","IceCloak",107).getInt(); - AlchemicalWizardry.customPotionHeavyHeartID = config.get("Potion ID","HeavyHeart",108).getInt(); - AlchemicalWizardry.customPotionFireFuseID = config.get("Potion ID","FireFuse",109).getInt(); - AlchemicalWizardry.customPotionPlanarBindingID = config.get("Potion ID","PlanarBinding",110).getInt(); - - AlchemicalWizardry.regenerationAllowed = config.get("AlchemyPotionRegistry", "regeneration", true).getBoolean(true); - AlchemicalWizardry.nightVisionAllowed = config.get("AlchemyPotionRegistry", "nightVision", true).getBoolean(true); - AlchemicalWizardry.fireResistanceAllowed = config.get("AlchemyPotionRegistry", "fireResistance", true).getBoolean(true); - AlchemicalWizardry.waterBreathingAllowed = config.get("AlchemyPotionRegistry", "waterBreathing", true).getBoolean(true); - AlchemicalWizardry.moveSpeedAllowed = config.get("AlchemyPotionRegistry", "moveSpeed", true).getBoolean(true); - AlchemicalWizardry.healAllowed = config.get("AlchemyPotionRegistry", "heal", true).getBoolean(true); - AlchemicalWizardry.poisonAllowed = config.get("AlchemyPotionRegistry", "poison", true).getBoolean(true); - AlchemicalWizardry.weaknessAllowed = config.get("AlchemyPotionRegistry", "weakness", true).getBoolean(true); - AlchemicalWizardry.damageBoostAllowed = config.get("AlchemyPotionRegistry", "damageBoost", true).getBoolean(true); - AlchemicalWizardry.jumpAllowed = config.get("AlchemyPotionRegistry", "jump", true).getBoolean(true); - AlchemicalWizardry.moveSlowdownAllowed = config.get("AlchemyPotionRegistry", "moveSlowdown", true).getBoolean(true); - AlchemicalWizardry.digSpeedAllowed = config.get("AlchemyPotionRegistry", "digSpeed", true).getBoolean(true); - AlchemicalWizardry.drowningAllowed = config.get("AlchemyPotionRegistry", "drowning", true).getBoolean(true); - AlchemicalWizardry.invisibilityAllowed = config.get("AlchemyPotionRegistry", "invisibility", true).getBoolean(true); - AlchemicalWizardry.resistanceAllowed = config.get("AlchemyPotionRegistry", "resistance", true).getBoolean(true); - AlchemicalWizardry.saturationAllowed = config.get("AlchemyPotionRegistry", "saturation", true).getBoolean(true); - AlchemicalWizardry.healthBoostAllowed = config.get("AlchemyPotionRegistry", "healthBoost", true).getBoolean(true); - AlchemicalWizardry.absorptionAllowed = config.get("AlchemyPotionRegistry", "absorption", true).getBoolean(true); - AlchemicalWizardry.boostAllowed = config.get("AlchemyPotionRegistry", "boost", true).getBoolean(true); - AlchemicalWizardry.flightAllowed = config.get("AlchemyPotionRegistry", "flight", true).getBoolean(true); - AlchemicalWizardry.reciprocationAllowed = config.get("AlchemyPotionRegistry", "reciprocation", true).getBoolean(true); - AlchemicalWizardry.planarBindingAllowed = config.get("AlchemyPotionRegistry", "planarBinding", true).getBoolean(true); - - MeteorParadigm.maxChance = config.get("meteor", "maxChance", 1000).getInt(); - AlchemicalWizardry.doMeteorsDestroyBlocks = config.get("meteor", "doMeteorsDestroyBlocks", true).getBoolean(true); - AlchemicalWizardry.diamondMeteorArray = config.get("meteor", "diamondMeteor", new String[]{"oreDiamond", "100", "oreEmerald", "75", "oreCinnabar", "200", "oreAmber", "200"}).getStringList(); - AlchemicalWizardry.diamondMeteorRadius = config.get("meteor", "diamondMeteorRadius", 5).getInt(); - AlchemicalWizardry.stoneMeteorArray = config.get("meteor", "stoneBlockMeteor", new String[]{"oreCoal", "150", "oreApatite", "50", "oreIron", "50"}).getStringList(); - AlchemicalWizardry.stoneMeteorRadius = config.get("meteor", "stoneMeteorRadius", 16).getInt(); - AlchemicalWizardry.ironBlockMeteorArray = config.get("meteor", "ironBlockMeteor", new String[]{"oreIron", "400", "oreGold", "30", "oreCopper", "200", "oreTin", "140", "oreSilver", "70", "oreLead", "80", "oreLapis", "60", "oreRedstone", "100"}).getStringList(); - AlchemicalWizardry.ironBlockMeteorRadius = config.get("meteor", "ironBlockMeteorRadius", 7).getInt(); - AlchemicalWizardry.netherStarMeteorArray = config.get("meteor", "netherStarMeteor", new String[]{"oreDiamond", "150", "oreEmerald", "100", "oreQuartz", "250", "oreSunstone", "5", "oreMoonstone", "50", "oreIridium", "5", "oreCertusQuartz", "150"}).getStringList(); - AlchemicalWizardry.netherStarMeteorRadius = config.get("meteor", "netherStarMeteorRadius", 3).getInt(); - - AlchemicalWizardry.allowedCrushedOresArray = config.get("oreCrushing", "allowedOres", new String[]{"iron","gold","copper","tin","lead","silver","osmium"}).getStringList(); - - AlchemicalWizardry.testingBlockBlockID = config.getBlock("TestingBlock", 1400).getInt(); - AlchemicalWizardry.lifeEssenceFlowingBlockID = config.getBlock("LifeEssenceFlowing", 1401).getInt(); - AlchemicalWizardry.lifeEssenceStillBlockID = config.getBlock("LifeEssenceStill", 1402).getInt(); - AlchemicalWizardry.blockAltarBlockID = config.getBlock("BloodAltar", 1403).getInt(); - AlchemicalWizardry.bloodRuneBlockID = config.getBlock("BloodRune", 1404).getInt(); - AlchemicalWizardry.speedRuneBlockID = config.getBlock("SpeedRune", 1405).getInt(); - AlchemicalWizardry.efficiencyRuneBlockID = config.getBlock("EfficiencyRune", 1406).getInt(); - AlchemicalWizardry.lifeEssenceFluidID = config.getBlock("LifeEssenceFluid", 1407).getInt(); - AlchemicalWizardry.runeOfSacrificeBlockID = config.getBlock("RuneOfSacrifice", 1408).getInt(); - AlchemicalWizardry.runeOfSelfSacrificeBlockID = config.getBlock("RuneOfSelfSacrifice", 1409).getInt(); - AlchemicalWizardry.ritualStoneBlockID = config.getBlock("RitualStone", 1410).getInt(); - AlchemicalWizardry.blockMasterStoneBlockID = config.getBlock("MasterStone", 1411).getInt(); - AlchemicalWizardry.imperfectRitualStoneBlockID = config.getBlock("ImperfectRitualStone", 1412).getInt(); - AlchemicalWizardry.emptySocketBlockID = config.getBlock("EmptySocket", 1413).getInt(); - AlchemicalWizardry.bloodSocketBlockID = config.getBlock("BloodSocket", 1414).getInt(); - AlchemicalWizardry.armourForgeBlockID = config.getBlock("ArmourForge", 1415).getInt(); - AlchemicalWizardry.largeBloodStoneBrickBlockID = config.getBlock("LargeBloodStoneBrick", 1416).getInt(); - AlchemicalWizardry.bloodStoneBrickBlockID = config.getBlock("BloodStoneBrick", 1417).getInt(); - AlchemicalWizardry.blockWritingTableBlockID = config.getBlock("BlockWritingTable", 1418).getInt(); - AlchemicalWizardry.blockHomHeartBlockID = config.getBlock("BlockHomHeart", 1419).getInt(); - AlchemicalWizardry.blockPedestalBlockID = config.getBlock("BlockPedestal", 1420).getInt(); - AlchemicalWizardry.blockPlinthBlockID = config.getBlock("BlockPlinth", 1421).getInt(); - AlchemicalWizardry.blockTeleposerBlockID = config.getBlock("BlockTeleposer", 1422).getInt(); - AlchemicalWizardry.spectralBlockBlockID = config.getBlock("SpectralBlock", 1423).getInt(); - AlchemicalWizardry.blockBloodLightBlockID = config.getBlock("BloodLight", 1424).getInt(); - AlchemicalWizardry.blockConduitBlockID = config.getBlock("BlockConduit", 1425).getInt(); - AlchemicalWizardry.blockSpellEffectBlockID = config.getBlock("BlockSpellEffect", 1426).getInt(); - AlchemicalWizardry.blockSpellParadigmBlockID = config.getBlock("BlockSpellParadigm", 1427).getInt(); - AlchemicalWizardry.blockSpellModifierBlockID = config.getBlock("BlockSpellModifier", 1428).getInt(); - AlchemicalWizardry.blockSpellEnhancementBlockID = config.getBlock("BlockSpellEnhancement", 1429).getInt(); - AlchemicalWizardry.blockSpectralContainerBlockID = config.getBlock("BlockSpectralContainer", 1430).getInt(); - //Items - AlchemicalWizardry.weakBloodOrbItemID = config.getItem("WeakBloodOrb", 17000).getInt(); - AlchemicalWizardry.energyBlasterItemID = config.getItem("EnergyBlaster", 17001).getInt(); - AlchemicalWizardry.energySwordItemID = config.getItem("EnergySword", 17002).getInt(); - AlchemicalWizardry.lavaCrystalItemID = config.getItem("LavaCrystal", 17003).getInt(); - AlchemicalWizardry.waterSigilItemID = config.getItem("WaterSigil", 17004).getInt(); - AlchemicalWizardry.lavaSigilItemID = config.getItem("LavaSigil", 17005).getInt(); - AlchemicalWizardry.voidSigilItemID = config.getItem("VoidSigil", 17006).getInt(); - AlchemicalWizardry.blankSlateItemID = config.getItem("BlankSlate", 17007).getInt(); - AlchemicalWizardry.reinforcedSlateItemID = config.getItem("ReinforcedSlate", 17008).getInt(); - AlchemicalWizardry.sacrificialDaggerItemID = config.getItem("SacrificialDagger", 17009).getInt(); - AlchemicalWizardry.bucketLifeItemID = config.getItem("BucketLife", 17010).getInt(); - AlchemicalWizardry.apprenticeBloodOrbItemID = config.getItem("ApprenticeBloodOrb", 17011).getInt(); - AlchemicalWizardry.daggerOfSacrificeItemID = config.getItem("DaggerOfSacrifice", 17012).getInt(); - AlchemicalWizardry.airSigilItemID = config.getItem("AirSigil", 17013).getInt(); - AlchemicalWizardry.sigilOfTheFastMinerItemID = config.getItem("SigilOfTheFastMiner", 17014).getInt(); -// elementalInkWaterItemID = config.getItem("ElementalInkWater", 17015).getInt(); -// elementalInkFireItemID = config.getItem("ElementalInkFire", 17016).getInt(); -// elementalInkEarthItemID = config.getItem("ElementalInkEarth", 17017).getInt(); -// elementalInkAirItemID = config.getItem("ElementalInkAir", 17018).getInt(); - AlchemicalWizardry.duskScribeToolItemID = config.getItem("DuskScribeTool", 17015).getInt(); - AlchemicalWizardry.demonPlacerItemID = config.getItem("DemonPlacer", 17016).getInt(); - AlchemicalWizardry.itemBloodRuneBlockItemID = config.getItem("ItemBloodRuneBlock", 17017).getInt(); - AlchemicalWizardry.armourInhibitorItemID = config.getItem("ArmourInhibitor", 17018).getInt(); - AlchemicalWizardry.divinationSigilItemID = config.getItem("DivinationSigin", 17019).getInt(); - AlchemicalWizardry.waterScribeToolItemID = config.getItem("WaterScribeTool", 17020).getInt(); - AlchemicalWizardry.fireScribeToolItemID = config.getItem("FireScribeTool", 17021).getInt(); - AlchemicalWizardry.earthScribeToolItemID = config.getItem("EarthScribeTool", 17022).getInt(); - AlchemicalWizardry.airScribeToolItemID = config.getItem("AirScribeTool", 17023).getInt(); - AlchemicalWizardry.weakActivationCrystalItemID = config.getItem("WeakActivationCrystal", 17024).getInt(); - AlchemicalWizardry.magicianBloodOrbItemID = config.getItem("MagicianBloodOrb", 17025).getInt(); - AlchemicalWizardry.sigilOfElementalAffinityItemID = config.getItem("SigilOfElementalAffinity", 17026).getInt(); - AlchemicalWizardry.sigilOfHasteItemID = config.getItem("SigilOfHaste", 17027).getInt(); - AlchemicalWizardry.sigilOfHoldingItemID = config.getItem("SigilOfHolding", 17028).getInt(); - AlchemicalWizardry.boundPickaxeItemID = config.getItem("BoundPickaxe", 17029).getInt(); - AlchemicalWizardry.boundAxeItemID = config.getItem("BoundAxe", 17030).getInt(); - AlchemicalWizardry.boundShovelItemID = config.getItem("BoundShovel", 17031).getInt(); - AlchemicalWizardry.boundHelmetItemID = config.getItem("BoundHelmet", 17032).getInt(); - AlchemicalWizardry.boundPlateItemID = config.getItem("BoundPlate", 17033).getInt(); - AlchemicalWizardry.boundLeggingsItemID = config.getItem("BoundLeggings", 17034).getInt(); - AlchemicalWizardry.boundBootsItemID = config.getItem("BoundBoots", 17035).getInt(); - AlchemicalWizardry.weakBloodShardItemID = config.getItem("WeakBloodShard", 17036).getInt(); - AlchemicalWizardry.growthSigilItemID = config.getItem("SigilOfGrowth", 17037).getInt(); - AlchemicalWizardry.masterBloodOrbItemID = config.getItem("MasterBloodOrb", 17038).getInt(); - AlchemicalWizardry.blankSpellItemID = config.getItem("BlankSpell", 17039).getInt(); - AlchemicalWizardry.alchemyFlaskItemID = config.getItem("AlchemyFlask", 17040).getInt(); - AlchemicalWizardry.standardBindingAgentItemID = config.getItem("StandardBindingAgent", 17041).getInt(); - AlchemicalWizardry.mundanePowerCatalystItemID = config.getItem("MundanePowerCatalyst", 17042).getInt(); - AlchemicalWizardry.averagePowerCatalystItemID = config.getItem("AveragePowerCatalyst", 17043).getInt(); - AlchemicalWizardry.greaterPowerCatalystItemID = config.getItem("GreaterPowerCatalyst", 17044).getInt(); - AlchemicalWizardry.mundaneLengtheningCatalystItemID = config.getItem("MundaneLengtheningCatalyst", 17045).getInt(); - AlchemicalWizardry.averageLengtheningCatalystItemID = config.getItem("AverageLengtheningCatalyst", 17046).getInt(); - AlchemicalWizardry.greaterLengtheningCatalystItemID = config.getItem("GreaterLengtheningCatalyst", 17047).getInt(); - AlchemicalWizardry.demonBloodShardItemID = config.getItem("DemonBloodShard", 17048).getInt(); - AlchemicalWizardry.archmageBloodOrbItemID = config.getItem("ArchmageBloodOrb", 17049).getInt(); - AlchemicalWizardry.sigilOfWindItemID = config.getItem("SigilOfWind", 17050).getInt(); - AlchemicalWizardry.telepositionFocusItemID = config.getItem("TelepositionFocusItemID", 17051).getInt(); - AlchemicalWizardry.enhancedTelepositionFocusItemID = config.getItem("EnhancedTelepositionFocus", 17052).getInt(); - AlchemicalWizardry.reinforcedTelepositionFocusItemID = config.getItem("ReinforcedTelepositionFocus", 17053).getInt(); - AlchemicalWizardry.demonicTelepositionFocusItemID = config.getItem("DemonicTelepositionFocus", 17054).getInt(); - AlchemicalWizardry.imbuedSlateItemID = config.getItem("ImbuedSlate", 17055).getInt(); - AlchemicalWizardry.demonicSlateItemID = config.getItem("DemonicSlate", 17056).getInt(); - AlchemicalWizardry.sigilOfTheBridgeItemID = config.getItem("SigilOfTheBridge", 17057).getInt(); - AlchemicalWizardry.creativeFillerItemID = config.getItem("CreativeFiller", 17058).getInt(); - AlchemicalWizardry.itemRitualDivinerItemID = config.getItem("ItemRitualDiviner", 17059).getInt(); - AlchemicalWizardry.itemKeyOfDiabloItemID = config.getItem("ItemKeyOfDiablo", 17081).getInt(); - AlchemicalWizardry.energyBazookaItemID = config.getItem("EnergyBazooka", 17082).getInt(); - AlchemicalWizardry.itemBloodLightSigilItemID = config.getItem("BloodLightSigil", 17083).getInt(); - AlchemicalWizardry.simpleCatalystItemID = config.getItem("SimpleCatalyst", 17060).getInt(); - AlchemicalWizardry.incendiumItemID = config.getItem("Incendium", 17061).getInt(); - AlchemicalWizardry.magicalesItemID = config.getItem("Magicales", 17062).getInt(); - AlchemicalWizardry.sanctusItemID = config.getItem("Sanctus", 17063).getInt(); - AlchemicalWizardry.aetherItemID = config.getItem("Aether", 17064).getInt(); - AlchemicalWizardry.crepitousItemID = config.getItem("Crepitous", 17065).getInt(); - AlchemicalWizardry.crystallosItemID = config.getItem("Crystallos", 17066).getInt(); - AlchemicalWizardry.terraeItemID = config.getItem("Terrae", 17067).getInt(); - AlchemicalWizardry.aquasalusItemID = config.getItem("Aquasalus", 17068).getInt(); - AlchemicalWizardry.tennebraeItemID = config.getItem("Tennebrae", 17069).getInt(); - AlchemicalWizardry.weakBindingAgentItemID = config.getItem("WeakBindingAgent", 17070).getInt(); - AlchemicalWizardry.weakFillingAgentItemID = config.getItem("WeakFillingAgent", 17072).getInt(); - AlchemicalWizardry.standardFillingAgentItemID = config.getItem("StandardFillingAgent", 17073).getInt(); - AlchemicalWizardry.enhancedFillingAgentItemID = config.getItem("EnhancedFillingAgent", 17074).getInt(); - AlchemicalWizardry.sanguineHelmetItemID = config.getItem("SanguineHelmet", 17075).getInt(); - AlchemicalWizardry.focusBloodBlastItemID = config.getItem("FocusBloodBlast", 17076).getInt(); - AlchemicalWizardry.focusGravityWellItemID = config.getItem("FocusGravityWell", 17077).getInt(); - AlchemicalWizardry.sigilOfMagnetismItemID = config.getItem("SigilOfMagnetism", 17080).getInt(); - AlchemicalWizardry.itemComplexSpellCrystalItemID = config.getItem("ComplexSpellCrystal",17081).getInt(); - AlchemicalWizardry.itemBloodFrameItemID = config.getItem("BloodFrame", 17082).getInt(); - AlchemicalWizardry.baseComponentsItemID = config.getItem("BaseComponents", 17083).getInt(); - AlchemicalWizardry.baseAlchemyComponentsItemID = config.getItem("BaseAlchemyComponents", 17084).getInt(); - AlchemicalWizardry.itemSigilOfSupressionItemID = config.getItem("ItemSigilOfSupression", 17085).getInt(); - AlchemicalWizardry.itemBloodBookItemID = config.getItem("BloodBooks", 17086).getInt(); - - AlchemicalWizardry.wimpySettings = config.get("WimpySettings","IDontLikeFun",false).getBoolean(false); - - } catch (Exception e) - { - - FMLLog.log(Level.SEVERE, e, "Blood Magic" + " has had a problem loading its configuration, go ask on the forums :p"); - - } finally - { - config.save(); - } - } - - public static void set(String categoryName, String propertyName, String newValue) - { - - config.load(); - if (config.getCategoryNames().contains(categoryName)) - { - if (config.getCategory(categoryName).containsKey(propertyName)) - { - config.getCategory(categoryName).get(propertyName).set(newValue); - } - } - config.save(); - - - } - -} diff --git a/BM_src/WayofTime/alchemicalWizardry/ModBlocks.java b/BM_src/WayofTime/alchemicalWizardry/ModBlocks.java deleted file mode 100644 index ccc36070..00000000 --- a/BM_src/WayofTime/alchemicalWizardry/ModBlocks.java +++ /dev/null @@ -1,85 +0,0 @@ -package WayofTime.alchemicalWizardry; - -import WayofTime.alchemicalWizardry.common.LifeEssence; -import WayofTime.alchemicalWizardry.common.block.*; -import net.minecraft.block.Block; -import net.minecraft.block.material.Material; -import net.minecraft.creativetab.CreativeTabs; - -/** - * Created with IntelliJ IDEA. - * User: Pokefenn - * Date: 17/01/14 - * Time: 19:48 - */ -public class ModBlocks -{ - - public static Block testingBlock; - public static Block bloodStoneBrick; - public static Block largeBloodStoneBrick; - // public static Block lifeEssenceStill; -// public static Block lifeEssenceFlowing; - public static BlockAltar blockAltar; - public static BloodRune bloodRune; - public static SpeedRune speedRune; - public static EfficiencyRune efficiencyRune; - public static RuneOfSacrifice runeOfSacrifice; - public static RuneOfSelfSacrifice runeOfSelfSacrifice; - public static Block blockMasterStone; - public static Block ritualStone; - public static Block imperfectRitualStone; - public static Block bloodSocket; - public static Block emptySocket; - public static Block armourForge; - public static Block blockWritingTable; - public static Block blockHomHeart; - public static Block blockPedestal; - public static Block blockPlinth; - public static Block blockLifeEssence; - public static Block blockTeleposer; - public static Block spectralBlock; - public static Block blockConduit; - public static Block blockBloodLight; - public static Block blockSpellEffect; - public static Block blockSpellParadigm; - public static Block blockSpellModifier; - public static Block blockSpellEnhancement; - public static Block blockSpectralContainer; - - public static void init() - { - - //testingBlock = new TestingBlock(AlchemicalWizardry.testingBlockBlockID, Material.ground).setHardness(2.0F).setStepSound(Block.soundStoneFootstep).setCreativeTab(CreativeTabs.tabBlock).setLightValue(1.0F); -//lifeEssenceStill = new LifeEssenceStill(lifeEssenceStillBlockID); -//lifeEssenceFlowing = new LifeEssenceFlowing(lifeEssenceFlowingBlockID); - blockAltar = new BlockAltar(AlchemicalWizardry.blockAltarBlockID); - bloodRune = new BloodRune(AlchemicalWizardry.bloodRuneBlockID); - speedRune = new SpeedRune(AlchemicalWizardry.speedRuneBlockID); - efficiencyRune = new EfficiencyRune(AlchemicalWizardry.efficiencyRuneBlockID); - runeOfSacrifice = new RuneOfSacrifice(AlchemicalWizardry.runeOfSacrificeBlockID); - runeOfSelfSacrifice = new RuneOfSelfSacrifice(AlchemicalWizardry.runeOfSelfSacrificeBlockID); - AlchemicalWizardry.lifeEssenceFluid = new LifeEssence("Life Essence"); - blockTeleposer = new BlockTeleposer(AlchemicalWizardry.blockTeleposerBlockID); - spectralBlock = new SpectralBlock(AlchemicalWizardry.spectralBlockBlockID); - ritualStone = new RitualStone(AlchemicalWizardry.ritualStoneBlockID); - blockMasterStone = new BlockMasterStone(AlchemicalWizardry.blockMasterStoneBlockID); - imperfectRitualStone = new ImperfectRitualStone(AlchemicalWizardry.imperfectRitualStoneBlockID); - bloodSocket = new BlockSocket(AlchemicalWizardry.bloodSocketBlockID); - armourForge = new ArmourForge(AlchemicalWizardry.armourForgeBlockID); - emptySocket = new EmptySocket(AlchemicalWizardry.emptySocketBlockID); - largeBloodStoneBrick = new LargeBloodStoneBrick(AlchemicalWizardry.largeBloodStoneBrickBlockID); - bloodStoneBrick = new BloodStoneBrick(AlchemicalWizardry.bloodStoneBrickBlockID); - blockWritingTable = new BlockWritingTable(AlchemicalWizardry.blockWritingTableBlockID); - blockHomHeart = new BlockHomHeart(AlchemicalWizardry.blockHomHeartBlockID); - blockPedestal = new BlockPedestal(AlchemicalWizardry.blockPedestalBlockID); - blockPlinth = new BlockPlinth(AlchemicalWizardry.blockPlinthBlockID); - blockConduit = new BlockConduit(AlchemicalWizardry.blockConduitBlockID); - blockBloodLight = new BlockBloodLightSource(AlchemicalWizardry.blockBloodLightBlockID); - blockSpellEffect = new BlockSpellEffect(AlchemicalWizardry.blockSpellEffectBlockID); - blockSpellParadigm = new BlockSpellParadigm(AlchemicalWizardry.blockSpellParadigmBlockID); - blockSpellModifier = new BlockSpellModifier(AlchemicalWizardry.blockSpellModifierBlockID); - blockSpellEnhancement = new BlockSpellEnhancement(AlchemicalWizardry.blockSpellEnhancementBlockID); - blockSpectralContainer = new BlockSpectralContainer(AlchemicalWizardry.blockSpectralContainerBlockID); - } -} diff --git a/BM_src/WayofTime/alchemicalWizardry/ModItems.java b/BM_src/WayofTime/alchemicalWizardry/ModItems.java deleted file mode 100644 index 97d0a76b..00000000 --- a/BM_src/WayofTime/alchemicalWizardry/ModItems.java +++ /dev/null @@ -1,258 +0,0 @@ -package WayofTime.alchemicalWizardry; - -import net.minecraft.item.Item; -import WayofTime.alchemicalWizardry.common.items.AWBaseItems; -import WayofTime.alchemicalWizardry.common.items.ActivationCrystal; -import WayofTime.alchemicalWizardry.common.items.AirScribeTool; -import WayofTime.alchemicalWizardry.common.items.ApprenticeBloodOrb; -import WayofTime.alchemicalWizardry.common.items.ArchmageBloodOrb; -import WayofTime.alchemicalWizardry.common.items.ArmourInhibitor; -import WayofTime.alchemicalWizardry.common.items.BlankSpell; -import WayofTime.alchemicalWizardry.common.items.BloodShard; -import WayofTime.alchemicalWizardry.common.items.BoundArmour; -import WayofTime.alchemicalWizardry.common.items.BoundAxe; -import WayofTime.alchemicalWizardry.common.items.BoundPickaxe; -import WayofTime.alchemicalWizardry.common.items.BoundShovel; -import WayofTime.alchemicalWizardry.common.items.CheatyItem; -import WayofTime.alchemicalWizardry.common.items.DaggerOfSacrifice; -import WayofTime.alchemicalWizardry.common.items.DemonPlacer; -import WayofTime.alchemicalWizardry.common.items.DemonicTelepositionFocus; -import WayofTime.alchemicalWizardry.common.items.DuskScribeTool; -import WayofTime.alchemicalWizardry.common.items.EarthScribeTool; -import WayofTime.alchemicalWizardry.common.items.EnergyBattery; -import WayofTime.alchemicalWizardry.common.items.EnergyBazooka; -import WayofTime.alchemicalWizardry.common.items.EnergyBlast; -import WayofTime.alchemicalWizardry.common.items.EnergySword; -import WayofTime.alchemicalWizardry.common.items.FireScribeTool; -import WayofTime.alchemicalWizardry.common.items.ItemAlchemyBase; -import WayofTime.alchemicalWizardry.common.items.ItemComplexSpellCrystal; -import WayofTime.alchemicalWizardry.common.items.ItemComponents; -import WayofTime.alchemicalWizardry.common.items.ItemDiabloKey; -import WayofTime.alchemicalWizardry.common.items.ItemRitualDiviner; -import WayofTime.alchemicalWizardry.common.items.LavaCrystal; -import WayofTime.alchemicalWizardry.common.items.MagicianBloodOrb; -import WayofTime.alchemicalWizardry.common.items.MasterBloodOrb; -import WayofTime.alchemicalWizardry.common.items.ReinforcedTelepositionFocus; -import WayofTime.alchemicalWizardry.common.items.SacrificialDagger; -import WayofTime.alchemicalWizardry.common.items.TelepositionFocus; -import WayofTime.alchemicalWizardry.common.items.WaterScribeTool; -import WayofTime.alchemicalWizardry.common.items.books.ItemBloodArchives; -import WayofTime.alchemicalWizardry.common.items.potion.AlchemyFlask; -import WayofTime.alchemicalWizardry.common.items.potion.AlchemyReagent; -import WayofTime.alchemicalWizardry.common.items.potion.AverageLengtheningCatalyst; -import WayofTime.alchemicalWizardry.common.items.potion.AveragePowerCatalyst; -import WayofTime.alchemicalWizardry.common.items.potion.EnhancedFillingAgent; -import WayofTime.alchemicalWizardry.common.items.potion.EnhancedTelepositionFocus; -import WayofTime.alchemicalWizardry.common.items.potion.GreaterLengtheningCatalyst; -import WayofTime.alchemicalWizardry.common.items.potion.GreaterPowerCatalyst; -import WayofTime.alchemicalWizardry.common.items.potion.MundaneLengtheningCatalyst; -import WayofTime.alchemicalWizardry.common.items.potion.MundanePowerCatalyst; -import WayofTime.alchemicalWizardry.common.items.potion.StandardBindingAgent; -import WayofTime.alchemicalWizardry.common.items.potion.StandardFillingAgent; -import WayofTime.alchemicalWizardry.common.items.potion.WeakBindingAgent; -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.ItemSigilOfSupression; -import WayofTime.alchemicalWizardry.common.items.sigil.LavaSigil; -import WayofTime.alchemicalWizardry.common.items.sigil.SigilOfElementalAffinity; -import WayofTime.alchemicalWizardry.common.items.sigil.SigilOfGrowth; -import WayofTime.alchemicalWizardry.common.items.sigil.SigilOfHaste; -import WayofTime.alchemicalWizardry.common.items.sigil.SigilOfHolding; -import WayofTime.alchemicalWizardry.common.items.sigil.SigilOfMagnetism; -import WayofTime.alchemicalWizardry.common.items.sigil.SigilOfTheBridge; -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; - -/** - * Created with IntelliJ IDEA. - * User: Pokefenn - * Date: 17/01/14 - * Time: 19:48 - */ -public class ModItems -{ - public static Item orbOfTesting; - public static Item weakBloodOrb; - public static Item apprenticeBloodOrb; - public static Item magicianBloodOrb; - public static Item energyBlaster; - public static Item energySword; - public static Item lavaCrystal; - public static Item waterSigil; - public static Item lavaSigil; - public static Item voidSigil; - //public static Item glassShard = new GlassShard(17009).setUnlocalizedName("glassShard"); - //public static Item bloodiedShard = new BloodiedShard(17010).setUnlocalizedName("bloodiedShard"); - public static Item blankSlate; - public static Item reinforcedSlate; - public static Item sacrificialDagger; - public static Item daggerOfSacrifice; - public static Item airSigil; - public static Item sigilOfTheFastMiner; - public static Item sigilOfElementalAffinity; - public static Item sigilOfHaste; - public static Item sigilOfHolding; - public static Item divinationSigil; - // public static Item elementalInkWater; -// public static Item elementalInkFire; -// public static Item elementalInkEarth; -// public static Item elementalInkAir; - public static Item waterScribeTool; - public static Item fireScribeTool; - public static Item earthScribeTool; - public static Item airScribeTool; - public static Item activationCrystal; - public static Item boundPickaxe; - public static Item boundAxe; - public static Item boundShovel; - public static Item boundHelmet; - public static Item boundPlate; - public static Item boundLeggings; - public static Item boundBoots; - public static Item weakBloodShard; - public static Item growthSigil; - //public static Item fireSpell; - public static Item blankSpell; - public static Item masterBloodOrb; - public static Item alchemyFlask; - public static Item standardBindingAgent; - public static Item mundanePowerCatalyst; - public static Item averagePowerCatalyst; - public static Item greaterPowerCatalyst; - public static Item mundaneLengtheningCatalyst; - public static Item averageLengtheningCatalyst; - public static Item greaterLengtheningCatalyst; - public static Item incendium; - public static Item magicales; - public static Item sanctus; - public static Item aether; - public static Item simpleCatalyst; - public static Item crepitous; - public static Item crystallos; - public static Item terrae; - public static Item aquasalus; - public static Item tennebrae; - public static Item demonBloodShard; - public static Item archmageBloodOrb; - public static Item sigilOfWind; - public static Item telepositionFocus; - public static Item enhancedTelepositionFocus; - public static Item reinforcedTelepositionFocus; - public static Item demonicTelepositionFocus; - public static Item imbuedSlate; - public static Item demonicSlate; - public static Item duskScribeTool; - public static Item sigilOfTheBridge; - public static Item armourInhibitor; - public static Item creativeFiller; - public static Item demonPlacer; - - public static Item baseItems; - public static Item baseAlchemyItems; - - public static Item weakFillingAgent; - public static Item standardFillingAgent; - public static Item enhancedFillingAgent; - public static Item weakBindingAgent; - public static Item itemRitualDiviner; - public static Item sanguineHelmet; - public static Item focusBloodBlast; - public static Item focusGravityWell; - public static Item sigilOfMagnetism; - public static Item itemKeyOfDiablo; - public static Item energyBazooka; - public static Item itemBloodLightSigil; - public static Item itemComplexSpellCrystal; - public static Item itemBloodFrame; - public static Item itemSigilOfSupression; - public static Item itemBloodBook; - - public static void init() - { - weakBloodOrb = new EnergyBattery(AlchemicalWizardry.weakBloodOrbItemID, 5000).setUnlocalizedName("weakBloodOrb"); - apprenticeBloodOrb = new ApprenticeBloodOrb(AlchemicalWizardry.apprenticeBloodOrbItemID, 25000).setUnlocalizedName("apprenticeBloodOrb"); - magicianBloodOrb = new MagicianBloodOrb(AlchemicalWizardry.magicianBloodOrbItemID, 150000).setUnlocalizedName("magicianBloodOrb"); - masterBloodOrb = new MasterBloodOrb(AlchemicalWizardry.masterBloodOrbItemID, 1000000).setUnlocalizedName("masterBloodOrb"); - archmageBloodOrb = new ArchmageBloodOrb(AlchemicalWizardry.archmageBloodOrbItemID, 10000000).setUnlocalizedName("archmageBloodOrb"); - energyBlaster = new EnergyBlast(AlchemicalWizardry.energyBlasterItemID).setUnlocalizedName("energyBlast"); - energySword = new EnergySword(AlchemicalWizardry.energySwordItemID).setUnlocalizedName("energySword"); - lavaCrystal = new LavaCrystal(AlchemicalWizardry.lavaCrystalItemID).setUnlocalizedName("lavaCrystal"); - waterSigil = new WaterSigil(AlchemicalWizardry.waterSigilItemID).setUnlocalizedName("waterSigil"); - lavaSigil = new LavaSigil(AlchemicalWizardry.lavaSigilItemID).setUnlocalizedName("lavaSigil"); - voidSigil = new VoidSigil(AlchemicalWizardry.voidSigilItemID).setUnlocalizedName("voidSigil"); - blankSlate = new AWBaseItems(AlchemicalWizardry.blankSlateItemID).setUnlocalizedName("blankSlate"); - reinforcedSlate = new AWBaseItems(AlchemicalWizardry.reinforcedSlateItemID).setUnlocalizedName("reinforcedSlate"); - sacrificialDagger = new SacrificialDagger(AlchemicalWizardry.sacrificialDaggerItemID).setUnlocalizedName("sacrificialDagger"); - daggerOfSacrifice = new DaggerOfSacrifice(AlchemicalWizardry.daggerOfSacrificeItemID).setUnlocalizedName("daggerOfSacrifice"); - airSigil = new AirSigil(AlchemicalWizardry.airSigilItemID).setUnlocalizedName("airSigil"); - sigilOfTheFastMiner = new SigilOfTheFastMiner(AlchemicalWizardry.sigilOfTheFastMinerItemID).setUnlocalizedName("sigilOfTheFastMiner"); - sigilOfElementalAffinity = new SigilOfElementalAffinity(AlchemicalWizardry.sigilOfElementalAffinityItemID).setUnlocalizedName("sigilOfElementalAffinity"); - sigilOfHaste = new SigilOfHaste(AlchemicalWizardry.sigilOfHasteItemID).setUnlocalizedName("sigilOfHaste"); - sigilOfHolding = new SigilOfHolding(AlchemicalWizardry.sigilOfHoldingItemID).setUnlocalizedName("sigilOfHolding"); - divinationSigil = new DivinationSigil(AlchemicalWizardry.divinationSigilItemID).setUnlocalizedName("divinationSigil"); - waterScribeTool = new WaterScribeTool(AlchemicalWizardry.waterScribeToolItemID).setUnlocalizedName("waterScribeTool"); - fireScribeTool = new FireScribeTool(AlchemicalWizardry.fireScribeToolItemID).setUnlocalizedName("fireScribeTool"); - earthScribeTool = new EarthScribeTool(AlchemicalWizardry.earthScribeToolItemID).setUnlocalizedName("earthScribeTool"); - airScribeTool = new AirScribeTool(AlchemicalWizardry.airScribeToolItemID).setUnlocalizedName("airScribeTool"); - activationCrystal = new ActivationCrystal(AlchemicalWizardry.weakActivationCrystalItemID); - boundPickaxe = new BoundPickaxe(AlchemicalWizardry.boundPickaxeItemID).setUnlocalizedName("boundPickaxe"); - boundAxe = new BoundAxe(AlchemicalWizardry.boundAxeItemID).setUnlocalizedName("boundAxe"); - boundShovel = new BoundShovel(AlchemicalWizardry.boundShovelItemID).setUnlocalizedName("boundShovel"); - boundHelmet = new BoundArmour(AlchemicalWizardry.boundHelmetItemID, 0).setUnlocalizedName("boundHelmet"); - boundPlate = new BoundArmour(AlchemicalWizardry.boundPlateItemID, 1).setUnlocalizedName("boundPlate"); - boundLeggings = new BoundArmour(AlchemicalWizardry.boundLeggingsItemID, 2).setUnlocalizedName("boundLeggings"); - boundBoots = new BoundArmour(AlchemicalWizardry.boundBootsItemID, 3).setUnlocalizedName("boundBoots"); - weakBloodShard = new BloodShard(AlchemicalWizardry.weakBloodShardItemID).setUnlocalizedName("weakBloodShard"); - growthSigil = new SigilOfGrowth(AlchemicalWizardry.growthSigilItemID).setUnlocalizedName("growthSigil"); - blankSpell = new BlankSpell(AlchemicalWizardry.blankSpellItemID).setUnlocalizedName("blankSpell"); - alchemyFlask = new AlchemyFlask(AlchemicalWizardry.alchemyFlaskItemID).setUnlocalizedName("alchemyFlask"); - standardBindingAgent = new StandardBindingAgent(AlchemicalWizardry.standardBindingAgentItemID).setUnlocalizedName("standardBindingAgent"); - mundanePowerCatalyst = new MundanePowerCatalyst(AlchemicalWizardry.mundanePowerCatalystItemID).setUnlocalizedName("mundanePowerCatalyst"); - averagePowerCatalyst = new AveragePowerCatalyst(AlchemicalWizardry.averagePowerCatalystItemID).setUnlocalizedName("averagePowerCatalyst"); - greaterPowerCatalyst = new GreaterPowerCatalyst(AlchemicalWizardry.greaterPowerCatalystItemID).setUnlocalizedName("greaterPowerCatalyst"); - mundaneLengtheningCatalyst = new MundaneLengtheningCatalyst(AlchemicalWizardry.mundaneLengtheningCatalystItemID).setUnlocalizedName("mundaneLengtheningCatalyst"); - averageLengtheningCatalyst = new AverageLengtheningCatalyst(AlchemicalWizardry.averageLengtheningCatalystItemID).setUnlocalizedName("averageLengtheningCatalyst"); - greaterLengtheningCatalyst = new GreaterLengtheningCatalyst(AlchemicalWizardry.greaterLengtheningCatalystItemID).setUnlocalizedName("greaterLengtheningCatalyst"); - incendium = new AlchemyReagent(AlchemicalWizardry.incendiumItemID).setUnlocalizedName("incendium"); - magicales = new AlchemyReagent(AlchemicalWizardry.magicalesItemID).setUnlocalizedName("magicales"); - sanctus = new AlchemyReagent(AlchemicalWizardry.sanctusItemID).setUnlocalizedName("sanctus"); - aether = new AlchemyReagent(AlchemicalWizardry.aetherItemID).setUnlocalizedName("aether"); - simpleCatalyst = new AlchemyReagent(AlchemicalWizardry.simpleCatalystItemID).setUnlocalizedName("simpleCatalyst"); - crepitous = new AlchemyReagent(AlchemicalWizardry.crepitousItemID).setUnlocalizedName("crepitous"); - crystallos = new AlchemyReagent(AlchemicalWizardry.crystallosItemID).setUnlocalizedName("crystallos"); - terrae = new AlchemyReagent(AlchemicalWizardry.terraeItemID).setUnlocalizedName("terrae"); - aquasalus = new AlchemyReagent(AlchemicalWizardry.aquasalusItemID).setUnlocalizedName("aquasalus"); - tennebrae = new AlchemyReagent(AlchemicalWizardry.tennebraeItemID).setUnlocalizedName("tennebrae"); - demonBloodShard = new BloodShard(AlchemicalWizardry.demonBloodShardItemID).setUnlocalizedName("demonBloodShard"); - sigilOfWind = new SigilOfWind(AlchemicalWizardry.sigilOfWindItemID).setUnlocalizedName("sigilOfWind"); - telepositionFocus = new TelepositionFocus(AlchemicalWizardry.telepositionFocusItemID, 1).setUnlocalizedName("telepositionFocus"); - enhancedTelepositionFocus = new EnhancedTelepositionFocus(AlchemicalWizardry.enhancedTelepositionFocusItemID).setUnlocalizedName("enhancedTelepositionFocus"); - reinforcedTelepositionFocus = new ReinforcedTelepositionFocus(AlchemicalWizardry.reinforcedTelepositionFocusItemID).setUnlocalizedName("reinforcedTelepositionFocus"); - demonicTelepositionFocus = new DemonicTelepositionFocus(AlchemicalWizardry.demonicTelepositionFocusItemID).setUnlocalizedName("demonicTelepositionFocus"); - imbuedSlate = new AWBaseItems(AlchemicalWizardry.imbuedSlateItemID).setUnlocalizedName("imbuedSlate"); - demonicSlate = new AWBaseItems(AlchemicalWizardry.demonicSlateItemID).setUnlocalizedName("demonicSlate"); - duskScribeTool = new DuskScribeTool(AlchemicalWizardry.duskScribeToolItemID).setUnlocalizedName("duskScribeTool"); - sigilOfTheBridge = new SigilOfTheBridge(AlchemicalWizardry.sigilOfTheBridgeItemID).setUnlocalizedName("sigilOfTheBridge"); - armourInhibitor = new ArmourInhibitor(AlchemicalWizardry.armourInhibitorItemID).setUnlocalizedName("armourInhibitor"); - creativeFiller = new CheatyItem(AlchemicalWizardry.creativeFillerItemID).setUnlocalizedName("cheatyItem"); - demonPlacer = new DemonPlacer(AlchemicalWizardry.demonPlacerItemID).setUnlocalizedName("demonPlacer"); - weakFillingAgent = new WeakFillingAgent(AlchemicalWizardry.weakFillingAgentItemID).setUnlocalizedName("weakFillingAgent"); - standardFillingAgent = new StandardFillingAgent(AlchemicalWizardry.standardFillingAgentItemID).setUnlocalizedName("standardFillingAgent"); - enhancedFillingAgent = new EnhancedFillingAgent(AlchemicalWizardry.enhancedFillingAgentItemID).setUnlocalizedName("enhancedFillingAgent"); - weakBindingAgent = new WeakBindingAgent(AlchemicalWizardry.weakBindingAgentItemID).setUnlocalizedName("weakBindingAgent"); - itemRitualDiviner = new ItemRitualDiviner(AlchemicalWizardry.itemRitualDivinerItemID).setUnlocalizedName("ritualDiviner"); - sigilOfMagnetism = new SigilOfMagnetism(AlchemicalWizardry.sigilOfMagnetismItemID).setUnlocalizedName("sigilOfMagnetism"); - itemKeyOfDiablo = new ItemDiabloKey(AlchemicalWizardry.itemKeyOfDiabloItemID).setUnlocalizedName("itemDiabloKey"); - energyBazooka = new EnergyBazooka(AlchemicalWizardry.energyBazookaItemID).setUnlocalizedName("energyBazooka"); - itemBloodLightSigil = new ItemBloodLightSigil(AlchemicalWizardry.itemBloodLightSigilItemID).setUnlocalizedName("bloodLightSigil"); - itemComplexSpellCrystal = new ItemComplexSpellCrystal(AlchemicalWizardry.itemComplexSpellCrystalItemID).setUnlocalizedName("itemComplexSpellCrystal"); - baseItems = new ItemComponents(AlchemicalWizardry.baseComponentsItemID).setUnlocalizedName("baseItems"); - baseAlchemyItems = new ItemAlchemyBase(AlchemicalWizardry.baseAlchemyComponentsItemID).setUnlocalizedName("baseAlchemyItems"); - itemSigilOfSupression = new ItemSigilOfSupression(AlchemicalWizardry.itemSigilOfSupressionItemID).setUnlocalizedName("itemSigilOfSupression"); - //itemBloodBook = new ItemBloodArchives(AlchemicalWizardry.itemBloodBookItemID).setUnlocalizedName("bloodanomicon"); - } -} diff --git a/BM_src/WayofTime/alchemicalWizardry/api/alchemy/AlchemicalPotionCreationHandler.java b/BM_src/WayofTime/alchemicalWizardry/api/alchemy/AlchemicalPotionCreationHandler.java deleted file mode 100644 index 4fcd1661..00000000 --- a/BM_src/WayofTime/alchemicalWizardry/api/alchemy/AlchemicalPotionCreationHandler.java +++ /dev/null @@ -1,82 +0,0 @@ -package WayofTime.alchemicalWizardry.api.alchemy; - -import net.minecraft.item.Item; -import net.minecraft.item.ItemStack; -import net.minecraft.potion.Potion; - -import java.util.ArrayList; - -public class AlchemicalPotionCreationHandler -{ - public static ArrayList registeredPotionEffects = new ArrayList(); - - public static void addPotion(ItemStack itemStack, int potionID, int tickDuration) - { - registeredPotionEffects.add(new AlchemyPotionHandlerComponent(itemStack, potionID, tickDuration)); - //EXAMPLE: addPotion(new ItemStack(Item.ghastTear), Potion.regeneration.id, 450); - } - - public static int getPotionIDForStack(ItemStack itemStack) - { - for (AlchemyPotionHandlerComponent aphc : registeredPotionEffects) - { - if (aphc.compareItemStack(itemStack)) - { - return aphc.getPotionID(); - } - } - - return -1; - } - - public static int getPotionTickDurationForStack(ItemStack itemStack) - { - { - for (AlchemyPotionHandlerComponent aphc : registeredPotionEffects) - { - if (aphc.compareItemStack(itemStack)) - { - return aphc.getTickDuration(); - } - } - - return -1; - } - } - - public static boolean containsRegisteredPotionIngredient(ItemStack[] stackList) - { - for (ItemStack is : stackList) - { - for (AlchemyPotionHandlerComponent aphc : registeredPotionEffects) - { - if (aphc.compareItemStack(is)) - { - return true; - } - } - } - - return false; - } - - public static int getRegisteredPotionIngredientPosition(ItemStack[] stackList) - { - int i = 0; - - for (ItemStack is : stackList) - { - for (AlchemyPotionHandlerComponent aphc : registeredPotionEffects) - { - if (aphc.compareItemStack(is)) - { - return i; - } - } - - i++; - } - - return -1; - } -} diff --git a/BM_src/WayofTime/alchemicalWizardry/api/alchemy/AlchemyPotionHandlerComponent.java b/BM_src/WayofTime/alchemicalWizardry/api/alchemy/AlchemyPotionHandlerComponent.java deleted file mode 100644 index 604994dd..00000000 --- a/BM_src/WayofTime/alchemicalWizardry/api/alchemy/AlchemyPotionHandlerComponent.java +++ /dev/null @@ -1,52 +0,0 @@ -package WayofTime.alchemicalWizardry.api.alchemy; - -import net.minecraft.item.ItemBlock; -import net.minecraft.item.ItemStack; - -public class AlchemyPotionHandlerComponent -{ - private ItemStack itemStack; - private int potionID; - private int tickDuration; - - public AlchemyPotionHandlerComponent(ItemStack itemStack, int potionID, int tickDuration) - { - this.itemStack = itemStack; - this.potionID = potionID; - this.tickDuration = tickDuration; - } - - public boolean compareItemStack(ItemStack comparedStack) - { - if (comparedStack != null && itemStack != null) - { - if (comparedStack.getItem() instanceof ItemBlock) - { - if (itemStack.getItem() instanceof ItemBlock) - { - return comparedStack.itemID == itemStack.itemID && comparedStack.getItemDamage() == itemStack.getItemDamage(); - } - } else if (!(itemStack.getItem() instanceof ItemBlock)) - { - return comparedStack.itemID == itemStack.itemID && comparedStack.getItemDamage() == itemStack.getItemDamage(); - } - } - - return false; - } - - public ItemStack getItemStack() - { - return itemStack; - } - - public int getPotionID() - { - return this.potionID; - } - - public int getTickDuration() - { - return this.tickDuration; - } -} diff --git a/BM_src/WayofTime/alchemicalWizardry/api/alchemy/AlchemyPotionHelper.java b/BM_src/WayofTime/alchemicalWizardry/api/alchemy/AlchemyPotionHelper.java deleted file mode 100644 index d3462552..00000000 --- a/BM_src/WayofTime/alchemicalWizardry/api/alchemy/AlchemyPotionHelper.java +++ /dev/null @@ -1,76 +0,0 @@ -package WayofTime.alchemicalWizardry.api.alchemy; - -import net.minecraft.nbt.NBTTagCompound; -import net.minecraft.potion.Potion; -import net.minecraft.potion.PotionEffect; - -public class AlchemyPotionHelper -{ - private int potionID; - private int tickDuration; - private int concentration; - private int durationFactor; - - public AlchemyPotionHelper(int potionID, int tickDuration, int concentration, int durationFactor) - { - this.potionID = potionID; - this.tickDuration = tickDuration; - this.concentration = concentration; - this.durationFactor = durationFactor; - } - - public void setConcentration(int concentration) - { - this.concentration = concentration; - } - - public void setDurationFactor(int durationFactor) - { - this.durationFactor = durationFactor; - } - - public int getPotionID() - { - return this.potionID; - } - - public int getTickDuration() - { - return this.tickDuration; - } - - public int getConcentration() - { - return this.concentration; - } - - public int getdurationFactor() - { - return this.durationFactor; - } - - public PotionEffect getPotionEffect() - { - if (potionID == Potion.heal.id || potionID == Potion.harm.id) - { - return (new PotionEffect(potionID, 1, concentration)); - } - - return (new PotionEffect(potionID, (int) (tickDuration * Math.pow(0.5f, concentration) * Math.pow(8.0f / 3.0f, durationFactor)), concentration)); - } - - public static AlchemyPotionHelper readEffectFromNBT(NBTTagCompound tagCompound) - { - return new AlchemyPotionHelper(tagCompound.getInteger("potionID"), tagCompound.getInteger("tickDuration"), tagCompound.getInteger("concentration"), tagCompound.getInteger("durationFactor")); - } - - public static NBTTagCompound setEffectToNBT(AlchemyPotionHelper aph) - { - NBTTagCompound tagCompound = new NBTTagCompound(); - tagCompound.setInteger("potionID", aph.getPotionID()); - tagCompound.setInteger("tickDuration", aph.getTickDuration()); - tagCompound.setInteger("concentration", aph.getConcentration()); - tagCompound.setInteger("durationFactor", aph.getdurationFactor()); - return tagCompound; - } -} diff --git a/BM_src/WayofTime/alchemicalWizardry/api/alchemy/AlchemyRecipe.java b/BM_src/WayofTime/alchemicalWizardry/api/alchemy/AlchemyRecipe.java deleted file mode 100644 index 3dfdba40..00000000 --- a/BM_src/WayofTime/alchemicalWizardry/api/alchemy/AlchemyRecipe.java +++ /dev/null @@ -1,143 +0,0 @@ -package WayofTime.alchemicalWizardry.api.alchemy; - -import net.minecraft.item.ItemBlock; -import net.minecraft.item.ItemStack; -import net.minecraftforge.oredict.OreDictionary; - -public class AlchemyRecipe -{ - private ItemStack output; - private ItemStack[] recipe; - private int bloodOrbLevel; - private int amountNeeded; - - public AlchemyRecipe(ItemStack output, int amountNeeded, ItemStack[] recipe, int bloodOrbLevel) - { - this.output = output; - this.recipe = recipe; - this.amountNeeded = amountNeeded; - this.bloodOrbLevel = bloodOrbLevel; - } - - public boolean doesRecipeMatch(ItemStack[] items, int slottedBloodOrbLevel) - { - if (slottedBloodOrbLevel < bloodOrbLevel) - { - return false; - } - - ItemStack[] recipe = new ItemStack[5]; - - if (items.length < 5) - { - return false; - } - - if (this.recipe.length != 5) - { - ItemStack[] newRecipe = new ItemStack[5]; - - for (int i = 0; i < 5; i++) - { - if (i + 1 > this.recipe.length) - { - newRecipe[i] = null; - } else - { - newRecipe[i] = this.recipe[i]; - } - } - - recipe = newRecipe; - } else - { - recipe = this.recipe; - } - - boolean[] checkList = new boolean[5]; - - for (int i = 0; i < 5; i++) - { - checkList[i] = false; - } - - for (int i = 0; i < 5; i++) - { - ItemStack recipeItemStack = recipe[i]; - - if (recipeItemStack == null) - { - continue; - } - - boolean test = false; - - for (int j = 0; j < 5; j++) - { - if (checkList[j]) - { - continue; - } - - ItemStack checkedItemStack = items[j]; - - if (checkedItemStack == null) - { - continue; - } - - boolean quickTest = false; - - if (recipeItemStack.getItem() instanceof ItemBlock) - { - if (checkedItemStack.getItem() instanceof ItemBlock) - { - quickTest = true; - } - } else if (!(checkedItemStack.getItem() instanceof ItemBlock)) - { - quickTest = true; - } - - if (!quickTest) - { - continue; - } - - if ((checkedItemStack.getItemDamage() == recipeItemStack.getItemDamage() || OreDictionary.WILDCARD_VALUE == recipeItemStack.getItemDamage()) && checkedItemStack.itemID == recipeItemStack.itemID) - { - test = true; - checkList[j] = true; - break; - } - } - - if (!test) - { - return false; - } - } - - return true; - } - - public ItemStack getResult() - { - return output.copy(); - } - - public int getAmountNeeded() - { - return this.amountNeeded; - } - - public ItemStack[] getRecipe() - { - return this.recipe; - } - - public int getOrbLevel() - { - return this.bloodOrbLevel; - } -} diff --git a/BM_src/WayofTime/alchemicalWizardry/api/alchemy/AlchemyRecipeRegistry.java b/BM_src/WayofTime/alchemicalWizardry/api/alchemy/AlchemyRecipeRegistry.java deleted file mode 100644 index 1b9871d9..00000000 --- a/BM_src/WayofTime/alchemicalWizardry/api/alchemy/AlchemyRecipeRegistry.java +++ /dev/null @@ -1,85 +0,0 @@ -package WayofTime.alchemicalWizardry.api.alchemy; - -import java.util.ArrayList; -import java.util.List; - -import net.minecraft.item.ItemStack; -import WayofTime.alchemicalWizardry.api.items.interfaces.IBloodOrb; - -public class AlchemyRecipeRegistry -{ - public static List recipes = new ArrayList(); - - public static void registerRecipe(ItemStack output, int amountNeeded, ItemStack[] recipe, int bloodOrbLevel) - { - recipes.add(new AlchemyRecipe(output, amountNeeded, recipe, bloodOrbLevel)); - } - - public static ItemStack getResult(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 : recipes) - { - if (ar.doesRecipeMatch(recipe, bloodOrbLevel)) - { - return (ar.getResult()); - } - } - - return null; - } - - public static int getAmountNeeded(ItemStack[] recipe, ItemStack bloodOrb) - { - if (bloodOrb == null) - { - return 0; - } - - if (!(bloodOrb.getItem() instanceof IBloodOrb)) - { - return 0; - } - - int bloodOrbLevel = ((IBloodOrb) bloodOrb.getItem()).getOrbLevel(); - - for (AlchemyRecipe ar : recipes) - { - if (ar.doesRecipeMatch(recipe, bloodOrbLevel)) - { - return (ar.getAmountNeeded()); - } - } - - return 0; - } - - public static ItemStack[] getRecipeForItemStack(ItemStack itemStack) - { - for (AlchemyRecipe ar : recipes) - { - ItemStack result = ar.getResult(); - - if (result != null) - { - if (result.isItemEqual(itemStack)) - { - return ar.getRecipe().clone(); - } - } - } - - return null; - } -} diff --git a/BM_src/WayofTime/alchemicalWizardry/api/altarRecipeRegistry/AltarRecipe.java b/BM_src/WayofTime/alchemicalWizardry/api/altarRecipeRegistry/AltarRecipe.java deleted file mode 100644 index 624f219b..00000000 --- a/BM_src/WayofTime/alchemicalWizardry/api/altarRecipeRegistry/AltarRecipe.java +++ /dev/null @@ -1,70 +0,0 @@ -package WayofTime.alchemicalWizardry.api.altarRecipeRegistry; - -import net.minecraft.item.ItemStack; - -public class AltarRecipe -{ - public int minTier; - public int liquidRequired; - public boolean canBeFilled; //Tells the system that the item is an orb - public int consumptionRate; - public int drainRate; - public ItemStack requiredItem; - public ItemStack result; - - public AltarRecipe(ItemStack result, ItemStack requiredItem, int minTier, int liquidRequired, int consumptionRate, int drainRate, boolean canBeFilled) - { - this.result = result; - this.requiredItem = requiredItem; - this.minTier = minTier; - this.liquidRequired = liquidRequired; - this.consumptionRate = consumptionRate; - this.drainRate = drainRate; - this.canBeFilled = canBeFilled; - } - - public ItemStack getResult() - { - return this.result; - } - - public ItemStack getRequiredItem() - { - return this.requiredItem; - } - - public boolean doesRequiredItemMatch(ItemStack comparedStack, int tierCheck) - { - if(comparedStack == null || this.requiredItem == null) - { - return false; - } - - return tierCheck>=minTier && this.requiredItem.isItemEqual(comparedStack); - } - - public int getMinTier() - { - return this.minTier; - } - - public int getLiquidRequired() - { - return this.liquidRequired; - } - - public int getConsumptionRate() - { - return this.consumptionRate; - } - - public int getDrainRate() - { - return this.drainRate; - } - - public boolean getCanBeFilled() - { - return this.canBeFilled; - } -} diff --git a/BM_src/WayofTime/alchemicalWizardry/api/altarRecipeRegistry/AltarRecipeRegistry.java b/BM_src/WayofTime/alchemicalWizardry/api/altarRecipeRegistry/AltarRecipeRegistry.java deleted file mode 100644 index ce15eb83..00000000 --- a/BM_src/WayofTime/alchemicalWizardry/api/altarRecipeRegistry/AltarRecipeRegistry.java +++ /dev/null @@ -1,64 +0,0 @@ -package WayofTime.alchemicalWizardry.api.altarRecipeRegistry; - -import java.util.LinkedList; -import java.util.List; - -import net.minecraft.block.Block; -import net.minecraft.item.Item; -import net.minecraft.item.ItemStack; - -public class AltarRecipeRegistry -{ - public static List altarRecipes = new LinkedList(); - - public static void registerAltarRecipe(ItemStack result, ItemStack requiredItem, int minTier, int liquidRequired, int consumptionRate, int drainRate, boolean canBeFilled) - { - altarRecipes.add(new AltarRecipe(result, requiredItem, minTier, liquidRequired, consumptionRate, drainRate, canBeFilled)); - //EXAMPLE: registerAltarRecipe(new ItemStack(ModItems.telepositionFocus), new ItemStack(Item.enderPearl),4,2000,10,10,false); - } - - public static void registerAltarOrbRecipe(ItemStack orbStack, int minTier, int consumptionRate) - { - registerAltarRecipe(null, orbStack, minTier, 0, consumptionRate, 0, true); - //EXAMPLE: registerAltarOrbRecipe(new ItemStack(ModItems.weakBloodOrb),1,2); - } - - public static boolean isRequiredItemValid(ItemStack testItem, int currentTierAltar) - { - for(AltarRecipe recipe : altarRecipes) - { - if(recipe.doesRequiredItemMatch(testItem, currentTierAltar)) - { - return true; - } - } - - return false; - } - - public static ItemStack getItemForItemAndTier(ItemStack testItem, int currentTierAltar) - { - for(AltarRecipe recipe : altarRecipes) - { - if(recipe.doesRequiredItemMatch(testItem, currentTierAltar)) - { - return recipe.getResult().copy(); - } - } - - return null; - } - - public static AltarRecipe getAltarRecipeForItemAndTier(ItemStack testItem, int currentTierAltar) - { - for(AltarRecipe recipe : altarRecipes) - { - if(recipe.doesRequiredItemMatch(testItem, currentTierAltar)) - { - return recipe; - } - } - - return null; - } -} diff --git a/BM_src/WayofTime/alchemicalWizardry/api/bindingRegistry/BindingRecipe.java b/BM_src/WayofTime/alchemicalWizardry/api/bindingRegistry/BindingRecipe.java deleted file mode 100644 index f8d63855..00000000 --- a/BM_src/WayofTime/alchemicalWizardry/api/bindingRegistry/BindingRecipe.java +++ /dev/null @@ -1,30 +0,0 @@ -package WayofTime.alchemicalWizardry.api.bindingRegistry; - -import net.minecraft.item.ItemStack; - -public class BindingRecipe -{ - public ItemStack requiredItem; - public ItemStack outputItem; - - public BindingRecipe(ItemStack outputItem, ItemStack requiredItem) - { - this.requiredItem = requiredItem; - this.outputItem = outputItem; - } - - public boolean doesRequiredItemMatch(ItemStack testStack) - { - if(testStack == null || this.requiredItem == null) - { - return false; - } - - return this.requiredItem.isItemEqual(testStack); - } - - public ItemStack getResult() - { - return this.outputItem; - } -} diff --git a/BM_src/WayofTime/alchemicalWizardry/api/bindingRegistry/BindingRegistry.java b/BM_src/WayofTime/alchemicalWizardry/api/bindingRegistry/BindingRegistry.java deleted file mode 100644 index 68f34e4c..00000000 --- a/BM_src/WayofTime/alchemicalWizardry/api/bindingRegistry/BindingRegistry.java +++ /dev/null @@ -1,67 +0,0 @@ -package WayofTime.alchemicalWizardry.api.bindingRegistry; - -import java.util.LinkedList; -import java.util.List; - -import net.minecraft.item.ItemStack; - -public class BindingRegistry -{ - public static List bindingRecipes = new LinkedList(); - - public static void registerRecipe(ItemStack output, ItemStack input) - { - bindingRecipes.add(new BindingRecipe(output, input)); - } - - public static boolean isRequiredItemValid(ItemStack testItem) - { - for(BindingRecipe recipe : bindingRecipes) - { - if(recipe.doesRequiredItemMatch(testItem)) - { - return true; - } - } - - return false; - } - - public static ItemStack getItemForItemAndTier(ItemStack testItem) - { - for(BindingRecipe recipe : bindingRecipes) - { - if(recipe.doesRequiredItemMatch(testItem)) - { - return recipe.getResult().copy(); - } - } - - return null; - } - - public static int getIndexForItem(ItemStack testItem) - { - int i=0; - for(BindingRecipe recipe : bindingRecipes) - { - if(recipe.doesRequiredItemMatch(testItem)) - { - return i; - } - i++; - } - - return -1; - } - - public static ItemStack getOutputForIndex(int index) - { - if(bindingRecipes.size()<=index) - { - return null; - } - - return bindingRecipes.get(index).getResult(); - } -} diff --git a/BM_src/WayofTime/alchemicalWizardry/api/items/interfaces/ArmourUpgrade.java b/BM_src/WayofTime/alchemicalWizardry/api/items/interfaces/ArmourUpgrade.java deleted file mode 100644 index 7fce7cd0..00000000 --- a/BM_src/WayofTime/alchemicalWizardry/api/items/interfaces/ArmourUpgrade.java +++ /dev/null @@ -1,15 +0,0 @@ -package WayofTime.alchemicalWizardry.api.items.interfaces; - -import net.minecraft.entity.player.EntityPlayer; -import net.minecraft.item.ItemStack; -import net.minecraft.world.World; - -public interface ArmourUpgrade -{ - //Called when the armour ticks - public void onArmourUpdate(World world, EntityPlayer player, ItemStack thisItemStack); - - public boolean isUpgrade(); - - public int getEnergyForTenSeconds(); -} diff --git a/BM_src/WayofTime/alchemicalWizardry/api/items/interfaces/IBindable.java b/BM_src/WayofTime/alchemicalWizardry/api/items/interfaces/IBindable.java deleted file mode 100644 index 46a79939..00000000 --- a/BM_src/WayofTime/alchemicalWizardry/api/items/interfaces/IBindable.java +++ /dev/null @@ -1,5 +0,0 @@ -package WayofTime.alchemicalWizardry.api.items.interfaces; - -public interface IBindable -{ -} diff --git a/BM_src/WayofTime/alchemicalWizardry/api/items/interfaces/IBloodOrb.java b/BM_src/WayofTime/alchemicalWizardry/api/items/interfaces/IBloodOrb.java deleted file mode 100644 index 794172cc..00000000 --- a/BM_src/WayofTime/alchemicalWizardry/api/items/interfaces/IBloodOrb.java +++ /dev/null @@ -1,8 +0,0 @@ -package WayofTime.alchemicalWizardry.api.items.interfaces; - -public interface IBloodOrb -{ - public int getMaxEssence(); - - public int getOrbLevel(); -} diff --git a/BM_src/WayofTime/alchemicalWizardry/api/rituals/IMasterRitualStone.java b/BM_src/WayofTime/alchemicalWizardry/api/rituals/IMasterRitualStone.java deleted file mode 100644 index a89c1dd2..00000000 --- a/BM_src/WayofTime/alchemicalWizardry/api/rituals/IMasterRitualStone.java +++ /dev/null @@ -1,30 +0,0 @@ -package WayofTime.alchemicalWizardry.api.rituals; - -import net.minecraft.world.World; - -public interface IMasterRitualStone -{ - public void performRitual(World world, int x, int y, int z, int ritualID); - - public String getOwner(); - - public void setCooldown(int newCooldown); - - public int getCooldown(); - - public void setVar1(int newVar1); - - public int getVar1(); - - public void setActive(boolean active); - - public int getDirection(); - - public World getWorld(); - - public int getXCoord(); - - public int getYCoord(); - - public int getZCoord(); -} diff --git a/BM_src/WayofTime/alchemicalWizardry/api/rituals/IRitualStone.java b/BM_src/WayofTime/alchemicalWizardry/api/rituals/IRitualStone.java deleted file mode 100644 index 078cfd40..00000000 --- a/BM_src/WayofTime/alchemicalWizardry/api/rituals/IRitualStone.java +++ /dev/null @@ -1,6 +0,0 @@ -package WayofTime.alchemicalWizardry.api.rituals; - -public interface IRitualStone -{ - -} diff --git a/BM_src/WayofTime/alchemicalWizardry/api/rituals/RitualComponent.java b/BM_src/WayofTime/alchemicalWizardry/api/rituals/RitualComponent.java deleted file mode 100644 index b7149858..00000000 --- a/BM_src/WayofTime/alchemicalWizardry/api/rituals/RitualComponent.java +++ /dev/null @@ -1,43 +0,0 @@ -package WayofTime.alchemicalWizardry.api.rituals; - -public class RitualComponent -{ - private int x; - private int y; - private int z; - private int stoneType; - public static final int BLANK = 0; - public static final int WATER = 1; - public static final int FIRE = 2; - public static final int EARTH = 3; - public static final int AIR = 4; - public static final int DUSK = 5; - - public RitualComponent(int x, int y, int z, int stoneType) - { - this.x = x; - this.y = y; - this.z = z; - this.stoneType = stoneType; - } - - public int getX() - { - return this.x; - } - - public int getY() - { - return this.y; - } - - public int getZ() - { - return this.z; - } - - public int getStoneType() - { - return this.stoneType; - } -} diff --git a/BM_src/WayofTime/alchemicalWizardry/api/rituals/RitualEffect.java b/BM_src/WayofTime/alchemicalWizardry/api/rituals/RitualEffect.java deleted file mode 100644 index 70f89f59..00000000 --- a/BM_src/WayofTime/alchemicalWizardry/api/rituals/RitualEffect.java +++ /dev/null @@ -1,17 +0,0 @@ -package WayofTime.alchemicalWizardry.api.rituals; - -import java.util.List; - -public abstract class RitualEffect -{ - public abstract void performEffect(IMasterRitualStone ritualStone); - - public abstract int getCostPerRefresh(); - - public int getInitialCooldown() - { - return 0; - } - - public abstract List getRitualComponentList(); -} diff --git a/BM_src/WayofTime/alchemicalWizardry/api/rituals/Rituals.java b/BM_src/WayofTime/alchemicalWizardry/api/rituals/Rituals.java deleted file mode 100644 index 1746caab..00000000 --- a/BM_src/WayofTime/alchemicalWizardry/api/rituals/Rituals.java +++ /dev/null @@ -1,252 +0,0 @@ -package WayofTime.alchemicalWizardry.api.rituals; - -import net.minecraft.block.Block; -import net.minecraft.world.World; -import net.minecraftforge.oredict.OreDictionary; - -import java.util.ArrayList; -import java.util.List; - -public class Rituals -{ - private int crystalLevel; - private int actCost; - private RitualEffect effect; - private String name; - - public static List ritualList = new ArrayList(); - - public Rituals(int crystalLevel, int actCost, RitualEffect effect, String name) - { - this.crystalLevel = crystalLevel; - this.actCost = actCost; - this.effect = effect; - this.name = name; - } - - public static int checkValidRitual(World world, int x, int y, int z) - { - for (int i = 1; i <= ritualList.size(); i++) - { - if (checkRitualIsValid(world, x, y, z, i)) - { - return i; - } - } - - return 0; - } - - public static boolean canCrystalActivate(int ritual, int crystalLevel) - { - if (ritual <= ritualList.size()) - { - return ritualList.get(ritual - 1).crystalLevel <= crystalLevel; - } else - { - return false; - } - } - - public static boolean checkRitualIsValid(World world, int x, int y, int z, int ritualID) - { - int direction = Rituals.getDirectionOfRitual(world, x, y, z, ritualID); - - if (direction != -1) - { - return true; - } - - return false; - } - - /** - * 1 - NORTH - * 2 - EAST - * 3 - SOUTH - * 4 - WEST - */ - public static boolean checkDirectionOfRitualValid(World world, int x, int y, int z, int ritualID, int direction) - { - List ritual = Rituals.getRitualList(ritualID); - - if (ritual == null) - { - return false; - } - - Block test = null; - - switch (direction) - { - case 1: - for (RitualComponent rc : ritual) - { - test = Block.blocksList[world.getBlockId(x + rc.getX(), y + rc.getY(), z + rc.getZ())]; - - if (!(test instanceof IRitualStone)) - { - return false; - } - - if (world.getBlockMetadata(x + rc.getX(), y + rc.getY(), z + rc.getZ()) != rc.getStoneType()) - { - return false; - } - } - - return true; - - case 2: - for (RitualComponent rc : ritual) - { - test = Block.blocksList[world.getBlockId(x - rc.getZ(), y + rc.getY(), z + rc.getX())]; - - if (!(test instanceof IRitualStone)) - { - return false; - } - - if (world.getBlockMetadata(x - rc.getZ(), y + rc.getY(), z + rc.getX()) != rc.getStoneType()) - { - return false; - } - } - - return true; - - case 3: - for (RitualComponent rc : ritual) - { - test = Block.blocksList[world.getBlockId(x - rc.getX(), y + rc.getY(), z - rc.getZ())]; - - if (!(test instanceof IRitualStone)) - { - return false; - } - - if (world.getBlockMetadata(x - rc.getX(), y + rc.getY(), z - rc.getZ()) != rc.getStoneType()) - { - return false; - } - } - - return true; - - case 4: - for (RitualComponent rc : ritual) - { - test = Block.blocksList[world.getBlockId(x + rc.getZ(), y + rc.getY(), z - rc.getX())]; - - if (!(test instanceof IRitualStone)) - { - return false; - } - - if (world.getBlockMetadata(x + rc.getZ(), y + rc.getY(), z - rc.getX()) != rc.getStoneType()) - { - return false; - } - } - - return true; - } - - return false; - } - - public static int getDirectionOfRitual(World world, int x, int y, int z, int ritualID) - { - for (int i = 1; i <= 4; i++) - { - if (Rituals.checkDirectionOfRitualValid(world, x, y, z, ritualID, i)) - { - return i; - } - } - - return -1; - } - - public static int getCostForActivation(int ritualID) - { - if (ritualID <= ritualList.size()) - { - return ritualList.get(ritualID - 1).actCost; - } else - { - return 0; - } - } - - public static int getInitialCooldown(int ritualID) - { - if (ritualID <= ritualList.size()) - { - RitualEffect ef = ritualList.get(ritualID - 1).effect; - - if (ef != null) - { - OreDictionary d; - return ef.getInitialCooldown(); - } - } - - return 0; - } - - public static List getRitualList(int ritualID) - { - if (ritualID <= ritualList.size()) - { - return ritualList.get(ritualID - 1).obtainComponents(); - } else - { - return null; - } - } - - private List obtainComponents() - { - return this.effect.getRitualComponentList(); - } - - private int getCrystalLevel() - { - return this.crystalLevel; - } - - public static void performEffect(IMasterRitualStone ritualStone, int ritualID) - { - if (ritualID <= ritualList.size()) - { - RitualEffect ef = ritualList.get(ritualID - 1).effect; - - if (ef != null) - { - ef.performEffect(ritualStone); - } - } - } - - public static int getNumberOfRituals() - { - return ritualList.size(); - } - - public String getRitualName() - { - return this.name; - } - - public static String getNameOfRitual(int id) - { - if (ritualList.get(id) != null) - { - return ritualList.get(id).getRitualName(); - } else - { - return ""; - } - } -} diff --git a/BM_src/WayofTime/alchemicalWizardry/api/soulNetwork/LifeEssenceNetwork.java b/BM_src/WayofTime/alchemicalWizardry/api/soulNetwork/LifeEssenceNetwork.java deleted file mode 100644 index 61d24eee..00000000 --- a/BM_src/WayofTime/alchemicalWizardry/api/soulNetwork/LifeEssenceNetwork.java +++ /dev/null @@ -1,26 +0,0 @@ -package WayofTime.alchemicalWizardry.api.soulNetwork; - -import net.minecraft.nbt.NBTTagCompound; - -public class LifeEssenceNetwork extends net.minecraft.world.WorldSavedData -{ - public int currentEssence; - - public LifeEssenceNetwork(String par1Str) - { - super(par1Str); - currentEssence = 0; - } - - @Override - public void readFromNBT(NBTTagCompound nbttagcompound) - { - currentEssence = nbttagcompound.getInteger("currentEssence"); - } - - @Override - public void writeToNBT(NBTTagCompound nbttagcompound) - { - nbttagcompound.setInteger("currentEssence", currentEssence); - } -} diff --git a/BM_src/WayofTime/alchemicalWizardry/api/soulNetwork/SoulNetworkHandler.java b/BM_src/WayofTime/alchemicalWizardry/api/soulNetwork/SoulNetworkHandler.java deleted file mode 100644 index 43816ef8..00000000 --- a/BM_src/WayofTime/alchemicalWizardry/api/soulNetwork/SoulNetworkHandler.java +++ /dev/null @@ -1,223 +0,0 @@ -package WayofTime.alchemicalWizardry.api.soulNetwork; - -import net.minecraft.entity.player.EntityPlayer; -import net.minecraft.item.ItemStack; -import net.minecraft.nbt.NBTTagCompound; -import net.minecraft.server.MinecraftServer; -import net.minecraft.util.DamageSource; -import net.minecraft.world.World; - -public class SoulNetworkHandler -{ - public static int syphonFromNetwork(ItemStack ist, int damageToBeDone) - { - if (ist.getTagCompound() != null && !(ist.getTagCompound().getString("ownerName").equals(""))) - { - String ownerName = ist.getTagCompound().getString("ownerName"); - - if (MinecraftServer.getServer() == null) - { - return 0; - } - - World world = MinecraftServer.getServer().worldServers[0]; - LifeEssenceNetwork data = (LifeEssenceNetwork) world.loadItemData(LifeEssenceNetwork.class, ownerName); - - if (data == null) - { - data = new LifeEssenceNetwork(ownerName); - world.setItemData(ownerName, data); - } - - if (data.currentEssence >= damageToBeDone) - { - data.currentEssence -= damageToBeDone; - data.markDirty(); - return damageToBeDone; - } - } - return 0; - } - - /** - * Master method used to syphon from the player's network, and will damage them accordingly if they do not have enough LP. - * Does not drain on the client side. - * - * @param ist Owned itemStack - * @param player Player using the item - * @param damageToBeDone - * @return True if server-sided, false if client-sided - */ - public static boolean syphonAndDamageFromNetwork(ItemStack ist, EntityPlayer player, int damageToBeDone) - { - if(player.worldObj.isRemote) - { - return false; - } - - int amount = SoulNetworkHandler.syphonFromNetwork(ist, damageToBeDone); - - hurtPlayer(player, damageToBeDone-amount); - - return true; - } - - public static boolean canSyphonFromOnlyNetwork(ItemStack ist, int damageToBeDone) - { - if (ist.getTagCompound() != null && !(ist.getTagCompound().getString("ownerName").equals(""))) - { - String ownerName = ist.getTagCompound().getString("ownerName"); - - if (MinecraftServer.getServer() == null) - { - return false; - } - - World world = MinecraftServer.getServer().worldServers[0]; - LifeEssenceNetwork data = (LifeEssenceNetwork) world.loadItemData(LifeEssenceNetwork.class, ownerName); - - if (data == null) - { - data = new LifeEssenceNetwork(ownerName); - world.setItemData(ownerName, data); - } - - return data.currentEssence >= damageToBeDone; - } - - return false; - } - - public static int getCurrentEssence(String ownerName) - { - if (MinecraftServer.getServer() == null) - { - return 0; - } - - World world = MinecraftServer.getServer().worldServers[0]; - LifeEssenceNetwork data = (LifeEssenceNetwork) world.loadItemData(LifeEssenceNetwork.class, ownerName); - - if (data == null) - { - data = new LifeEssenceNetwork(ownerName); - world.setItemData(ownerName, data); - } - - return data.currentEssence; - } - - public static void setCurrentEssence(String ownerName, int essence) - { - if (MinecraftServer.getServer() == null) - { - return; - } - - World world = MinecraftServer.getServer().worldServers[0]; - LifeEssenceNetwork data = (LifeEssenceNetwork) world.loadItemData(LifeEssenceNetwork.class, ownerName); - - if (data == null) - { - data = new LifeEssenceNetwork(ownerName); - world.setItemData(ownerName, data); - } - - data.currentEssence = essence; - data.markDirty(); - } - - /** - * A method to add to an owner's network up to a maximum value. - * - * @param ownerName - * @param addedEssence - * @param maximum - * @return amount added to the network - */ - public static int addCurrentEssenceToMaximum(String ownerName, int addedEssence, int maximum) - { - if (MinecraftServer.getServer() == null) - { - return 0; - } - - World world = MinecraftServer.getServer().worldServers[0]; - LifeEssenceNetwork data = (LifeEssenceNetwork) world.loadItemData(LifeEssenceNetwork.class, ownerName); - - if (data == null) - { - data = new LifeEssenceNetwork(ownerName); - world.setItemData(ownerName, data); - } - - int currEss = data.currentEssence; - - if(currEss>=maximum) - { - return 0; - } - - int newEss = Math.min(maximum, currEss+addedEssence); - data.currentEssence = newEss; - - return newEss-currEss; - } - - public static void hurtPlayer(EntityPlayer user, int energySyphoned) - { - if (energySyphoned < 100 && energySyphoned > 0) - { - if (!user.capabilities.isCreativeMode) - { - user.setHealth((user.getHealth() - 1)); - - if (user.getHealth() <= 0.0005f) - { - user.onDeath(DamageSource.generic); - } - } - } else if (energySyphoned >= 100) - { - if (!user.capabilities.isCreativeMode) - { - for (int i = 0; i < ((energySyphoned + 99) / 100); i++) - { - user.setHealth((user.getHealth() - 1)); - - if (user.getHealth() <= 0.0005f) - { - user.onDeath(DamageSource.generic); - break; - } - } - } - } - } - - public static void checkAndSetItemOwner(ItemStack item, EntityPlayer player) - { - if (item.stackTagCompound == null) - { - item.setTagCompound(new NBTTagCompound()); - } - - if (item.stackTagCompound.getString("ownerName").equals("")) - { - item.stackTagCompound.setString("ownerName", player.getEntityName()); - } - } - - public static void checkAndSetItemOwner(ItemStack item, String ownerName) - { - if (item.stackTagCompound == null) - { - item.setTagCompound(new NBTTagCompound()); - } - - if (item.stackTagCompound.getString("ownerName").equals("")) - { - item.stackTagCompound.setString("ownerName", ownerName); - } - } -} diff --git a/BM_src/WayofTime/alchemicalWizardry/api/summoningRegistry/SummoningHelper.java b/BM_src/WayofTime/alchemicalWizardry/api/summoningRegistry/SummoningHelper.java deleted file mode 100644 index 015249c7..00000000 --- a/BM_src/WayofTime/alchemicalWizardry/api/summoningRegistry/SummoningHelper.java +++ /dev/null @@ -1,22 +0,0 @@ -package WayofTime.alchemicalWizardry.api.summoningRegistry; - -import net.minecraft.entity.EntityLivingBase; -import net.minecraft.entity.passive.EntityPig; -import net.minecraft.world.World; - -public abstract class SummoningHelper -{ - protected int id; - - public SummoningHelper(int id) - { - this.id = id; - } - - public abstract EntityLivingBase getEntity(World worldObj); - - public int getSummoningHelperID() - { - return id; - } -} diff --git a/BM_src/WayofTime/alchemicalWizardry/api/summoningRegistry/SummoningRegistry.java b/BM_src/WayofTime/alchemicalWizardry/api/summoningRegistry/SummoningRegistry.java deleted file mode 100644 index 9fda5822..00000000 --- a/BM_src/WayofTime/alchemicalWizardry/api/summoningRegistry/SummoningRegistry.java +++ /dev/null @@ -1,70 +0,0 @@ -package WayofTime.alchemicalWizardry.api.summoningRegistry; - -import net.minecraft.entity.EntityLivingBase; -import net.minecraft.item.ItemStack; -import net.minecraft.world.World; - -import java.util.ArrayList; -import java.util.List; - -public class SummoningRegistry -{ - public static List summoningList = new ArrayList(); - - public static void registerSummon(SummoningHelper s, ItemStack[] ring1, ItemStack[] ring2, ItemStack[] ring3, int amountUsed, int bloodOrbLevel) - { - summoningList.add(new SummoningRegistryComponent(s, ring1, ring2, ring3, amountUsed, bloodOrbLevel)); - } - - public static boolean isRecipeValid(int bloodOrbLevel, ItemStack[] test1, ItemStack[] test2, ItemStack[] test3) - { - for (SummoningRegistryComponent src : summoningList) - { - if (src.getBloodOrbLevel() <= bloodOrbLevel && src.compareRing(1, test1) && src.compareRing(2, test2) && src.compareRing(3, test3)) - { - return true; - } - } - - return false; - } - - public static SummoningRegistryComponent getRegistryComponent(int bloodOrbLevel, ItemStack[] test1, ItemStack[] test2, ItemStack[] test3) - { - for (SummoningRegistryComponent src : summoningList) - { - if (src.getBloodOrbLevel() <= bloodOrbLevel && src.compareRing(1, test1) && src.compareRing(2, test2) && src.compareRing(3, test3)) - { - return src; - } - } - - return null; - } - - public static EntityLivingBase getEntity(World worldObj, int bloodOrbLevel, ItemStack[] test1, ItemStack[] test2, ItemStack[] test3) - { - for (SummoningRegistryComponent src : summoningList) - { - if (src.getBloodOrbLevel() <= bloodOrbLevel && src.compareRing(1, test1) && src.compareRing(2, test2) && src.compareRing(3, test3)) - { - return src.getEntity(worldObj); - } - } - - return null; - } - - public static EntityLivingBase getEntityWithID(World worldObj, int id) - { - for (SummoningRegistryComponent src : summoningList) - { - if (src.getSummoningHelperID() == id) - { - return src.getEntity(worldObj); - } - } - - return null; - } -} diff --git a/BM_src/WayofTime/alchemicalWizardry/api/summoningRegistry/SummoningRegistryComponent.java b/BM_src/WayofTime/alchemicalWizardry/api/summoningRegistry/SummoningRegistryComponent.java deleted file mode 100644 index f269b0b2..00000000 --- a/BM_src/WayofTime/alchemicalWizardry/api/summoningRegistry/SummoningRegistryComponent.java +++ /dev/null @@ -1,231 +0,0 @@ -package WayofTime.alchemicalWizardry.api.summoningRegistry; - -import net.minecraft.entity.EntityLivingBase; -import net.minecraft.item.ItemBlock; -import net.minecraft.item.ItemStack; -import net.minecraft.world.World; -import net.minecraftforge.oredict.OreDictionary; - -public class SummoningRegistryComponent -{ - public ItemStack[] ring1 = new ItemStack[6]; - public ItemStack[] ring2 = new ItemStack[6]; - public ItemStack[] ring3 = new ItemStack[6]; - public SummoningHelper summoningHelper; - public int summoningCost; - public int bloodOrbLevel; - - public SummoningRegistryComponent(SummoningHelper s, ItemStack[] newRing1, ItemStack[] newRing2, ItemStack[] newRing3, int amount, int bloodOrbLevel) - { - this.summoningHelper = s; - this.ring1 = newRing1; - this.ring2 = newRing2; - this.ring3 = newRing3; - this.summoningCost = amount; - this.bloodOrbLevel = bloodOrbLevel; - - if (this.ring1.length != 6) - { - ItemStack[] newRecipe = new ItemStack[6]; - - for (int i = 0; i < 6; i++) - { - if (i + 1 > this.ring1.length) - { - newRecipe[i] = null; - } else - { - newRecipe[i] = this.ring1[i]; - } - } - - this.ring1 = newRecipe; - } - - if (this.ring2.length != 6) - { - ItemStack[] newRecipe = new ItemStack[6]; - - for (int i = 0; i < 6; i++) - { - if (i + 1 > this.ring2.length) - { - newRecipe[i] = null; - } else - { - newRecipe[i] = this.ring2[i]; - } - } - - this.ring2 = newRecipe; - } - - if (this.ring3.length != 6) - { - ItemStack[] newRecipe = new ItemStack[6]; - - for (int i = 0; i < 6; i++) - { - if (i + 1 > this.ring3.length) - { - newRecipe[i] = null; - } else - { - newRecipe[i] = this.ring3[i]; - } - } - - this.ring3 = newRecipe; - } - } - - public boolean compareRing(int ring, ItemStack[] checkedRingRecipe) - { - ItemStack[] recipe; - - if (checkedRingRecipe.length < 6) - { - return false; - } - - switch (ring) - { - case 1: - recipe = ring1; - break; - - case 2: - recipe = ring2; - break; - - case 3: - recipe = ring3; - break; - - default: - recipe = ring1; - } - - if (recipe.length != 6) - { - ItemStack[] newRecipe = new ItemStack[6]; - - for (int i = 0; i < 6; i++) - { - if (i + 1 > recipe.length) - { - newRecipe[i] = null; - } else - { - newRecipe[i] = recipe[i]; - } - } - - recipe = newRecipe; - } - - boolean[] checkList = new boolean[6]; - - for (int i = 0; i < 6; i++) - { - checkList[i] = false; - } - - for (int i = 0; i < 6; i++) - { - ItemStack recipeItemStack = recipe[i]; - - if (recipeItemStack == null) - { - continue; - } - - boolean test = false; - - for (int j = 0; j < 6; j++) - { - if (checkList[j]) - { - continue; - } - - ItemStack checkedItemStack = checkedRingRecipe[j]; - - if (checkedItemStack == null) - { - continue; - } - - boolean quickTest = false; - - if (recipeItemStack.getItem() instanceof ItemBlock) - { - if (checkedItemStack.getItem() instanceof ItemBlock) - { - quickTest = true; - } - } else if (!(checkedItemStack.getItem() instanceof ItemBlock)) - { - quickTest = true; - } - - if (!quickTest) - { - continue; - } - - if ((checkedItemStack.getItemDamage() == recipeItemStack.getItemDamage() || OreDictionary.WILDCARD_VALUE == recipeItemStack.getItemDamage()) && checkedItemStack.itemID == recipeItemStack.itemID) - { - test = true; - checkList[j] = true; - break; - } - } - - if (!test) - { - return false; - } - } - - return true; - } - - public int getSummoningCost() - { - return summoningCost; - } - - public EntityLivingBase getEntity(World world) - { - return this.summoningHelper.getEntity(world); - } - - public int getBloodOrbLevel() - { - return this.bloodOrbLevel; - } - - public ItemStack[] getRingRecipeForRing(int ring) - { - switch (ring) - { - case 1: - return ring1; - - case 2: - return ring2; - - case 3: - return ring3; - - default: - return null; - } - } - - public int getSummoningHelperID() - { - return this.summoningHelper.getSummoningHelperID(); - } -} diff --git a/BM_src/WayofTime/alchemicalWizardry/client/BMClientRegistry.java b/BM_src/WayofTime/alchemicalWizardry/client/BMClientRegistry.java deleted file mode 100644 index 595711d6..00000000 --- a/BM_src/WayofTime/alchemicalWizardry/client/BMClientRegistry.java +++ /dev/null @@ -1,189 +0,0 @@ -package WayofTime.alchemicalWizardry.client; - -import java.util.ArrayList; -import java.util.HashMap; -import java.util.Map; - -import net.minecraft.item.Item; -import net.minecraft.item.ItemStack; - - -public class BMClientRegistry -{ - //public static ArrayList toolButtons = new ArrayList(20); - //public static ArrayList tierTwoButtons = new ArrayList(); - public static Map manualIcons = new HashMap(); - public static Map recipeIcons = new HashMap(); - public static ItemStack defaultStack = new ItemStack(Item.ingotIron); - - -// public static void addMaterialRenderMapping (int materialID, String domain, String renderName, boolean useDefaultFolder) -// { -// for (ToolCore tool : TConstructRegistry.getToolMapping()) -// { -// String[] toolIcons = new String[tool.getPartAmount() + 1]; -// for (int i = 0; i < tool.getPartAmount() + 1; i++) -// { -// String icon = domain + ":"; -// if (useDefaultFolder) -// icon += tool.getDefaultFolder() + "/"; -// icon += renderName + tool.getIconSuffix(i); -// toolIcons[i] = icon; -// } -// tool.registerPartPaths(materialID, toolIcons); -// } -// } - - -// public static void addAlternateMaterialRenderMapping (ToolCore tool, int materialID, String domain, String renderName, boolean useDefaultFolder) -// { -// String[] toolIcons = new String[tool.getPartAmount() + 1]; -// for (int i = 0; i < tool.getPartAmount() + 1; i++) -// { -// String icon = domain + ":"; -// if (useDefaultFolder) -// icon += tool.getDefaultFolder() + "/"; -// icon += renderName + tool.getIconSuffix(i); -// toolIcons[i] = icon; -// } -// tool.registerAlternatePartPaths(materialID, toolIcons); -// } - - -// public static void addEffectRenderMapping (ToolCore tool, int materialID, String domain, String renderName, boolean useDefaultFolder) -// { -// String icon = domain + ":"; -// if (useDefaultFolder) -// icon += tool.getDefaultFolder() + "/"; -// icon += renderName + tool.getEffectSuffix(); -// tool.registerEffectPath(materialID, icon); -// } - - -// public static void addEffectRenderMapping (int materialID, String domain, String renderName, boolean useDefaultFolder) -// { -// for (ToolCore tool : TConstructRegistry.getToolMapping()) -// { -// String icon = domain + ":"; -// if (useDefaultFolder) -// icon += tool.getDefaultFolder() + "/"; -// icon += renderName + tool.getEffectSuffix(); -// tool.registerEffectPath(materialID, icon); -// } -// } - - -// public static void addSingleEffectRenderMapping (ToolCore tool, int materialID, String domain, String renderName, boolean useDefaultFolder) -// { -// String icon = domain + ":"; -// if (useDefaultFolder) -// icon += tool.getDefaultFolder() + "/"; -// icon += renderName + tool.getEffectSuffix(); -// tool.registerEffectPath(materialID, icon); -// } - - - public static void registerManualIcon (String name, ItemStack stack) - { - manualIcons.put(name, stack); - } - - - public static ItemStack getManualIcon (String textContent) - { - ItemStack stack = manualIcons.get(textContent); - if (stack != null) - return stack; - return defaultStack; - } - - - public static void registerManualSmallRecipe (String name, ItemStack output, ItemStack... stacks) - { - ItemStack[] recipe = new ItemStack[5]; - recipe[0] = output; - System.arraycopy(stacks, 0, recipe, 1, 4); - recipeIcons.put(name, recipe); - } - - - public static void registerManualLargeRecipe (String name, ItemStack output, ItemStack... stacks) - { - ItemStack[] recipe = new ItemStack[10]; - recipe[0] = output; - System.arraycopy(stacks, 0, recipe, 1, 9); - recipeIcons.put(name, recipe); - } - - - public static void registerManualFurnaceRecipe (String name, ItemStack output, ItemStack input) - { - ItemStack[] recipe = new ItemStack[2]; - recipe[0] = output; - recipe[1] = input; - recipeIcons.put(name, recipe); - } - - -// public static void registerManualModifier (String name, ItemStack output, ItemStack topinput) -// { -// registerManualModifier(name, output, topinput, null); -// } - - -// public static void registerManualModifier (String name, ItemStack output, ItemStack topinput, ItemStack bottominput) -// { -// ItemStack[] recipe = new ItemStack[3]; -// recipe[0] = ToolBuilder.instance.buildTool(output, topinput, bottominput, ""); -// recipe[1] = topinput; -// recipe[2] = bottominput; -// recipeIcons.put(name, recipe); -// } - - - public static void registerManualSmeltery (String name, ItemStack output, ItemStack liquid, ItemStack cast) - { - ItemStack[] recipe = new ItemStack[3]; - recipe[0] = output; - recipe[1] = liquid; - recipe[2] = cast; - recipeIcons.put(name, recipe); - } - - - public static ItemStack[] getRecipeIcons (String recipeName) - { - return recipeIcons.get(recipeName); - } - - - //Gui -// public static void addToolButton (ToolGuiElement element) -// { -// toolButtons.add(element); -// } -// -// -// public static void addToolButton (int slotType, int xButton, int yButton, int[] xIcons, int[] yIcons, String title, String body, String domain, String texture) -// { -// toolButtons.add(new ToolGuiElement(slotType, xButton, yButton, xIcons, yIcons, title, body, domain, texture)); -// } -// -// -// public static void addTierTwoButton (ToolGuiElement element) -// { -// tierTwoButtons.add(element); -// } -// -// -// public static void addTierTwoButton (int slotType, int xButton, int yButton, int[] xIcons, int[] yIcons, String title, String body, String domain, String texture) -// { -// tierTwoButtons.add(new ToolGuiElement(slotType, xButton, yButton, xIcons, yIcons, title, body, domain, texture)); -// } -// -// -// public static ArrayList getToolButtons () -// { -// return toolButtons; -// } -} diff --git a/BM_src/WayofTime/alchemicalWizardry/client/ClientProxy.java b/BM_src/WayofTime/alchemicalWizardry/client/ClientProxy.java deleted file mode 100644 index e4002c32..00000000 --- a/BM_src/WayofTime/alchemicalWizardry/client/ClientProxy.java +++ /dev/null @@ -1,503 +0,0 @@ -package WayofTime.alchemicalWizardry.client; - -import java.io.InputStream; -import java.util.HashMap; -import java.util.Map; - -import javax.xml.parsers.DocumentBuilder; -import javax.xml.parsers.DocumentBuilderFactory; - -import net.minecraft.block.Block; -import net.minecraft.client.Minecraft; -import net.minecraft.item.Item; -import net.minecraft.item.ItemStack; -import net.minecraft.util.ResourceLocation; -import net.minecraft.world.World; -import net.minecraftforge.client.MinecraftForgeClient; - -import org.w3c.dom.Document; - -import WayofTime.alchemicalWizardry.AlchemicalWizardry; -import WayofTime.alchemicalWizardry.ModBlocks; -import WayofTime.alchemicalWizardry.ModItems; -import WayofTime.alchemicalWizardry.client.book.pages.BlankPage; -import WayofTime.alchemicalWizardry.client.book.pages.BookPage; -import WayofTime.alchemicalWizardry.client.book.pages.ContentsTablePage; -import WayofTime.alchemicalWizardry.client.book.pages.CraftingPage; -import WayofTime.alchemicalWizardry.client.book.pages.FurnacePage; -import WayofTime.alchemicalWizardry.client.book.pages.PicturePage; -import WayofTime.alchemicalWizardry.client.book.pages.SectionPage; -import WayofTime.alchemicalWizardry.client.book.pages.SidebarPage; -import WayofTime.alchemicalWizardry.client.book.pages.TextPage; -import WayofTime.alchemicalWizardry.client.book.pages.TitlePage; -import WayofTime.alchemicalWizardry.common.CommonProxy; -import WayofTime.alchemicalWizardry.common.EntityAirElemental; -import WayofTime.alchemicalWizardry.common.entity.mob.EntityBileDemon; -import WayofTime.alchemicalWizardry.common.entity.mob.EntityBoulderFist; -import WayofTime.alchemicalWizardry.common.entity.mob.EntityEarthElemental; -import WayofTime.alchemicalWizardry.common.entity.mob.EntityFallenAngel; -import WayofTime.alchemicalWizardry.common.entity.mob.EntityFireElemental; -import WayofTime.alchemicalWizardry.common.entity.mob.EntityHolyElemental; -import WayofTime.alchemicalWizardry.common.entity.mob.EntityIceDemon; -import WayofTime.alchemicalWizardry.common.entity.mob.EntityLowerGuardian; -import WayofTime.alchemicalWizardry.common.entity.mob.EntityShade; -import WayofTime.alchemicalWizardry.common.entity.mob.EntityShadeElemental; -import WayofTime.alchemicalWizardry.common.entity.mob.EntitySmallEarthGolem; -import WayofTime.alchemicalWizardry.common.entity.mob.EntityTestDemon; -import WayofTime.alchemicalWizardry.common.entity.mob.EntityWaterElemental; -import WayofTime.alchemicalWizardry.common.entity.mob.EntityWingedFireDemon; -import WayofTime.alchemicalWizardry.common.entity.projectile.EnergyBlastProjectile; -import WayofTime.alchemicalWizardry.common.entity.projectile.EntityEnergyBazookaMainProjectile; -import WayofTime.alchemicalWizardry.common.entity.projectile.EntityMeteor; -import WayofTime.alchemicalWizardry.common.renderer.block.RenderConduit; -import WayofTime.alchemicalWizardry.common.renderer.block.RenderPedestal; -import WayofTime.alchemicalWizardry.common.renderer.block.RenderPlinth; -import WayofTime.alchemicalWizardry.common.renderer.block.RenderSpellEffectBlock; -import WayofTime.alchemicalWizardry.common.renderer.block.RenderSpellEnhancementBlock; -import WayofTime.alchemicalWizardry.common.renderer.block.RenderSpellModifierBlock; -import WayofTime.alchemicalWizardry.common.renderer.block.RenderSpellParadigmBlock; -import WayofTime.alchemicalWizardry.common.renderer.block.RenderWritingTable; -import WayofTime.alchemicalWizardry.common.renderer.block.TEAltarRenderer; -import WayofTime.alchemicalWizardry.common.renderer.block.itemRender.TEAltarItemRenderer; -import WayofTime.alchemicalWizardry.common.renderer.block.itemRender.TEConduitItemRenderer; -import WayofTime.alchemicalWizardry.common.renderer.block.itemRender.TESpellEffectBlockItemRenderer; -import WayofTime.alchemicalWizardry.common.renderer.block.itemRender.TESpellEnhancementBlockItemRenderer; -import WayofTime.alchemicalWizardry.common.renderer.block.itemRender.TESpellModifierBlockItemRenderer; -import WayofTime.alchemicalWizardry.common.renderer.block.itemRender.TESpellParadigmBlockItemRenderer; -import WayofTime.alchemicalWizardry.common.renderer.mob.RenderBileDemon; -import WayofTime.alchemicalWizardry.common.renderer.mob.RenderBoulderFist; -import WayofTime.alchemicalWizardry.common.renderer.mob.RenderElemental; -import WayofTime.alchemicalWizardry.common.renderer.mob.RenderFallenAngel; -import WayofTime.alchemicalWizardry.common.renderer.mob.RenderIceDemon; -import WayofTime.alchemicalWizardry.common.renderer.mob.RenderLowerGuardian; -import WayofTime.alchemicalWizardry.common.renderer.mob.RenderShade; -import WayofTime.alchemicalWizardry.common.renderer.mob.RenderSmallEarthGolem; -import WayofTime.alchemicalWizardry.common.renderer.mob.RenderWingedFireDemon; -import WayofTime.alchemicalWizardry.common.renderer.model.ModelBileDemon; -import WayofTime.alchemicalWizardry.common.renderer.model.ModelBoulderFist; -import WayofTime.alchemicalWizardry.common.renderer.model.ModelElemental; -import WayofTime.alchemicalWizardry.common.renderer.model.ModelFallenAngel; -import WayofTime.alchemicalWizardry.common.renderer.model.ModelIceDemon; -import WayofTime.alchemicalWizardry.common.renderer.model.ModelLowerGuardian; -import WayofTime.alchemicalWizardry.common.renderer.model.ModelShade; -import WayofTime.alchemicalWizardry.common.renderer.model.ModelSmallEarthGolem; -import WayofTime.alchemicalWizardry.common.renderer.model.ModelWingedFireDemon; -import WayofTime.alchemicalWizardry.common.renderer.projectile.RenderEnergyBazookaMainProjectile; -import WayofTime.alchemicalWizardry.common.renderer.projectile.RenderEnergyBlastProjectile; -import WayofTime.alchemicalWizardry.common.renderer.projectile.RenderMeteor; -import WayofTime.alchemicalWizardry.common.spell.complex.EntitySpellProjectile; -import WayofTime.alchemicalWizardry.common.tileEntity.TEAltar; -import WayofTime.alchemicalWizardry.common.tileEntity.TEConduit; -import WayofTime.alchemicalWizardry.common.tileEntity.TEPedestal; -import WayofTime.alchemicalWizardry.common.tileEntity.TEPlinth; -import WayofTime.alchemicalWizardry.common.tileEntity.TESpellEffectBlock; -import WayofTime.alchemicalWizardry.common.tileEntity.TESpellEnhancementBlock; -import WayofTime.alchemicalWizardry.common.tileEntity.TESpellModifierBlock; -import WayofTime.alchemicalWizardry.common.tileEntity.TESpellParadigmBlock; -import WayofTime.alchemicalWizardry.common.tileEntity.TEWritingTable; -import cpw.mods.fml.client.FMLClientHandler; -import cpw.mods.fml.client.registry.ClientRegistry; -import cpw.mods.fml.client.registry.RenderingRegistry; - -public class ClientProxy extends CommonProxy -{ - public static SmallFontRenderer smallFontRenderer; - public static Minecraft mc; - public static int renderPass; - public static int altarRenderType; - - @Override - public void registerRenderers() - { - Minecraft mc = Minecraft.getMinecraft(); - smallFontRenderer = new SmallFontRenderer(mc.gameSettings, new ResourceLocation("textures/font/ascii.png"), mc.renderEngine, false); - readManuals(); - //altarRenderType = RenderingRegistry.getNextAvailableRenderId(); - RenderingRegistry.registerEntityRenderingHandler(EnergyBlastProjectile.class, new RenderEnergyBlastProjectile()); - RenderingRegistry.registerEntityRenderingHandler(EntityEnergyBazookaMainProjectile.class, new RenderEnergyBazookaMainProjectile()); - RenderingRegistry.registerEntityRenderingHandler(EntitySpellProjectile.class, new RenderEnergyBlastProjectile()); - RenderingRegistry.registerEntityRenderingHandler(EntityMeteor.class, new RenderMeteor()); - //EntityRegistry.registerGlobalEntityID(EntityFallenAngel.class, "AlchemicalWizardry.FallenAngel", EntityRegistry.findGlobalUniqueEntityId(),0x40FF00, 0x0B610B); - RenderingRegistry.registerEntityRenderingHandler(EntityFallenAngel.class, new RenderFallenAngel(new ModelFallenAngel(), 0.5F)); - //EntityRegistry.registerGlobalEntityID(EntityLowerGuardian.class, "AlchemicalWizardry.LowerGuardian", EntityRegistry.findGlobalUniqueEntityId(),0x40FF00, 0x0B610B); - RenderingRegistry.registerEntityRenderingHandler(EntityLowerGuardian.class, new RenderLowerGuardian(new ModelLowerGuardian(), 0.5F)); - //EntityRegistry.registerGlobalEntityID(EntityBileDemon.class, "AlchemicalWizardry.BileDemon", EntityRegistry.findGlobalUniqueEntityId(),0x40FF00, 0x0B610B); - RenderingRegistry.registerEntityRenderingHandler(EntityBileDemon.class, new RenderBileDemon(new ModelBileDemon(), 1.5F)); - //EntityRegistry.registerGlobalEntityID(EntityWingedFireDemon.class, "AlchemicalWizardry.WingedFireDemon", EntityRegistry.findGlobalUniqueEntityId(),0x40FF00, 0x0B610B); - RenderingRegistry.registerEntityRenderingHandler(EntityWingedFireDemon.class, new RenderWingedFireDemon(new ModelWingedFireDemon(), 1.0F)); - //EntityRegistry.registerGlobalEntityID(EntitySmallEarthGolem.class, "AlchemicalWizardry.SmallEarthGolem", EntityRegistry.findGlobalUniqueEntityId(),0x40FF00, 0x0B610B); - RenderingRegistry.registerEntityRenderingHandler(EntitySmallEarthGolem.class, new RenderSmallEarthGolem(new ModelSmallEarthGolem(), 0.5F)); - //EntityRegistry.registerGlobalEntityID(EntityIceDemon.class, "AlchemicalWizardry.IceDemon", EntityRegistry.findGlobalUniqueEntityId(),0x40FF00, 0x0B610B); - RenderingRegistry.registerEntityRenderingHandler(EntityIceDemon.class, new RenderIceDemon(new ModelIceDemon(), 0.5F)); - // EntityRegistry.registerGlobalEntityID(EntityBoulderFist.class, "AlchemicalWizardry.BoulderFist", EntityRegistry.findGlobalUniqueEntityId(),0x40FF00, 0x0B610B); - RenderingRegistry.registerEntityRenderingHandler(EntityBoulderFist.class, new RenderBoulderFist(new ModelBoulderFist(), 0.5F)); - //EntityRegistry.registerGlobalEntityID(EntityShade.class, "AlchemicalWizardry.Shade", EntityRegistry.findGlobalUniqueEntityId(),0x40FF00, 0x0B610B); - RenderingRegistry.registerEntityRenderingHandler(EntityShade.class, new RenderShade(new ModelShade(), 0.5F)); - //EntityRegistry.registerGlobalEntityID(EntityAirElemental.class, "AlchemicalWizardry.AirElemental", EntityRegistry.findGlobalUniqueEntityId(),0x40FF00, 0x0B610B); - RenderingRegistry.registerEntityRenderingHandler(EntityAirElemental.class, new RenderElemental(new ModelElemental(), 0.5F)); - //EntityRegistry.registerGlobalEntityID(EntityWaterElemental.class, "AlchemicalWizardry.WaterElemental", EntityRegistry.findGlobalUniqueEntityId(),0x40FF00, 0x0B610B); - RenderingRegistry.registerEntityRenderingHandler(EntityWaterElemental.class, new RenderElemental(new ModelElemental(), 0.5F)); - //EntityRegistry.registerGlobalEntityID(EntityEarthElemental.class, "AlchemicalWizardry.EarthElemental", EntityRegistry.findGlobalUniqueEntityId(),0x40FF00, 0x0B610B); - RenderingRegistry.registerEntityRenderingHandler(EntityEarthElemental.class, new RenderElemental(new ModelElemental(), 0.5F)); - //EntityRegistry.registerGlobalEntityID(EntityFireElemental.class, "AlchemicalWizardry.FireElemental", EntityRegistry.findGlobalUniqueEntityId(),0x40FF00, 0x0B610B); - RenderingRegistry.registerEntityRenderingHandler(EntityFireElemental.class, new RenderElemental(new ModelElemental(), 0.5F)); - //EntityRegistry.registerGlobalEntityID(EntityShadeElemental.class, "AlchemicalWizardry.ShadeElemental", EntityRegistry.findGlobalUniqueEntityId(),0x40FF00, 0x0B610B); - RenderingRegistry.registerEntityRenderingHandler(EntityShadeElemental.class, new RenderElemental(new ModelElemental(), 0.5F)); - //EntityRegistry.registerGlobalEntityID(EntityHolyElemental.class, "AlchemicalWizardry.HolyElemental", EntityRegistry.findGlobalUniqueEntityId(),0x40FF00, 0x0B610B); - RenderingRegistry.registerEntityRenderingHandler(EntityHolyElemental.class, new RenderElemental(new ModelElemental(), 0.5F)); - RenderingRegistry.registerEntityRenderingHandler(EntityTestDemon.class, new RenderFallenAngel(new ModelFallenAngel(), 0.5F)); - - ClientRegistry.bindTileEntitySpecialRenderer(TEPedestal.class, new RenderPedestal()); - ClientRegistry.bindTileEntitySpecialRenderer(TEPlinth.class, new RenderPlinth()); - ClientRegistry.bindTileEntitySpecialRenderer(TEWritingTable.class, new RenderWritingTable()); - ClientRegistry.bindTileEntitySpecialRenderer(TEConduit.class, new RenderConduit()); - ClientRegistry.bindTileEntitySpecialRenderer(TESpellEffectBlock.class, new RenderSpellEffectBlock()); - ClientRegistry.bindTileEntitySpecialRenderer(TESpellEnhancementBlock.class, new RenderSpellEnhancementBlock()); - ClientRegistry.bindTileEntitySpecialRenderer(TESpellParadigmBlock.class, new RenderSpellParadigmBlock()); - ClientRegistry.bindTileEntitySpecialRenderer(TESpellModifierBlock.class, new RenderSpellModifierBlock()); - //Item Renderer stuff - MinecraftForgeClient.registerItemRenderer(ModBlocks.blockConduit.blockID, new TEConduitItemRenderer()); - MinecraftForgeClient.registerItemRenderer(ModBlocks.blockSpellEffect.blockID, new TESpellEffectBlockItemRenderer()); - MinecraftForgeClient.registerItemRenderer(ModBlocks.blockSpellEnhancement.blockID, new TESpellEnhancementBlockItemRenderer()); - MinecraftForgeClient.registerItemRenderer(ModBlocks.blockSpellParadigm.blockID, new TESpellParadigmBlockItemRenderer()); - MinecraftForgeClient.registerItemRenderer(ModBlocks.blockSpellModifier.blockID, new TESpellModifierBlockItemRenderer()); - //RenderingRegistry.registerEntityRenderingHandler(FireProjectile.class, new RenderFireProjectile()); - //RenderingRegistry.registerBlockHandler(new AltarRenderer()); - } - - @Override - public World getClientWorld() - { - return FMLClientHandler.instance().getClient().theWorld; - } - - @Override - public void InitRendering() - { - ClientRegistry.bindTileEntitySpecialRenderer(TEAltar.class, new TEAltarRenderer()); - MinecraftForgeClient.registerItemRenderer(ModBlocks.blockAltar.blockID, new TEAltarItemRenderer()); - //MinecraftForgeClient.registerItemRenderer(AlchemicalWizardry.blockWritingTable.blockID, new TEWritingTableItemRenderer()); - } - - public static Map> pageClasses = new HashMap>(); - - public static void registerManualPage (String type, Class clazz) - { - pageClasses.put(type, clazz); - } - - public static Class getPageClass (String type) - { - return pageClasses.get(type); - } - - void initManualPages () - { - ClientProxy.registerManualPage("crafting", CraftingPage.class); - ClientProxy.registerManualPage("picture", PicturePage.class); - ClientProxy.registerManualPage("text", TextPage.class); - ClientProxy.registerManualPage("intro", TextPage.class); - ClientProxy.registerManualPage("sectionpage", SectionPage.class); - ClientProxy.registerManualPage("intro", TitlePage.class); - ClientProxy.registerManualPage("contents", ContentsTablePage.class); - ClientProxy.registerManualPage("furnace", FurnacePage.class); - ClientProxy.registerManualPage("sidebar", SidebarPage.class); -// ClientProxy.registerManualPage("materialstats", MaterialPage.class); -// ClientProxy.registerManualPage("toolpage", ToolPage.class); -// ClientProxy.registerManualPage("modifier", ModifierPage.class); -// ClientProxy.registerManualPage("blockcast", BlockCastPage.class); - - - ClientProxy.registerManualPage("blank", BlankPage.class); - } - - public static Document diary; - public static Document volume1; - public static Document volume2; - public static Document smelter; - - - public void readManuals () - { - DocumentBuilderFactory dbFactory = DocumentBuilderFactory.newInstance(); - diary = readManual("/assets/alchemicalwizardry/books/architect.xml", dbFactory); -// volume1 = readManual("/assets/tinker/manuals/firstday.xml", dbFactory); -// volume2 = readManual("/assets/tinker/manuals/materials.xml", dbFactory); -// smelter = readManual("/assets/tinker/manuals/smeltery.xml", dbFactory); - initManualIcons(); - initManualRecipes(); - initManualPages(); - } - - public void initManualIcons () - { - - BMClientRegistry.registerManualIcon("torch", new ItemStack(Block.torchWood)); - BMClientRegistry.registerManualIcon("sapling", new ItemStack(Block.sapling)); - BMClientRegistry.registerManualIcon("workbench", new ItemStack(Block.workbench)); - BMClientRegistry.registerManualIcon("coal", new ItemStack(Item.coal)); - - -// BMClientRegistry.registerManualIcon("obsidianingot", new ItemStack(TContent.materials, 1, 18)); -// BMClientRegistry.registerManualIcon("lavacrystal", new ItemStack(TContent.materials, 1, 7)); - - - // Tool Materials -// BMClientRegistry.registerManualIcon("woodplanks", new ItemStack(Block.planks)); -// BMClientRegistry.registerManualIcon("stoneblock", new ItemStack(Block.stone)); -// BMClientRegistry.registerManualIcon("ironingot", new ItemStack(Item.ingotIron)); -// BMClientRegistry.registerManualIcon("flint", new ItemStack(Item.flint)); -// BMClientRegistry.registerManualIcon("cactus", new ItemStack(Block.cactus)); -// BMClientRegistry.registerManualIcon("bone", new ItemStack(Item.bone)); -// BMClientRegistry.registerManualIcon("obsidian", new ItemStack(Block.obsidian)); -// BMClientRegistry.registerManualIcon("netherrack", new ItemStack(Block.netherrack)); -// BMClientRegistry.registerManualIcon("blueslimecrystal", new ItemStack(TContent.materials, 1, 17)); -// BMClientRegistry.registerManualIcon("slimecrystal", new ItemStack(TContent.materials, 1, 1)); -// BMClientRegistry.registerManualIcon("paperstack", new ItemStack(TContent.materials, 1, 0)); -// BMClientRegistry.registerManualIcon("cobaltingot", new ItemStack(TContent.materials, 1, 3)); -// BMClientRegistry.registerManualIcon("arditeingot", new ItemStack(TContent.materials, 1, 4)); -// BMClientRegistry.registerManualIcon("copperingot", new ItemStack(TContent.materials, 1, 9)); -// BMClientRegistry.registerManualIcon("steelingot", new ItemStack(TContent.materials, 1, 16)); -// BMClientRegistry.registerManualIcon("pigironingot", new ItemStack(TContent.materials, 1, 34)); - - - // Tool parts -// BMClientRegistry.registerManualIcon("pickhead", new ItemStack(TContent.pickaxeHead, 1, 2)); -// BMClientRegistry.registerManualIcon("shovelhead", new ItemStack(TContent.shovelHead, 1, 2)); -// BMClientRegistry.registerManualIcon("axehead", new ItemStack(TContent.hatchetHead, 1, 2)); -// BMClientRegistry.registerManualIcon("swordblade", new ItemStack(TContent.swordBlade, 1, 2)); -// BMClientRegistry.registerManualIcon("pan", new ItemStack(TContent.frypanHead, 1, 2)); -// BMClientRegistry.registerManualIcon("board", new ItemStack(TContent.signHead, 1, 2)); -// BMClientRegistry.registerManualIcon("knifeblade", new ItemStack(TContent.knifeBlade, 1, 2)); -// BMClientRegistry.registerManualIcon("chiselhead", new ItemStack(TContent.chiselHead, 1, 2)); -// -// -// BMClientRegistry.registerManualIcon("hammerhead", new ItemStack(TContent.hammerHead, 1, 2)); -// BMClientRegistry.registerManualIcon("excavatorhead", new ItemStack(TContent.excavatorHead, 1, 2)); -// BMClientRegistry.registerManualIcon("scythehead", new ItemStack(TContent.scytheBlade, 1, 2)); -// BMClientRegistry.registerManualIcon("broadaxehead", new ItemStack(TContent.broadAxeHead, 1, 2)); -// BMClientRegistry.registerManualIcon("largeswordblade", new ItemStack(TContent.largeSwordBlade, 1, 2)); -// -// -// BMClientRegistry.registerManualIcon("toolrod", new ItemStack(Item.stick)); -// -// -// BMClientRegistry.registerManualIcon("binding", new ItemStack(TContent.binding, 1, 4)); -// BMClientRegistry.registerManualIcon("wideguard", new ItemStack(TContent.wideGuard, 1, 4)); -// BMClientRegistry.registerManualIcon("handguard", new ItemStack(TContent.handGuard, 1, 4)); -// BMClientRegistry.registerManualIcon("crossbar", new ItemStack(TContent.crossbar, 1, 4)); -// -// -// BMClientRegistry.registerManualIcon("toughrod", new ItemStack(TContent.toughRod, 1, 0)); -// BMClientRegistry.registerManualIcon("toughbinding", new ItemStack(TContent.toughBinding, 1, 17)); -// BMClientRegistry.registerManualIcon("largeplate", new ItemStack(TContent.largePlate, 1, 17)); -// -// -// BMClientRegistry.registerManualIcon("bowstring", new ItemStack(TContent.bowstring, 1, 0)); -// BMClientRegistry.registerManualIcon("arrowhead", new ItemStack(TContent.arrowhead, 1, 2)); -// BMClientRegistry.registerManualIcon("fletching", new ItemStack(TContent.fletching, 1, 0)); -// -// BMClientRegistry.registerManualIcon("bloodbucket", new ItemStack(TContent.buckets, 1, 16)); -// BMClientRegistry.registerManualIcon("emeraldbucket", new ItemStack(TContent.buckets, 1, 15)); -// BMClientRegistry.registerManualIcon("gluebucket", new ItemStack(TContent.buckets, 1, 25)); -// BMClientRegistry.registerManualIcon("slimebucket", new ItemStack(TContent.buckets, 1, 24)); -// BMClientRegistry.registerManualIcon("enderbucket", new ItemStack(TContent.buckets, 1, 23)); - - - // ToolIcons -// BMClientRegistry.registerManualIcon("pickicon", -// ToolBuilder.instance.buildTool(new ItemStack(TContent.pickaxeHead, 1, 10), new ItemStack(TContent.toolRod, 1, 11), new ItemStack(TContent.binding, 1, 12), "")); -// BMClientRegistry.registerManualIcon("shovelicon", ToolBuilder.instance.buildTool(new ItemStack(TContent.shovelHead, 1, 10), new ItemStack(TContent.toolRod, 1, 11), null, "")); -// BMClientRegistry.registerManualIcon("axeicon", ToolBuilder.instance.buildTool(new ItemStack(TContent.hatchetHead, 1, 10), new ItemStack(TContent.toolRod, 1, 11), null, "")); -// BMClientRegistry.registerManualIcon("mattockicon", -// ToolBuilder.instance.buildTool(new ItemStack(TContent.hatchetHead, 1, 10), new ItemStack(TContent.toolRod, 1, 11), new ItemStack(TContent.shovelHead, 1, 12), "")); -// BMClientRegistry.registerManualIcon("swordicon", -// ToolBuilder.instance.buildTool(new ItemStack(TContent.swordBlade, 1, 10), new ItemStack(TContent.toolRod, 1, 11), new ItemStack(TContent.wideGuard, 1, 12), "")); -// BMClientRegistry.registerManualIcon("longswordicon", -// ToolBuilder.instance.buildTool(new ItemStack(TContent.swordBlade, 1, 10), new ItemStack(TContent.toolRod, 1, 11), new ItemStack(TContent.handGuard, 1, 12), "")); -// BMClientRegistry.registerManualIcon("rapiericon", -// ToolBuilder.instance.buildTool(new ItemStack(TContent.swordBlade, 1, 10), new ItemStack(TContent.toolRod, 1, 11), new ItemStack(TContent.crossbar, 1, 12), "")); -// BMClientRegistry.registerManualIcon("daggerIcon", -// ToolBuilder.instance.buildTool(new ItemStack(TContent.knifeBlade, 1, 10), new ItemStack(TContent.toolRod, 1, 11), new ItemStack(TContent.crossbar, 1, 12), "")); -// BMClientRegistry.registerManualIcon("frypanicon", ToolBuilder.instance.buildTool(new ItemStack(TContent.frypanHead, 1, 10), new ItemStack(TContent.toolRod, 1, 11), null, "")); -// BMClientRegistry.registerManualIcon("battlesignicon", ToolBuilder.instance.buildTool(new ItemStack(TContent.signHead, 1, 10), new ItemStack(TContent.toolRod, 1, 11), null, "")); -// BMClientRegistry.registerManualIcon("chiselicon", ToolBuilder.instance.buildTool(new ItemStack(TContent.chiselHead, 1, 10), new ItemStack(TContent.toolRod, 1, 11), null, "")); -// BMClientRegistry.registerManualIcon("shortbowIcon", -// ToolBuilder.instance.buildTool(new ItemStack(TContent.toolRod, 1, 10), new ItemStack(TContent.bowstring, 1, 0), new ItemStack(TContent.toolRod, 1, 12), "")); -// BMClientRegistry.registerManualIcon("arrowIcon", -// ToolBuilder.instance.buildTool(new ItemStack(TContent.arrowhead, 1, 10), new ItemStack(TContent.toolRod, 1, 11), new ItemStack(TContent.fletching, 1, 0), "")); - - -// BMClientRegistry.registerManualIcon("hammericon", ToolBuilder.instance.buildTool(new ItemStack(TContent.hammerHead, 1, 10), new ItemStack(TContent.toughRod, 1, 11), new ItemStack( -// TContent.largePlate, 1, 12), new ItemStack(TContent.largePlate, 8), "")); -// BMClientRegistry.registerManualIcon("lumbericon", ToolBuilder.instance.buildTool(new ItemStack(TContent.broadAxeHead, 1, 10), new ItemStack(TContent.toughRod, 1, 11), new ItemStack( -// TContent.largePlate, 1, 12), new ItemStack(TContent.toughBinding, 8), "")); -// BMClientRegistry.registerManualIcon("excavatoricon", ToolBuilder.instance.buildTool(new ItemStack(TContent.excavatorHead, 1, 10), new ItemStack(TContent.toughRod, 1, 11), -// new ItemStack(TContent.largePlate, 1, 12), new ItemStack(TContent.toughBinding, 8), "")); -// BMClientRegistry.registerManualIcon("scytheicon", ToolBuilder.instance.buildTool(new ItemStack(TContent.scytheBlade, 1, 10), new ItemStack(TContent.toughRod, 1, 11), new ItemStack( -// TContent.toughBinding, 1, 12), new ItemStack(TContent.toughRod, 8), "")); -// BMClientRegistry.registerManualIcon("cleavericon", ToolBuilder.instance.buildTool(new ItemStack(TContent.largeSwordBlade, 1, 10), new ItemStack(TContent.toughRod, 1, 11), -// new ItemStack(TContent.largePlate, 1, 12), new ItemStack(TContent.toughRod, 8), "")); -// BMClientRegistry.registerManualIcon("battleaxeicon", ToolBuilder.instance.buildTool(new ItemStack(TContent.broadAxeHead, 1, 10), new ItemStack(TContent.toughRod, 1, 11), -// new ItemStack(TContent.broadAxeHead, 1, 12), new ItemStack(TContent.toughBinding, 8), "")); - } - - public void initManualRecipes () - { - ItemStack goldIngot = new ItemStack(Item.ingotGold); - ItemStack ironIngot = new ItemStack(Item.ingotIron); - ItemStack diamond = new ItemStack(Item.diamond); - ItemStack glassBlock = new ItemStack(Block.glass); - ItemStack smoothStone = new ItemStack(Block.stone); - ItemStack furnace = new ItemStack(Block.furnaceIdle); - - ItemStack weakBloodOrb = new ItemStack(ModItems.weakBloodOrb); - - ItemStack blankSlate = new ItemStack(ModItems.blankSlate); - - - // TConstruct recipes - BMClientRegistry.registerManualLargeRecipe("sacrificialKnife", new ItemStack(ModItems.sacrificialDagger), glassBlock, glassBlock, glassBlock, null, ironIngot, glassBlock, goldIngot, null, glassBlock); - BMClientRegistry.registerManualLargeRecipe("bloodAltar", new ItemStack(ModBlocks.blockAltar), smoothStone,null,smoothStone,smoothStone,furnace,smoothStone,goldIngot, diamond,goldIngot); - BMClientRegistry.registerManualLargeRecipe("divinationSigil", new ItemStack(ModItems.divinationSigil), glassBlock,glassBlock,glassBlock,glassBlock,blankSlate,glassBlock,glassBlock,weakBloodOrb,glassBlock); - - -// BMClientRegistry.registerManualLargeRecipe("slimymud", slimyMud, null, slimeball, slimeball, null, slimeball, slimeball, null, dirt, sand); -// BMClientRegistry.registerManualFurnaceRecipe("slimecrystal", new ItemStack(TContent.materials, 1, 1), slimyMud); -// BMClientRegistry.registerManualSmallRecipe("paperstack", new ItemStack(TContent.materials, 1, 0), paper, paper, paper, paper); -// BMClientRegistry.registerManualLargeRecipe("mossball", new ItemStack(TContent.materials, 1, 6), mossycobble, mossycobble, mossycobble, mossycobble, mossycobble, mossycobble, -// mossycobble, mossycobble, mossycobble); -// BMClientRegistry.registerManualLargeRecipe("lavacrystal", new ItemStack(TContent.materials, 1, 7), blazerod, firecharge, blazerod, firecharge, new ItemStack(Item.bucketLava), -// firecharge, blazerod, firecharge, blazerod); -// BMClientRegistry.registerManualLargeRecipe("silkycloth", silkyCloth, string, string, string, string, new ItemStack(TContent.materials, 1, 24), string, string, string, string); -// BMClientRegistry.registerManualLargeRecipe("silkyjewel", new ItemStack(TContent.materials, 1, 26), null, silkyCloth, null, silkyCloth, new ItemStack(Item.emerald), silkyCloth, null, -// silkyCloth, null); -// -// -// BMClientRegistry.registerManualSmallRecipe("graveyardsoil", graveyardsoil, new ItemStack(Block.dirt), new ItemStack(Item.rottenFlesh), new ItemStack(Item.dyePowder, 1, 15), null); -// BMClientRegistry.registerManualFurnaceRecipe("consecratedsoil", consecratedsoil, graveyardsoil); -// -// -// BMClientRegistry.registerManualSmallRecipe("grout", grout, sand, gravel, null, clay); -// BMClientRegistry.registerManualFurnaceRecipe("searedbrick", searedbrick, grout); -// BMClientRegistry.registerManualSmallRecipe("searedbricks", new ItemStack(TContent.smeltery, 1, 2), searedbrick, searedbrick, searedbrick, searedbrick); -// BMClientRegistry.registerManualLargeRecipe("smelterycontroller", new ItemStack(TContent.smeltery, 1, 0), searedbrick, searedbrick, searedbrick, searedbrick, null, searedbrick, -// searedbrick, searedbrick, searedbrick); -// BMClientRegistry.registerManualLargeRecipe("dryingrack", new ItemStack(TContent.dryingRack, 1, 0), null, null, null, plankSlab, plankSlab, plankSlab, null, null, -// null); -// BMClientRegistry.registerManualLargeRecipe("smelterydrain", new ItemStack(TContent.smeltery, 1, 1), searedbrick, null, searedbrick, searedbrick, null, searedbrick, searedbrick, null, -// searedbrick); -// -// -// BMClientRegistry.registerManualLargeRecipe("smelterytank1", new ItemStack(TContent.lavaTank, 1, 0), searedbrick, searedbrick, searedbrick, searedbrick, glass, searedbrick, -// searedbrick, searedbrick, searedbrick); -// BMClientRegistry.registerManualLargeRecipe("smelterytank2", new ItemStack(TContent.lavaTank, 1, 1), searedbrick, glass, searedbrick, glass, glass, glass, searedbrick, glass, -// searedbrick); -// BMClientRegistry.registerManualLargeRecipe("smelterytank3", new ItemStack(TContent.lavaTank, 1, 2), searedbrick, glass, searedbrick, searedbrick, glass, searedbrick, searedbrick, -// glass, searedbrick); -// -// -// BMClientRegistry.registerManualLargeRecipe("smelterytable", new ItemStack(TContent.searedBlock, 1, 0), searedbrick, searedbrick, searedbrick, searedbrick, null, searedbrick, -// searedbrick, null, searedbrick); -// BMClientRegistry.registerManualLargeRecipe("smelteryfaucet", new ItemStack(TContent.searedBlock, 1, 1), searedbrick, null, searedbrick, null, searedbrick, null, null, null, null); -// BMClientRegistry.registerManualLargeRecipe("castingchannel", new ItemStack(TContent.castingChannel), null, null, null, searedbrick, null, searedbrick, searedbrick, searedbrick, -// searedbrick); -// BMClientRegistry.registerManualLargeRecipe("smelterybasin", new ItemStack(TContent.searedBlock, 1, 2), searedbrick, null, searedbrick, searedbrick, null, searedbrick, searedbrick, -// searedbrick, searedbrick); -// -// -// //Traps -// ItemStack reed = new ItemStack(Item.reed); -// BMClientRegistry.registerManualLargeRecipe("punji", new ItemStack(TContent.punji), reed, null, reed, null, reed, null, reed, null, reed); -// BMClientRegistry.registerManualSmallRecipe("barricade", new ItemStack(TContent.barricadeOak), null, log, null, log); -// -// -// //Machines -// ItemStack alubrassIngot = new ItemStack(TContent.materials, 1, 14); -// ItemStack bronzeIngot = new ItemStack(TContent.materials, 1, 13); -// ItemStack blankCast = new ItemStack(TContent.blankPattern, 1, 1); -// ItemStack redstone = new ItemStack(Item.redstone); -// -// -// // Modifier recipes -// ItemStack ironpick = ToolBuilder.instance.buildTool(new ItemStack(TContent.pickaxeHead, 1, 6), new ItemStack(TContent.toolRod, 1, 2), new ItemStack(TContent.binding, 1, 6), ""); -// BMClientRegistry.registerManualIcon("ironpick", ironpick); -// ItemStack ironlongsword = ToolBuilder.instance.buildTool(new ItemStack(TContent.swordBlade, 1, 6), new ItemStack(TContent.toolRod, 1, 2), new ItemStack(TContent.handGuard, 1, 10), ""); -// BMClientRegistry.registerManualIcon("ironlongsword", ironlongsword); -// - -// BMClientRegistry.registerManualModifier("diamondmod", ironpick.copy(), new ItemStack(Item.diamond)); -// BMClientRegistry.registerManualModifier("emeraldmod", ironpick.copy(), new ItemStack(Item.emerald)); -// BMClientRegistry.registerManualModifier("redstonemod", ironpick.copy(), new ItemStack(Item.redstone), new ItemStack(Block.blockRedstone)); -// BMClientRegistry.registerManualModifier("lavacrystalmod", ironpick.copy(), new ItemStack(TContent.materials, 1, 7)); -// BMClientRegistry.registerManualModifier("lapismod", ironpick.copy(), new ItemStack(Item.dyePowder, 1, 4), new ItemStack(Block.blockLapis)); -// BMClientRegistry.registerManualModifier("mossmod", ironpick.copy(), new ItemStack(TContent.materials, 1, 6)); -// BMClientRegistry.registerManualModifier("quartzmod", ironlongsword.copy(), new ItemStack(Item.netherQuartz), new ItemStack(Block.blockNetherQuartz)); -// BMClientRegistry.registerManualModifier("blazemod", ironlongsword.copy(), new ItemStack(Item.blazePowder)); -// BMClientRegistry.registerManualModifier("necroticmod", ironlongsword.copy(), new ItemStack(TContent.materials, 1, 8)); -// BMClientRegistry.registerManualModifier("silkymod", ironpick.copy(), new ItemStack(TContent.materials, 1, 26)); -// BMClientRegistry.registerManualModifier("reinforcedmod", ironpick.copy(), new ItemStack(TContent.largePlate, 1, 6)); -// -// -// BMClientRegistry.registerManualModifier("pistonmod", ironlongsword.copy(), new ItemStack(Block.pistonBase)); -// BMClientRegistry.registerManualModifier("beheadingmod", ironlongsword.copy(), new ItemStack(Item.enderPearl), new ItemStack(Block.obsidian)); -// BMClientRegistry.registerManualModifier("spidermod", ironlongsword.copy(), new ItemStack(Item.fermentedSpiderEye)); -// BMClientRegistry.registerManualModifier("smitemod", ironlongsword.copy(), new ItemStack(TContent.craftedSoil, 1, 4)); -// -// -// BMClientRegistry.registerManualModifier("electricmod", ironpick.copy(), new ItemStack(Block.dirt), new ItemStack(Block.dirt)); -// BMClientRegistry.registerManualModifier("fluxmod", ironpick.copy(), new ItemStack(Block.dirt)); -// BMClientRegistry.registerManualModifier("fluxmod2", ironpick.copy(), new ItemStack(Block.dirt)); -// -// -// BMClientRegistry.registerManualModifier("tier1free", ironpick.copy(), new ItemStack(Item.diamond), new ItemStack(Block.blockGold)); -// BMClientRegistry.registerManualModifier("tier1.5free", ironpick.copy(), new ItemStack(Item.appleGold, 1, 1), new ItemStack(Block.blockDiamond)); -// BMClientRegistry.registerManualModifier("tier2free", ironpick.copy(), new ItemStack(Item.netherStar)); -// BMClientRegistry.registerManualModifier("creativefree", ironpick.copy(), new ItemStack(TContent.creativeModifier)); -// -// -// BMClientRegistry.registerManualSmeltery("brownstone", new ItemStack(TContent.speedBlock), new ItemStack(TContent.moltenTin, 1), new ItemStack(Block.gravel)); -// BMClientRegistry.registerManualSmeltery("clearglass", new ItemStack(TContent.clearGlass), new ItemStack(TContent.moltenGlass, 1), null); -// BMClientRegistry.registerManualSmeltery("searedstone", new ItemStack(TContent.smeltery, 1, 4), new ItemStack(TContent.moltenStone, 1), null); -// BMClientRegistry.registerManualSmeltery("endstone", new ItemStack(Block.whiteStone), new ItemStack(TContent.moltenEnder, 1), new ItemStack(Block.obsidian)); -// BMClientRegistry.registerManualSmeltery("glueball", new ItemStack(TContent.materials, 1, 36), new ItemStack(TContent.glueFluidBlock, 1), null); - - - } - - Document readManual (String location, DocumentBuilderFactory dbFactory) - { - try - { - InputStream stream = AlchemicalWizardry.class.getResourceAsStream(location); - DocumentBuilder dBuilder = dbFactory.newDocumentBuilder(); - Document doc = dBuilder.parse(stream); - doc.getDocumentElement().normalize(); - return doc; - } - catch (Exception e) - { - e.printStackTrace(); - return null; - } - } - - - public static Document getManualFromStack (ItemStack stack) - { - switch (stack.getItemDamage()) - { - case 0: - return diary; -// case 1: -// return volume2; -// case 2: -// return smelter; -// case 3: -// return diary; - } - - - return null; - } -} diff --git a/BM_src/WayofTime/alchemicalWizardry/client/GuiManual.java b/BM_src/WayofTime/alchemicalWizardry/client/GuiManual.java deleted file mode 100644 index 5dbc9afb..00000000 --- a/BM_src/WayofTime/alchemicalWizardry/client/GuiManual.java +++ /dev/null @@ -1,250 +0,0 @@ -package WayofTime.alchemicalWizardry.client; - -import net.minecraft.client.Minecraft; -import net.minecraft.client.gui.GuiButton; -import net.minecraft.client.gui.GuiScreen; -import net.minecraft.item.ItemStack; -import net.minecraft.nbt.NBTTagCompound; -import net.minecraft.util.ResourceLocation; - -import org.lwjgl.opengl.GL11; -import org.w3c.dom.Document; -import org.w3c.dom.Element; -import org.w3c.dom.Node; -import org.w3c.dom.NodeList; - -import WayofTime.alchemicalWizardry.client.book.pages.BookPage; -import cpw.mods.fml.relauncher.Side; -import cpw.mods.fml.relauncher.SideOnly; - - -@SideOnly(Side.CLIENT) -public class GuiManual extends GuiScreen -{ - ItemStack itemstackBook; - Document manual; - public RenderItemCopy renderitem = new RenderItemCopy(); - int bookImageWidth = 206; - int bookImageHeight = 200; - int bookTotalPages = 1000; - int currentPage; - int maxPages; - - - private TurnPageButton buttonNextPage; - private TurnPageButton buttonPreviousPage; - - - BookPage pageLeft; - BookPage pageRight; - - - public SmallFontRenderer fonts = ClientProxy.smallFontRenderer; - - - public GuiManual(ItemStack stack, Document doc) - { - this.mc = Minecraft.getMinecraft(); - this.itemstackBook = stack; - currentPage = this.getItemPage(stack); - System.out.println("" + currentPage); - manual = doc; - - if(doc == null) - { - System.out.println("Something is wrong~! The doc is null!"); - } - - - //renderitem.renderInFrame = true; - } - - - /*@Override - public void setWorldAndResolution (Minecraft minecraft, int w, int h) - { - this.guiParticles = new GuiParticle(minecraft); - this.mc = minecraft; - this.width = w; - this.height = h; - this.buttonList.clear(); - this.initGui(); - }*/ - - - public void initGui () - { - maxPages = manual.getElementsByTagName("page").getLength(); - updateText(); - int xPos = (this.width) / 2; - this.buttonList.add(this.buttonNextPage = new TurnPageButton(1, xPos + bookImageWidth - 50, 180, true)); - this.buttonList.add(this.buttonPreviousPage = new TurnPageButton(2, xPos - bookImageWidth + 24, 180, false)); - } - - - protected void actionPerformed (GuiButton button) - { - if (button.enabled) - { - if (button.id == 1) - currentPage += 2; - if (button.id == 2) - currentPage -= 2; - - this.setItemPage(itemstackBook, currentPage); - - updateText(); - } - } - - - void updateText () - { - if (maxPages % 2 == 1) - { - if (currentPage > maxPages) - currentPage = maxPages; - } - else - { - if (currentPage >= maxPages) - currentPage = maxPages - 2; - } - if (currentPage % 2 == 1) - currentPage--; - if (currentPage < 0) - currentPage = 0; - - - NodeList nList = manual.getElementsByTagName("page"); - - - - //System.out.println("" + currentPage); - - Node node = nList.item(currentPage); - if (node.getNodeType() == Node.ELEMENT_NODE) - { - Element element = (Element) node; - Class clazz = ClientProxy.getPageClass(element.getAttribute("type")); - if (clazz != null) - { - try - { - pageLeft = (BookPage) clazz.newInstance(); - pageLeft.init(this, 0); - pageLeft.readPageFromXML(element); - } - catch (Exception e) - { - } - } - else - { - pageLeft = null; - } - } - - - node = nList.item(currentPage + 1); - if (node != null && node.getNodeType() == Node.ELEMENT_NODE) - { - Element element = (Element) node; - Class clazz = ClientProxy.getPageClass(element.getAttribute("type")); - if (clazz != null) - { - try - { - pageRight = (BookPage) clazz.newInstance(); - pageRight.init(this, 1); - pageRight.readPageFromXML(element); - } - catch (Exception e) - { - } - } - else - { - pageLeft = null; - } - } - else - { - pageRight = null; - } - } - - - private static final ResourceLocation bookRight = new ResourceLocation("alchemicalwizardry", "textures/gui/bookright.png"); - private static final ResourceLocation bookLeft = new ResourceLocation("alchemicalwizardry", "textures/gui/bookleft.png"); - - - public void drawScreen (int par1, int par2, float par3) - { - GL11.glColor4f(1.0F, 1.0F, 1.0F, 1.0F); - this.mc.getTextureManager().bindTexture(bookRight); - int localWidth = (this.width) / 2; - byte localHeight = 8; - this.drawTexturedModalRect(localWidth, localHeight, 0, 0, this.bookImageWidth, this.bookImageHeight); - - - GL11.glColor4f(1.0F, 1.0F, 1.0F, 1.0F); - this.mc.getTextureManager().bindTexture(bookLeft); - localWidth = localWidth - this.bookImageWidth; - this.drawTexturedModalRect(localWidth, localHeight, 256 - this.bookImageWidth, 0, this.bookImageWidth, this.bookImageHeight); - - - super.drawScreen(par1, par2, par3); //16, 12, 220, 12 - - - if (pageLeft != null) - pageLeft.renderBackgroundLayer(localWidth + 16, localHeight + 12); - if (pageRight != null) - pageRight.renderBackgroundLayer(localWidth + 220, localHeight + 12); - - - if (pageLeft != null) - pageLeft.renderContentLayer(localWidth + 16, localHeight + 12); - if (pageRight != null) - pageRight.renderContentLayer(localWidth + 220, localHeight + 12); - } - - - public Minecraft getMC () - { - return mc; - } - - - public boolean doesGuiPauseGame () - { - return false; - } - - public void setItemPage(ItemStack book, int page) - { - NBTTagCompound tag = book.getTagCompound(); - - if(tag==null) - { - System.out.println("Setted Tag is null"); - book.setTagCompound(new NBTTagCompound()); - } - - tag.setInteger("pageNumber", page); - } - - public int getItemPage(ItemStack book) - { - NBTTagCompound tag = book.getTagCompound(); - - if(tag==null) - { - System.out.println("Getted Tag is null"); - book.setTagCompound(new NBTTagCompound()); - tag=book.getTagCompound(); - } - - return tag.getInteger("pageNumber"); - } -} diff --git a/BM_src/WayofTime/alchemicalWizardry/client/RenderItemCopy.java b/BM_src/WayofTime/alchemicalWizardry/client/RenderItemCopy.java deleted file mode 100644 index 1d50c5e6..00000000 --- a/BM_src/WayofTime/alchemicalWizardry/client/RenderItemCopy.java +++ /dev/null @@ -1,742 +0,0 @@ -package WayofTime.alchemicalWizardry.client; - -import java.util.Random; - -import net.minecraft.block.Block; -import net.minecraft.client.Minecraft; -import net.minecraft.client.renderer.ItemRenderer; -import net.minecraft.client.renderer.RenderBlocks; -import net.minecraft.client.renderer.Tessellator; -import net.minecraft.client.renderer.entity.Render; -import net.minecraft.client.renderer.texture.TextureManager; -import net.minecraft.client.renderer.texture.TextureMap; -import net.minecraft.entity.Entity; -import net.minecraft.entity.item.EntityItem; -import net.minecraft.item.Item; -import net.minecraft.item.ItemStack; -import net.minecraft.util.Icon; -import net.minecraft.util.MathHelper; -import net.minecraft.util.ResourceLocation; -import net.minecraftforge.client.ForgeHooksClient; - -import org.lwjgl.opengl.GL11; -import org.lwjgl.opengl.GL12; - -import cpw.mods.fml.relauncher.Side; -import cpw.mods.fml.relauncher.SideOnly; - - -@SideOnly(Side.CLIENT) -public class RenderItemCopy extends Render -{ - private static final ResourceLocation field_110798_h = new ResourceLocation("textures/misc/enchanted_item_glint.png"); - private RenderBlocks itemRenderBlocks = new RenderBlocks(); - - - /** The RNG used in RenderItem (for bobbing itemstacks on the ground) */ - private Random random = new Random(); - public boolean renderWithColor = true; - - - /** Defines the zLevel of rendering of item on GUI. */ - public float zLevel; - public static boolean renderInFrame; - - - public RenderItemCopy() - { - this.shadowSize = 0.15F; - this.shadowOpaque = 0.75F; - } - - - /** - * Renders the item - */ - public void doRenderItem (EntityItem par1EntityItem, double par2, double par4, double par6, float par8, float par9) - { - this.bindEntityTexture(par1EntityItem); - this.random.setSeed(187L); - ItemStack itemstack = par1EntityItem.getEntityItem(); - - - if (itemstack.getItem() != null) - { - GL11.glPushMatrix(); - float f2 = shouldBob() ? MathHelper.sin(((float) par1EntityItem.age + par9) / 10.0F + par1EntityItem.hoverStart) * 0.1F + 0.1F : 0F; - float f3 = (((float) par1EntityItem.age + par9) / 20.0F + par1EntityItem.hoverStart) * (180F / (float) Math.PI); - byte b0 = getMiniBlockCount(itemstack); - - - GL11.glTranslatef((float) par2, (float) par4 + f2, (float) par6); - GL11.glEnable(GL12.GL_RESCALE_NORMAL); - float f4; - float f5; - float f6; - int i; - - - Block block = null; - if (itemstack.itemID < Block.blocksList.length) - { - block = Block.blocksList[itemstack.itemID]; - } - - - if (ForgeHooksClient.renderEntityItem(par1EntityItem, itemstack, f2, f3, random, renderManager.renderEngine, renderBlocks)) - { - ; - } - else if (itemstack.getItemSpriteNumber() == 0 && block != null && RenderBlocks.renderItemIn3d(Block.blocksList[itemstack.itemID].getRenderType())) - { - GL11.glRotatef(f3, 0.0F, 1.0F, 0.0F); - - - if (renderInFrame) - { - GL11.glScalef(1.25F, 1.25F, 1.25F); - GL11.glTranslatef(0.0F, 0.05F, 0.0F); - GL11.glRotatef(-90.0F, 0.0F, 1.0F, 0.0F); - } - - - float f7 = 0.25F; - int j = block.getRenderType(); - - - if (j == 1 || j == 19 || j == 12 || j == 2) - { - f7 = 0.5F; - } - - - GL11.glScalef(f7, f7, f7); - - - for (i = 0; i < b0; ++i) - { - GL11.glPushMatrix(); - - - if (i > 0) - { - f5 = (this.random.nextFloat() * 2.0F - 1.0F) * 0.2F / f7; - f4 = (this.random.nextFloat() * 2.0F - 1.0F) * 0.2F / f7; - f6 = (this.random.nextFloat() * 2.0F - 1.0F) * 0.2F / f7; - GL11.glTranslatef(f5, f4, f6); - } - - - f5 = 1.0F; - this.itemRenderBlocks.renderBlockAsItem(block, itemstack.getItemDamage(), f5); - GL11.glPopMatrix(); - } - } - else - { - float f8; - - - if (itemstack.getItemSpriteNumber() == 1 && itemstack.getItem().requiresMultipleRenderPasses()) - { - if (renderInFrame) - { - GL11.glScalef(0.5128205F, 0.5128205F, 0.5128205F); - GL11.glTranslatef(0.0F, -0.05F, 0.0F); - } - else - { - GL11.glScalef(0.5F, 0.5F, 0.5F); - } - - - for (int k = 0; k < itemstack.getItem().getRenderPasses(itemstack.getItemDamage()); ++k) - { - this.random.setSeed(187L); - Icon icon = itemstack.getItem().getIcon(itemstack, k); - f8 = 1.0F; - - - if (this.renderWithColor) - { - i = Item.itemsList[itemstack.itemID].getColorFromItemStack(itemstack, k); - f5 = (float) (i >> 16 & 255) / 255.0F; - f4 = (float) (i >> 8 & 255) / 255.0F; - f6 = (float) (i & 255) / 255.0F; - GL11.glColor4f(f5 * f8, f4 * f8, f6 * f8, 1.0F); - this.renderDroppedItem(par1EntityItem, icon, b0, par9, f5 * f8, f4 * f8, f6 * f8, k); - } - else - { - this.renderDroppedItem(par1EntityItem, icon, b0, par9, 1.0F, 1.0F, 1.0F, k); - } - } - } - else - { - if (renderInFrame) - { - GL11.glScalef(0.5128205F, 0.5128205F, 0.5128205F); - GL11.glTranslatef(0.0F, -0.05F, 0.0F); - } - else - { - GL11.glScalef(0.5F, 0.5F, 0.5F); - } - - - Icon icon1 = itemstack.getIconIndex(); - - - if (this.renderWithColor) - { - int l = Item.itemsList[itemstack.itemID].getColorFromItemStack(itemstack, 0); - f8 = (float) (l >> 16 & 255) / 255.0F; - float f9 = (float) (l >> 8 & 255) / 255.0F; - f5 = (float) (l & 255) / 255.0F; - f4 = 1.0F; - this.renderDroppedItem(par1EntityItem, icon1, b0, par9, f8 * f4, f9 * f4, f5 * f4); - } - else - { - this.renderDroppedItem(par1EntityItem, icon1, b0, par9, 1.0F, 1.0F, 1.0F); - } - } - } - - - GL11.glDisable(GL12.GL_RESCALE_NORMAL); - GL11.glPopMatrix(); - } - } - - - protected ResourceLocation func_110796_a (EntityItem par1EntityItem) - { - return this.renderManager.renderEngine.getResourceLocation(par1EntityItem.getEntityItem().getItemSpriteNumber()); - } - - - /** - * Renders a dropped item - */ - private void renderDroppedItem (EntityItem par1EntityItem, Icon par2Icon, int par3, float par4, float par5, float par6, float par7) - { - renderDroppedItem(par1EntityItem, par2Icon, par3, par4, par5, par6, par7, 0); - } - - - private void renderDroppedItem (EntityItem par1EntityItem, Icon par2Icon, int par3, float par4, float par5, float par6, float par7, int pass) - { - Tessellator tessellator = Tessellator.instance; - - - if (par2Icon == null) - { - TextureManager texturemanager = Minecraft.getMinecraft().getTextureManager(); - ResourceLocation resourcelocation = texturemanager.getResourceLocation(par1EntityItem.getEntityItem().getItemSpriteNumber()); - par2Icon = ((TextureMap) texturemanager.getTexture(resourcelocation)).getAtlasSprite("missingno"); - } - - - float f4 = ((Icon) par2Icon).getMinU(); - float f5 = ((Icon) par2Icon).getMaxU(); - float f6 = ((Icon) par2Icon).getMinV(); - float f7 = ((Icon) par2Icon).getMaxV(); - float f8 = 1.0F; - float f9 = 0.5F; - float f10 = 0.25F; - float f11; - - - if (this.renderManager.options.fancyGraphics) - { - GL11.glPushMatrix(); - - - if (renderInFrame) - { - GL11.glRotatef(180.0F, 0.0F, 1.0F, 0.0F); - } - else - { - GL11.glRotatef((((float) par1EntityItem.age + par4) / 20.0F + par1EntityItem.hoverStart) * (180F / (float) Math.PI), 0.0F, 1.0F, 0.0F); - } - - - float f12 = 0.0625F; - f11 = 0.021875F; - ItemStack itemstack = par1EntityItem.getEntityItem(); - int j = itemstack.stackSize; - byte b0 = getMiniItemCount(itemstack); - - - GL11.glTranslatef(-f9, -f10, -((f12 + f11) * (float) b0 / 2.0F)); - - - for (int k = 0; k < b0; ++k) - { - // Makes items offset when in 3D, like when in 2D, looks much better. Considered a vanilla bug... - if (k > 0 && shouldSpreadItems()) - { - float x = (random.nextFloat() * 2.0F - 1.0F) * 0.3F / 0.5F; - float y = (random.nextFloat() * 2.0F - 1.0F) * 0.3F / 0.5F; - float z = (random.nextFloat() * 2.0F - 1.0F) * 0.3F / 0.5F; - GL11.glTranslatef(x, y, f12 + f11); - } - else - { - GL11.glTranslatef(0f, 0f, f12 + f11); - } - - - if (itemstack.getItemSpriteNumber() == 0) - { - this.bindTexture(TextureMap.locationBlocksTexture); - } - else - { - this.bindTexture(TextureMap.locationItemsTexture); - } - - - GL11.glColor4f(par5, par6, par7, 1.0F); - ItemRenderer.renderItemIn2D(tessellator, f5, f6, f4, f7, ((Icon) par2Icon).getIconWidth(), ((Icon) par2Icon).getIconHeight(), f12); - - - if (itemstack.hasEffect(pass)) - { - GL11.glDepthFunc(GL11.GL_EQUAL); - GL11.glDisable(GL11.GL_LIGHTING); - this.renderManager.renderEngine.bindTexture(field_110798_h); - GL11.glEnable(GL11.GL_BLEND); - GL11.glBlendFunc(GL11.GL_SRC_COLOR, GL11.GL_ONE); - float f13 = 0.76F; - GL11.glColor4f(0.5F * f13, 0.25F * f13, 0.8F * f13, 1.0F); - GL11.glMatrixMode(GL11.GL_TEXTURE); - GL11.glPushMatrix(); - float f14 = 0.125F; - GL11.glScalef(f14, f14, f14); - float f15 = (float) (Minecraft.getSystemTime() % 3000L) / 3000.0F * 8.0F; - GL11.glTranslatef(f15, 0.0F, 0.0F); - GL11.glRotatef(-50.0F, 0.0F, 0.0F, 1.0F); - ItemRenderer.renderItemIn2D(tessellator, 0.0F, 0.0F, 1.0F, 1.0F, 255, 255, f12); - GL11.glPopMatrix(); - GL11.glPushMatrix(); - GL11.glScalef(f14, f14, f14); - f15 = (float) (Minecraft.getSystemTime() % 4873L) / 4873.0F * 8.0F; - GL11.glTranslatef(-f15, 0.0F, 0.0F); - GL11.glRotatef(10.0F, 0.0F, 0.0F, 1.0F); - ItemRenderer.renderItemIn2D(tessellator, 0.0F, 0.0F, 1.0F, 1.0F, 255, 255, f12); - GL11.glPopMatrix(); - GL11.glMatrixMode(GL11.GL_MODELVIEW); - GL11.glDisable(GL11.GL_BLEND); - GL11.glEnable(GL11.GL_LIGHTING); - GL11.glDepthFunc(GL11.GL_LEQUAL); - } - } - - - GL11.glPopMatrix(); - } - else - { - for (int l = 0; l < par3; ++l) - { - GL11.glPushMatrix(); - - - if (l > 0) - { - f11 = (this.random.nextFloat() * 2.0F - 1.0F) * 0.3F; - float f16 = (this.random.nextFloat() * 2.0F - 1.0F) * 0.3F; - float f17 = (this.random.nextFloat() * 2.0F - 1.0F) * 0.3F; - GL11.glTranslatef(f11, f16, f17); - } - - - if (!renderInFrame) - { - GL11.glRotatef(180.0F - this.renderManager.playerViewY, 0.0F, 1.0F, 0.0F); - } - - - GL11.glColor4f(par5, par6, par7, 1.0F); - tessellator.startDrawingQuads(); - tessellator.setNormal(0.0F, 1.0F, 0.0F); - tessellator.addVertexWithUV((double) (0.0F - f9), (double) (0.0F - f10), 0.0D, (double) f4, (double) f7); - tessellator.addVertexWithUV((double) (f8 - f9), (double) (0.0F - f10), 0.0D, (double) f5, (double) f7); - tessellator.addVertexWithUV((double) (f8 - f9), (double) (1.0F - f10), 0.0D, (double) f5, (double) f6); - tessellator.addVertexWithUV((double) (0.0F - f9), (double) (1.0F - f10), 0.0D, (double) f4, (double) f6); - tessellator.draw(); - GL11.glPopMatrix(); - } - } - } - - - /** - * Renders the item's icon or block into the UI at the specified position. - */ - public void renderItemIntoGUI (SmallFontRenderer par1FontRenderer, TextureManager par2TextureManager, ItemStack par3ItemStack, int par4, int par5) - { - renderItemIntoGUI(par1FontRenderer, par2TextureManager, par3ItemStack, par4, par5, false); - } - - - public void renderItemIntoGUI (SmallFontRenderer par1FontRenderer, TextureManager par2TextureManager, ItemStack par3ItemStack, int par4, int par5, boolean renderEffect) - { - int k = par3ItemStack.itemID; - int l = par3ItemStack.getItemDamage(); - Object object = par3ItemStack.getItem() == null ? null : par3ItemStack.getIconIndex(); - float f; - int i1; - float f1; - float f2; - - - Block block = (k < Block.blocksList.length ? Block.blocksList[k] : null); - if (block != null && par3ItemStack.getItemSpriteNumber() == 0 && RenderBlocks.renderItemIn3d(Block.blocksList[k].getRenderType())) - { - par2TextureManager.bindTexture(TextureMap.locationBlocksTexture); - GL11.glPushMatrix(); - GL11.glTranslatef((float) (par4 - 2), (float) (par5 + 3), -3.0F + this.zLevel); - GL11.glScalef(10.0F, 10.0F, 10.0F); - GL11.glTranslatef(1.0F, 0.5F, 1.0F); - GL11.glScalef(1.0F, 1.0F, -1.0F); - GL11.glRotatef(210.0F, 1.0F, 0.0F, 0.0F); - GL11.glRotatef(45.0F, 0.0F, 1.0F, 0.0F); - i1 = Item.itemsList[k].getColorFromItemStack(par3ItemStack, 0); - f = (float) (i1 >> 16 & 255) / 255.0F; - f1 = (float) (i1 >> 8 & 255) / 255.0F; - f2 = (float) (i1 & 255) / 255.0F; - - - if (this.renderWithColor) - { - GL11.glColor4f(f, f1, f2, 1.0F); - } - - - GL11.glRotatef(-90.0F, 0.0F, 1.0F, 0.0F); - this.itemRenderBlocks.useInventoryTint = this.renderWithColor; - this.itemRenderBlocks.renderBlockAsItem(block, l, 1.0F); - this.itemRenderBlocks.useInventoryTint = true; - GL11.glPopMatrix(); - } - else if (Item.itemsList[k] != null && Item.itemsList[k].requiresMultipleRenderPasses()) - { - GL11.glDisable(GL11.GL_LIGHTING); - - - for (int j1 = 0; j1 < Item.itemsList[k].getRenderPasses(l); ++j1) - { - par2TextureManager.bindTexture(par3ItemStack.getItemSpriteNumber() == 0 ? TextureMap.locationBlocksTexture : TextureMap.locationItemsTexture); - Icon icon = Item.itemsList[k].getIcon(par3ItemStack, j1); - int k1 = Item.itemsList[k].getColorFromItemStack(par3ItemStack, j1); - f1 = (float) (k1 >> 16 & 255) / 255.0F; - f2 = (float) (k1 >> 8 & 255) / 255.0F; - float f3 = (float) (k1 & 255) / 255.0F; - - - if (this.renderWithColor) - { - GL11.glColor4f(f1, f2, f3, 1.0F); - } - - - this.renderIcon(par4, par5, icon, 16, 16); - - - if (par3ItemStack.hasEffect(j1)) - { - renderEffect(par2TextureManager, par4, par5); - } - } - - - GL11.glEnable(GL11.GL_LIGHTING); - } - else - { - GL11.glDisable(GL11.GL_LIGHTING); - ResourceLocation resourcelocation = par2TextureManager.getResourceLocation(par3ItemStack.getItemSpriteNumber()); - par2TextureManager.bindTexture(resourcelocation); - - - if (object == null) - { - object = ((TextureMap) Minecraft.getMinecraft().getTextureManager().getTexture(resourcelocation)).getAtlasSprite("missingno"); - } - - - i1 = Item.itemsList[k].getColorFromItemStack(par3ItemStack, 0); - f = (float) (i1 >> 16 & 255) / 255.0F; - f1 = (float) (i1 >> 8 & 255) / 255.0F; - f2 = (float) (i1 & 255) / 255.0F; - - - if (this.renderWithColor) - { - GL11.glColor4f(f, f1, f2, 1.0F); - } - - - this.renderIcon(par4, par5, (Icon) object, 16, 16); - GL11.glEnable(GL11.GL_LIGHTING); - - - if (par3ItemStack.hasEffect(0)) - { - renderEffect(par2TextureManager, par4, par5); - } - } - - - GL11.glEnable(GL11.GL_CULL_FACE); - } - - - private void renderEffect (TextureManager manager, int x, int y) - { - GL11.glDepthFunc(GL11.GL_GREATER); - GL11.glDisable(GL11.GL_LIGHTING); - GL11.glDepthMask(false); - manager.bindTexture(field_110798_h); - this.zLevel -= 50.0F; - GL11.glEnable(GL11.GL_BLEND); - GL11.glBlendFunc(GL11.GL_DST_COLOR, GL11.GL_DST_COLOR); - GL11.glColor4f(0.5F, 0.25F, 0.8F, 1.0F); - this.renderGlint(x * 431278612 + y * 32178161, x - 2, y - 2, 20, 20); - GL11.glDisable(GL11.GL_BLEND); - GL11.glDepthMask(true); - this.zLevel += 50.0F; - GL11.glEnable(GL11.GL_LIGHTING); - GL11.glDepthFunc(GL11.GL_LEQUAL); - } - - - /** - * Render the item's icon or block into the GUI, including the glint effect. - */ - public void renderItemAndEffectIntoGUI (SmallFontRenderer par1FontRenderer, TextureManager par2TextureManager, ItemStack par3ItemStack, int par4, int par5) - { - if (par3ItemStack != null) - { - if (!ForgeHooksClient.renderInventoryItem(renderBlocks, par2TextureManager, par3ItemStack, renderWithColor, zLevel, (float) par4, (float) par5)) - { - this.renderItemIntoGUI(par1FontRenderer, par2TextureManager, par3ItemStack, par4, par5, true); - } - - - /* Modders must handle this themselves if they use custom renderers! - if (par3ItemStack.hasEffect()) - { - GL11.glDepthFunc(GL11.GL_GREATER); - GL11.glDisable(GL11.GL_LIGHTING); - GL11.glDepthMask(false); - par2TextureManager.bindTexture(field_110798_h); - this.zLevel -= 50.0F; - GL11.glEnable(GL11.GL_BLEND); - GL11.glBlendFunc(GL11.GL_DST_COLOR, GL11.GL_DST_COLOR); - GL11.glColor4f(0.5F, 0.25F, 0.8F, 1.0F); - this.renderGlint(par4 * 431278612 + par5 * 32178161, par4 - 2, par5 - 2, 20, 20); - GL11.glDisable(GL11.GL_BLEND); - GL11.glDepthMask(true); - this.zLevel += 50.0F; - GL11.glEnable(GL11.GL_LIGHTING); - GL11.glDepthFunc(GL11.GL_LEQUAL); - } - */ - } - } - - - private void renderGlint (int par1, int par2, int par3, int par4, int par5) - { - for (int j1 = 0; j1 < 2; ++j1) - { - if (j1 == 0) - { - GL11.glBlendFunc(GL11.GL_SRC_COLOR, GL11.GL_ONE); - } - - - if (j1 == 1) - { - GL11.glBlendFunc(GL11.GL_SRC_COLOR, GL11.GL_ONE); - } - - - float f = 0.00390625F; - float f1 = 0.00390625F; - float f2 = (float) (Minecraft.getSystemTime() % (long) (3000 + j1 * 1873)) / (3000.0F + (float) (j1 * 1873)) * 256.0F; - float f3 = 0.0F; - Tessellator tessellator = Tessellator.instance; - float f4 = 4.0F; - - - if (j1 == 1) - { - f4 = -1.0F; - } - - - tessellator.startDrawingQuads(); - tessellator.addVertexWithUV((double) (par2 + 0), (double) (par3 + par5), (double) this.zLevel, (double) ((f2 + (float) par5 * f4) * f), (double) ((f3 + (float) par5) * f1)); - tessellator.addVertexWithUV((double) (par2 + par4), (double) (par3 + par5), (double) this.zLevel, (double) ((f2 + (float) par4 + (float) par5 * f4) * f), - (double) ((f3 + (float) par5) * f1)); - tessellator.addVertexWithUV((double) (par2 + par4), (double) (par3 + 0), (double) this.zLevel, (double) ((f2 + (float) par4) * f), (double) ((f3 + 0.0F) * f1)); - tessellator.addVertexWithUV((double) (par2 + 0), (double) (par3 + 0), (double) this.zLevel, (double) ((f2 + 0.0F) * f), (double) ((f3 + 0.0F) * f1)); - tessellator.draw(); - } - } - - - /** - * Renders the item's overlay information. Examples being stack count or damage on top of the item's image at the - * specified position. - */ - public void renderItemOverlayIntoGUI (SmallFontRenderer par1FontRenderer, TextureManager par2TextureManager, ItemStack par3ItemStack, int par4, int par5) - { - this.renderItemOverlayIntoGUI(par1FontRenderer, par2TextureManager, par3ItemStack, par4, par5, (String) null); - } - - - public void renderItemOverlayIntoGUI (SmallFontRenderer par1FontRenderer, TextureManager par2TextureManager, ItemStack par3ItemStack, int par4, int par5, String par6Str) - { - if (par3ItemStack != null) - { - if (par3ItemStack.stackSize > 1 || par6Str != null) - { - String s1 = par6Str == null ? String.valueOf(par3ItemStack.stackSize) : par6Str; - GL11.glDisable(GL11.GL_LIGHTING); - GL11.glDisable(GL11.GL_DEPTH_TEST); - par1FontRenderer.drawStringWithShadow(s1, par4 + 19 - 2 - par1FontRenderer.getStringWidth(s1), par5 + 6 + 3, 16777215); - GL11.glEnable(GL11.GL_LIGHTING); - GL11.glEnable(GL11.GL_DEPTH_TEST); - } - - - if (par3ItemStack.isItemDamaged()) - { - int k = (int) Math.round(13.0D - (double) par3ItemStack.getItemDamageForDisplay() * 13.0D / (double) par3ItemStack.getMaxDamage()); - int l = (int) Math.round(255.0D - (double) par3ItemStack.getItemDamageForDisplay() * 255.0D / (double) par3ItemStack.getMaxDamage()); - GL11.glDisable(GL11.GL_LIGHTING); - GL11.glDisable(GL11.GL_DEPTH_TEST); - GL11.glDisable(GL11.GL_TEXTURE_2D); - Tessellator tessellator = Tessellator.instance; - int i1 = 255 - l << 16 | l << 8; - int j1 = (255 - l) / 4 << 16 | 16128; - this.renderQuad(tessellator, par4 + 2, par5 + 13, 13, 2, 0); - this.renderQuad(tessellator, par4 + 2, par5 + 13, 12, 1, j1); - this.renderQuad(tessellator, par4 + 2, par5 + 13, k, 1, i1); - GL11.glEnable(GL11.GL_TEXTURE_2D); - GL11.glEnable(GL11.GL_LIGHTING); - GL11.glEnable(GL11.GL_DEPTH_TEST); - GL11.glColor4f(1.0F, 1.0F, 1.0F, 1.0F); - } - } - } - - - /** - * Adds a quad to the tesselator at the specified position with the set width and height and color. Args: - * tessellator, x, y, width, height, color - */ - private void renderQuad (Tessellator par1Tessellator, int par2, int par3, int par4, int par5, int par6) - { - par1Tessellator.startDrawingQuads(); - par1Tessellator.setColorOpaque_I(par6); - par1Tessellator.addVertex((double) (par2 + 0), (double) (par3 + 0), 0.0D); - par1Tessellator.addVertex((double) (par2 + 0), (double) (par3 + par5), 0.0D); - par1Tessellator.addVertex((double) (par2 + par4), (double) (par3 + par5), 0.0D); - par1Tessellator.addVertex((double) (par2 + par4), (double) (par3 + 0), 0.0D); - par1Tessellator.draw(); - } - - - public void renderIcon (int par1, int par2, Icon par3Icon, int par4, int par5) - { - Tessellator tessellator = Tessellator.instance; - tessellator.startDrawingQuads(); - tessellator.addVertexWithUV((double) (par1 + 0), (double) (par2 + par5), (double) this.zLevel, (double) par3Icon.getMinU(), (double) par3Icon.getMaxV()); - tessellator.addVertexWithUV((double) (par1 + par4), (double) (par2 + par5), (double) this.zLevel, (double) par3Icon.getMaxU(), (double) par3Icon.getMaxV()); - tessellator.addVertexWithUV((double) (par1 + par4), (double) (par2 + 0), (double) this.zLevel, (double) par3Icon.getMaxU(), (double) par3Icon.getMinV()); - tessellator.addVertexWithUV((double) (par1 + 0), (double) (par2 + 0), (double) this.zLevel, (double) par3Icon.getMinU(), (double) par3Icon.getMinV()); - tessellator.draw(); - } - - - protected ResourceLocation getEntityTexture (Entity par1Entity) - { - return this.func_110796_a((EntityItem) par1Entity); - } - - - /** - * Actually renders the given argument. This is a synthetic bridge method, always casting down its argument and then - * handing it off to a worker function which does the actual work. In all probabilty, the class Render is generic - * (Render 1) - ret = 2; - if (stack.stackSize > 5) - ret = 3; - if (stack.stackSize > 20) - ret = 4; - if (stack.stackSize > 40) - ret = 5; - return ret; - } - - - /** - * Allows for a subclass to override how many rendered items appear in a - * "mini item 3d stack" - * @param stack - * @return - */ - public byte getMiniItemCount (ItemStack stack) - { - byte ret = 1; - if (stack.stackSize > 1) - ret = 2; - if (stack.stackSize > 15) - ret = 3; - if (stack.stackSize > 31) - ret = 4; - return ret; - } -} - diff --git a/BM_src/WayofTime/alchemicalWizardry/client/SmallFontRenderer.java b/BM_src/WayofTime/alchemicalWizardry/client/SmallFontRenderer.java deleted file mode 100644 index 1392737f..00000000 --- a/BM_src/WayofTime/alchemicalWizardry/client/SmallFontRenderer.java +++ /dev/null @@ -1,1189 +0,0 @@ -package WayofTime.alchemicalWizardry.client; - -import java.awt.image.BufferedImage; -import java.io.IOException; -import java.io.InputStream; -import java.text.Bidi; -import java.util.Arrays; -import java.util.Iterator; -import java.util.List; -import java.util.Random; - - -import javax.imageio.ImageIO; - - -import net.minecraft.client.Minecraft; -import net.minecraft.client.renderer.Tessellator; -import net.minecraft.client.renderer.texture.TextureManager; -import net.minecraft.client.resources.ResourceManager; -import net.minecraft.client.resources.ResourceManagerReloadListener; -import net.minecraft.client.settings.GameSettings; -import net.minecraft.util.ChatAllowedCharacters; -import net.minecraft.util.ResourceLocation; - - -import org.lwjgl.opengl.GL11; - - -import cpw.mods.fml.relauncher.Side; -import cpw.mods.fml.relauncher.SideOnly; - - -@SideOnly(Side.CLIENT) -public class SmallFontRenderer implements ResourceManagerReloadListener -{ - private static final ResourceLocation[] field_111274_c = new ResourceLocation[256]; - - - /** Array of width of all the characters in default.png */ - private int[] charWidth = new int[256]; - - - /** the height in pixels of default text */ - public int FONT_HEIGHT = 9; - public Random fontRandom = new Random(); - - - /** - * Array of the start/end column (in upper/lower nibble) for every glyph in the /font directory. - */ - private byte[] glyphWidth = new byte[65536]; - - - /** - * Array of RGB triplets defining the 16 standard chat colors followed by 16 darker version of the same colors for - * drop shadows. - */ - private int[] colorCode = new int[32]; - private final ResourceLocation field_111273_g; - - - /** The RenderEngine used to load and setup glyph textures. */ - private final TextureManager renderEngine; - - - /** Current X coordinate at which to draw the next character. */ - private float posX; - - - /** Current Y coordinate at which to draw the next character. */ - private float posY; - - - /** - * If true, strings should be rendered with Unicode fonts instead of the default.png font - */ - private boolean unicodeFlag; - - - /** - * If true, the Unicode Bidirectional Algorithm should be run before rendering any string. - */ - private boolean bidiFlag; - - - /** Used to specify new red value for the current color. */ - private float red; - - - /** Used to specify new blue value for the current color. */ - private float blue; - - - /** Used to specify new green value for the current color. */ - private float green; - - - /** Used to speify new alpha value for the current color. */ - private float alpha; - - - /** Text color of the currently rendering string. */ - private int textColor; - - - /** Set if the "k" style (random) is active in currently rendering string */ - private boolean randomStyle; - - - /** Set if the "l" style (bold) is active in currently rendering string */ - private boolean boldStyle; - - - /** Set if the "o" style (italic) is active in currently rendering string */ - private boolean italicStyle; - - - /** - * Set if the "n" style (underlined) is active in currently rendering string - */ - private boolean underlineStyle; - - - /** - * Set if the "m" style (strikethrough) is active in currently rendering string - */ - private boolean strikethroughStyle; - - - public SmallFontRenderer(GameSettings par1GameSettings, ResourceLocation par2ResourceLocation, TextureManager par3TextureManager, boolean par4) - { - this.field_111273_g = par2ResourceLocation; - this.renderEngine = par3TextureManager; - this.unicodeFlag = true; - par3TextureManager.bindTexture(this.field_111273_g); - - - for (int i = 0; i < 32; ++i) - { - int j = (i >> 3 & 1) * 85; - int k = (i >> 2 & 1) * 170 + j; - int l = (i >> 1 & 1) * 170 + j; - int i1 = (i >> 0 & 1) * 170 + j; - - - if (i == 6) - { - k += 85; - } - - - if (par1GameSettings.anaglyph) - { - int j1 = (k * 30 + l * 59 + i1 * 11) / 100; - int k1 = (k * 30 + l * 70) / 100; - int l1 = (k * 30 + i1 * 70) / 100; - k = j1; - l = k1; - i1 = l1; - } - - - if (i >= 16) - { - k /= 4; - l /= 4; - i1 /= 4; - } - - - this.colorCode[i] = (k & 255) << 16 | (l & 255) << 8 | i1 & 255; - } - - - this.readGlyphSizes(); - } - - - public void onResourceManagerReload (ResourceManager par1ResourceManager) - { - this.func_111272_d(); - } - - - private void func_111272_d () - { - BufferedImage bufferedimage; - - - try - { - bufferedimage = ImageIO.read(Minecraft.getMinecraft().getResourceManager().getResource(this.field_111273_g).getInputStream()); - } - catch (IOException ioexception) - { - throw new RuntimeException(ioexception); - } - - - int i = bufferedimage.getWidth(); - int j = bufferedimage.getHeight(); - int[] aint = new int[i * j]; - bufferedimage.getRGB(0, 0, i, j, aint, 0, i); - int k = j / 16; - int l = i / 16; - byte b0 = 1; - float f = 8.0F / (float) l; - int i1 = 0; - - - while (i1 < 256) - { - int j1 = i1 % 16; - int k1 = i1 / 16; - - - if (i1 == 32) - { - this.charWidth[i1] = 3 + b0; - } - - - int l1 = l - 1; - - - while (true) - { - if (l1 >= 0) - { - int i2 = j1 * l + l1; - boolean flag = true; - - - for (int j2 = 0; j2 < k && flag; ++j2) - { - int k2 = (k1 * l + j2) * i; - - - if ((aint[i2 + k2] >> 24 & 255) != 0) - { - flag = false; - } - } - - - if (flag) - { - --l1; - continue; - } - } - - - ++l1; - this.charWidth[i1] = (int) (0.5D + (double) ((float) l1 * f)) + b0; - ++i1; - break; - } - } - } - - - private void readGlyphSizes () - { - try - { - InputStream inputstream = Minecraft.getMinecraft().getResourceManager().getResource(new ResourceLocation("font/glyph_sizes.bin")).getInputStream(); - inputstream.read(this.glyphWidth); - } - catch (IOException ioexception) - { - throw new RuntimeException(ioexception); - } - } - - - /** - * Pick how to render a single character and return the width used. - */ - private float renderCharAtPos (int par1, char par2, boolean par3) - { - return par2 == 32 ? 4.0F : (par1 > 0 && !this.unicodeFlag ? this.renderDefaultChar(par1 + 32, par3) : this.renderUnicodeChar(par2, par3)); - } - - - /** - * Render a single character with the default.png font at current (posX,posY) location... - */ - private float renderDefaultChar (int par1, boolean par2) - { - float f = (float) (par1 % 16 * 8); - float f1 = (float) (par1 / 16 * 8); - float f2 = par2 ? 1.0F : 0.0F; - this.renderEngine.bindTexture(this.field_111273_g); - float f3 = (float) this.charWidth[par1] - 0.01F; - GL11.glBegin(GL11.GL_TRIANGLE_STRIP); - GL11.glTexCoord2f(f / 128.0F, f1 / 128.0F); - GL11.glVertex3f(this.posX + f2, this.posY, 0.0F); - GL11.glTexCoord2f(f / 128.0F, (f1 + 7.99F) / 128.0F); - GL11.glVertex3f(this.posX - f2, this.posY + 7.99F, 0.0F); - GL11.glTexCoord2f((f + f3 - 1.0F) / 128.0F, f1 / 128.0F); - GL11.glVertex3f(this.posX + f3 - 1.0F + f2, this.posY, 0.0F); - GL11.glTexCoord2f((f + f3 - 1.0F) / 128.0F, (f1 + 7.99F) / 128.0F); - GL11.glVertex3f(this.posX + f3 - 1.0F - f2, this.posY + 7.99F, 0.0F); - GL11.glEnd(); - return (float) this.charWidth[par1]; - } - - - private ResourceLocation func_111271_a (int par1) - { - if (field_111274_c[par1] == null) - { - field_111274_c[par1] = new ResourceLocation(String.format("textures/font/unicode_page_%02x.png", new Object[] { Integer.valueOf(par1) })); - } - - - return field_111274_c[par1]; - } - - - /** - * Load one of the /font/glyph_XX.png into a new GL texture and store the texture ID in glyphTextureName array. - */ - private void loadGlyphTexture (int par1) - { - this.renderEngine.bindTexture(this.func_111271_a(par1)); - } - - - /** - * Render a single Unicode character at current (posX,posY) location using one of the /font/glyph_XX.png files... - */ - private float renderUnicodeChar (char par1, boolean par2) - { - if (this.glyphWidth[par1] == 0) - { - return 0.0F; - } - else - { - int i = par1 / 256; - this.loadGlyphTexture(i); - int j = this.glyphWidth[par1] >>> 4; - int k = this.glyphWidth[par1] & 15; - float f = (float) j; - float f1 = (float) (k + 1); - float f2 = (float) (par1 % 16 * 16) + f; - float f3 = (float) ((par1 & 255) / 16 * 16); - float f4 = f1 - f - 0.02F; - float f5 = par2 ? 1.0F : 0.0F; - GL11.glBegin(GL11.GL_TRIANGLE_STRIP); - GL11.glTexCoord2f(f2 / 256.0F, f3 / 256.0F); - GL11.glVertex3f(this.posX + f5, this.posY, 0.0F); - GL11.glTexCoord2f(f2 / 256.0F, (f3 + 15.98F) / 256.0F); - GL11.glVertex3f(this.posX - f5, this.posY + 7.99F, 0.0F); - GL11.glTexCoord2f((f2 + f4) / 256.0F, f3 / 256.0F); - GL11.glVertex3f(this.posX + f4 / 2.0F + f5, this.posY, 0.0F); - GL11.glTexCoord2f((f2 + f4) / 256.0F, (f3 + 15.98F) / 256.0F); - GL11.glVertex3f(this.posX + f4 / 2.0F - f5, this.posY + 7.99F, 0.0F); - GL11.glEnd(); - return (f1 - f) / 2.0F + 1.0F; - } - } - - - /** - * Draws the specified string with a shadow. - */ - public int drawStringWithShadow (String par1Str, int par2, int par3, int par4) - { - return this.drawString(par1Str, par2, par3, par4, true); - } - - - /** - * Draws the specified string. - */ - public int drawString (String par1Str, int par2, int par3, int par4) - { - return this.drawString(par1Str, par2, par3, par4, false); - } - - - /** - * Draws the specified string. Args: string, x, y, color, dropShadow - */ - public int drawString (String par1Str, int par2, int par3, int par4, boolean par5) - { - this.resetStyles(); - - - if (this.bidiFlag) - { - par1Str = this.bidiReorder(par1Str); - } - - - int l; - - - if (par5) - { - l = this.renderString(par1Str, par2 + 1, par3 + 1, par4, true); - l = Math.max(l, this.renderString(par1Str, par2, par3, par4, false)); - } - else - { - l = this.renderString(par1Str, par2, par3, par4, false); - } - - - return l; - } - - - /** - * Apply Unicode Bidirectional Algorithm to string and return a new possibly reordered string for visual rendering. - */ - private String bidiReorder (String par1Str) - { - if (par1Str != null && Bidi.requiresBidi(par1Str.toCharArray(), 0, par1Str.length())) - { - Bidi bidi = new Bidi(par1Str, -2); - byte[] abyte = new byte[bidi.getRunCount()]; - String[] astring = new String[abyte.length]; - int i; - - - for (int j = 0; j < abyte.length; ++j) - { - int k = bidi.getRunStart(j); - i = bidi.getRunLimit(j); - int l = bidi.getRunLevel(j); - String s1 = par1Str.substring(k, i); - abyte[j] = (byte) l; - astring[j] = s1; - } - - - String[] astring1 = (String[]) astring.clone(); - Bidi.reorderVisually(abyte, 0, astring, 0, abyte.length); - StringBuilder stringbuilder = new StringBuilder(); - i = 0; - - - while (i < astring.length) - { - byte b0 = abyte[i]; - int i1 = 0; - - - while (true) - { - if (i1 < astring1.length) - { - if (!astring1[i1].equals(astring[i])) - { - ++i1; - continue; - } - - - b0 = abyte[i1]; - } - - - if ((b0 & 1) == 0) - { - stringbuilder.append(astring[i]); - } - else - { - for (i1 = astring[i].length() - 1; i1 >= 0; --i1) - { - char c0 = astring[i].charAt(i1); - - - if (c0 == 40) - { - c0 = 41; - } - else if (c0 == 41) - { - c0 = 40; - } - - - stringbuilder.append(c0); - } - } - - - ++i; - break; - } - } - - - return stringbuilder.toString(); - } - else - { - return par1Str; - } - } - - - /** - * Reset all style flag fields in the class to false; called at the start of string rendering - */ - private void resetStyles () - { - this.randomStyle = false; - this.boldStyle = false; - this.italicStyle = false; - this.underlineStyle = false; - this.strikethroughStyle = false; - } - - - /** - * Render a single line string at the current (posX,posY) and update posX - */ - private void renderStringAtPos (String par1Str, boolean par2) - { - for (int i = 0; i < par1Str.length(); ++i) - { - char c0 = par1Str.charAt(i); - int j; - int k; - - - if (c0 == 167 && i + 1 < par1Str.length()) - { - j = "0123456789abcdefklmnor".indexOf(par1Str.toLowerCase().charAt(i + 1)); - - - if (j < 16) - { - this.randomStyle = false; - this.boldStyle = false; - this.strikethroughStyle = false; - this.underlineStyle = false; - this.italicStyle = false; - - - if (j < 0 || j > 15) - { - j = 15; - } - - - if (par2) - { - j += 16; - } - - - k = this.colorCode[j]; - this.textColor = k; - GL11.glColor4f((float) (k >> 16) / 255.0F, (float) (k >> 8 & 255) / 255.0F, (float) (k & 255) / 255.0F, this.alpha); - } - else if (j == 16) - { - this.randomStyle = true; - } - else if (j == 17) - { - this.boldStyle = true; - } - else if (j == 18) - { - this.strikethroughStyle = true; - } - else if (j == 19) - { - this.underlineStyle = true; - } - else if (j == 20) - { - this.italicStyle = true; - } - else if (j == 21) - { - this.randomStyle = false; - this.boldStyle = false; - this.strikethroughStyle = false; - this.underlineStyle = false; - this.italicStyle = false; - GL11.glColor4f(this.red, this.blue, this.green, this.alpha); - } - - - ++i; - } - else - { - j = ChatAllowedCharacters.allowedCharacters.indexOf(c0); - - - if (this.randomStyle && j > 0) - { - do - { - k = this.fontRandom.nextInt(ChatAllowedCharacters.allowedCharacters.length()); - } while (this.charWidth[j + 32] != this.charWidth[k + 32]); - - - j = k; - } - - - float f = this.unicodeFlag ? 0.5F : 1.0F; - boolean flag1 = (j <= 0 || this.unicodeFlag) && par2; - - - if (flag1) - { - this.posX -= f; - this.posY -= f; - } - - - float f1 = this.renderCharAtPos(j, c0, this.italicStyle); - - - if (flag1) - { - this.posX += f; - this.posY += f; - } - - - if (this.boldStyle) - { - this.posX += f; - - - if (flag1) - { - this.posX -= f; - this.posY -= f; - } - - - this.renderCharAtPos(j, c0, this.italicStyle); - this.posX -= f; - - - if (flag1) - { - this.posX += f; - this.posY += f; - } - - - ++f1; - } - - - Tessellator tessellator; - - - if (this.strikethroughStyle) - { - tessellator = Tessellator.instance; - GL11.glDisable(GL11.GL_TEXTURE_2D); - tessellator.startDrawingQuads(); - tessellator.addVertex((double) this.posX, (double) (this.posY + (float) (this.FONT_HEIGHT / 2)), 0.0D); - tessellator.addVertex((double) (this.posX + f1), (double) (this.posY + (float) (this.FONT_HEIGHT / 2)), 0.0D); - tessellator.addVertex((double) (this.posX + f1), (double) (this.posY + (float) (this.FONT_HEIGHT / 2) - 1.0F), 0.0D); - tessellator.addVertex((double) this.posX, (double) (this.posY + (float) (this.FONT_HEIGHT / 2) - 1.0F), 0.0D); - tessellator.draw(); - GL11.glEnable(GL11.GL_TEXTURE_2D); - } - - - if (this.underlineStyle) - { - tessellator = Tessellator.instance; - GL11.glDisable(GL11.GL_TEXTURE_2D); - tessellator.startDrawingQuads(); - int l = this.underlineStyle ? -1 : 0; - tessellator.addVertex((double) (this.posX + (float) l), (double) (this.posY + (float) this.FONT_HEIGHT), 0.0D); - tessellator.addVertex((double) (this.posX + f1), (double) (this.posY + (float) this.FONT_HEIGHT), 0.0D); - tessellator.addVertex((double) (this.posX + f1), (double) (this.posY + (float) this.FONT_HEIGHT - 1.0F), 0.0D); - tessellator.addVertex((double) (this.posX + (float) l), (double) (this.posY + (float) this.FONT_HEIGHT - 1.0F), 0.0D); - tessellator.draw(); - GL11.glEnable(GL11.GL_TEXTURE_2D); - } - - - this.posX += (float) ((int) f1); - } - } - } - - - /** - * Render string either left or right aligned depending on bidiFlag - */ - private int renderStringAligned (String par1Str, int par2, int par3, int par4, int par5, boolean par6) - { - if (this.bidiFlag) - { - par1Str = this.bidiReorder(par1Str); - int i1 = this.getStringWidth(par1Str); - par2 = par2 + par4 - i1; - } - - - return this.renderString(par1Str, par2, par3, par5, par6); - } - - - /** - * Render single line string by setting GL color, current (posX,posY), and calling renderStringAtPos() - */ - private int renderString (String par1Str, int par2, int par3, int par4, boolean par5) - { - if (par1Str == null) - { - return 0; - } - else - { - if ((par4 & -67108864) == 0) - { - par4 |= -16777216; - } - - - if (par5) - { - par4 = (par4 & 16579836) >> 2 | par4 & -16777216; - } - - - this.red = (float) (par4 >> 16 & 255) / 255.0F; - this.blue = (float) (par4 >> 8 & 255) / 255.0F; - this.green = (float) (par4 & 255) / 255.0F; - this.alpha = (float) (par4 >> 24 & 255) / 255.0F; - GL11.glColor4f(this.red, this.blue, this.green, this.alpha); - this.posX = (float) par2; - this.posY = (float) par3; - this.renderStringAtPos(par1Str, par5); - return (int) this.posX; - } - } - - - /** - * Returns the width of this string. Equivalent of FontMetrics.stringWidth(String s). - */ - public int getStringWidth (String par1Str) - { - if (par1Str == null) - { - return 0; - } - else - { - int i = 0; - boolean flag = false; - - - for (int j = 0; j < par1Str.length(); ++j) - { - char c0 = par1Str.charAt(j); - int k = this.getCharWidth(c0); - - - if (k < 0 && j < par1Str.length() - 1) - { - ++j; - c0 = par1Str.charAt(j); - - - if (c0 != 108 && c0 != 76) - { - if (c0 == 114 || c0 == 82) - { - flag = false; - } - } - else - { - flag = true; - } - - - k = 0; - } - - - i += k; - - - if (flag) - { - ++i; - } - } - - - return i; - } - } - - - /** - * Returns the width of this character as rendered. - */ - public int getCharWidth (char par1) - { - if (par1 == 167) - { - return -1; - } - else if (par1 == 32) - { - return 4; - } - else - { - int i = ChatAllowedCharacters.allowedCharacters.indexOf(par1); - - - if (i >= 0 && !this.unicodeFlag) - { - return this.charWidth[i + 32]; - } - else if (this.glyphWidth[par1] != 0) - { - int j = this.glyphWidth[par1] >>> 4; - int k = this.glyphWidth[par1] & 15; - - - if (k > 7) - { - k = 15; - j = 0; - } - - - ++k; - return (k - j) / 2 + 1; - } - else - { - return 0; - } - } - } - - - /** - * Trims a string to fit a specified Width. - */ - public String trimStringToWidth (String par1Str, int par2) - { - return this.trimStringToWidth(par1Str, par2, false); - } - - - /** - * Trims a string to a specified width, and will reverse it if par3 is set. - */ - public String trimStringToWidth (String par1Str, int par2, boolean par3) - { - StringBuilder stringbuilder = new StringBuilder(); - int j = 0; - int k = par3 ? par1Str.length() - 1 : 0; - int l = par3 ? -1 : 1; - boolean flag1 = false; - boolean flag2 = false; - - - for (int i1 = k; i1 >= 0 && i1 < par1Str.length() && j < par2; i1 += l) - { - char c0 = par1Str.charAt(i1); - int j1 = this.getCharWidth(c0); - - - if (flag1) - { - flag1 = false; - - - if (c0 != 108 && c0 != 76) - { - if (c0 == 114 || c0 == 82) - { - flag2 = false; - } - } - else - { - flag2 = true; - } - } - else if (j1 < 0) - { - flag1 = true; - } - else - { - j += j1; - - - if (flag2) - { - ++j; - } - } - - - if (j > par2) - { - break; - } - - - if (par3) - { - stringbuilder.insert(0, c0); - } - else - { - stringbuilder.append(c0); - } - } - - - return stringbuilder.toString(); - } - - - /** - * Remove all newline characters from the end of the string - */ - private String trimStringNewline (String par1Str) - { - while (par1Str != null && par1Str.endsWith("\n")) - { - par1Str = par1Str.substring(0, par1Str.length() - 1); - } - - - return par1Str; - } - - - /** - * Splits and draws a String with wordwrap (maximum length is parameter k) - */ - public void drawSplitString (String par1Str, int par2, int par3, int par4, int par5) - { - this.resetStyles(); - this.textColor = par5; - par1Str = this.trimStringNewline(par1Str); - this.renderSplitString(par1Str, par2, par3, par4, false); - } - - - /** - * Perform actual work of rendering a multi-line string with wordwrap and with darker drop shadow color if flag is - * set - */ - private void renderSplitString (String par1Str, int par2, int par3, int par4, boolean par5) - { - List list = this.listFormattedStringToWidth(par1Str, par4); - - - for (Iterator iterator = list.iterator(); iterator.hasNext(); par3 += this.FONT_HEIGHT) - { - String s1 = (String) iterator.next(); - this.renderStringAligned(s1, par2, par3, par4, this.textColor, par5); - } - } - - - /** - * Returns the width of the wordwrapped String (maximum length is parameter k) - */ - public int splitStringWidth (String par1Str, int par2) - { - return this.FONT_HEIGHT * this.listFormattedStringToWidth(par1Str, par2).size(); - } - - - /** - * Set unicodeFlag controlling whether strings should be rendered with Unicode fonts instead of the default.png - * font. - */ - public void setUnicodeFlag (boolean par1) - { - this.unicodeFlag = par1; - } - - - /** - * Get unicodeFlag controlling whether strings should be rendered with Unicode fonts instead of the default.png - * font. - */ - public boolean getUnicodeFlag () - { - return this.unicodeFlag; - } - - - /** - * Set bidiFlag to control if the Unicode Bidirectional Algorithm should be run before rendering any string. - */ - public void setBidiFlag (boolean par1) - { - this.bidiFlag = par1; - } - - - /** - * Breaks a string into a list of pieces that will fit a specified width. - */ - public List listFormattedStringToWidth (String par1Str, int par2) - { - return Arrays.asList(this.wrapFormattedStringToWidth(par1Str, par2).split("\n")); - } - - - /** - * Inserts newline and formatting into a string to wrap it within the specified width. - */ - String wrapFormattedStringToWidth (String par1Str, int par2) - { - int j = this.sizeStringToWidth(par1Str, par2); - - - if (par1Str.length() <= j) - { - return par1Str; - } - else - { - String s1 = par1Str.substring(0, j); - char c0 = par1Str.charAt(j); - boolean flag = c0 == 32 || c0 == 10; - String s2 = getFormatFromString(s1) + par1Str.substring(j + (flag ? 1 : 0)); - return s1 + "\n" + this.wrapFormattedStringToWidth(s2, par2); - } - } - - - /** - * Determines how many characters from the string will fit into the specified width. - */ - private int sizeStringToWidth (String par1Str, int par2) - { - int j = par1Str.length(); - int k = 0; - int l = 0; - int i1 = -1; - - - for (boolean flag = false; l < j; ++l) - { - char c0 = par1Str.charAt(l); - - - switch (c0) - { - case 10: - --l; - break; - case 167: - if (l < j - 1) - { - ++l; - char c1 = par1Str.charAt(l); - - - if (c1 != 108 && c1 != 76) - { - if (c1 == 114 || c1 == 82 || isFormatColor(c1)) - { - flag = false; - } - } - else - { - flag = true; - } - } - - - break; - case 32: - i1 = l; - default: - k += this.getCharWidth(c0); - - - if (flag) - { - ++k; - } - } - - - if (c0 == 10) - { - ++l; - i1 = l; - break; - } - - - if (k > par2) - { - break; - } - } - - - return l != j && i1 != -1 && i1 < l ? i1 : l; - } - - - /** - * Checks if the char code is a hexadecimal character, used to set colour. - */ - private static boolean isFormatColor (char par0) - { - return par0 >= 48 && par0 <= 57 || par0 >= 97 && par0 <= 102 || par0 >= 65 && par0 <= 70; - } - - - /** - * Checks if the char code is O-K...lLrRk-o... used to set special formatting. - */ - private static boolean isFormatSpecial (char par0) - { - return par0 >= 107 && par0 <= 111 || par0 >= 75 && par0 <= 79 || par0 == 114 || par0 == 82; - } - - - /** - * Digests a string for nonprinting formatting characters then returns a string containing only that formatting. - */ - private static String getFormatFromString (String par0Str) - { - String s1 = ""; - int i = -1; - int j = par0Str.length(); - - - while ((i = par0Str.indexOf(167, i + 1)) != -1) - { - if (i < j - 1) - { - char c0 = par0Str.charAt(i + 1); - - - if (isFormatColor(c0)) - { - s1 = "\u00a7" + c0; - } - else if (isFormatSpecial(c0)) - { - s1 = s1 + "\u00a7" + c0; - } - } - } - - - return s1; - } - - - /** - * Get bidiFlag that controls if the Unicode Bidirectional Algorithm should be run before rendering any string - */ - public boolean getBidiFlag () - { - return this.bidiFlag; - } - - -} diff --git a/BM_src/WayofTime/alchemicalWizardry/client/TurnPageButton.java b/BM_src/WayofTime/alchemicalWizardry/client/TurnPageButton.java deleted file mode 100644 index ffd079b8..00000000 --- a/BM_src/WayofTime/alchemicalWizardry/client/TurnPageButton.java +++ /dev/null @@ -1,65 +0,0 @@ -package WayofTime.alchemicalWizardry.client; - - - -import net.minecraft.client.Minecraft; -import net.minecraft.client.gui.GuiButton; -import net.minecraft.util.ResourceLocation; - - -import org.lwjgl.opengl.GL11; - - -import cpw.mods.fml.relauncher.Side; -import cpw.mods.fml.relauncher.SideOnly; - - -@SideOnly(Side.CLIENT) -public class TurnPageButton extends GuiButton -{ - /** - * True for pointing right (next page), false for pointing left (previous page). - */ - private final boolean nextPage; - - - public TurnPageButton(int par1, int par2, int par3, boolean par4) - { - super(par1, par2, par3, 23, 13, ""); - this.nextPage = par4; - } - - - private static final ResourceLocation background = new ResourceLocation("alchemicalwizardry", "textures/gui/bookleft.png"); - - - /** - * Draws this button to the screen. - */ - public void drawButton (Minecraft par1Minecraft, int par2, int par3) - { - if (this.drawButton) - { - boolean var4 = par2 >= this.xPosition && par3 >= this.yPosition && par2 < this.xPosition + this.width && par3 < this.yPosition + this.height; - GL11.glColor4f(1.0F, 1.0F, 1.0F, 1.0F); - par1Minecraft.getTextureManager().bindTexture(background); - int var5 = 0; - int var6 = 192; - - - if (var4) - { - var5 += 23; - } - - - if (!this.nextPage) - { - var6 += 13; - } - - - this.drawTexturedModalRect(this.xPosition, this.yPosition, var5, var6, 23, 13); - } - } -} diff --git a/BM_src/WayofTime/alchemicalWizardry/client/book/pages/BlankPage.java b/BM_src/WayofTime/alchemicalWizardry/client/book/pages/BlankPage.java deleted file mode 100644 index 4209a3dc..00000000 --- a/BM_src/WayofTime/alchemicalWizardry/client/book/pages/BlankPage.java +++ /dev/null @@ -1,18 +0,0 @@ -package WayofTime.alchemicalWizardry.client.book.pages; - -import org.w3c.dom.Element; - -public class BlankPage extends BookPage -{ - - @Override - public void readPageFromXML (Element element) - { - } - - @Override - public void renderContentLayer (int localwidth, int localheight) - { - } - -} diff --git a/BM_src/WayofTime/alchemicalWizardry/client/book/pages/BookPage.java b/BM_src/WayofTime/alchemicalWizardry/client/book/pages/BookPage.java deleted file mode 100644 index c4e9f52e..00000000 --- a/BM_src/WayofTime/alchemicalWizardry/client/book/pages/BookPage.java +++ /dev/null @@ -1,30 +0,0 @@ -package WayofTime.alchemicalWizardry.client.book.pages; - -import org.w3c.dom.Element; - -import WayofTime.alchemicalWizardry.client.GuiManual; - - -public abstract class BookPage -{ - protected GuiManual manual; - protected int side; - - - public void init (GuiManual manual, int side) - { - this.manual = manual; - this.side = side; - } - - - public abstract void readPageFromXML (Element element); - - - public void renderBackgroundLayer (int localwidth, int localheight) - { - } - - - public abstract void renderContentLayer (int localwidth, int localheight); -} diff --git a/BM_src/WayofTime/alchemicalWizardry/client/book/pages/ContentsTablePage.java b/BM_src/WayofTime/alchemicalWizardry/client/book/pages/ContentsTablePage.java deleted file mode 100644 index 2c7bda87..00000000 --- a/BM_src/WayofTime/alchemicalWizardry/client/book/pages/ContentsTablePage.java +++ /dev/null @@ -1,57 +0,0 @@ -package WayofTime.alchemicalWizardry.client.book.pages; - -import net.minecraft.client.renderer.RenderHelper; -import net.minecraft.item.ItemStack; - -import org.lwjgl.opengl.GL11; -import org.lwjgl.opengl.GL12; -import org.w3c.dom.Element; -import org.w3c.dom.NodeList; - -import WayofTime.alchemicalWizardry.client.BMClientRegistry; - -public class ContentsTablePage extends BookPage -{ - String text; - String[] iconText; - ItemStack[] icons; - - @Override - public void readPageFromXML (Element element) - { - NodeList nodes = element.getElementsByTagName("text"); - if (nodes != null) - text = nodes.item(0).getTextContent(); - - nodes = element.getElementsByTagName("link"); - iconText = new String[nodes.getLength()]; - icons = new ItemStack[nodes.getLength()]; - for (int i = 0; i < nodes.getLength(); i++) - { - NodeList children = nodes.item(i).getChildNodes(); - iconText[i] = children.item(1).getTextContent(); - icons[i] = BMClientRegistry.getManualIcon(children.item(3).getTextContent()); - } - } - - @Override - public void renderContentLayer (int localWidth, int localHeight) - { - if (text != null) - manual.fonts.drawString("\u00a7n" + text, localWidth + 25 + manual.fonts.getStringWidth(text) / 2, localHeight + 4, 0); - GL11.glEnable(GL12.GL_RESCALE_NORMAL); - RenderHelper.enableGUIStandardItemLighting(); - manual.renderitem.zLevel = 100; - for (int i = 0; i < icons.length; i++) - { - manual.renderitem.renderItemIntoGUI(manual.fonts, manual.getMC().renderEngine, icons[i], localWidth + 16, localHeight + 18 * i + 18); - int yOffset = 18; - if (iconText[i].length() > 40) - yOffset = 13; - manual.fonts.drawString(iconText[i], localWidth + 38, localHeight + 18 * i + yOffset, 0); - } - manual.renderitem.zLevel = 0; - RenderHelper.disableStandardItemLighting(); - GL11.glDisable(GL12.GL_RESCALE_NORMAL); - } -} diff --git a/BM_src/WayofTime/alchemicalWizardry/client/book/pages/CraftingPage.java b/BM_src/WayofTime/alchemicalWizardry/client/book/pages/CraftingPage.java deleted file mode 100644 index 9513eac0..00000000 --- a/BM_src/WayofTime/alchemicalWizardry/client/book/pages/CraftingPage.java +++ /dev/null @@ -1,105 +0,0 @@ -package WayofTime.alchemicalWizardry.client.book.pages; - -import net.minecraft.client.renderer.RenderHelper; -import net.minecraft.item.ItemStack; -import net.minecraft.util.ResourceLocation; - -import org.lwjgl.opengl.GL11; -import org.lwjgl.opengl.GL12; -import org.w3c.dom.Element; -import org.w3c.dom.NodeList; - -import WayofTime.alchemicalWizardry.client.BMClientRegistry; - -public class CraftingPage extends BookPage -{ - String text; - String size; - ItemStack[] icons; - - @Override - public void readPageFromXML (Element element) - { - NodeList nodes = element.getElementsByTagName("text"); - if (nodes != null) - text = nodes.item(0).getTextContent(); - - nodes = element.getElementsByTagName("name"); - if (nodes != null) - icons = BMClientRegistry.getRecipeIcons(nodes.item(0).getTextContent()); - - nodes = element.getElementsByTagName("size"); - if (nodes != null) - size = nodes.item(0).getTextContent(); - } - - @Override - public void renderContentLayer (int localWidth, int localHeight) - { - if (size.equals("two")) - drawCraftingPage(text, icons, 2, localWidth, localHeight + 12); - if (size.equals("three")) - drawCraftingPage(text, icons, 3, localWidth + (side != 1 ? 6 : 0), localHeight + 12); - } - - public void drawCraftingPage (String info, ItemStack[] icons, int recipeSize, int localWidth, int localHeight) - { - if (info != null) - manual.fonts.drawString("\u00a7n" + info, localWidth + 50, localHeight + 4, 0); - - GL11.glScalef(2f, 2f, 2f); - GL11.glEnable(GL12.GL_RESCALE_NORMAL); - RenderHelper.enableGUIStandardItemLighting(); - manual.renderitem.zLevel = 100; - - if (recipeSize == 2) - { - manual.renderitem.renderItemAndEffectIntoGUI(manual.fonts, manual.getMC().renderEngine, icons[0], (localWidth + 126) / 2, (localHeight + 68) / 2); - if (icons[0].stackSize > 1) - manual.renderitem.renderItemOverlayIntoGUI(manual.fonts, manual.getMC().renderEngine, icons[0], (localWidth + 126) / 2, (localHeight + 68) / 2, String.valueOf(icons[0].stackSize)); - for (int i = 0; i < icons.length - 1; i++) - { - if (icons[i + 1] != null) - manual.renderitem.renderItemAndEffectIntoGUI(manual.fonts, manual.getMC().renderEngine, icons[i + 1], (localWidth + 14 + 36 * (i % 2)) / 2, (localHeight + 36 * (i / 2) + 52) / 2); - } - } - - if (recipeSize == 3) - { - manual.renderitem.renderItemAndEffectIntoGUI(manual.fonts, manual.getMC().renderEngine, icons[0], (localWidth + 138) / 2, (localHeight + 70) / 2); - if (icons[0].stackSize > 1) - manual.renderitem.renderItemOverlayIntoGUI(manual.fonts, manual.getMC().renderEngine, icons[0], (localWidth + 126) / 2, (localHeight + 68) / 2, String.valueOf(icons[0].stackSize)); - for (int i = 0; i < icons.length - 1; i++) - { - if (icons[i + 1] != null) - manual.renderitem.renderItemAndEffectIntoGUI(manual.fonts, manual.getMC().renderEngine, icons[i + 1], (localWidth - 2 + 36 * (i % 3)) / 2, (localHeight + 36 * (i / 3) + 34) / 2); - } - } - - manual.renderitem.zLevel = 0; - GL11.glScalef(0.5F, 0.5F, 0.5F); - RenderHelper.disableStandardItemLighting(); - GL11.glDisable(GL12.GL_RESCALE_NORMAL); - } - - public void renderBackgroundLayer (int localwidth, int localheight) - { - if (size.equals("two")) - drawBackground(2, localwidth, localheight + 12); - - if (size.equals("three")) - drawBackground(3, localwidth + (side != 1 ? 6 : 0), localheight + 12); - } - - private static final ResourceLocation background = new ResourceLocation("alchemicalwizardry", "textures/gui/bookcrafting.png"); - - public void drawBackground (int size, int localWidth, int localHeight) - { - manual.getMC().getTextureManager().bindTexture(background); - if (size == 2) - manual.drawTexturedModalRect(localWidth + 8, localHeight + 46, 0, 116, 154, 78); - if (size == 3) - manual.drawTexturedModalRect(localWidth - 8, localHeight + 28, 0, 0, 183, 114); - } - -} diff --git a/BM_src/WayofTime/alchemicalWizardry/client/book/pages/FurnacePage.java b/BM_src/WayofTime/alchemicalWizardry/client/book/pages/FurnacePage.java deleted file mode 100644 index 71224289..00000000 --- a/BM_src/WayofTime/alchemicalWizardry/client/book/pages/FurnacePage.java +++ /dev/null @@ -1,62 +0,0 @@ -package WayofTime.alchemicalWizardry.client.book.pages; - -import net.minecraft.client.renderer.RenderHelper; -import net.minecraft.item.ItemStack; -import net.minecraft.util.ResourceLocation; - -import org.lwjgl.opengl.GL11; -import org.lwjgl.opengl.GL12; -import org.w3c.dom.Element; -import org.w3c.dom.NodeList; - -import WayofTime.alchemicalWizardry.client.BMClientRegistry; - -public class FurnacePage extends BookPage -{ - String text; - ItemStack[] icons; - - @Override - public void readPageFromXML (Element element) - { - NodeList nodes = element.getElementsByTagName("text"); - if (nodes != null) - text = nodes.item(0).getTextContent(); - - nodes = element.getElementsByTagName("recipe"); - if (nodes != null) - icons = BMClientRegistry.getRecipeIcons(nodes.item(0).getTextContent()); - } - - @Override - public void renderContentLayer (int localWidth, int localHeight) - { - if (text != null) - manual.fonts.drawString("\u00a7n" + text, localWidth + 50, localHeight + 4, 0); - - GL11.glScalef(2f, 2f, 2f); - GL11.glEnable(GL12.GL_RESCALE_NORMAL); - RenderHelper.enableGUIStandardItemLighting(); - manual.renderitem.zLevel = 100; - - manual.renderitem.renderItemAndEffectIntoGUI(manual.fonts, manual.getMC().renderEngine, BMClientRegistry.getManualIcon("coal"), (localWidth + 38) / 2, (localHeight + 110) / 2); - manual.renderitem.renderItemAndEffectIntoGUI(manual.fonts, manual.getMC().renderEngine, icons[0], (localWidth + 106) / 2, (localHeight + 74) / 2); - manual.renderitem.renderItemAndEffectIntoGUI(manual.fonts, manual.getMC().renderEngine, icons[1], (localWidth + 38) / 2, (localHeight + 38) / 2); - - if (icons[0].stackSize > 1) - manual.renderitem.renderItemOverlayIntoGUI(manual.fonts, manual.getMC().renderEngine, icons[0], (localWidth + 106) / 2, (localHeight + 74) / 2, String.valueOf(icons[0].stackSize)); - - manual.renderitem.zLevel = 0; - GL11.glScalef(0.5F, 0.5F, 0.5F); - RenderHelper.disableStandardItemLighting(); - GL11.glDisable(GL12.GL_RESCALE_NORMAL); - } - - private static final ResourceLocation background = new ResourceLocation("alchemicalWizardry", "textures/gui/bookfurnace.png"); - - public void renderBackgroundLayer (int localWidth, int localHeight) - { - manual.getMC().getTextureManager().bindTexture(background); - manual.drawTexturedModalRect(localWidth + 32, localHeight + 32, 0, 0, 111, 114); - } -} diff --git a/BM_src/WayofTime/alchemicalWizardry/client/book/pages/PicturePage.java b/BM_src/WayofTime/alchemicalWizardry/client/book/pages/PicturePage.java deleted file mode 100644 index 2a7d78de..00000000 --- a/BM_src/WayofTime/alchemicalWizardry/client/book/pages/PicturePage.java +++ /dev/null @@ -1,41 +0,0 @@ -package WayofTime.alchemicalWizardry.client.book.pages; - -import net.minecraft.util.ResourceLocation; - -import org.w3c.dom.Element; -import org.w3c.dom.NodeList; - -public class PicturePage extends BookPage -{ - String text; - String location; - - @Override - public void readPageFromXML (Element element) - { - NodeList nodes = element.getElementsByTagName("text"); - if (nodes != null) - text = nodes.item(0).getTextContent(); - - nodes = element.getElementsByTagName("location"); - if (nodes != null) - location = nodes.item(0).getTextContent(); - - background = new ResourceLocation(location); - } - - @Override - public void renderContentLayer (int localWidth, int localHeight) - { - manual.fonts.drawSplitString(text, localWidth + 8, localHeight, 178, 0); - } - - ResourceLocation background; - - public void renderBackgroundLayer (int localWidth, int localHeight) - { - manual.getMC().getTextureManager().bindTexture(background); - //manual.getMC().renderEngine.bindTexture(location); - manual.drawTexturedModalRect(localWidth, localHeight + 12, 0, 0, 170, 144); - } -} diff --git a/BM_src/WayofTime/alchemicalWizardry/client/book/pages/SectionPage.java b/BM_src/WayofTime/alchemicalWizardry/client/book/pages/SectionPage.java deleted file mode 100644 index dbbe1c34..00000000 --- a/BM_src/WayofTime/alchemicalWizardry/client/book/pages/SectionPage.java +++ /dev/null @@ -1,29 +0,0 @@ -package WayofTime.alchemicalWizardry.client.book.pages; - -import org.w3c.dom.Element; -import org.w3c.dom.NodeList; - -public class SectionPage extends BookPage -{ - String title; - String body; - - @Override - public void readPageFromXML (Element element) - { - NodeList nodes = element.getElementsByTagName("title"); - if (nodes != null) - title = nodes.item(0).getTextContent(); - - nodes = element.getElementsByTagName("text"); - if (nodes != null) - body = nodes.item(0).getTextContent(); - } - - @Override - public void renderContentLayer (int localWidth, int localHeight) - { - manual.fonts.drawSplitString("\u00a7n" + title, localWidth + 70, localHeight + 4, 178, 0); - manual.fonts.drawSplitString(body, localWidth, localHeight + 16, 190, 0); - } -} diff --git a/BM_src/WayofTime/alchemicalWizardry/client/book/pages/SidebarPage.java b/BM_src/WayofTime/alchemicalWizardry/client/book/pages/SidebarPage.java deleted file mode 100644 index 72173f02..00000000 --- a/BM_src/WayofTime/alchemicalWizardry/client/book/pages/SidebarPage.java +++ /dev/null @@ -1,57 +0,0 @@ -package WayofTime.alchemicalWizardry.client.book.pages; - -import net.minecraft.client.renderer.RenderHelper; -import net.minecraft.item.ItemStack; - -import org.lwjgl.opengl.GL11; -import org.lwjgl.opengl.GL12; -import org.w3c.dom.Element; -import org.w3c.dom.NodeList; - -import WayofTime.alchemicalWizardry.client.BMClientRegistry; - -public class SidebarPage extends BookPage -{ - String text; - String[] iconText; - ItemStack[] icons; - - @Override - public void readPageFromXML (Element element) - { - NodeList nodes = element.getElementsByTagName("text"); - if (nodes != null) - text = nodes.item(0).getTextContent(); - - nodes = element.getElementsByTagName("item"); - iconText = new String[nodes.getLength()]; - icons = new ItemStack[nodes.getLength()]; - for (int i = 0; i < nodes.getLength(); i++) - { - NodeList children = nodes.item(i).getChildNodes(); - iconText[i] = children.item(1).getTextContent(); - icons[i] = BMClientRegistry.getManualIcon(children.item(3).getTextContent()); - } - } - - @Override - public void renderContentLayer (int localWidth, int localHeight) - { - manual.fonts.drawSplitString(text, localWidth, localHeight, 178, 0); - GL11.glEnable(GL12.GL_RESCALE_NORMAL); - RenderHelper.enableGUIStandardItemLighting(); - manual.renderitem.zLevel = 100; - int offset = text.length() / 4 + 10; - for (int i = 0; i < icons.length; i++) - { - manual.renderitem.renderItemIntoGUI(manual.fonts, manual.getMC().renderEngine, icons[i], localWidth + 8, localHeight + 18 * i + offset); - int yOffset = 39; - if (iconText[i].length() > 40) - yOffset = 34; - manual.fonts.drawSplitString(iconText[i], localWidth + 30, localHeight + 18 * i + offset, 140, 0); - } - manual.renderitem.zLevel = 0; - RenderHelper.disableStandardItemLighting(); - GL11.glDisable(GL12.GL_RESCALE_NORMAL); - } -} diff --git a/BM_src/WayofTime/alchemicalWizardry/client/book/pages/TextPage.java b/BM_src/WayofTime/alchemicalWizardry/client/book/pages/TextPage.java deleted file mode 100644 index d466f4a4..00000000 --- a/BM_src/WayofTime/alchemicalWizardry/client/book/pages/TextPage.java +++ /dev/null @@ -1,23 +0,0 @@ -package WayofTime.alchemicalWizardry.client.book.pages; - -import org.w3c.dom.Element; -import org.w3c.dom.NodeList; - -public class TextPage extends BookPage -{ - String text; - - @Override - public void readPageFromXML (Element element) - { - NodeList nodes = element.getElementsByTagName("text"); - if (nodes != null) - text = nodes.item(0).getTextContent(); - } - - @Override - public void renderContentLayer (int localWidth, int localHeight) - { - manual.fonts.drawSplitString(text, localWidth, localHeight, 178, 0); - } -} diff --git a/BM_src/WayofTime/alchemicalWizardry/client/book/pages/TitlePage.java b/BM_src/WayofTime/alchemicalWizardry/client/book/pages/TitlePage.java deleted file mode 100644 index 93ca4ea7..00000000 --- a/BM_src/WayofTime/alchemicalWizardry/client/book/pages/TitlePage.java +++ /dev/null @@ -1,23 +0,0 @@ -package WayofTime.alchemicalWizardry.client.book.pages; - -import org.w3c.dom.Element; -import org.w3c.dom.NodeList; - -public class TitlePage extends BookPage -{ - String text; - - @Override - public void readPageFromXML (Element element) - { - NodeList nodes = element.getElementsByTagName("text"); - if (nodes != null) - text = nodes.item(0).getTextContent(); - } - - @Override - public void renderContentLayer (int localWidth, int localHeight) - { - manual.fonts.drawSplitString(text, localWidth, localHeight, 178, 0); - } -} diff --git a/BM_src/WayofTime/alchemicalWizardry/common/AlchemicalWizardryEventHooks.java b/BM_src/WayofTime/alchemicalWizardry/common/AlchemicalWizardryEventHooks.java deleted file mode 100644 index fd01570b..00000000 --- a/BM_src/WayofTime/alchemicalWizardry/common/AlchemicalWizardryEventHooks.java +++ /dev/null @@ -1,357 +0,0 @@ -package WayofTime.alchemicalWizardry.common; - -import java.util.ArrayList; -import java.util.HashMap; -import java.util.Iterator; -import java.util.List; -import java.util.Map; - -import net.minecraft.entity.Entity; -import net.minecraft.entity.EntityLivingBase; -import net.minecraft.entity.IProjectile; -import net.minecraft.entity.monster.EntityZombie; -import net.minecraft.entity.player.EntityPlayer; -import net.minecraft.entity.projectile.EntityArrow; -import net.minecraft.potion.Potion; -import net.minecraft.util.AxisAlignedBB; -import net.minecraft.util.DamageSource; -import net.minecraft.util.Vec3; -import net.minecraftforge.event.ForgeSubscribe; -import net.minecraftforge.event.entity.living.EnderTeleportEvent; -import net.minecraftforge.event.entity.living.LivingAttackEvent; -import net.minecraftforge.event.entity.living.LivingEvent.LivingJumpEvent; -import net.minecraftforge.event.entity.living.LivingEvent.LivingUpdateEvent; -import WayofTime.alchemicalWizardry.AlchemicalWizardry; -import WayofTime.alchemicalWizardry.common.entity.projectile.EnergyBlastProjectile; -import WayofTime.alchemicalWizardry.common.spell.complex.effect.SpellHelper; - -public class AlchemicalWizardryEventHooks -{ - public static Map playerFlightBuff = new HashMap(); - public static Map playerBoostStepHeight = new HashMap(); - public static List playersWith1Step = new ArrayList(); - - @ForgeSubscribe - public void onLivingJumpEvent(LivingJumpEvent event) - { - if (event.entityLiving.isPotionActive(AlchemicalWizardry.customPotionBoost)) - { - int i = event.entityLiving.getActivePotionEffect(AlchemicalWizardry.customPotionBoost).getAmplifier(); - event.entityLiving.motionY += (0.1f) * (2 + i); - } - } - - @ForgeSubscribe - public void onEndermanTeleportEvent(EnderTeleportEvent event) - { - if(event.entityLiving.isPotionActive(AlchemicalWizardry.customPotionPlanarBinding) && event.isCancelable()) - { - event.setCanceled(true); - } - } - - @ForgeSubscribe - public void onEntityDamaged(LivingAttackEvent event) - { - EntityLivingBase entityAttacked = event.entityLiving; - EntityLivingBase entity = event.entityLiving; - double posX = entity.posX; - double posY = entity.posY; - double posZ = entity.posZ; - - if (entityAttacked.isPotionActive(AlchemicalWizardry.customPotionReciprocation)) - { - Entity entityAttacking = event.source.getSourceOfDamage(); - - if (entityAttacking != null && entityAttacking instanceof EntityLivingBase) - { - int i = event.entityLiving.getActivePotionEffect(AlchemicalWizardry.customPotionReciprocation).getAmplifier(); - float damageRecieve = event.ammount / 2 * (i + 1); - ((EntityLivingBase) entityAttacking).attackEntityFrom(DamageSource.generic, damageRecieve); - } - } - - if(entityAttacked.isPotionActive(AlchemicalWizardry.customPotionFlameCloak)) - { - int i = event.entityLiving.getActivePotionEffect(AlchemicalWizardry.customPotionFlameCloak).getAmplifier(); - - Entity entityAttacking = event.source.getSourceOfDamage(); - - if(entityAttacking != null && entityAttacking instanceof EntityLivingBase && !entityAttacking.isImmuneToFire() && !((EntityLivingBase)entityAttacking).isPotionActive(Potion.fireResistance)) - { - entityAttacking.attackEntityFrom(DamageSource.inFire, 2*i+2); - entityAttacking.setFire(3); - } - } - - //TODO Make this work for a different potion -// if(event.entityLiving.isPotionActive(AlchemicalWizardry.customPotionPlanarBinding) && event.isCancelable()) -// { -// if(event.ammount>event.entityLiving.getHealth()) -// { -// int i = event.entityLiving.getActivePotionEffect(AlchemicalWizardry.customPotionPlanarBinding).getAmplifier(); -// -// event.setCanceled(true); -// -// if(event.entityLiving.worldObj.rand.nextFloat()>((i+1)/6)) -// { -// event.entityLiving.removePotionEffect(AlchemicalWizardry.customPotionPlanarBinding.id); -// } -// -// for(int j=0; j<10; j++) -// { -// PacketDispatcher.sendPacketToAllAround(posX, posY, posZ, 20, entity.worldObj.provider.dimensionId, TEAltar.getParticlePacket(posX, posY, posZ, (short) 4)); -// } -// event.entityLiving.worldObj.playSoundEffect((double) ((float) posX + 0.5F), (double) ((float) posY + 0.5F), (double) ((float) posZ + 0.5F), "random.fizz", 0.5F, 2.6F + (entity.worldObj.rand.nextFloat() - entity.worldObj.rand.nextFloat()) * 0.8F); -// -// event.entityLiving.heal(20); -// } -// } - } - -// @ForgeSubscribe -// public void onFOVUpdate(FOVUpdateEvent event) -// { -// event.setResult(Result.DEFAULT); -// } - - @ForgeSubscribe - public void onEntityUpdate(LivingUpdateEvent event) - { - EntityLivingBase entityLiving = event.entityLiving; - double x = entityLiving.posX; - double y = entityLiving.posY; - double z = entityLiving.posZ; - - Vec3 blockVector = SpellHelper.getEntityBlockVector(entityLiving); - int xPos = (int)(blockVector.xCoord); - int yPos = (int)(blockVector.yCoord); - int zPos = (int)(blockVector.zCoord); - - if (entityLiving instanceof EntityPlayer && entityLiving.worldObj.isRemote) - { - EntityPlayer entityPlayer = (EntityPlayer) entityLiving; - boolean highStepListed = playersWith1Step.contains(entityPlayer.username); - boolean hasHighStep = entityPlayer.isPotionActive(AlchemicalWizardry.customPotionBoost); - - if (hasHighStep && !highStepListed) - { - playersWith1Step.add(entityPlayer.username); - } - - if (!hasHighStep && highStepListed) - { - playersWith1Step.remove(entityPlayer.username); - entityPlayer.stepHeight = 0.5F; - } - } - - if (event.entityLiving.isPotionActive(AlchemicalWizardry.customPotionDrowning)) - { - int i = event.entityLiving.getActivePotionEffect(AlchemicalWizardry.customPotionDrowning).getAmplifier(); - - if (event.entityLiving.worldObj.getWorldTime() % ((int) (20 / (i + 1))) == 0 && !event.entityLiving.isPotionActive(Potion.waterBreathing)) - { - event.entityLiving.attackEntityFrom(DamageSource.drown, 2); - event.entityLiving.hurtResistantTime = Math.min(event.entityLiving.hurtResistantTime, 20 / (i + 1)); - } - } - - if (event.entityLiving.isPotionActive(AlchemicalWizardry.customPotionBoost)) - { - int i = event.entityLiving.getActivePotionEffect(AlchemicalWizardry.customPotionBoost).getAmplifier(); - - //Testing code - List entities = SpellHelper.getEntitiesInRange(event.entity.worldObj, xPos, yPos, zPos, 10, 10); - for(Entity entity : entities) - { - if(entity instanceof EntityZombie) - { - ((EntityZombie) entity).setAttackTarget(null); - } - } - // - - EntityLivingBase entity = event.entityLiving; - //if(!entity.isSneaking()) - { - float percentIncrease = (i + 1) * 0.1f; - - if (event.entityLiving instanceof EntityPlayer) - { - EntityPlayer entityPlayer = (EntityPlayer) event.entityLiving; - entityPlayer.stepHeight = 1.0f; - - if((entityPlayer.onGround || entityPlayer.capabilities.isFlying) && entityPlayer.moveForward > 0F) - entityPlayer.moveFlying(0F, 1F, entityPlayer.capabilities.isFlying ? (percentIncrease/2.0f) : percentIncrease); - } - } - } - - if (event.entityLiving.isPotionActive(AlchemicalWizardry.customPotionProjProt)) - { - int i = event.entityLiving.getActivePotionEffect(AlchemicalWizardry.customPotionProjProt).getAmplifier(); - EntityLivingBase entity = event.entityLiving; - int posX = (int) Math.round(entity.posX - 0.5f); - int posY = (int) Math.round(entity.posY); - int posZ = (int) Math.round(entity.posZ - 0.5f); - int d0 = i; - AxisAlignedBB axisalignedbb = AxisAlignedBB.getAABBPool().getAABB(posX - 0.5, posY - 0.5, posZ - 0.5, posX + 0.5, posY + 0.5, posZ + 0.5).expand(d0, d0, d0); - List list = event.entityLiving.worldObj.getEntitiesWithinAABB(Entity.class, axisalignedbb); - Iterator iterator = list.iterator(); - EntityLivingBase livingEntity; - - while (iterator.hasNext()) - { - Entity projectile = (Entity) iterator.next(); - - if (projectile == null) - { - continue; - } - - if (!(projectile instanceof IProjectile)) - { - continue; - } - - if (projectile instanceof EntityArrow) - { - if (((EntityArrow) projectile).shootingEntity == null) - { - } else if (!(((EntityArrow) projectile).shootingEntity == null) && ((EntityArrow) projectile).shootingEntity.equals(entity)) - { - break; - } - } else if (projectile instanceof EnergyBlastProjectile) - { - if (!(((EnergyBlastProjectile) projectile).shootingEntity == null) && ((EnergyBlastProjectile) projectile).shootingEntity.equals(entity)) - { - break; - } - } - - double delX = projectile.posX - entity.posX; - double delY = projectile.posY - entity.posY; - double delZ = projectile.posZ - entity.posZ; - double curVel = Math.sqrt(delX * delX + delY * delY + delZ * delZ); - //NOTE: It appears that it constantly reverses the direction. - //Any way to do it only once? Or find the shooting entity? - delX /= curVel; - delY /= curVel; - delZ /= curVel; - double newVel = Math.sqrt(projectile.motionX * projectile.motionX + projectile.motionY * projectile.motionY + projectile.motionZ * projectile.motionZ); - projectile.motionX = newVel * delX; - projectile.motionY = newVel * delY; - projectile.motionZ = newVel * delZ; - //TODO make this not affect player's projectiles - } - } - - if (event.entityLiving.isPotionActive(AlchemicalWizardry.customPotionFlight)) - { - if (event.entityLiving instanceof EntityPlayer) - { - EntityPlayer entityPlayer = (EntityPlayer) event.entityLiving; - String ownerName = entityPlayer.username; - playerFlightBuff.put(ownerName, true); - entityPlayer.capabilities.allowFlying = true; - //entityPlayer.sendPlayerAbilities(); - } - } else - { - if (event.entityLiving instanceof EntityPlayer) - { - EntityPlayer entityPlayer = (EntityPlayer) event.entityLiving; - String ownerName = entityPlayer.username; - - if (!playerFlightBuff.containsKey(ownerName)) - { - playerFlightBuff.put(ownerName, false); - } - - if (playerFlightBuff.get(ownerName)) - { - playerFlightBuff.put(ownerName, false); - - if (!entityPlayer.capabilities.isCreativeMode) - { - entityPlayer.capabilities.allowFlying = false; - entityPlayer.capabilities.isFlying = false; - entityPlayer.sendPlayerAbilities(); - } - } - } - } - - if(entityLiving.isPotionActive(AlchemicalWizardry.customPotionFlameCloak)) - { - entityLiving.worldObj.spawnParticle("flame", x+SpellHelper.gaussian(1),y-1.3+SpellHelper.gaussian(0.3),z+SpellHelper.gaussian(1), 0, 0.06d, 0); - - int i = event.entityLiving.getActivePotionEffect(AlchemicalWizardry.customPotionFlameCloak).getAmplifier(); - double range = i*0.5; - - List entities = SpellHelper.getEntitiesInRange(entityLiving.worldObj, x, y, z, range, range); - if(entities!=null) - { - for(Entity entity : entities) - { - if(!entity.equals(entityLiving)&&!entity.isImmuneToFire()&&!(entity instanceof EntityLivingBase && ((EntityLivingBase)entity).isPotionActive(Potion.fireResistance))) - { - entity.setFire(3); - } - } - } - } - - if(entityLiving.isPotionActive(AlchemicalWizardry.customPotionIceCloak)) - { - if(entityLiving.worldObj.getWorldTime()%2==0) - entityLiving.worldObj.spawnParticle("reddust", x+SpellHelper.gaussian(1),y-1.3+SpellHelper.gaussian(0.3),z+SpellHelper.gaussian(1), 0x74,0xbb,0xfb); - - int r = event.entityLiving.getActivePotionEffect(AlchemicalWizardry.customPotionIceCloak).getAmplifier(); - int horizRange = r+1; - int vertRange = 1; - - if(!entityLiving.worldObj.isRemote) - { - for(int i=-horizRange; i<=horizRange;i++) - { - for(int k=-horizRange; k<=horizRange;k++) - { - for(int j=-vertRange-1; j<=vertRange-1; j++) - { - SpellHelper.freezeWaterBlock(entityLiving.worldObj, xPos+i, yPos+j, zPos+k); - } - } - } - } - } - - if(entityLiving.isPotionActive(AlchemicalWizardry.customPotionHeavyHeart)) - { - entityLiving.worldObj.spawnParticle("flame", x+SpellHelper.gaussian(1),y-1.3+SpellHelper.gaussian(0.3),z+SpellHelper.gaussian(1), 0, 0.06d, 0); - - int i = event.entityLiving.getActivePotionEffect(AlchemicalWizardry.customPotionHeavyHeart).getAmplifier(); - double decrease = 0.025*(i+1); - - if(entityLiving.motionY>-0.9) - { - entityLiving.motionY-=decrease; - } - } - - if(entityLiving.isPotionActive(AlchemicalWizardry.customPotionFireFuse)) - { - entityLiving.worldObj.spawnParticle("flame", x+SpellHelper.gaussian(1),y-1.3+SpellHelper.gaussian(0.3),z+SpellHelper.gaussian(1), 0, 0.06d, 0); - - int r = event.entityLiving.getActivePotionEffect(AlchemicalWizardry.customPotionFireFuse).getAmplifier(); - float radius = 0.5f*r+0.5f; - - if(entityLiving.getActivePotionEffect(AlchemicalWizardry.customPotionFireFuse).getDuration()<=2) - { - entityLiving.worldObj.createExplosion(null, x, y, z, radius, false); - } - } - } -} diff --git a/BM_src/WayofTime/alchemicalWizardry/common/AlchemicalWizardryFuelHandler.java b/BM_src/WayofTime/alchemicalWizardry/common/AlchemicalWizardryFuelHandler.java deleted file mode 100644 index 68f073b4..00000000 --- a/BM_src/WayofTime/alchemicalWizardry/common/AlchemicalWizardryFuelHandler.java +++ /dev/null @@ -1,65 +0,0 @@ -package WayofTime.alchemicalWizardry.common; - -import WayofTime.alchemicalWizardry.ModItems; -import WayofTime.alchemicalWizardry.common.items.LavaCrystal; -import cpw.mods.fml.common.IFuelHandler; -import net.minecraft.entity.player.EntityPlayer; -import net.minecraft.item.ItemStack; -import net.minecraft.nbt.NBTTagCompound; -import net.minecraft.potion.Potion; -import net.minecraft.potion.PotionEffect; -import net.minecraft.server.MinecraftServer; - -public class AlchemicalWizardryFuelHandler implements IFuelHandler -{ - @Override - public int getBurnTime(ItemStack fuel) - { - ItemStack itemStack = fuel; - int var1 = fuel.itemID; - - if (var1 == ModItems.lavaCrystal.itemID) - { - /*ItemStack newItem = new ItemStack(AlchemicalWizardry.lavaCrystal); - newItem.getItem().setDamage(newItem, 50); - fuel.getItem().setContainerItem(((LavaCrystal)newItem.getItem()).change()); - */ - LavaCrystal item = (LavaCrystal) fuel.getItem(); - - if (item.hasEnoughEssence(fuel)) - { - return 200; - } else - { - NBTTagCompound tag = itemStack.stackTagCompound; - - if (tag == null) - { - return 0; - } - - if (MinecraftServer.getServer() == null) - { - return 0; - } - - if (MinecraftServer.getServer().getConfigurationManager() == null) - { - return 0; - } - - EntityPlayer owner = MinecraftServer.getServer().getConfigurationManager().getPlayerForUsername(tag.getString("ownerName")); - - if (owner == null) - { - return 0; - } - - owner.addPotionEffect(new PotionEffect(Potion.confusion.id, 80)); - return 0; - } - } - - return 0; - } -} diff --git a/BM_src/WayofTime/alchemicalWizardry/common/AlchemicalWizardryTickHandler.java b/BM_src/WayofTime/alchemicalWizardry/common/AlchemicalWizardryTickHandler.java deleted file mode 100644 index 93ee33fd..00000000 --- a/BM_src/WayofTime/alchemicalWizardry/common/AlchemicalWizardryTickHandler.java +++ /dev/null @@ -1,48 +0,0 @@ -package WayofTime.alchemicalWizardry.common; - -import cpw.mods.fml.common.ITickHandler; -import cpw.mods.fml.common.ObfuscationReflectionHelper; -import cpw.mods.fml.common.TickType; -import net.minecraft.entity.player.EntityPlayer; -import net.minecraft.entity.player.PlayerCapabilities; -import net.minecraft.server.MinecraftServer; - -import java.util.EnumSet; - -public class AlchemicalWizardryTickHandler implements ITickHandler -{ - public void tickStart(EnumSet type, Object... tickData) - { - } - - public EnumSet ticks() - { - return EnumSet.of(TickType.PLAYER); - } - - public String getLabel() - { - return "BloodMagic"; - } - - public void tickEnd(EnumSet type, Object... tickData) - { - String[] usernames = MinecraftServer.getServer().getAllUsernames(); - - if (usernames == null) - { - return; - } - - for (String userName : usernames) - { - EntityPlayer entityPlayer = MinecraftServer.getServer().getConfigurationManager().getPlayerForUsername(userName); - - if (entityPlayer != null) - { - ObfuscationReflectionHelper.setPrivateValue(PlayerCapabilities.class, entityPlayer.capabilities, Float.valueOf(0.1f), new String[]{"walkSpeed", "g", "field_75097_g"}); - //entityPlayer.sendPlayerAbilities(); - } - } - } -} diff --git a/BM_src/WayofTime/alchemicalWizardry/common/ArmourComponent.java b/BM_src/WayofTime/alchemicalWizardry/common/ArmourComponent.java deleted file mode 100644 index fb4f155b..00000000 --- a/BM_src/WayofTime/alchemicalWizardry/common/ArmourComponent.java +++ /dev/null @@ -1,23 +0,0 @@ -package WayofTime.alchemicalWizardry.common; - -public class ArmourComponent -{ - private int xOff; - private int zOff; - - public ArmourComponent(int xOff, int zOff) - { - this.xOff = xOff; - this.zOff = zOff; - } - - public int getXOff() - { - return xOff; - } - - public int getZOff() - { - return zOff; - } -} diff --git a/BM_src/WayofTime/alchemicalWizardry/common/CommonProxy.java b/BM_src/WayofTime/alchemicalWizardry/common/CommonProxy.java deleted file mode 100644 index 2d434979..00000000 --- a/BM_src/WayofTime/alchemicalWizardry/common/CommonProxy.java +++ /dev/null @@ -1,92 +0,0 @@ -package WayofTime.alchemicalWizardry.common; - -import net.minecraft.world.World; -import WayofTime.alchemicalWizardry.AlchemicalWizardry; -import WayofTime.alchemicalWizardry.common.entity.projectile.EnergyBlastProjectile; -import WayofTime.alchemicalWizardry.common.entity.projectile.EntityBloodLightProjectile; -import WayofTime.alchemicalWizardry.common.entity.projectile.EntityEnergyBazookaMainProjectile; -import WayofTime.alchemicalWizardry.common.entity.projectile.EntityEnergyBazookaSecondaryProjectile; -import WayofTime.alchemicalWizardry.common.entity.projectile.EntityMeteor; -import WayofTime.alchemicalWizardry.common.entity.projectile.ExplosionProjectile; -import WayofTime.alchemicalWizardry.common.entity.projectile.FireProjectile; -import WayofTime.alchemicalWizardry.common.entity.projectile.HolyProjectile; -import WayofTime.alchemicalWizardry.common.entity.projectile.IceProjectile; -import WayofTime.alchemicalWizardry.common.entity.projectile.LightningBoltProjectile; -import WayofTime.alchemicalWizardry.common.entity.projectile.MudProjectile; -import WayofTime.alchemicalWizardry.common.entity.projectile.TeleportProjectile; -import WayofTime.alchemicalWizardry.common.entity.projectile.WaterProjectile; -import WayofTime.alchemicalWizardry.common.entity.projectile.WindGustProjectile; -import WayofTime.alchemicalWizardry.common.spell.complex.EntitySpellProjectile; -import WayofTime.alchemicalWizardry.common.tileEntity.TEAltar; -import WayofTime.alchemicalWizardry.common.tileEntity.TEMasterStone; -import cpw.mods.fml.common.registry.EntityRegistry; -import cpw.mods.fml.common.registry.GameRegistry; - -public class CommonProxy -{ - public static String ITEMS_PNG = "/WayofTime/alchemicalWizardry/items.png"; - public static String BLOCK_PNG = "/WayofTime/alchemicalWizardry/block.png"; - public static int manualGuiID = -1; - - // Client stuff - public void registerRenderers() - { - // Nothing here as the server doesn't render graphics! - } - - public void registerEntities() - { - } - - public World getClientWorld() - { - return null; - } - - public void registerActions() - { - } - - public void registerEvents() - { - } - - public void registerSoundHandler() - { - // Nothing here as this is a server side proxy - } - - public void registerTileEntities() - { - GameRegistry.registerTileEntity(TEAltar.class, "containerAltar"); - GameRegistry.registerTileEntity(TEMasterStone.class, "containerMasterStone"); - } - - public void registerEntityTrackers() - { - EntityRegistry.registerModEntity(EnergyBlastProjectile.class, "energyBlastProjectile", 0, AlchemicalWizardry.instance, 128, 5, true); - EntityRegistry.registerModEntity(FireProjectile.class, "fireProjectile", 1, AlchemicalWizardry.instance, 128, 5, true); - EntityRegistry.registerModEntity(IceProjectile.class, "iceProjectile", 2, AlchemicalWizardry.instance, 128, 5, true); - EntityRegistry.registerModEntity(ExplosionProjectile.class, "explosionProjectile", 3, AlchemicalWizardry.instance, 128, 5, true); - EntityRegistry.registerModEntity(HolyProjectile.class, "holyProjectile", 4, AlchemicalWizardry.instance, 128, 5, true); - EntityRegistry.registerModEntity(WindGustProjectile.class, "windGustProjectile", 5, AlchemicalWizardry.instance, 128, 5, true); - EntityRegistry.registerModEntity(LightningBoltProjectile.class, "lightningBoltProjectile", 6, AlchemicalWizardry.instance, 128, 5, true); - EntityRegistry.registerModEntity(WaterProjectile.class, "waterProjectile", 7, AlchemicalWizardry.instance, 128, 5, true); - EntityRegistry.registerModEntity(MudProjectile.class, "mudProjectile", 8, AlchemicalWizardry.instance, 128, 5, true); - EntityRegistry.registerModEntity(TeleportProjectile.class, "teleportProjectile", 9, AlchemicalWizardry.instance, 128, 5, true); - EntityRegistry.registerModEntity(EntityEnergyBazookaMainProjectile.class, "energyBazookaMain", 10, AlchemicalWizardry.instance, 128, 3, true); - EntityRegistry.registerModEntity(EntityEnergyBazookaSecondaryProjectile.class, "energyBazookaSecondary", 11, AlchemicalWizardry.instance, 128, 3, true); - EntityRegistry.registerModEntity(EntityBloodLightProjectile.class, "bloodLightProjectile", 12, AlchemicalWizardry.instance, 128, 3, true); - EntityRegistry.registerModEntity(EntityMeteor.class, "Meteor", 13, AlchemicalWizardry.instance, 128, 3, true); - EntityRegistry.registerModEntity(EntitySpellProjectile.class, "spellProjectile", 14, AlchemicalWizardry.instance, 128, 3, true); - } - - public void registerTickHandlers() - { - } - - public void InitRendering() - { - // TODO Auto-generated method stub - } -} diff --git a/BM_src/WayofTime/alchemicalWizardry/common/EntityAIFly.java b/BM_src/WayofTime/alchemicalWizardry/common/EntityAIFly.java deleted file mode 100644 index dffc65cf..00000000 --- a/BM_src/WayofTime/alchemicalWizardry/common/EntityAIFly.java +++ /dev/null @@ -1,5 +0,0 @@ -package WayofTime.alchemicalWizardry.common; - -public class EntityAIFly -{ -} diff --git a/BM_src/WayofTime/alchemicalWizardry/common/EntityAITargetAggro.java b/BM_src/WayofTime/alchemicalWizardry/common/EntityAITargetAggro.java deleted file mode 100644 index 2b6fb25a..00000000 --- a/BM_src/WayofTime/alchemicalWizardry/common/EntityAITargetAggro.java +++ /dev/null @@ -1,24 +0,0 @@ -package WayofTime.alchemicalWizardry.common; - -import WayofTime.alchemicalWizardry.common.entity.mob.EntityDemon; -import net.minecraft.entity.ai.EntityAINearestAttackableTarget; - -public class EntityAITargetAggro extends EntityAINearestAttackableTarget -{ - private EntityDemon theCreature; - - public EntityAITargetAggro(EntityDemon par1EntityDemon, Class par2Class, int par3, boolean par4) - { - super(par1EntityDemon, par2Class, par3, par4); - this.theCreature = par1EntityDemon; - } - - /** - * Returns whether the EntityAIBase should begin execution. - */ - @Override - public boolean shouldExecute() - { - return theCreature.isAggro() && super.shouldExecute(); - } -} diff --git a/BM_src/WayofTime/alchemicalWizardry/common/EntityAirElemental.java b/BM_src/WayofTime/alchemicalWizardry/common/EntityAirElemental.java deleted file mode 100644 index 25e11554..00000000 --- a/BM_src/WayofTime/alchemicalWizardry/common/EntityAirElemental.java +++ /dev/null @@ -1,33 +0,0 @@ -package WayofTime.alchemicalWizardry.common; - -import WayofTime.alchemicalWizardry.AlchemicalWizardry; -import WayofTime.alchemicalWizardry.common.entity.mob.EntityElemental; -import cpw.mods.fml.common.network.PacketDispatcher; -import cpw.mods.fml.common.network.Player; -import net.minecraft.entity.Entity; -import net.minecraft.entity.EntityLivingBase; -import net.minecraft.entity.monster.IMob; -import net.minecraft.entity.player.EntityPlayer; -import net.minecraft.potion.PotionEffect; -import net.minecraft.world.World; - -public class EntityAirElemental extends EntityElemental implements IMob -{ - public EntityAirElemental(World world) - { - super(world, AlchemicalWizardry.entityAirElementalID); - } - - public void inflictEffectOnEntity(Entity target) - { - if (target instanceof EntityPlayer) - { - PacketDispatcher.sendPacketToPlayer(PacketHandler.getPlayerVelocitySettingPacket(target.motionX, target.motionY + 3, target.motionZ), (Player) target); - ((EntityLivingBase) target).addPotionEffect(new PotionEffect(AlchemicalWizardry.customPotionInhibit.id, 150, 0)); - } else if (target instanceof EntityLivingBase) - { - ((EntityLivingBase) target).motionY += 3.0D; - ((EntityLivingBase) target).addPotionEffect(new PotionEffect(AlchemicalWizardry.customPotionInhibit.id, 150, 0)); - } - } -} diff --git a/BM_src/WayofTime/alchemicalWizardry/common/EnumToolMaterialBoundBlood.java b/BM_src/WayofTime/alchemicalWizardry/common/EnumToolMaterialBoundBlood.java deleted file mode 100644 index edb9c1cb..00000000 --- a/BM_src/WayofTime/alchemicalWizardry/common/EnumToolMaterialBoundBlood.java +++ /dev/null @@ -1,5 +0,0 @@ -package WayofTime.alchemicalWizardry.common; - -public class EnumToolMaterialBoundBlood -{ -} diff --git a/BM_src/WayofTime/alchemicalWizardry/common/IBindingAgent.java b/BM_src/WayofTime/alchemicalWizardry/common/IBindingAgent.java deleted file mode 100644 index 534d4b68..00000000 --- a/BM_src/WayofTime/alchemicalWizardry/common/IBindingAgent.java +++ /dev/null @@ -1,6 +0,0 @@ -package WayofTime.alchemicalWizardry.common; - -public interface IBindingAgent -{ - public abstract float getSuccessRateForPotionNumber(int potionEffects); -} diff --git a/BM_src/WayofTime/alchemicalWizardry/common/ICatalyst.java b/BM_src/WayofTime/alchemicalWizardry/common/ICatalyst.java deleted file mode 100644 index 230cd51c..00000000 --- a/BM_src/WayofTime/alchemicalWizardry/common/ICatalyst.java +++ /dev/null @@ -1,8 +0,0 @@ -package WayofTime.alchemicalWizardry.common; - -public interface ICatalyst -{ - public abstract int getCatalystLevel(); - - public abstract boolean isConcentration(); -} diff --git a/BM_src/WayofTime/alchemicalWizardry/common/IDemon.java b/BM_src/WayofTime/alchemicalWizardry/common/IDemon.java deleted file mode 100644 index eab1d15e..00000000 --- a/BM_src/WayofTime/alchemicalWizardry/common/IDemon.java +++ /dev/null @@ -1,10 +0,0 @@ -package WayofTime.alchemicalWizardry.common; - -public interface IDemon -{ - public abstract void setSummonedConditions(); - - public boolean isAggro(); - - public void setAggro(boolean aggro); -} diff --git a/BM_src/WayofTime/alchemicalWizardry/common/IFillingAgent.java b/BM_src/WayofTime/alchemicalWizardry/common/IFillingAgent.java deleted file mode 100644 index 2202a20d..00000000 --- a/BM_src/WayofTime/alchemicalWizardry/common/IFillingAgent.java +++ /dev/null @@ -1,6 +0,0 @@ -package WayofTime.alchemicalWizardry.common; - -public interface IFillingAgent -{ - public abstract int getFilledAmountForPotionNumber(int potionEffects); -} diff --git a/BM_src/WayofTime/alchemicalWizardry/common/LifeBucketHandler.java b/BM_src/WayofTime/alchemicalWizardry/common/LifeBucketHandler.java deleted file mode 100644 index fd2734b4..00000000 --- a/BM_src/WayofTime/alchemicalWizardry/common/LifeBucketHandler.java +++ /dev/null @@ -1,41 +0,0 @@ -package WayofTime.alchemicalWizardry.common; - -import WayofTime.alchemicalWizardry.AlchemicalWizardry; -import WayofTime.alchemicalWizardry.ModBlocks; -import net.minecraft.item.ItemStack; -import net.minecraft.util.MovingObjectPosition; -import net.minecraft.world.World; -import net.minecraftforge.event.Event.Result; -import net.minecraftforge.event.ForgeSubscribe; -import net.minecraftforge.event.entity.player.FillBucketEvent; - -public class LifeBucketHandler -{ - @ForgeSubscribe - public void onBucketFill(FillBucketEvent event) - { - ItemStack result = fillCustomBucket(event.world, event.target); - - if (result == null) - { - return; - } - - event.result = result; - event.setResult(Result.ALLOW); - } - - public ItemStack fillCustomBucket(World world, MovingObjectPosition pos) - { - int blockID = world.getBlockId(pos.blockX, pos.blockY, pos.blockZ); - - if ((blockID == ModBlocks.blockLifeEssence.blockID) && world.getBlockMetadata(pos.blockX, pos.blockY, pos.blockZ) == 0) - { - world.setBlock(pos.blockX, pos.blockY, pos.blockZ, 0); - return new ItemStack(AlchemicalWizardry.bucketLife); - } else - { - return null; - } - } -} \ No newline at end of file diff --git a/BM_src/WayofTime/alchemicalWizardry/common/LifeEssence.java b/BM_src/WayofTime/alchemicalWizardry/common/LifeEssence.java deleted file mode 100644 index 22ede879..00000000 --- a/BM_src/WayofTime/alchemicalWizardry/common/LifeEssence.java +++ /dev/null @@ -1,28 +0,0 @@ -package WayofTime.alchemicalWizardry.common; - -import net.minecraftforge.fluids.Fluid; - -public class LifeEssence extends Fluid -{ - public LifeEssence(String fluidName) - { - super(fluidName); - //setUnlocalizedName("lifeEssence"); - //setBlockID(id); - this.setDensity(2000); - this.setViscosity(2000); - //this.setFlowingIcon(flowingIcon) - } - - @Override - public int getColor() - { - return 0xEEEEEE; - } - - @Override - public String getLocalizedName() - { - return "Life Essence"; - } -} diff --git a/BM_src/WayofTime/alchemicalWizardry/common/ModLivingDropsEvent.java b/BM_src/WayofTime/alchemicalWizardry/common/ModLivingDropsEvent.java deleted file mode 100644 index d10e7354..00000000 --- a/BM_src/WayofTime/alchemicalWizardry/common/ModLivingDropsEvent.java +++ /dev/null @@ -1,36 +0,0 @@ -package WayofTime.alchemicalWizardry.common; - -import WayofTime.alchemicalWizardry.ModItems; -import net.minecraft.entity.passive.EntityAnimal; -import net.minecraft.potion.Potion; -import net.minecraft.potion.PotionEffect; -import net.minecraftforge.event.ForgeSubscribe; -import net.minecraftforge.event.entity.living.LivingDropsEvent; - -public class ModLivingDropsEvent -{ - public static double rand; - - @ForgeSubscribe - public void onEntityDrop(LivingDropsEvent event) - { - if (event.source.getDamageType().equals("player")) - { - rand = Math.random(); - - if (!(event.entityLiving instanceof EntityAnimal)) - { - PotionEffect effect = event.entityLiving.getActivePotionEffect(Potion.weakness); - - if (effect != null) - { - if (effect.getAmplifier() >= 2) - if (rand < 0.50d) - { - event.entityLiving.dropItem(ModItems.weakBloodShard.itemID, 1); - } - } - } - } - } -} \ No newline at end of file diff --git a/BM_src/WayofTime/alchemicalWizardry/common/PacketHandler.java b/BM_src/WayofTime/alchemicalWizardry/common/PacketHandler.java deleted file mode 100644 index 1acc5b5f..00000000 --- a/BM_src/WayofTime/alchemicalWizardry/common/PacketHandler.java +++ /dev/null @@ -1,961 +0,0 @@ -package WayofTime.alchemicalWizardry.common; - -import WayofTime.alchemicalWizardry.AlchemicalWizardry; -import WayofTime.alchemicalWizardry.api.soulNetwork.LifeEssenceNetwork; -import WayofTime.alchemicalWizardry.common.bloodAltarUpgrade.UpgradedAltars; -import WayofTime.alchemicalWizardry.common.tileEntity.*; - -import com.google.common.io.ByteArrayDataInput; -import com.google.common.io.ByteStreams; - -import cpw.mods.fml.common.network.IPacketHandler; -import cpw.mods.fml.common.network.Player; -import net.minecraft.entity.player.EntityPlayer; -import net.minecraft.network.INetworkManager; -import net.minecraft.network.packet.Packet; -import net.minecraft.network.packet.Packet250CustomPayload; -import net.minecraft.server.MinecraftServer; -import net.minecraft.tileentity.TileEntity; -import net.minecraft.util.ChatMessageComponent; -import net.minecraft.util.DamageSource; -import net.minecraft.world.World; -import net.minecraftforge.common.ForgeDirection; -import net.minecraftforge.fluids.FluidStack; - -import java.io.*; -import java.util.Random; - -public class PacketHandler implements IPacketHandler -{ - @Override - public void onPacketData(INetworkManager manager, Packet250CustomPayload packet, Player player) - { - if (packet.channel.equals("BloodAltar")) - { - ByteArrayDataInput dat = ByteStreams.newDataInput(packet.data); - int x = dat.readInt(); - int y = dat.readInt(); - int z = dat.readInt(); - boolean hasStacks = dat.readByte() != 0; - int[] items = new int[0]; - - if (hasStacks) - { - items = new int[1 * 3]; - - for (int i = 0; i < items.length; i++) - { - items[i] = dat.readInt(); - } - } - - int fluidIDMain = dat.readInt(); - int fluidAmountMain = dat.readInt(); - int fluidIDOutput = dat.readInt(); - int fluidAmountOutput = dat.readInt(); - int fluidIDInput = dat.readInt(); - int fluidAmountInput = dat.readInt(); - int capacity = dat.readInt(); - World world = AlchemicalWizardry.proxy.getClientWorld(); - TileEntity tileEntity = world.getBlockTileEntity(x, y, z); - - if (tileEntity instanceof TEAltar) - { - TEAltar tileEntityAltar = (TEAltar) tileEntity; - FluidStack flMain = new FluidStack(fluidIDMain, fluidAmountMain); - FluidStack flOutput = new FluidStack(fluidIDOutput, fluidAmountOutput); - FluidStack flInput = new FluidStack(fluidIDInput, fluidAmountInput); - tileEntityAltar.handlePacketData(items, flMain, flOutput, flInput, capacity); - } - } else if (packet.channel.equals("FallReset")) - { - if (player instanceof EntityPlayer) - { - ((EntityPlayer) player).fallDistance = 0; - } - } else if (packet.channel.equals("particle")) - { - ByteArrayInputStream bin = new ByteArrayInputStream(packet.data); - DataInputStream din = new DataInputStream(bin); - Random rand = new Random(); - - try - { - double x = din.readDouble(); - double y = din.readDouble(); - double z = din.readDouble(); - short particleType = din.readShort(); - World world = ((EntityPlayer) player).worldObj; - - if (particleType == 1) - { - world.spawnParticle("mobSpell", x + 0.5D + rand.nextGaussian() / 8, y + 1.1D, z + 0.5D + rand.nextGaussian() / 8, 0.5117D, 0.0117D, 0.0117D); - } - - if (particleType == 2) - { - world.spawnParticle("reddust", x + 0.5D + rand.nextGaussian() / 8, y + 1.1D, z + 0.5D + rand.nextGaussian() / 8, 0.82D, 0.941D, 0.91D); - } - - if (particleType == 3) - { - world.spawnParticle("mobSpell", x + 0.5D + rand.nextGaussian() / 8, y + 1.1D, z + 0.5D + rand.nextGaussian() / 8, 1.0D, 0.371D, 0.371D); - } - - if (particleType == 4) - { - 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", x + Math.random() - Math.random(), y + Math.random() - Math.random(), z + Math.random() - Math.random(), f1, f2, f3); - } - } - } catch (IOException e) - { - e.printStackTrace(); - } - } else if (packet.channel.equals("CustomParticle")) - { - ByteArrayInputStream bin = new ByteArrayInputStream(packet.data); - DataInputStream din = new DataInputStream(bin); - Random rand = new Random(); - - try - { - World world = ((EntityPlayer) player).worldObj; - int size = din.readInt(); - String str = ""; - - for (int i = 0; i < size; i++) - { - str = str + din.readChar(); - } - - double x = din.readDouble(); - double y = din.readDouble(); - double z = din.readDouble(); - double xVel = din.readDouble(); - double yVel = din.readDouble(); - double zVel = din.readDouble(); - world.spawnParticle(str, x, y, z, xVel, yVel, zVel); - } catch (IOException e) - { - e.printStackTrace(); - } - } else if (packet.channel.equals("SetLifeEssence")) //Sets the data for the character - { - ByteArrayInputStream bin = new ByteArrayInputStream(packet.data); - DataInputStream din = new DataInputStream(bin); - - try - { - EntityPlayer user = (EntityPlayer) player; - int length = din.readInt(); - String ownerName = ""; - - for (int i = 0; i < length; i++) - { - ownerName = ownerName + din.readChar(); - } - - int addedEssence = din.readInt(); - int maxEssence = din.readInt(); - World world = MinecraftServer.getServer().worldServers[0]; - LifeEssenceNetwork data = (LifeEssenceNetwork) world.loadItemData(LifeEssenceNetwork.class, ownerName); - - if (data == null) - { - data = new LifeEssenceNetwork(ownerName); - world.setItemData(ownerName, data); - } - - if (addedEssence > 0) - { - if (data.currentEssence < maxEssence) - { - data.currentEssence = Math.min(maxEssence, data.currentEssence + addedEssence); - data.markDirty(); - } - - if (!user.capabilities.isCreativeMode) - { - for (int i = 0; i < ((addedEssence + 99) / 100); i++) - { - //player.setEntityHealth((player.getHealth()-1)); - user.setHealth((user.getHealth() - 1)); - - if (user.getHealth() <= 0.5f) - { - //user.inventory.dropAllItems(); - user.onDeath(DamageSource.generic); - return; - } - } - } - } else - { - int removedEssence = -addedEssence; - - if ((data.currentEssence - removedEssence) >= 0) - { - data.currentEssence -= removedEssence; - data.markDirty(); - } else - { - if (removedEssence >= 100) - { - for (int i = 0; i < ((removedEssence + 99) / 100); i++) - { - //player.setEntityHealth((player.getHealth()-1)); - user.setHealth((user.getHealth() - 1)); - - if (user.getHealth() <= 0.5f) - { - //user.inventory.dropAllItems(); - user.onDeath(DamageSource.generic); - return; - } - } - } else - { - if (user.worldObj.rand.nextInt(100) <= removedEssence) - { - user.setHealth((user.getHealth() - 1)); - - if (user.getHealth() <= 0.5f) - { - //user.inventory.dropAllItems(); - user.onDeath(DamageSource.generic); - return; - } - } - } - } - } - - //PacketDispatcher.sendPacketToPlayer(PacketHandler.getPacket(ownerName), (Player)user); -// data.currentEssence = addedEssence; -// data.markDirty(); - } catch (IOException e) - { - e.printStackTrace(); - } - } else if (packet.channel.equals("InfiniteLPPath")) - { - ByteArrayInputStream bin = new ByteArrayInputStream(packet.data); - DataInputStream din = new DataInputStream(bin); - - try - { - EntityPlayer user = (EntityPlayer) player; - int length = din.readInt(); - String ownerName = ""; - - for (int i = 0; i < length; i++) - { - ownerName = ownerName + din.readChar(); - } - - boolean fill = din.readBoolean(); - World world = MinecraftServer.getServer().worldServers[0]; - LifeEssenceNetwork data = (LifeEssenceNetwork) world.loadItemData(LifeEssenceNetwork.class, ownerName); - - if (data == null) - { - data = new LifeEssenceNetwork(ownerName); - world.setItemData(ownerName, data); - } - - if (fill) - { - data.currentEssence += 1000000; - data.markDirty(); - } else - { - data.currentEssence = 0; - data.markDirty(); - } - - //PacketDispatcher.sendPacketToPlayer(PacketHandler.getPacket(ownerName), (Player)user); -// data.currentEssence = addedEssence; -// data.markDirty(); - } catch (IOException e) - { - e.printStackTrace(); - } - } else if (packet.channel.equals("GetLifeEssence")) - { - ByteArrayInputStream bin = new ByteArrayInputStream(packet.data); - DataInputStream din = new DataInputStream(bin); - - try - { - int length = din.readInt(); - String ownerName = ""; - - for (int i = 0; i < length; i++) - { - ownerName = ownerName + din.readChar(); - } - - World world = MinecraftServer.getServer().worldServers[0]; - LifeEssenceNetwork data = (LifeEssenceNetwork) world.loadItemData(LifeEssenceNetwork.class, ownerName); - - if (data == null) - { - data = new LifeEssenceNetwork(ownerName); - world.setItemData(ownerName, data); - } - - if (player instanceof EntityPlayer) - { - EntityPlayer owner = (EntityPlayer) player; - ChatMessageComponent chatmessagecomponent = new ChatMessageComponent(); - //chatmessagecomponent.func_111072_b("Current Essence: " + data.currentEssence + "LP"); - chatmessagecomponent.addText("Current Essence: " + data.currentEssence + "LP"); - owner.sendChatToPlayer(chatmessagecomponent); - } - } catch (IOException e) - { - e.printStackTrace(); - } - } else if (packet.channel.equals("GetAltarEssence")) - { - ByteArrayInputStream bin = new ByteArrayInputStream(packet.data); - DataInputStream din = new DataInputStream(bin); - - try - { - int x = din.readInt(); - int y = din.readInt(); - int z = din.readInt(); - - if (player instanceof EntityPlayer) - { - EntityPlayer owner = (EntityPlayer) player; - World world = owner.worldObj; - TEAltar tileEntity = (TEAltar) world.getBlockTileEntity(x, y, z); - - if (tileEntity != null) - { - int level = UpgradedAltars.isAltarValid(world, x, y, z); - ChatMessageComponent chatmessagecomponent = new ChatMessageComponent(); - chatmessagecomponent.addText("Altar's Current Essence: " + tileEntity.getFluidAmount() + "LP" + "\n" + "Altar's Current Tier: " + level + "\nCapacity: " + tileEntity.getCapacity() + "LP"); - //chatmessagecomponent.addText(); - owner.sendChatToPlayer(chatmessagecomponent); - } - } - } catch (IOException e) - { - e.printStackTrace(); - } - } else if (packet.channel.equals("TESocket")) - { - ByteArrayDataInput dat = ByteStreams.newDataInput(packet.data); - int x = dat.readInt(); - int y = dat.readInt(); - int z = dat.readInt(); - boolean hasStacks = dat.readByte() != 0; - int[] items = new int[0]; - - if (hasStacks) - { - items = new int[1 * 3]; - - for (int i = 0; i < items.length; i++) - { - items[i] = dat.readInt(); - } - } - - World world = AlchemicalWizardry.proxy.getClientWorld(); - TileEntity tileEntity = world.getBlockTileEntity(x, y, z); - - if (tileEntity instanceof TESocket) - { - TESocket tileEntityAltar = (TESocket) tileEntity; - tileEntityAltar.handlePacketData(items); - } - } else if (packet.channel.equals("TEWritingTable")) - { - ByteArrayDataInput dat = ByteStreams.newDataInput(packet.data); - int x = dat.readInt(); - int y = dat.readInt(); - int z = dat.readInt(); - boolean hasStacks = dat.readByte() != 0; - int[] items = new int[0]; - - if (hasStacks) - { - items = new int[7 * 3]; - - for (int i = 0; i < items.length; i++) - { - items[i] = dat.readInt(); - } - } - - World world = AlchemicalWizardry.proxy.getClientWorld(); - TileEntity tileEntity = world.getBlockTileEntity(x, y, z); - - if (tileEntity instanceof TEWritingTable) - { - TEWritingTable tileEntityAltar = (TEWritingTable) tileEntity; - tileEntityAltar.handlePacketData(items); - } - } else if (packet.channel.equals("TEOrientor")) - { - ByteArrayDataInput dat = ByteStreams.newDataInput(packet.data); - int x = dat.readInt(); - int y = dat.readInt(); - int z = dat.readInt(); - World world = AlchemicalWizardry.proxy.getClientWorld(); - TileEntity tileEntity = world.getBlockTileEntity(x, y, z); - - if (tileEntity instanceof TEOrientable) - { - TEOrientable tileEntityOrientable = (TEOrientable) tileEntity; - tileEntityOrientable.setInputDirection(ForgeDirection.getOrientation(dat.readInt())); - tileEntityOrientable.setOutputDirection(ForgeDirection.getOrientation(dat.readInt())); - world.markBlockForRenderUpdate(x, y, z); - } - } else if (packet.channel.equals("TEPedestal")) - { - ByteArrayDataInput dat = ByteStreams.newDataInput(packet.data); - int x = dat.readInt(); - int y = dat.readInt(); - int z = dat.readInt(); - boolean hasStacks = dat.readByte() != 0; - int[] items = new int[0]; - - if (hasStacks) - { - items = new int[1 * 3]; - - for (int i = 0; i < items.length; i++) - { - items[i] = dat.readInt(); - } - } - - World world = AlchemicalWizardry.proxy.getClientWorld(); - TileEntity tileEntity = world.getBlockTileEntity(x, y, z); - - if (tileEntity instanceof TEPedestal) - { - TEPedestal tileEntityAltar = (TEPedestal) tileEntity; - tileEntityAltar.handlePacketData(items); - } - } else if (packet.channel.equals("TEPlinth")) - { - ByteArrayDataInput dat = ByteStreams.newDataInput(packet.data); - int x = dat.readInt(); - int y = dat.readInt(); - int z = dat.readInt(); - boolean hasStacks = dat.readByte() != 0; - int[] items = new int[0]; - - if (hasStacks) - { - items = new int[1 * 3]; - - for (int i = 0; i < items.length; i++) - { - items[i] = dat.readInt(); - } - } - - World world = AlchemicalWizardry.proxy.getClientWorld(); - TileEntity tileEntity = world.getBlockTileEntity(x, y, z); - - if (tileEntity instanceof TEPlinth) - { - TEPlinth tileEntityAltar = (TEPlinth) tileEntity; - tileEntityAltar.handlePacketData(items); - } - } else if (packet.channel.equals("TETeleposer")) - { - ByteArrayDataInput dat = ByteStreams.newDataInput(packet.data); - int x = dat.readInt(); - int y = dat.readInt(); - int z = dat.readInt(); - boolean hasStacks = dat.readByte() != 0; - int[] items = new int[0]; - - if (hasStacks) - { - items = new int[1 * 3]; - - for (int i = 0; i < items.length; i++) - { - items[i] = dat.readInt(); - } - } - - World world = AlchemicalWizardry.proxy.getClientWorld(); - TileEntity tileEntity = world.getBlockTileEntity(x, y, z); - - if (tileEntity instanceof TETeleposer) - { - TETeleposer tileEntityAltar = (TETeleposer) tileEntity; - tileEntityAltar.handlePacketData(items); - } - } else if (packet.channel.equals("SetPlayerVel")) - { - ByteArrayDataInput dat = ByteStreams.newDataInput(packet.data); - double xVel = dat.readDouble(); - double yVel = dat.readDouble(); - double zVel = dat.readDouble(); - ((EntityPlayer) player).setVelocity(xVel, yVel, zVel); - } else if (packet.channel.equals("SetPlayerPos")) - { - ByteArrayDataInput dat = ByteStreams.newDataInput(packet.data); - double xVel = dat.readDouble(); - double yVel = dat.readDouble(); - double zVel = dat.readDouble(); - ((EntityPlayer) player).setPosition(xVel, yVel, zVel); - } - } - - public static Packet getPacket(TEAltar tileEntity) - { - ByteArrayOutputStream bos = new ByteArrayOutputStream(140); - DataOutputStream dos = new DataOutputStream(bos); - int[] items = tileEntity.buildIntDataList(); - boolean hasStacks = (items != null); - - try - { - dos.writeInt(tileEntity.xCoord); - dos.writeInt(tileEntity.yCoord); - dos.writeInt(tileEntity.zCoord); - dos.writeByte(hasStacks ? 1 : 0); - - if (hasStacks) - { - for (int i = 0; i < 3; i++) - { - dos.writeInt(items[i]); - } - } - - FluidStack flMain = tileEntity.getFluid(); - - if (flMain == null) - { - dos.writeInt(AlchemicalWizardry.lifeEssenceFluid.getBlockID()); - dos.writeInt(0); - } else - { - dos.writeInt(flMain.fluidID); - dos.writeInt(flMain.amount); - } - - FluidStack flOut = tileEntity.getOutputFluid(); - - if (flOut == null) - { - dos.writeInt(AlchemicalWizardry.lifeEssenceFluid.getBlockID()); - dos.writeInt(0); - } else - { - dos.writeInt(flOut.fluidID); - dos.writeInt(flOut.amount); - } - - FluidStack flIn = tileEntity.getInputFluid(); - - if (flIn == null) - { - dos.writeInt(AlchemicalWizardry.lifeEssenceFluid.getBlockID()); - dos.writeInt(0); - } else - { - dos.writeInt(flIn.fluidID); - dos.writeInt(flIn.amount); - } - - dos.writeInt(tileEntity.capacity); - } catch (IOException e) - { - e.printStackTrace(); - } - - Packet250CustomPayload pkt = new Packet250CustomPayload(); - pkt.channel = "BloodAltar"; - pkt.data = bos.toByteArray(); - pkt.length = bos.size(); - pkt.isChunkDataPacket = true; - return pkt; - } - - public static Packet getPacket(TESocket tileEntity) - { - ByteArrayOutputStream bos = new ByteArrayOutputStream(140); - DataOutputStream dos = new DataOutputStream(bos); - int[] items = tileEntity.buildIntDataList(); - boolean hasStacks = (items != null); - - try - { - dos.writeInt(tileEntity.xCoord); - dos.writeInt(tileEntity.yCoord); - dos.writeInt(tileEntity.zCoord); - dos.writeByte(hasStacks ? 1 : 0); - - if (hasStacks) - { - for (int i = 0; i < 3; i++) - { - dos.writeInt(items[i]); - } - } - } catch (IOException e) - { - e.printStackTrace(); - } - - Packet250CustomPayload pkt = new Packet250CustomPayload(); - pkt.channel = "TESocket"; - pkt.data = bos.toByteArray(); - pkt.length = bos.size(); - pkt.isChunkDataPacket = true; - return pkt; - } - - public static Packet getPacket(String ownerName, int addedEssence, int maxEssence) - //Packet to be sent to server to change essence - { - ByteArrayOutputStream bos = new ByteArrayOutputStream(140); - DataOutputStream dos = new DataOutputStream(bos); - - try - { - dos.writeInt(ownerName.length()); - dos.writeChars(ownerName); - dos.writeInt(addedEssence); - dos.writeInt(maxEssence); //Used for Blood Orbs, but does nothing for other items - } catch (IOException e) - { - e.printStackTrace(); - } - - Packet250CustomPayload pkt = new Packet250CustomPayload(); - pkt.channel = "SetLifeEssence"; - pkt.data = bos.toByteArray(); - pkt.length = bos.size(); - //pkt.isChunkDataPacket = true; - return pkt; - } - - public static Packet getPacket(String ownerName) //stores the current essence in the player's NBT - { - ByteArrayOutputStream bos = new ByteArrayOutputStream(140); - DataOutputStream dos = new DataOutputStream(bos); - - try - { - dos.writeInt(ownerName.length()); - dos.writeChars(ownerName); - } catch (IOException e) - { - e.printStackTrace(); - } - - Packet250CustomPayload pkt = new Packet250CustomPayload(); - pkt.channel = "GetLifeEssence"; - pkt.data = bos.toByteArray(); - pkt.length = bos.size(); - //pkt.isChunkDataPacket = true; - return pkt; - } - - public static Packet getAltarPacket(int x, int y, int z) - { - ByteArrayOutputStream bos = new ByteArrayOutputStream(140); - DataOutputStream dos = new DataOutputStream(bos); - - try - { - dos.writeInt(x); - dos.writeInt(y); - dos.writeInt(z); - } catch (IOException e) - { - e.printStackTrace(); - } - - Packet250CustomPayload pkt = new Packet250CustomPayload(); - pkt.channel = "GetAltarEssence"; - pkt.data = bos.toByteArray(); - pkt.length = bos.size(); - //pkt.isChunkDataPacket = true; - return pkt; - } - - public static Packet getPacket(TEWritingTable tileEntity) - { - // TODO Auto-generated method stub - ByteArrayOutputStream bos = new ByteArrayOutputStream(140); - DataOutputStream dos = new DataOutputStream(bos); - int[] items = tileEntity.buildIntDataList(); - boolean hasStacks = (items != null); - - try - { - dos.writeInt(tileEntity.xCoord); - dos.writeInt(tileEntity.yCoord); - dos.writeInt(tileEntity.zCoord); - dos.writeByte(hasStacks ? 1 : 0); - - if (hasStacks) - { - for (int i = 0; i < 3 * 7; i++) - { - dos.writeInt(items[i]); - } - } - } catch (IOException e) - { - e.printStackTrace(); - } - - Packet250CustomPayload pkt = new Packet250CustomPayload(); - pkt.channel = "TEWritingTable"; - pkt.data = bos.toByteArray(); - pkt.length = bos.size(); - pkt.isChunkDataPacket = true; - return pkt; - } - - public static Packet getPacket(TEPedestal tileEntity) - { - // TODO Auto-generated method stub - ByteArrayOutputStream bos = new ByteArrayOutputStream(140); - DataOutputStream dos = new DataOutputStream(bos); - int[] items = tileEntity.buildIntDataList(); - boolean hasStacks = (items != null); - - try - { - dos.writeInt(tileEntity.xCoord); - dos.writeInt(tileEntity.yCoord); - dos.writeInt(tileEntity.zCoord); - dos.writeByte(hasStacks ? 1 : 0); - - if (hasStacks) - { - for (int i = 0; i < 3 * 1; i++) - { - dos.writeInt(items[i]); - } - } - } catch (IOException e) - { - e.printStackTrace(); - } - - Packet250CustomPayload pkt = new Packet250CustomPayload(); - pkt.channel = "TEPedestal"; - pkt.data = bos.toByteArray(); - pkt.length = bos.size(); - pkt.isChunkDataPacket = true; - return pkt; - } - - public static Packet getPacket(TEPlinth tileEntity) - { - // TODO Auto-generated method stub - ByteArrayOutputStream bos = new ByteArrayOutputStream(140); - DataOutputStream dos = new DataOutputStream(bos); - int[] items = tileEntity.buildIntDataList(); - boolean hasStacks = (items != null); - - try - { - dos.writeInt(tileEntity.xCoord); - dos.writeInt(tileEntity.yCoord); - dos.writeInt(tileEntity.zCoord); - dos.writeByte(hasStacks ? 1 : 0); - - if (hasStacks) - { - for (int i = 0; i < 3 * 1; i++) - { - dos.writeInt(items[i]); - } - } - } catch (IOException e) - { - e.printStackTrace(); - } - - Packet250CustomPayload pkt = new Packet250CustomPayload(); - pkt.channel = "TEPlinth"; - pkt.data = bos.toByteArray(); - pkt.length = bos.size(); - pkt.isChunkDataPacket = true; - return pkt; - } - - public static Packet getPacket(TETeleposer tileEntity) - { - // TODO Auto-generated method stub - ByteArrayOutputStream bos = new ByteArrayOutputStream(140); - DataOutputStream dos = new DataOutputStream(bos); - int[] items = tileEntity.buildIntDataList(); - boolean hasStacks = (items != null); - - try - { - dos.writeInt(tileEntity.xCoord); - dos.writeInt(tileEntity.yCoord); - dos.writeInt(tileEntity.zCoord); - dos.writeByte(hasStacks ? 1 : 0); - - if (hasStacks) - { - for (int i = 0; i < 3 * 1; i++) - { - dos.writeInt(items[i]); - } - } - } catch (IOException e) - { - e.printStackTrace(); - } - - Packet250CustomPayload pkt = new Packet250CustomPayload(); - pkt.channel = "TETeleposer"; - pkt.data = bos.toByteArray(); - pkt.length = bos.size(); - pkt.isChunkDataPacket = true; - return pkt; - } - - public static Packet getCustomParticlePacket(String str, double x, double y, double z, double xVel, double yVel, double zVel) - { - ByteArrayOutputStream bos = new ByteArrayOutputStream(140); - DataOutputStream dos = new DataOutputStream(bos); - - try - { - dos.writeInt(str.length()); - dos.writeChars(str); - dos.writeDouble(x); - dos.writeDouble(y); - dos.writeDouble(z); - dos.writeDouble(xVel); - dos.writeDouble(yVel); - dos.writeDouble(zVel); - } catch (IOException e) - { - e.printStackTrace(); - } - - Packet250CustomPayload pkt = new Packet250CustomPayload(); - pkt.channel = "CustomParticle"; - pkt.data = bos.toByteArray(); - pkt.length = bos.size(); - pkt.isChunkDataPacket = false; - return pkt; - } - - public static Packet getPlayerVelocitySettingPacket(double xVel, double yVel, double zVel) - { - ByteArrayOutputStream bos = new ByteArrayOutputStream(140); - DataOutputStream dos = new DataOutputStream(bos); - - try - { - dos.writeDouble(xVel); - dos.writeDouble(yVel); - dos.writeDouble(zVel); - } catch (IOException e) - { - e.printStackTrace(); - } - - Packet250CustomPayload pkt = new Packet250CustomPayload(); - pkt.channel = "SetPlayerVel"; - pkt.data = bos.toByteArray(); - pkt.length = bos.size(); - pkt.isChunkDataPacket = false; - return pkt; - } - - public static Packet getPlayerPositionSettingPacket(double xVel, double yVel, double zVel) - { - ByteArrayOutputStream bos = new ByteArrayOutputStream(140); - DataOutputStream dos = new DataOutputStream(bos); - - try - { - dos.writeDouble(xVel); - dos.writeDouble(yVel); - dos.writeDouble(zVel); - } catch (IOException e) - { - e.printStackTrace(); - } - - Packet250CustomPayload pkt = new Packet250CustomPayload(); - pkt.channel = "SetPlayerPos"; - pkt.data = bos.toByteArray(); - pkt.length = bos.size(); - pkt.isChunkDataPacket = false; - return pkt; - } - - public static Packet getCreativeCheatPacket(String ownerName, boolean isFill) - { - ByteArrayOutputStream bos = new ByteArrayOutputStream(140); - DataOutputStream dos = new DataOutputStream(bos); - - try - { - dos.writeInt(ownerName.length()); - dos.writeChars(ownerName); - dos.writeBoolean(isFill); - } catch (IOException e) - { - e.printStackTrace(); - } - - Packet250CustomPayload pkt = new Packet250CustomPayload(); - pkt.channel = "InfiniteLPPath"; - pkt.data = bos.toByteArray(); - pkt.length = bos.size(); - pkt.isChunkDataPacket = false; - return pkt; - } - - public static Packet getBlockOrientationPacket(TEOrientable tileEntity) - { - ByteArrayOutputStream bos = new ByteArrayOutputStream(140); - DataOutputStream dos = new DataOutputStream(bos); - - try - { - dos.writeInt(tileEntity.xCoord); - dos.writeInt(tileEntity.yCoord); - dos.writeInt(tileEntity.zCoord); - dos.writeInt(tileEntity.getIntForForgeDirection(tileEntity.getInputDirection())); - dos.writeInt(tileEntity.getIntForForgeDirection(tileEntity.getOutputDirection())); - } catch (IOException e) - { - e.printStackTrace(); - } - - Packet250CustomPayload pkt = new Packet250CustomPayload(); - pkt.channel = "TEOrientor"; - pkt.data = bos.toByteArray(); - pkt.length = bos.size(); - pkt.isChunkDataPacket = true; - return pkt; - } -} diff --git a/BM_src/WayofTime/alchemicalWizardry/common/PlinthComponent.java b/BM_src/WayofTime/alchemicalWizardry/common/PlinthComponent.java deleted file mode 100644 index 6232828a..00000000 --- a/BM_src/WayofTime/alchemicalWizardry/common/PlinthComponent.java +++ /dev/null @@ -1,37 +0,0 @@ -package WayofTime.alchemicalWizardry.common; - -public class PlinthComponent -{ - public int xOffset; - public int yOffset; - public int zOffset; - public int ring; - - public PlinthComponent(int xOffset, int yOffset, int zOffset, int ring) - { - this.xOffset = xOffset; - this.yOffset = yOffset; - this.zOffset = zOffset; - this.ring = ring; - } - - public int getXOffset() - { - return xOffset; - } - - public int getYOffset() - { - return yOffset; - } - - public int getZOffset() - { - return zOffset; - } - - public int getRing() - { - return ring; - } -} diff --git a/BM_src/WayofTime/alchemicalWizardry/common/PotionBoost.java b/BM_src/WayofTime/alchemicalWizardry/common/PotionBoost.java deleted file mode 100644 index ce4de5f2..00000000 --- a/BM_src/WayofTime/alchemicalWizardry/common/PotionBoost.java +++ /dev/null @@ -1,18 +0,0 @@ -package WayofTime.alchemicalWizardry.common; - -import net.minecraft.potion.Potion; - -public class PotionBoost extends Potion -{ - public PotionBoost(int par1, boolean par2, int par3) - { - super(par1, par2, par3); - } - - @Override - public Potion setIconIndex(int par1, int par2) - { - super.setIconIndex(par1, par2); - return this; - } -} diff --git a/BM_src/WayofTime/alchemicalWizardry/common/PotionDrowning.java b/BM_src/WayofTime/alchemicalWizardry/common/PotionDrowning.java deleted file mode 100644 index 26efc6af..00000000 --- a/BM_src/WayofTime/alchemicalWizardry/common/PotionDrowning.java +++ /dev/null @@ -1,18 +0,0 @@ -package WayofTime.alchemicalWizardry.common; - -import net.minecraft.potion.Potion; - -public class PotionDrowning extends Potion -{ - public PotionDrowning(int par1, boolean par2, int par3) - { - super(par1, par2, par3); - } - - @Override - public Potion setIconIndex(int par1, int par2) - { - super.setIconIndex(par1, par2); - return this; - } -} diff --git a/BM_src/WayofTime/alchemicalWizardry/common/PotionFireFuse.java b/BM_src/WayofTime/alchemicalWizardry/common/PotionFireFuse.java deleted file mode 100644 index 213ffbf4..00000000 --- a/BM_src/WayofTime/alchemicalWizardry/common/PotionFireFuse.java +++ /dev/null @@ -1,18 +0,0 @@ -package WayofTime.alchemicalWizardry.common; - -import net.minecraft.potion.Potion; - -public class PotionFireFuse extends Potion -{ - public PotionFireFuse(int par1, boolean par2, int par3) - { - super(par1, par2, par3); - } - - @Override - public Potion setIconIndex(int par1, int par2) - { - super.setIconIndex(par1, par2); - return this; - } -} diff --git a/BM_src/WayofTime/alchemicalWizardry/common/PotionFlameCloak.java b/BM_src/WayofTime/alchemicalWizardry/common/PotionFlameCloak.java deleted file mode 100644 index e25a7c06..00000000 --- a/BM_src/WayofTime/alchemicalWizardry/common/PotionFlameCloak.java +++ /dev/null @@ -1,18 +0,0 @@ -package WayofTime.alchemicalWizardry.common; - -import net.minecraft.potion.Potion; - -public class PotionFlameCloak extends Potion -{ - public PotionFlameCloak(int par1, boolean par2, int par3) - { - super(par1, par2, par3); - } - - @Override - public Potion setIconIndex(int par1, int par2) - { - super.setIconIndex(par1, par2); - return this; - } -} diff --git a/BM_src/WayofTime/alchemicalWizardry/common/PotionFlight.java b/BM_src/WayofTime/alchemicalWizardry/common/PotionFlight.java deleted file mode 100644 index 9b7940d0..00000000 --- a/BM_src/WayofTime/alchemicalWizardry/common/PotionFlight.java +++ /dev/null @@ -1,18 +0,0 @@ -package WayofTime.alchemicalWizardry.common; - -import net.minecraft.potion.Potion; - -public class PotionFlight extends Potion -{ - public PotionFlight(int par1, boolean par2, int par3) - { - super(par1, par2, par3); - } - - @Override - public Potion setIconIndex(int par1, int par2) - { - super.setIconIndex(par1, par2); - return this; - } -} diff --git a/BM_src/WayofTime/alchemicalWizardry/common/PotionHeavyHeart.java b/BM_src/WayofTime/alchemicalWizardry/common/PotionHeavyHeart.java deleted file mode 100644 index 18bfcaf1..00000000 --- a/BM_src/WayofTime/alchemicalWizardry/common/PotionHeavyHeart.java +++ /dev/null @@ -1,18 +0,0 @@ -package WayofTime.alchemicalWizardry.common; - -import net.minecraft.potion.Potion; - -public class PotionHeavyHeart extends Potion -{ - public PotionHeavyHeart(int par1, boolean par2, int par3) - { - super(par1, par2, par3); - } - - @Override - public Potion setIconIndex(int par1, int par2) - { - super.setIconIndex(par1, par2); - return this; - } -} diff --git a/BM_src/WayofTime/alchemicalWizardry/common/PotionIceCloak.java b/BM_src/WayofTime/alchemicalWizardry/common/PotionIceCloak.java deleted file mode 100644 index 18eba799..00000000 --- a/BM_src/WayofTime/alchemicalWizardry/common/PotionIceCloak.java +++ /dev/null @@ -1,18 +0,0 @@ -package WayofTime.alchemicalWizardry.common; - -import net.minecraft.potion.Potion; - -public class PotionIceCloak extends Potion -{ - public PotionIceCloak(int par1, boolean par2, int par3) - { - super(par1, par2, par3); - } - - @Override - public Potion setIconIndex(int par1, int par2) - { - super.setIconIndex(par1, par2); - return this; - } -} diff --git a/BM_src/WayofTime/alchemicalWizardry/common/PotionInhibit.java b/BM_src/WayofTime/alchemicalWizardry/common/PotionInhibit.java deleted file mode 100644 index 0014b9c3..00000000 --- a/BM_src/WayofTime/alchemicalWizardry/common/PotionInhibit.java +++ /dev/null @@ -1,18 +0,0 @@ -package WayofTime.alchemicalWizardry.common; - -import net.minecraft.potion.Potion; - -public class PotionInhibit extends Potion -{ - public PotionInhibit(int par1, boolean par2, int par3) - { - super(par1, par2, par3); - } - - @Override - public Potion setIconIndex(int par1, int par2) - { - super.setIconIndex(par1, par2); - return this; - } -} diff --git a/BM_src/WayofTime/alchemicalWizardry/common/PotionPlanarBinding.java b/BM_src/WayofTime/alchemicalWizardry/common/PotionPlanarBinding.java deleted file mode 100644 index 8cd8fb59..00000000 --- a/BM_src/WayofTime/alchemicalWizardry/common/PotionPlanarBinding.java +++ /dev/null @@ -1,18 +0,0 @@ -package WayofTime.alchemicalWizardry.common; - -import net.minecraft.potion.Potion; - -public class PotionPlanarBinding extends Potion -{ - public PotionPlanarBinding(int par1, boolean par2, int par3) - { - super(par1, par2, par3); - } - - @Override - public Potion setIconIndex(int par1, int par2) - { - super.setIconIndex(par1, par2); - return this; - } -} diff --git a/BM_src/WayofTime/alchemicalWizardry/common/PotionProjectileProtect.java b/BM_src/WayofTime/alchemicalWizardry/common/PotionProjectileProtect.java deleted file mode 100644 index b3c70c6b..00000000 --- a/BM_src/WayofTime/alchemicalWizardry/common/PotionProjectileProtect.java +++ /dev/null @@ -1,18 +0,0 @@ -package WayofTime.alchemicalWizardry.common; - -import net.minecraft.potion.Potion; - -public class PotionProjectileProtect extends Potion -{ - public PotionProjectileProtect(int par1, boolean par2, int par3) - { - super(par1, par2, par3); - } - - @Override - public Potion setIconIndex(int par1, int par2) - { - super.setIconIndex(par1, par2); - return this; - } -} diff --git a/BM_src/WayofTime/alchemicalWizardry/common/PotionReciprocation.java b/BM_src/WayofTime/alchemicalWizardry/common/PotionReciprocation.java deleted file mode 100644 index 2f105b23..00000000 --- a/BM_src/WayofTime/alchemicalWizardry/common/PotionReciprocation.java +++ /dev/null @@ -1,18 +0,0 @@ -package WayofTime.alchemicalWizardry.common; - -import net.minecraft.potion.Potion; - -public class PotionReciprocation extends Potion -{ - public PotionReciprocation(int par1, boolean par2, int par3) - { - super(par1, par2, par3); - } - - @Override - public Potion setIconIndex(int par1, int par2) - { - super.setIconIndex(par1, par2); - return this; - } -} diff --git a/BM_src/WayofTime/alchemicalWizardry/common/alchemy/CombinedPotionCreationHandler.java b/BM_src/WayofTime/alchemicalWizardry/common/alchemy/CombinedPotionCreationHandler.java deleted file mode 100644 index a84852bc..00000000 --- a/BM_src/WayofTime/alchemicalWizardry/common/alchemy/CombinedPotionCreationHandler.java +++ /dev/null @@ -1,11 +0,0 @@ -package WayofTime.alchemicalWizardry.common.alchemy; - -import net.minecraft.item.ItemStack; - -public class CombinedPotionCreationHandler -{ - public static void getPotionPotionIDForFlask(ItemStack flaskStack) - { - - } -} diff --git a/BM_src/WayofTime/alchemicalWizardry/common/alchemy/CombinedPotionHandlerComponent.java b/BM_src/WayofTime/alchemicalWizardry/common/alchemy/CombinedPotionHandlerComponent.java deleted file mode 100644 index c97be872..00000000 --- a/BM_src/WayofTime/alchemicalWizardry/common/alchemy/CombinedPotionHandlerComponent.java +++ /dev/null @@ -1,52 +0,0 @@ -package WayofTime.alchemicalWizardry.common.alchemy; - -import java.util.ArrayList; - -import net.minecraft.item.ItemStack; -import WayofTime.alchemicalWizardry.api.alchemy.AlchemyPotionHelper; -import WayofTime.alchemicalWizardry.common.items.potion.AlchemyFlask; - -public class CombinedPotionHandlerComponent -{ - private int potionID; - private int req1; - private int req2; - private int tickDuration; - - public CombinedPotionHandlerComponent(int potionID, int req1, int req2, int tickDuration) - { - this.potionID = potionID; - this.req1 = req1; - this.req2 = req2; - this.tickDuration = tickDuration; - } - - public boolean doesFlaskContentsMatch(ItemStack flaskStack) - { - ArrayList list = AlchemyFlask.getEffects(flaskStack); - - boolean bool1 = false; - boolean bool2 = false; - - if (list != null) - { - for (AlchemyPotionHelper aph : list) - { - if (aph.getPotionID() == req1) - { - bool1 = true; - } - if (aph.getPotionID() == req2) - { - bool2 = true; - } - if(bool1&&bool2) - { - return true; - } - } - } - - return false; - } -} diff --git a/BM_src/WayofTime/alchemicalWizardry/common/block/ArmourForge.java b/BM_src/WayofTime/alchemicalWizardry/common/block/ArmourForge.java deleted file mode 100644 index 302d4ddd..00000000 --- a/BM_src/WayofTime/alchemicalWizardry/common/block/ArmourForge.java +++ /dev/null @@ -1,334 +0,0 @@ -package WayofTime.alchemicalWizardry.common.block; - -import WayofTime.alchemicalWizardry.AlchemicalWizardry; -import WayofTime.alchemicalWizardry.ModItems; -import WayofTime.alchemicalWizardry.api.items.interfaces.ArmourUpgrade; -import WayofTime.alchemicalWizardry.common.ArmourComponent; -import WayofTime.alchemicalWizardry.common.items.BoundArmour; -import WayofTime.alchemicalWizardry.common.tileEntity.TEAltar; -import WayofTime.alchemicalWizardry.common.tileEntity.TESocket; -import cpw.mods.fml.common.network.PacketDispatcher; -import cpw.mods.fml.relauncher.Side; -import cpw.mods.fml.relauncher.SideOnly; -import net.minecraft.block.Block; -import net.minecraft.block.material.Material; -import net.minecraft.client.renderer.texture.IconRegister; -import net.minecraft.entity.effect.EntityLightningBolt; -import net.minecraft.entity.item.EntityItem; -import net.minecraft.entity.player.EntityPlayer; -import net.minecraft.item.Item; -import net.minecraft.item.ItemStack; -import net.minecraft.nbt.NBTTagCompound; -import net.minecraft.tileentity.TileEntity; -import net.minecraft.world.World; - -import java.util.ArrayList; -import java.util.List; - -public class ArmourForge extends Block -{ - public static List helmetList = new ArrayList(); - public static List plateList = new ArrayList(); - public static List leggingsList = new ArrayList(); - public static List bootsList = new ArrayList(); - - public ArmourForge(int par1) - { - super(par1, Material.iron); - setHardness(2.0F); - setResistance(5.0F); - setCreativeTab(AlchemicalWizardry.tabBloodMagic); - setUnlocalizedName("armourForge"); - // TODO Auto-generated constructor stub - } - - @Override - @SideOnly(Side.CLIENT) - public void registerIcons(IconRegister iconRegister) - { - this.blockIcon = iconRegister.registerIcon("AlchemicalWizardry:SoulForge"); - } - - @Override - public boolean onBlockActivated(World world, int x, int y, int z, EntityPlayer player, int idk, float what, float these, float are) - { - if (world.isRemote) - { - return false; - } - - int armourType = getArmourType(world, x, y, z); - - if (armourType == -1) - { - return false; - } - - int direction = getDirectionForArmourType(world, x, y, z, armourType); - - if (!isParadigmValid(armourType, direction, world, x, y, z)) - { - return false; - } - - List list = null; - ItemStack armourPiece = null; - - switch (armourType) - { - case 0: - list = plateList; - armourPiece = new ItemStack(ModItems.boundPlate.itemID, 1, 0); - break; - - case 1: - list = leggingsList; - armourPiece = new ItemStack(ModItems.boundLeggings.itemID, 1, 0); - break; - - case 2: - list = helmetList; - armourPiece = new ItemStack(ModItems.boundHelmet.itemID, 1, 0); - break; - - case 3: - list = bootsList; - armourPiece = new ItemStack(ModItems.boundBoots.itemID, 1, 0); - break; - } - - if (list == null) - { - return false; - } - - if (armourPiece == null) - { - return false; - } - - if (armourPiece.stackTagCompound == null) - { - armourPiece.setTagCompound(new NBTTagCompound()); - } - - for (ArmourComponent ac : list) - { - int xOff = ac.getXOff(); - int zOff = ac.getZOff(); - TileEntity tileEntity; - - switch (direction) - { - case 1: - tileEntity = world.getBlockTileEntity(x + xOff, y, z - zOff); - break; - - case 2: - tileEntity = world.getBlockTileEntity(x + zOff, y, z + xOff); - break; - - case 3: - tileEntity = world.getBlockTileEntity(x - xOff, y, z + zOff); - break; - - case 4: - tileEntity = world.getBlockTileEntity(x - zOff, y, z - xOff); - break; - - case 5: - tileEntity = world.getBlockTileEntity(x + xOff, y + zOff, z); - break; - - case 6: - tileEntity = world.getBlockTileEntity(x, y + zOff, z + xOff); - break; - - default: - tileEntity = null; - } - - if (tileEntity instanceof TESocket) - { - ItemStack itemStack = ((TESocket) tileEntity).getStackInSlot(0); - int xCoord = tileEntity.xCoord; - int yCoord = tileEntity.yCoord; - int zCoord = tileEntity.zCoord; - ((TESocket) tileEntity).setInventorySlotContents(0, null); - world.setBlockToAir(tileEntity.xCoord, tileEntity.yCoord, tileEntity.zCoord); - - for (int i = 0; i < 8; i++) - { - PacketDispatcher.sendPacketToAllAround(xCoord, yCoord, zCoord, 20, world.provider.dimensionId, TEAltar.getParticlePacket(xCoord, yCoord, zCoord, (short) 1)); - } - - if (itemStack != null) - { - Item item = itemStack.getItem(); - - if (item instanceof ArmourUpgrade) - { - ((BoundArmour) armourPiece.getItem()).hasAddedToInventory(armourPiece, itemStack.copy()); - ((TESocket) tileEntity).setInventorySlotContents(0, null); - } - } - } - } - - if (armourPiece != null) - { - int xOff = (world.rand.nextInt(11) - 5); - int zOff = (int) (Math.sqrt(25 - xOff * xOff) * (world.rand.nextInt(2) - 0.5) * 2); - world.addWeatherEffect(new EntityLightningBolt(world, x + xOff, y + 5, z + zOff)); - world.spawnEntityInWorld(new EntityItem(world, x, y + 1, z, armourPiece)); - } - - return true; - } - - //0 for plate, 1 for leggings, 2 for helmet, 3 for boots - public int getArmourType(World world, int x, int y, int z) - { - for (int i = 0; i <= 3; i++) - { - if (getDirectionForArmourType(world, x, y, z, i) != -1) - { - return i; - } - } - - return -1; - } - - public int getDirectionForArmourType(World world, int x, int y, int z, int armourType) - { - for (int i = 1; i <= 6; i++) - { - if (isParadigmValid(armourType, i, world, x, y, z)) - { - return i; - } - } - - return -1; - } - - public boolean isParadigmValid(int armourType, int direction, World world, int x, int y, int z) - { - List list = null; - - switch (armourType) - { - case 0: - list = plateList; - break; - - case 1: - list = leggingsList; - break; - - case 2: - list = helmetList; - break; - - case 3: - list = bootsList; - break; - } - - if (list == null) - { - return false; - } - - for (ArmourComponent ac : list) - { - int xOff = ac.getXOff(); - int zOff = ac.getZOff(); - - switch (direction) - { - case 1: - if (!(world.getBlockTileEntity(x + xOff, y, z - zOff) instanceof TESocket)) - { - return false; - } - - break; - - case 2: - if (!(world.getBlockTileEntity(x + zOff, y, z + xOff) instanceof TESocket)) - { - return false; - } - - break; - - case 3: - if (!(world.getBlockTileEntity(x - xOff, y, z + zOff) instanceof TESocket)) - { - return false; - } - - break; - - case 4: - if (!(world.getBlockTileEntity(x - zOff, y, z - xOff) instanceof TESocket)) - { - return false; - } - - break; - - case 5: - if (!(world.getBlockTileEntity(x + xOff, y + zOff, z) instanceof TESocket)) - { - return false; - } - - break; - - case 6: - if (!(world.getBlockTileEntity(x, y + zOff, z + xOff) instanceof TESocket)) - { - return false; - } - - break; - - default: - return false; - } - } - - return true; - } - - public static void initializeRecipes() - { - helmetList.add(new ArmourComponent(-1, 1)); - helmetList.add(new ArmourComponent(0, 1)); - helmetList.add(new ArmourComponent(1, 1)); - helmetList.add(new ArmourComponent(-1, 0)); - helmetList.add(new ArmourComponent(1, 0)); - bootsList.add(new ArmourComponent(-1, 1)); - bootsList.add(new ArmourComponent(1, 1)); - bootsList.add(new ArmourComponent(-1, 0)); - bootsList.add(new ArmourComponent(1, 0)); - plateList.add(new ArmourComponent(-1, 0)); - plateList.add(new ArmourComponent(1, 0)); - plateList.add(new ArmourComponent(-1, -1)); - plateList.add(new ArmourComponent(0, -1)); - plateList.add(new ArmourComponent(1, -1)); - plateList.add(new ArmourComponent(-1, -2)); - plateList.add(new ArmourComponent(0, -2)); - plateList.add(new ArmourComponent(1, -2)); - leggingsList.add(new ArmourComponent(-1, 1)); - leggingsList.add(new ArmourComponent(0, 1)); - leggingsList.add(new ArmourComponent(1, 1)); - leggingsList.add(new ArmourComponent(-1, 0)); - leggingsList.add(new ArmourComponent(1, 0)); - leggingsList.add(new ArmourComponent(-1, -1)); - leggingsList.add(new ArmourComponent(1, -1)); - } -} diff --git a/BM_src/WayofTime/alchemicalWizardry/common/block/BlockAltar.java b/BM_src/WayofTime/alchemicalWizardry/common/block/BlockAltar.java deleted file mode 100644 index 66d6131d..00000000 --- a/BM_src/WayofTime/alchemicalWizardry/common/block/BlockAltar.java +++ /dev/null @@ -1,277 +0,0 @@ -package WayofTime.alchemicalWizardry.common.block; - -import WayofTime.alchemicalWizardry.AlchemicalWizardry; -import WayofTime.alchemicalWizardry.ModItems; -import WayofTime.alchemicalWizardry.common.PacketHandler; -import WayofTime.alchemicalWizardry.common.items.EnergyBattery; -import WayofTime.alchemicalWizardry.common.items.sigil.SigilOfHolding; -import WayofTime.alchemicalWizardry.common.tileEntity.TEAltar; -import cpw.mods.fml.common.network.PacketDispatcher; -import cpw.mods.fml.relauncher.Side; -import cpw.mods.fml.relauncher.SideOnly; -import net.minecraft.block.BlockContainer; -import net.minecraft.block.material.Material; -import net.minecraft.client.renderer.texture.IconRegister; -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.nbt.NBTTagCompound; -import net.minecraft.tileentity.TileEntity; -import net.minecraft.util.Icon; -import net.minecraft.world.IBlockAccess; -import net.minecraft.world.World; - -import java.util.Random; - -public class BlockAltar extends BlockContainer -{ - @SideOnly(Side.CLIENT) - private static Icon topIcon; - @SideOnly(Side.CLIENT) - private static Icon sideIcon1; - @SideOnly(Side.CLIENT) - private static Icon sideIcon2; - @SideOnly(Side.CLIENT) - private static Icon bottomIcon; - - public BlockAltar(int id) - { - super(id, Material.rock); - setHardness(2.0F); - setResistance(5.0F); - setCreativeTab(AlchemicalWizardry.tabBloodMagic); - setUnlocalizedName("blockAltar"); - //func_111022_d("AlchemicalWizardry:blocks"); - } - - @Override - @SideOnly(Side.CLIENT) - public void registerIcons(IconRegister iconRegister) - { - this.topIcon = iconRegister.registerIcon("AlchemicalWizardry:BloodAltar_Top"); - this.sideIcon1 = iconRegister.registerIcon("AlchemicalWizardry:BloodAltar_SideType1"); - this.sideIcon2 = iconRegister.registerIcon("AlchemicalWizardry:BloodAltar_SideType2"); - this.bottomIcon = iconRegister.registerIcon("AlchemicalWizardry:BloodAltar_Bottom"); - } - - @Override - @SideOnly(Side.CLIENT) - public Icon getIcon(int side, int meta) - { - switch (side) - { - case 0: - return bottomIcon; - - case 1: - return topIcon; - - //case 2: return sideIcon1; - //case 3: return sideIcon1; - //case 4: return sideIcon2; - //case 5: return sideIcon2; - default: - return sideIcon2; - } - } - - @Override - public boolean onBlockActivated(World world, int x, int y, int z, EntityPlayer player, int idk, float what, float these, float are) - { - TEAltar tileEntity = (TEAltar) world.getBlockTileEntity(x, y, z); - -// world.scheduleBlockUpdate(x, y, z, this.blockID, 0); - - if (tileEntity == null || player.isSneaking()) - { - return false; - } - - ItemStack playerItem = player.getCurrentEquippedItem(); - - if (playerItem != null) - { - if (playerItem.getItem().itemID == ModItems.divinationSigil.itemID) - { - if (player.worldObj.isRemote) - { - PacketDispatcher.sendPacketToServer(PacketHandler.getAltarPacket(x, y, z)); - } - - return true; - } else if (playerItem.getItem().itemID == ModItems.sigilOfHolding.itemID) - { - ItemStack item = ((SigilOfHolding) playerItem.getItem()).getCurrentItem(playerItem); - - if (item != null && item.getItem().itemID == ModItems.divinationSigil.itemID) - { - if (player.worldObj.isRemote) - { - PacketDispatcher.sendPacketToServer(PacketHandler.getAltarPacket(x, y, z)); - } - - return true; - } - } - } - - if (tileEntity.getStackInSlot(0) == null && playerItem != null) - { - ItemStack newItem = playerItem.copy(); - newItem.stackSize = 1; -// if(newItem.getMaxDamage()==0) -// { -// newItem.setItemDamage(0); -// } - --playerItem.stackSize; - tileEntity.setInventorySlotContents(0, newItem); - tileEntity.startCycle(); - } else if (tileEntity.getStackInSlot(0) != null && playerItem == null) - { - /**stub method - * Add the item that is in the slot to the player's inventory, and - * then set the slot to null. - */ - player.inventory.addItemStackToInventory(tileEntity.getStackInSlot(0)); - tileEntity.setInventorySlotContents(0, null); - tileEntity.setActive(); - } - - world.markBlockForUpdate(x, y, z); - //player.openGui(AlchemicalWizardry.instance, 0, world, x, y, z); - //PacketDispatcher.sendPacketToServer(tileEntity.getDescriptionPacket()); - return true; - } - - @Override - public void breakBlock(World world, int x, int y, int z, int par5, int par6) - { - dropItems(world, x, y, z); - super.breakBlock(world, x, y, z, par5, par6); - } - - private void dropItems(World world, int x, int y, int z) - { - Random rand = new Random(); - TileEntity tileEntity = world.getBlockTileEntity(x, y, z); - - if (!(tileEntity instanceof IInventory)) - { - return; - } - - IInventory inventory = (IInventory) tileEntity; - - for (int i = 0; i < inventory.getSizeInventory(); i++) - { - ItemStack item = inventory.getStackInSlot(i); - - if (item != null && item.stackSize > 0) - { - float rx = rand.nextFloat() * 0.8F + 0.1F; - float ry = rand.nextFloat() * 0.8F + 0.1F; - float rz = rand.nextFloat() * 0.8F + 0.1F; - EntityItem entityItem = new EntityItem(world, - x + rx, y + ry, z + rz, - new ItemStack(item.itemID, item.stackSize, item.getItemDamage())); - - if (item.hasTagCompound()) - { - entityItem.getEntityItem().setTagCompound((NBTTagCompound) item.getTagCompound().copy()); - } - - float factor = 0.05F; - entityItem.motionX = rand.nextGaussian() * factor; - entityItem.motionY = rand.nextGaussian() * factor + 0.2F; - entityItem.motionZ = rand.nextGaussian() * factor; - world.spawnEntityInWorld(entityItem); - item.stackSize = 0; - } - } - } - - @Override - public TileEntity createNewTileEntity(World world) - { - return new TEAltar(); - } - - @Override - public boolean renderAsNormalBlock() - { - return false; - } - - @Override - public int getRenderType() - { - return -1; - } - - @Override - public boolean isOpaqueCube() - { - return false; - } - - @Override - public boolean hasTileEntity() - { - return true; - } - - @Override - public void randomDisplayTick(World world, int x, int y, int z, Random rand) - { - TEAltar tileEntity = (TEAltar) world.getBlockTileEntity(x, y, z); - - if (!tileEntity.isActive()) - { - return; - } - - if (rand.nextInt(3) != 0) - { - return; - } - } - -// @Override -// public int isProvidingStrongPower(IBlockAccess par1IBlockAccess, int par2, int par3, int par4, int par5) -// { -// return 1; -// } - - @Override - public boolean canProvidePower() - { - return true; - } - - @Override - public int isProvidingWeakPower(IBlockAccess par1IBlockAccess, int par2, int par3, int par4, int par5) - { - TileEntity tile = par1IBlockAccess.getBlockTileEntity(par2, par3, par4); - - if (tile instanceof TEAltar) - { -// if(tile.worldObj.isRemote) -// { -// return 0; -// } - ItemStack stack = ((TEAltar) tile).getStackInSlot(0); - - if (stack != null && stack.getItem() instanceof EnergyBattery) - { - EnergyBattery bloodOrb = (EnergyBattery) stack.getItem(); - int maxEssence = bloodOrb.getMaxEssence(); - int currentEssence = bloodOrb.getCurrentEssence(stack); - int level = currentEssence * 15 / maxEssence; - return ((int) (Math.min(15, level))) % 16; - } - } - - return 0; - } -} diff --git a/BM_src/WayofTime/alchemicalWizardry/common/block/BlockBloodLightSource.java b/BM_src/WayofTime/alchemicalWizardry/common/block/BlockBloodLightSource.java deleted file mode 100644 index c0bbdc34..00000000 --- a/BM_src/WayofTime/alchemicalWizardry/common/block/BlockBloodLightSource.java +++ /dev/null @@ -1,81 +0,0 @@ -package WayofTime.alchemicalWizardry.common.block; - -import cpw.mods.fml.relauncher.Side; -import cpw.mods.fml.relauncher.SideOnly; -import net.minecraft.block.Block; -import net.minecraft.block.material.Material; -import net.minecraft.client.renderer.texture.IconRegister; -import net.minecraft.entity.Entity; -import net.minecraft.util.AxisAlignedBB; -import net.minecraft.world.IBlockAccess; -import net.minecraft.world.World; - -import java.util.List; -import java.util.Random; - -public class BlockBloodLightSource extends Block -{ - public BlockBloodLightSource(int par1) - { - super(par1, Material.cloth); - //setCreativeTab(AlchemicalWizardry.tabBloodMagic); - this.setUnlocalizedName("blockBloodLightSource"); - } - - @Override - @SideOnly(Side.CLIENT) - public void registerIcons(IconRegister iconRegister) - { - this.blockIcon = iconRegister.registerIcon("AlchemicalWizardry:BlockBloodLight"); - } - - @Override - public int getLightValue(IBlockAccess world, int x, int y, int z) - { - return 15; - } - - @Override - public boolean isOpaqueCube() - { - return false; - } - - @Override - public boolean renderAsNormalBlock() - { - return false; - } - - @Override - public void randomDisplayTick(World world, int x, int y, int z, Random rand) - { - if (rand.nextInt(3) != 0) - { - 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; - world.spawnParticle("reddust", x + 0.5D + rand.nextGaussian() / 8, y + 0.5D, z + 0.5D + rand.nextGaussian() / 8, f1, f2, f3); - } - } - - @Override - - public void addCollisionBoxesToList(World par1World, int par2, int par3, int par4, AxisAlignedBB par5AxisAlignedBB, List par6List, Entity par7Entity) - { - this.setBlockBounds(0.4f,0.4f,0.4f,0.6f,0.6f,0.6f); - //super.addCollisionBoxesToList(par1World, par2, par3, par4, par5AxisAlignedBB, par6List, par7Entity); - } - - public int quantityDropped(Random par1Random) - { - return 0; - } - - @Override - public boolean isAirBlock(World world, int x, int y, int z) - { - return true; - } -} diff --git a/BM_src/WayofTime/alchemicalWizardry/common/block/BlockConduit.java b/BM_src/WayofTime/alchemicalWizardry/common/block/BlockConduit.java deleted file mode 100644 index 1072bc8d..00000000 --- a/BM_src/WayofTime/alchemicalWizardry/common/block/BlockConduit.java +++ /dev/null @@ -1,105 +0,0 @@ -package WayofTime.alchemicalWizardry.common.block; - -import net.minecraft.block.BlockContainer; -import net.minecraft.block.material.Material; -import net.minecraft.client.renderer.texture.IconRegister; -import net.minecraft.entity.player.EntityPlayer; -import net.minecraft.tileentity.TileEntity; -import net.minecraft.util.Icon; -import net.minecraft.world.World; -import net.minecraftforge.common.ForgeDirection; -import WayofTime.alchemicalWizardry.AlchemicalWizardry; -import WayofTime.alchemicalWizardry.common.tileEntity.TEConduit; -import WayofTime.alchemicalWizardry.common.tileEntity.TEOrientable; -import cpw.mods.fml.relauncher.Side; -import cpw.mods.fml.relauncher.SideOnly; - -public class BlockConduit extends BlockOrientable -{ - @SideOnly(Side.CLIENT) - private static Icon topIcon; - @SideOnly(Side.CLIENT) - private static Icon sideIcon1; - @SideOnly(Side.CLIENT) - private static Icon sideIcon2; - @SideOnly(Side.CLIENT) - private static Icon bottomIcon; - - public BlockConduit(int id) - { - super(id); - setHardness(2.0F); - setResistance(5.0F); - setCreativeTab(AlchemicalWizardry.tabBloodMagic); - setUnlocalizedName("blockConduit"); - //func_111022_d("AlchemicalWizardry:blocks"); - } - - @Override - @SideOnly(Side.CLIENT) - public void registerIcons(IconRegister iconRegister) - { - this.topIcon = iconRegister.registerIcon("AlchemicalWizardry:BloodAltar_Top"); - this.sideIcon1 = iconRegister.registerIcon("AlchemicalWizardry:BloodAltar_SideType1"); - this.sideIcon2 = iconRegister.registerIcon("AlchemicalWizardry:BloodAltar_SideType2"); - this.bottomIcon = iconRegister.registerIcon("AlchemicalWizardry:BloodAltar_Bottom"); - } - - @Override - @SideOnly(Side.CLIENT) - public Icon getIcon(int side, int meta) - { - switch (side) - { - case 0: - return bottomIcon; - - case 1: - return topIcon; - - //case 2: return sideIcon1; - //case 3: return sideIcon1; - //case 4: return sideIcon2; - //case 5: return sideIcon2; - default: - return sideIcon2; - } - } - - @Override - public void breakBlock(World world, int x, int y, int z, int par5, int par6) - { - //dropItems(world, x, y, z); - super.breakBlock(world, x, y, z, par5, par6); - } - - @Override - public TileEntity createNewTileEntity(World world) - { - return new TEConduit(); - } - - @Override - public boolean renderAsNormalBlock() - { - return false; - } - - @Override - public int getRenderType() - { - return -1; - } - - @Override - public boolean isOpaqueCube() - { - return false; - } - - @Override - public boolean hasTileEntity() - { - return true; - } -} diff --git a/BM_src/WayofTime/alchemicalWizardry/common/block/BlockHomHeart.java b/BM_src/WayofTime/alchemicalWizardry/common/block/BlockHomHeart.java deleted file mode 100644 index 40d9be27..00000000 --- a/BM_src/WayofTime/alchemicalWizardry/common/block/BlockHomHeart.java +++ /dev/null @@ -1,102 +0,0 @@ -package WayofTime.alchemicalWizardry.common.block; - -import WayofTime.alchemicalWizardry.AlchemicalWizardry; -import WayofTime.alchemicalWizardry.common.items.BlankSpell; -import WayofTime.alchemicalWizardry.common.tileEntity.TEHomHeart; -import cpw.mods.fml.relauncher.Side; -import cpw.mods.fml.relauncher.SideOnly; -import net.minecraft.block.BlockContainer; -import net.minecraft.block.BlockGrass; -import net.minecraft.block.material.Material; -import net.minecraft.client.renderer.texture.IconRegister; -import net.minecraft.entity.player.EntityPlayer; -import net.minecraft.item.ItemStack; -import net.minecraft.nbt.NBTTagCompound; -import net.minecraft.tileentity.TileEntity; -import net.minecraft.util.Icon; -import net.minecraft.world.World; - -public class BlockHomHeart extends BlockContainer -{ - public Icon bottomIcon; - public Icon topIcon; - public Icon sideIcon; - - public BlockHomHeart(int id) - { - super(id, Material.rock); - setHardness(2.0F); - setResistance(5.0F); - setCreativeTab(AlchemicalWizardry.tabBloodMagic); - setUnlocalizedName("blockHomHeart"); - } - - @Override - @SideOnly(Side.CLIENT) - public void registerIcons(IconRegister iconRegister) - { - this.topIcon = iconRegister.registerIcon("AlchemicalWizardry:HomHeart_top"); - this.bottomIcon = iconRegister.registerIcon("AlchemicalWizardry:HomHeart_bottom"); - this.sideIcon = iconRegister.registerIcon("AlchemicalWizardry:HomHeart_side"); - } - - @Override - @SideOnly(Side.CLIENT) - public Icon getIcon(int side, int meta) - { - switch (side) - { - case 0: - return bottomIcon; - - case 1: - return topIcon; - - //case 2: return sideIcon1; - //case 3: return sideIcon1; - //case 4: return sideIcon2; - //case 5: return sideIcon2; - default: - return sideIcon; - } - } - - @Override - public boolean onBlockActivated(World world, int x, int y, int z, EntityPlayer player, int idk, float what, float these, float are) - { - TEHomHeart tileEntity = (TEHomHeart) world.getBlockTileEntity(x, y, z); - - if (tileEntity == null || player.isSneaking()) - { - return false; - } - - ItemStack playerItem = player.getCurrentEquippedItem(); - - if (playerItem != null) - { - if (playerItem.getItem() instanceof BlankSpell) - { - if (playerItem.stackTagCompound == null) - { - playerItem.setTagCompound(new NBTTagCompound()); - } - - NBTTagCompound itemTag = playerItem.stackTagCompound; - itemTag.setInteger("xCoord", x); - itemTag.setInteger("yCoord", y); - itemTag.setInteger("zCoord", z); - itemTag.setInteger("dimensionId", world.provider.dimensionId); - return true; - } - } - - return false; - } - - @Override - public TileEntity createNewTileEntity(World world) - { - return new TEHomHeart(); - } -} diff --git a/BM_src/WayofTime/alchemicalWizardry/common/block/BlockMasterStone.java b/BM_src/WayofTime/alchemicalWizardry/common/block/BlockMasterStone.java deleted file mode 100644 index 8495791e..00000000 --- a/BM_src/WayofTime/alchemicalWizardry/common/block/BlockMasterStone.java +++ /dev/null @@ -1,72 +0,0 @@ -package WayofTime.alchemicalWizardry.common.block; - -import WayofTime.alchemicalWizardry.AlchemicalWizardry; -import WayofTime.alchemicalWizardry.common.items.ActivationCrystal; -import WayofTime.alchemicalWizardry.common.tileEntity.TEMasterStone; -import cpw.mods.fml.relauncher.Side; -import cpw.mods.fml.relauncher.SideOnly; -import net.minecraft.block.BlockContainer; -import net.minecraft.block.material.Material; -import net.minecraft.client.renderer.texture.IconRegister; -import net.minecraft.entity.player.EntityPlayer; -import net.minecraft.item.Item; -import net.minecraft.item.ItemStack; -import net.minecraft.tileentity.TileEntity; -import net.minecraft.world.World; - -public class BlockMasterStone extends BlockContainer -{ - public BlockMasterStone(int id) - { - super(id, Material.iron); - setHardness(2.0F); - setResistance(5.0F); - setCreativeTab(AlchemicalWizardry.tabBloodMagic); - setUnlocalizedName("blockMasterStone"); - // TODO Auto-generated constructor stub - } - - @Override - @SideOnly(Side.CLIENT) - public void registerIcons(IconRegister iconRegister) - { - this.blockIcon = iconRegister.registerIcon("AlchemicalWizardry:MasterStone"); - } - - @Override - public boolean onBlockActivated(World world, int x, int y, int z, EntityPlayer player, int idk, float what, float these, float are) - { - TEMasterStone tileEntity = (TEMasterStone) world.getBlockTileEntity(x, y, z); - - if (tileEntity == null || player.isSneaking()) - { - return false; - } - - ItemStack playerItem = player.getCurrentEquippedItem(); - - if (playerItem == null) - { - return false; - } - - Item item = playerItem.getItem(); - - if (!(item instanceof ActivationCrystal)) - { - return false; - } - - ActivationCrystal acItem = (ActivationCrystal) item; - tileEntity.setOwner(acItem.getOwnerName(playerItem)); - tileEntity.activateRitual(world, acItem.getCrystalLevel(playerItem)); - world.markBlockForUpdate(x, y, z); - return true; - } - - @Override - public TileEntity createNewTileEntity(World world) - { - return new TEMasterStone(); - } -} diff --git a/BM_src/WayofTime/alchemicalWizardry/common/block/BlockOrientable.java b/BM_src/WayofTime/alchemicalWizardry/common/block/BlockOrientable.java deleted file mode 100644 index 42c455d2..00000000 --- a/BM_src/WayofTime/alchemicalWizardry/common/block/BlockOrientable.java +++ /dev/null @@ -1,250 +0,0 @@ -package WayofTime.alchemicalWizardry.common.block; - -import net.minecraft.block.BlockContainer; -import net.minecraft.block.material.Material; -import net.minecraft.client.renderer.texture.IconRegister; -import net.minecraft.entity.player.EntityPlayer; -import net.minecraft.tileentity.TileEntity; -import net.minecraft.util.Icon; -import net.minecraft.world.IBlockAccess; -import net.minecraft.world.World; -import net.minecraftforge.common.ForgeDirection; -import WayofTime.alchemicalWizardry.AlchemicalWizardry; -import WayofTime.alchemicalWizardry.common.tileEntity.TEOrientable; -import cpw.mods.fml.relauncher.Side; -import cpw.mods.fml.relauncher.SideOnly; - -public class BlockOrientable extends BlockContainer -{ - @SideOnly(Side.CLIENT) - private static Icon[] fireIcons; - - public BlockOrientable(int id) - { - super(id, Material.rock); - setHardness(2.0F); - setResistance(5.0F); - setCreativeTab(AlchemicalWizardry.tabBloodMagic); - setUnlocalizedName("bloodSocket"); - //func_111022_d("AlchemicalWizardry:blocks"); - } - - @Override - @SideOnly(Side.CLIENT) - public void registerIcons(IconRegister iconRegister) - { - this.fireIcons = this.registerIconsWithString(iconRegister, "fireEffectBlock"); - } - - @SideOnly(Side.CLIENT) - public static Icon[] registerIconsWithString(IconRegister iconRegister, String blockString) - { - Icon[] icons = new Icon[7]; - - icons[0] = iconRegister.registerIcon("AlchemicalWizardry:" + blockString + "_input"); - icons[1] = iconRegister.registerIcon("AlchemicalWizardry:" + blockString + "_output"); - icons[2] = iconRegister.registerIcon("AlchemicalWizardry:" + blockString + "_upArrow"); - icons[3] = iconRegister.registerIcon("AlchemicalWizardry:" + blockString + "_downArrow"); - icons[4] = iconRegister.registerIcon("AlchemicalWizardry:" + blockString + "_leftArrow"); - icons[5] = iconRegister.registerIcon("AlchemicalWizardry:" + blockString + "_rightArrow"); - icons[6] = iconRegister.registerIcon("AlchemicalWizardry:" + blockString + "_blank"); - - return icons; - } - - @Override - @SideOnly(Side.CLIENT) - public Icon getIcon(int side, int meta) - { - Icon[] icons = this.getIconsForMeta(meta); - switch (side) - { - case 4: return icons[1]; - default: return icons[6]; - } - } - -// @Override -// public boolean onBlockActivated(World world, int x, int y, int z, EntityPlayer player, int idk, float what, float these, float are) -// { -// return false; -// } - - @SideOnly(Side.CLIENT) - - /** - * Retrieves the block texture to use based on the display side. Args: iBlockAccess, x, y, z, side - */ - public Icon getBlockTexture(IBlockAccess par1IBlockAccess, int x, int y, int z, int side) - { - TileEntity tile = par1IBlockAccess.getBlockTileEntity(x, y, z); - int meta = par1IBlockAccess.getBlockMetadata(x, y, z); - - if(tile instanceof TEOrientable) - { - ForgeDirection input = ((TEOrientable)tile).getInputDirection(); - ForgeDirection output = ((TEOrientable)tile).getOutputDirection(); - - return this.getIconsForMeta(meta)[this.getTextureIndexForSideAndOrientation(side, input, output)]; - } - - return this.getIcon(side, meta); - } - - @Override - public TileEntity createNewTileEntity(World world) - { - return new TEOrientable(); - } - - public Icon[] getIconsForMeta(int metadata) - { - return this.fireIcons; - } - - @Override - public boolean onBlockActivated(World world, int x, int y, int z, EntityPlayer player, int side, float what, float these, float are) - { - //Right-click orients the output face. Shift-right-click orients the input face. - if (world.isRemote) - { - return false; - } - - ForgeDirection sideClicked = ForgeDirection.getOrientation(side); - TileEntity tile = world.getBlockTileEntity(x, y, z); - - if (tile instanceof TEOrientable) - { - TEOrientable newTile = (TEOrientable)tile; - if(player.isSneaking()) - { - int nextSide = TEOrientable.getIntForForgeDirection(newTile.getInputDirection())+1; - - if(nextSide>5) - { - nextSide = 0; - } - if(ForgeDirection.getOrientation(nextSide)==newTile.getOutputDirection()) - { - nextSide++; - if(nextSide>5) - { - nextSide = 0; - } - } - - newTile.setInputDirection(ForgeDirection.getOrientation(nextSide)); - }else - { - int nextSide = TEOrientable.getIntForForgeDirection(newTile.getOutputDirection())+1; - - if(nextSide>5) - { - nextSide = 0; - } - if(ForgeDirection.getOrientation(nextSide)==newTile.getInputDirection()) - { - nextSide++; - if(nextSide>5) - { - nextSide = 0; - } - } - - newTile.setOutputDirection(ForgeDirection.getOrientation(nextSide)); - } - } - - world.markBlockForUpdate(x, y, z); - return true; - } - - public int getTextureIndexForSideAndOrientation(int side, ForgeDirection input, ForgeDirection output) - { - if(ForgeDirection.getOrientation(side) == input) - { - return 0; - } - if(ForgeDirection.getOrientation(side) == output) - { - return 1; - } - if(ForgeDirection.getOrientation(side) == output.getOpposite()) - { - return 6; - } - - switch(side) - { - case 0: //BOTTOM - switch(output) - { - case NORTH: return 2; //UP - case SOUTH: return 3; //DOWN - case EAST: return 4; //LEFT - case WEST: return 5; //RIGHT - default: break; - } - break; - case 1: //TOP - switch(output) - { - case NORTH: return 2; //UP - case SOUTH: return 3; //DOWN - case EAST: return 5; - case WEST: return 4; - default: break; - } - break; - case 2: //NORTH - switch(output) - { - case DOWN: return 3; - case UP: return 2; - case EAST: return 4; - case WEST: return 5; - default: break; - } - break; - case 3: //SOUTH - switch(output) - { - case DOWN: return 3; - case UP: return 2; - case EAST: return 5; - case WEST: return 4; - default: break; - } - break; - case 4: //WEST - switch(output) - { - case DOWN: return 3; - case UP: return 2; - case NORTH: return 5; - case SOUTH: return 4; - default: break; - } - break; - case 5: //EAST - switch(output) - { - case DOWN: return 3; - case UP: return 2; - case NORTH: return 4; - case SOUTH: return 5; - default: break; - } - break; - } - - return 0; - } - - @Override - public int damageDropped(int metadata) - { - return metadata; - } -} diff --git a/BM_src/WayofTime/alchemicalWizardry/common/block/BlockPedestal.java b/BM_src/WayofTime/alchemicalWizardry/common/block/BlockPedestal.java deleted file mode 100644 index 7fd1ca9f..00000000 --- a/BM_src/WayofTime/alchemicalWizardry/common/block/BlockPedestal.java +++ /dev/null @@ -1,192 +0,0 @@ -package WayofTime.alchemicalWizardry.common.block; - -import WayofTime.alchemicalWizardry.AlchemicalWizardry; -import WayofTime.alchemicalWizardry.common.tileEntity.TEPedestal; -import cpw.mods.fml.relauncher.Side; -import cpw.mods.fml.relauncher.SideOnly; -import net.minecraft.block.BlockContainer; -import net.minecraft.block.material.Material; -import net.minecraft.client.renderer.texture.IconRegister; -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.nbt.NBTTagCompound; -import net.minecraft.tileentity.TileEntity; -import net.minecraft.util.Icon; -import net.minecraft.util.MovingObjectPosition; -import net.minecraft.util.Vec3; -import net.minecraft.world.World; - -import java.util.Random; - -public class BlockPedestal extends BlockContainer -{ - @SideOnly(Side.CLIENT) - private static Icon topIcon; - @SideOnly(Side.CLIENT) - private static Icon sideIcon1; - @SideOnly(Side.CLIENT) - private static Icon sideIcon2; - @SideOnly(Side.CLIENT) - private static Icon bottomIcon; - - public BlockPedestal(int id) - { - super(id, Material.rock); - setHardness(2.0F); - setResistance(5.0F); - setCreativeTab(AlchemicalWizardry.tabBloodMagic); - setUnlocalizedName("bloodPedestal"); - //func_111022_d("AlchemicalWizardry:blocks"); - } - - @Override - @SideOnly(Side.CLIENT) - public void registerIcons(IconRegister iconRegister) - { - this.topIcon = iconRegister.registerIcon("AlchemicalWizardry:ArcanePedestal"); - this.sideIcon1 = iconRegister.registerIcon("AlchemicalWizardry:BloodSocket"); - this.sideIcon2 = iconRegister.registerIcon("AlchemicalWizardry:BloodSocket"); - this.bottomIcon = iconRegister.registerIcon("AlchemicalWizardry:BloodSocket"); - } - - @Override - @SideOnly(Side.CLIENT) - public Icon getIcon(int side, int meta) - { - switch (side) - { - case 0: - return bottomIcon; - - case 1: - return topIcon; - - //case 2: return sideIcon1; - //case 3: return sideIcon1; - //case 4: return sideIcon2; - //case 5: return sideIcon2; - default: - return sideIcon2; - } - } - - @Override - public boolean onBlockActivated(World world, int x, int y, int z, EntityPlayer player, int idk, float what, float these, float are) - { - TEPedestal tileEntity = (TEPedestal) world.getBlockTileEntity(x, y, z); - - if (tileEntity == null || player.isSneaking()) - { - return false; - } - - ItemStack playerItem = player.getCurrentEquippedItem(); - - if (tileEntity.getStackInSlot(0) == null && playerItem != null) - { - ItemStack newItem = playerItem.copy(); - newItem.stackSize = 1; - --playerItem.stackSize; - tileEntity.setInventorySlotContents(0, newItem); - } else if (tileEntity.getStackInSlot(0) != null && playerItem == null) - { - /**stub method - * Add the item that is in the slot to the player's inventory, and - * then set the slot to null. - */ - player.inventory.addItemStackToInventory(tileEntity.getStackInSlot(0)); - tileEntity.setInventorySlotContents(0, null); - tileEntity.setActive(); - } - - world.markBlockForUpdate(x, y, z); - //player.openGui(AlchemicalWizardry.instance, 0, world, x, y, z); - //PacketDispatcher.sendPacketToServer(tileEntity.getDescriptionPacket()); - return true; - } - - @Override - public void breakBlock(World world, int x, int y, int z, int par5, int par6) - { - dropItems(world, x, y, z); - super.breakBlock(world, x, y, z, par5, par6); - } - - private void dropItems(World world, int x, int y, int z) - { - Random rand = new Random(); - TileEntity tileEntity = world.getBlockTileEntity(x, y, z); - - if (!(tileEntity instanceof IInventory)) - { - return; - } - - IInventory inventory = (IInventory) tileEntity; - - for (int i = 0; i < inventory.getSizeInventory(); i++) - { - ItemStack item = inventory.getStackInSlot(i); - - if (item != null && item.stackSize > 0) - { - float rx = rand.nextFloat() * 0.8F + 0.1F; - float ry = rand.nextFloat() * 0.8F + 0.1F; - float rz = rand.nextFloat() * 0.8F + 0.1F; - EntityItem entityItem = new EntityItem(world, x + rx, y + ry, z + rz, new ItemStack(item.itemID, item.stackSize, item.getItemDamage())); - - if (item.hasTagCompound()) - { - entityItem.getEntityItem().setTagCompound((NBTTagCompound) item.getTagCompound().copy()); - } - - float factor = 0.05F; - entityItem.motionX = rand.nextGaussian() * factor; - entityItem.motionY = rand.nextGaussian() * factor + 0.2F; - entityItem.motionZ = rand.nextGaussian() * factor; - world.spawnEntityInWorld(entityItem); - item.stackSize = 0; - } - } - } - - @Override - public TileEntity createNewTileEntity(World world) - { - return new TEPedestal(); - } - - @Override - public boolean renderAsNormalBlock() - { - return false; - } - - @Override - public int getRenderType() - { - return -1; - } - - @Override - public boolean isOpaqueCube() - { - return false; - } - - @Override - public boolean hasTileEntity() - { - return true; - } - - @Override - public MovingObjectPosition collisionRayTrace(World par1World, int par2, int par3, int par4, Vec3 par5Vec3, Vec3 par6Vec3) - { - float f = 0.3125F; - this.setBlockBounds(0.5F - f, 0.0F, 0.5F - f, 0.5F + f, 0.6F, 0.5F + f); - return super.collisionRayTrace(par1World, par2, par3, par4, par5Vec3, par6Vec3); - } -} \ No newline at end of file diff --git a/BM_src/WayofTime/alchemicalWizardry/common/block/BlockPlinth.java b/BM_src/WayofTime/alchemicalWizardry/common/block/BlockPlinth.java deleted file mode 100644 index 4c57ed4e..00000000 --- a/BM_src/WayofTime/alchemicalWizardry/common/block/BlockPlinth.java +++ /dev/null @@ -1,192 +0,0 @@ -package WayofTime.alchemicalWizardry.common.block; - -import WayofTime.alchemicalWizardry.AlchemicalWizardry; -import WayofTime.alchemicalWizardry.common.tileEntity.TEPlinth; -import cpw.mods.fml.relauncher.Side; -import cpw.mods.fml.relauncher.SideOnly; -import net.minecraft.block.BlockContainer; -import net.minecraft.block.material.Material; -import net.minecraft.client.renderer.texture.IconRegister; -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.nbt.NBTTagCompound; -import net.minecraft.tileentity.TileEntity; -import net.minecraft.util.Icon; -import net.minecraft.util.MovingObjectPosition; -import net.minecraft.util.Vec3; -import net.minecraft.world.World; - -import java.util.Random; - -public class BlockPlinth extends BlockContainer -{ - @SideOnly(Side.CLIENT) - private static Icon topIcon; - @SideOnly(Side.CLIENT) - private static Icon sideIcon1; - @SideOnly(Side.CLIENT) - private static Icon sideIcon2; - @SideOnly(Side.CLIENT) - private static Icon bottomIcon; - - public BlockPlinth(int id) - { - super(id, Material.rock); - setHardness(2.0F); - setResistance(5.0F); - setCreativeTab(AlchemicalWizardry.tabBloodMagic); - setUnlocalizedName("bloodPlinth"); - //func_111022_d("AlchemicalWizardry:blocks"); - } - - @Override - @SideOnly(Side.CLIENT) - public void registerIcons(IconRegister iconRegister) - { - this.topIcon = iconRegister.registerIcon("AlchemicalWizardry:ArcanePlinth"); - this.sideIcon1 = iconRegister.registerIcon("AlchemicalWizardry:BloodSocket"); - this.sideIcon2 = iconRegister.registerIcon("AlchemicalWizardry:BloodSocket"); - this.bottomIcon = iconRegister.registerIcon("AlchemicalWizardry:BloodSocket"); - } - - @Override - @SideOnly(Side.CLIENT) - public Icon getIcon(int side, int meta) - { - switch (side) - { - case 0: - return bottomIcon; - - case 1: - return topIcon; - - //case 2: return sideIcon1; - //case 3: return sideIcon1; - //case 4: return sideIcon2; - //case 5: return sideIcon2; - default: - return sideIcon2; - } - } - - @Override - public boolean onBlockActivated(World world, int x, int y, int z, EntityPlayer player, int idk, float what, float these, float are) - { - TEPlinth tileEntity = (TEPlinth) world.getBlockTileEntity(x, y, z); - - if (tileEntity == null || player.isSneaking()) - { - return false; - } - - ItemStack playerItem = player.getCurrentEquippedItem(); - - if (tileEntity.getStackInSlot(0) == null && playerItem != null) - { - ItemStack newItem = playerItem.copy(); - newItem.stackSize = 1; - --playerItem.stackSize; - tileEntity.setInventorySlotContents(0, newItem); - } else if (tileEntity.getStackInSlot(0) != null && playerItem == null) - { - /**stub method - * Add the item that is in the slot to the player's inventory, and - * then set the slot to null. - */ - player.inventory.addItemStackToInventory(tileEntity.getStackInSlot(0)); - tileEntity.setInventorySlotContents(0, null); - tileEntity.setActive(); - } - - world.markBlockForUpdate(x, y, z); - //player.openGui(AlchemicalWizardry.instance, 0, world, x, y, z); - //PacketDispatcher.sendPacketToServer(tileEntity.getDescriptionPacket()); - return true; - } - - @Override - public void breakBlock(World world, int x, int y, int z, int par5, int par6) - { - dropItems(world, x, y, z); - super.breakBlock(world, x, y, z, par5, par6); - } - - private void dropItems(World world, int x, int y, int z) - { - Random rand = new Random(); - TileEntity tileEntity = world.getBlockTileEntity(x, y, z); - - if (!(tileEntity instanceof IInventory)) - { - return; - } - - IInventory inventory = (IInventory) tileEntity; - - for (int i = 0; i < inventory.getSizeInventory(); i++) - { - ItemStack item = inventory.getStackInSlot(i); - - if (item != null && item.stackSize > 0) - { - float rx = rand.nextFloat() * 0.8F + 0.1F; - float ry = rand.nextFloat() * 0.8F + 0.1F; - float rz = rand.nextFloat() * 0.8F + 0.1F; - EntityItem entityItem = new EntityItem(world, x + rx, y + ry, z + rz, new ItemStack(item.itemID, item.stackSize, item.getItemDamage())); - - if (item.hasTagCompound()) - { - entityItem.getEntityItem().setTagCompound((NBTTagCompound) item.getTagCompound().copy()); - } - - float factor = 0.05F; - entityItem.motionX = rand.nextGaussian() * factor; - entityItem.motionY = rand.nextGaussian() * factor + 0.2F; - entityItem.motionZ = rand.nextGaussian() * factor; - world.spawnEntityInWorld(entityItem); - item.stackSize = 0; - } - } - } - - @Override - public TileEntity createNewTileEntity(World world) - { - return new TEPlinth(); - } - - @Override - public boolean renderAsNormalBlock() - { - return false; - } - - @Override - public int getRenderType() - { - return -1; - } - - @Override - public boolean isOpaqueCube() - { - return false; - } - - @Override - public boolean hasTileEntity() - { - return true; - } - - @Override - public MovingObjectPosition collisionRayTrace(World par1World, int par2, int par3, int par4, Vec3 par5Vec3, Vec3 par6Vec3) - { - float f = 0.0625F; - this.setBlockBounds(f, 0.0F, f, 1.0f - f, 0.875f, 1.0f - f); - return super.collisionRayTrace(par1World, par2, par3, par4, par5Vec3, par6Vec3); - } -} \ No newline at end of file diff --git a/BM_src/WayofTime/alchemicalWizardry/common/block/BlockSocket.java b/BM_src/WayofTime/alchemicalWizardry/common/block/BlockSocket.java deleted file mode 100644 index a43e2753..00000000 --- a/BM_src/WayofTime/alchemicalWizardry/common/block/BlockSocket.java +++ /dev/null @@ -1,162 +0,0 @@ -package WayofTime.alchemicalWizardry.common.block; - -import WayofTime.alchemicalWizardry.AlchemicalWizardry; -import WayofTime.alchemicalWizardry.api.items.interfaces.ArmourUpgrade; -import WayofTime.alchemicalWizardry.common.tileEntity.TESocket; -import cpw.mods.fml.relauncher.Side; -import cpw.mods.fml.relauncher.SideOnly; -import net.minecraft.block.BlockContainer; -import net.minecraft.block.material.Material; -import net.minecraft.client.renderer.texture.IconRegister; -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.nbt.NBTTagCompound; -import net.minecraft.tileentity.TileEntity; -import net.minecraft.util.Icon; -import net.minecraft.world.World; - -import java.util.Random; - -public class BlockSocket extends BlockContainer -{ - @SideOnly(Side.CLIENT) - private static Icon topIcon; - @SideOnly(Side.CLIENT) - private static Icon sideIcon1; - @SideOnly(Side.CLIENT) - private static Icon sideIcon2; - @SideOnly(Side.CLIENT) - private static Icon bottomIcon; - - public BlockSocket(int id) - { - super(id, Material.rock); - setHardness(2.0F); - setResistance(5.0F); - setCreativeTab(AlchemicalWizardry.tabBloodMagic); - setUnlocalizedName("bloodSocket"); - //func_111022_d("AlchemicalWizardry:blocks"); - } - - @Override - @SideOnly(Side.CLIENT) - public void registerIcons(IconRegister iconRegister) - { - this.topIcon = iconRegister.registerIcon("AlchemicalWizardry:BloodSocket"); - this.sideIcon1 = iconRegister.registerIcon("AlchemicalWizardry:BloodSocket"); - this.sideIcon2 = iconRegister.registerIcon("AlchemicalWizardry:BloodSocket"); - this.bottomIcon = iconRegister.registerIcon("AlchemicalWizardry:BloodSocket"); - } - - @Override - @SideOnly(Side.CLIENT) - public Icon getIcon(int side, int meta) - { - switch (side) - { - case 0: - return bottomIcon; - - case 1: - return topIcon; - - //case 2: return sideIcon1; - //case 3: return sideIcon1; - //case 4: return sideIcon2; - //case 5: return sideIcon2; - default: - return sideIcon2; - } - } - - @Override - public boolean onBlockActivated(World world, int x, int y, int z, EntityPlayer player, int idk, float what, float these, float are) - { - TESocket tileEntity = (TESocket) world.getBlockTileEntity(x, y, z); - - if (tileEntity == null || player.isSneaking()) - { - return false; - } - - ItemStack playerItem = player.getCurrentEquippedItem(); - - if (tileEntity.getStackInSlot(0) == null && playerItem != null) - { - if (playerItem.getItem() instanceof ArmourUpgrade) - { - ItemStack newItem = playerItem.copy(); - newItem.stackSize = 1; - --playerItem.stackSize; - tileEntity.setInventorySlotContents(0, newItem); - } - } else if (tileEntity.getStackInSlot(0) != null && playerItem == null) - { - /**stub method - * Add the item that is in the slot to the player's inventory, and - * then set the slot to null. - */ - player.inventory.addItemStackToInventory(tileEntity.getStackInSlot(0)); - tileEntity.setInventorySlotContents(0, null); - tileEntity.setActive(); - } - - world.markBlockForUpdate(x, y, z); - //player.openGui(AlchemicalWizardry.instance, 0, world, x, y, z); - //PacketDispatcher.sendPacketToServer(tileEntity.getDescriptionPacket()); - return true; - } - - @Override - public void breakBlock(World world, int x, int y, int z, int par5, int par6) - { - dropItems(world, x, y, z); - super.breakBlock(world, x, y, z, par5, par6); - } - - private void dropItems(World world, int x, int y, int z) - { - Random rand = new Random(); - TileEntity tileEntity = world.getBlockTileEntity(x, y, z); - - if (!(tileEntity instanceof IInventory)) - { - return; - } - - IInventory inventory = (IInventory) tileEntity; - - for (int i = 0; i < inventory.getSizeInventory(); i++) - { - ItemStack item = inventory.getStackInSlot(i); - - if (item != null && item.stackSize > 0) - { - float rx = rand.nextFloat() * 0.8F + 0.1F; - float ry = rand.nextFloat() * 0.8F + 0.1F; - float rz = rand.nextFloat() * 0.8F + 0.1F; - EntityItem entityItem = new EntityItem(world, x + rx, y + ry, z + rz, new ItemStack(item.itemID, item.stackSize, item.getItemDamage())); - - if (item.hasTagCompound()) - { - entityItem.getEntityItem().setTagCompound((NBTTagCompound) item.getTagCompound().copy()); - } - - float factor = 0.05F; - entityItem.motionX = rand.nextGaussian() * factor; - entityItem.motionY = rand.nextGaussian() * factor + 0.2F; - entityItem.motionZ = rand.nextGaussian() * factor; - world.spawnEntityInWorld(entityItem); - item.stackSize = 0; - } - } - } - - @Override - public TileEntity createNewTileEntity(World world) - { - return new TESocket(); - } -} diff --git a/BM_src/WayofTime/alchemicalWizardry/common/block/BlockSpectralContainer.java b/BM_src/WayofTime/alchemicalWizardry/common/block/BlockSpectralContainer.java deleted file mode 100644 index 2ea3cd5f..00000000 --- a/BM_src/WayofTime/alchemicalWizardry/common/block/BlockSpectralContainer.java +++ /dev/null @@ -1,74 +0,0 @@ -package WayofTime.alchemicalWizardry.common.block; - -import java.util.List; -import java.util.Random; - -import net.minecraft.block.BlockContainer; -import net.minecraft.block.material.Material; -import net.minecraft.client.renderer.texture.IconRegister; -import net.minecraft.entity.Entity; -import net.minecraft.tileentity.TileEntity; -import net.minecraft.util.AxisAlignedBB; -import net.minecraft.world.World; -import WayofTime.alchemicalWizardry.common.tileEntity.TESpectralContainer; -import cpw.mods.fml.relauncher.Side; -import cpw.mods.fml.relauncher.SideOnly; - -public class BlockSpectralContainer extends BlockContainer -{ - public BlockSpectralContainer(int par1) - { - super(par1, Material.cloth); - //setCreativeTab(AlchemicalWizardry.tabBloodMagic); - this.setUnlocalizedName("blockSpectralContainer"); - this.setBlockBounds(0,0,0,0,0,0); - } - - @Override - @SideOnly(Side.CLIENT) - public void registerIcons(IconRegister iconRegister) - { - this.blockIcon = iconRegister.registerIcon("AlchemicalWizardry:BlockBloodLight"); - } - - @Override - public boolean isOpaqueCube() - { - return false; - } - - @Override - public boolean renderAsNormalBlock() - { - return false; - } - - @Override - public void addCollisionBoxesToList(World par1World, int par2, int par3, int par4, AxisAlignedBB par5AxisAlignedBB, List par6List, Entity par7Entity) - { - - } - - public int quantityDropped(Random par1Random) - { - return 0; - } - - @Override - public TileEntity createNewTileEntity(World world) - { - return new TESpectralContainer(); - } - - @Override - public boolean isBlockReplaceable(World par1World, int par2, int par3, int par4) - { - return true; - } - - @Override - public boolean isAirBlock(World par1World, int par2, int par3, int par4) - { - return true; - } -} diff --git a/BM_src/WayofTime/alchemicalWizardry/common/block/BlockSpellEffect.java b/BM_src/WayofTime/alchemicalWizardry/common/block/BlockSpellEffect.java deleted file mode 100644 index 079104f0..00000000 --- a/BM_src/WayofTime/alchemicalWizardry/common/block/BlockSpellEffect.java +++ /dev/null @@ -1,61 +0,0 @@ -package WayofTime.alchemicalWizardry.common.block; - -import java.util.List; - -import cpw.mods.fml.relauncher.Side; -import cpw.mods.fml.relauncher.SideOnly; -import net.minecraft.creativetab.CreativeTabs; -import net.minecraft.item.ItemStack; -import net.minecraft.tileentity.TileEntity; -import net.minecraft.world.World; -import WayofTime.alchemicalWizardry.ModBlocks; -import WayofTime.alchemicalWizardry.common.tileEntity.TESpellEffectBlock; - - -public class BlockSpellEffect extends BlockOrientable -{ - public BlockSpellEffect(int id) - { - super(id); - setUnlocalizedName("blockSpellEffect"); - } - - @Override - public TileEntity createNewTileEntity(World world) - { - return new TESpellEffectBlock(); - } - - @Override - public boolean renderAsNormalBlock() - { - return false; - } - - @Override - public int getRenderType() - { - return -1; - } - - @Override - public boolean isOpaqueCube() - { - return false; - } - - @SideOnly(Side.CLIENT) - public void getSubBlocks(int par1, CreativeTabs par2CreativeTabs, List par3List) - { - if (this.blockID == ModBlocks.blockSpellEffect.blockID) - { - for(int i=0; i<4; i++) - { - par3List.add(new ItemStack(par1, 1, i)); - } - } else - { - super.getSubBlocks(par1, par2CreativeTabs, par3List); - } - } -} diff --git a/BM_src/WayofTime/alchemicalWizardry/common/block/BlockSpellEnhancement.java b/BM_src/WayofTime/alchemicalWizardry/common/block/BlockSpellEnhancement.java deleted file mode 100644 index cd564c0c..00000000 --- a/BM_src/WayofTime/alchemicalWizardry/common/block/BlockSpellEnhancement.java +++ /dev/null @@ -1,63 +0,0 @@ -package WayofTime.alchemicalWizardry.common.block; - -import java.util.List; - -import cpw.mods.fml.relauncher.Side; -import cpw.mods.fml.relauncher.SideOnly; -import net.minecraft.creativetab.CreativeTabs; -import net.minecraft.item.ItemStack; -import net.minecraft.tileentity.TileEntity; -import net.minecraft.world.World; -import WayofTime.alchemicalWizardry.ModBlocks; -import WayofTime.alchemicalWizardry.common.tileEntity.TESpellEffectBlock; -import WayofTime.alchemicalWizardry.common.tileEntity.TESpellEnhancementBlock; -import WayofTime.alchemicalWizardry.common.tileEntity.TESpellModifierBlock; - - -public class BlockSpellEnhancement extends BlockOrientable -{ - public BlockSpellEnhancement(int id) - { - super(id); - setUnlocalizedName("blockSpellEnhancement"); - } - - @Override - public TileEntity createNewTileEntity(World world) - { - return new TESpellEnhancementBlock(); - } - - @Override - public boolean renderAsNormalBlock() - { - return false; - } - - @Override - public int getRenderType() - { - return -1; - } - - @Override - public boolean isOpaqueCube() - { - return false; - } - - @SideOnly(Side.CLIENT) - public void getSubBlocks(int par1, CreativeTabs par2CreativeTabs, List par3List) - { - if (this.blockID == ModBlocks.blockSpellEnhancement.blockID) - { - for(int i=0; i<15; i++) - { - par3List.add(new ItemStack(par1, 1, i)); - } - } else - { - super.getSubBlocks(par1, par2CreativeTabs, par3List); - } - } -} diff --git a/BM_src/WayofTime/alchemicalWizardry/common/block/BlockSpellModifier.java b/BM_src/WayofTime/alchemicalWizardry/common/block/BlockSpellModifier.java deleted file mode 100644 index 31a0034f..00000000 --- a/BM_src/WayofTime/alchemicalWizardry/common/block/BlockSpellModifier.java +++ /dev/null @@ -1,62 +0,0 @@ -package WayofTime.alchemicalWizardry.common.block; - -import java.util.List; - -import cpw.mods.fml.relauncher.Side; -import cpw.mods.fml.relauncher.SideOnly; -import net.minecraft.creativetab.CreativeTabs; -import net.minecraft.item.ItemStack; -import net.minecraft.tileentity.TileEntity; -import net.minecraft.world.World; -import WayofTime.alchemicalWizardry.ModBlocks; -import WayofTime.alchemicalWizardry.common.tileEntity.TESpellEffectBlock; -import WayofTime.alchemicalWizardry.common.tileEntity.TESpellModifierBlock; - - -public class BlockSpellModifier extends BlockOrientable -{ - public BlockSpellModifier(int id) - { - super(id); - setUnlocalizedName("blockSpellModifier"); - } - - @Override - public TileEntity createNewTileEntity(World world) - { - return new TESpellModifierBlock(); - } - - @Override - public boolean renderAsNormalBlock() - { - return false; - } - - @Override - public int getRenderType() - { - return -1; - } - - @Override - public boolean isOpaqueCube() - { - return false; - } - - @SideOnly(Side.CLIENT) - public void getSubBlocks(int par1, CreativeTabs par2CreativeTabs, List par3List) - { - if (this.blockID == ModBlocks.blockSpellModifier.blockID) - { - for(int i=0; i<4; i++) - { - par3List.add(new ItemStack(par1, 1, i)); - } - } else - { - super.getSubBlocks(par1, par2CreativeTabs, par3List); - } - } -} diff --git a/BM_src/WayofTime/alchemicalWizardry/common/block/BlockSpellParadigm.java b/BM_src/WayofTime/alchemicalWizardry/common/block/BlockSpellParadigm.java deleted file mode 100644 index 47bb376e..00000000 --- a/BM_src/WayofTime/alchemicalWizardry/common/block/BlockSpellParadigm.java +++ /dev/null @@ -1,237 +0,0 @@ -package WayofTime.alchemicalWizardry.common.block; - -import java.util.Arrays; -import java.util.List; - -import net.minecraft.client.Minecraft; -import net.minecraft.client.renderer.texture.IconRegister; -import net.minecraft.creativetab.CreativeTabs; -import net.minecraft.entity.Entity; -import net.minecraft.entity.player.EntityPlayer; -import net.minecraft.entity.player.EntityPlayerMP; -import net.minecraft.item.ItemStack; -import net.minecraft.nbt.NBTTagCompound; -import net.minecraft.tileentity.TileEntity; -import net.minecraft.util.AxisAlignedBB; -import net.minecraft.util.Icon; -import net.minecraft.util.MovingObjectPosition; -import net.minecraft.util.Vec3; -import net.minecraft.world.IBlockAccess; -import net.minecraft.world.World; -import net.minecraftforge.common.ForgeDirection; -import WayofTime.alchemicalWizardry.ModBlocks; -import WayofTime.alchemicalWizardry.common.items.ItemComplexSpellCrystal; -import WayofTime.alchemicalWizardry.common.tileEntity.TESpellParadigmBlock; -import cpw.mods.fml.relauncher.Side; -import cpw.mods.fml.relauncher.SideOnly; - -public class BlockSpellParadigm extends BlockOrientable -{ - public static final float minPos = (3f/16f); - public static final float maxPos = (13f/16f); - - Icon[] projectileIcons = new Icon[7]; - - public BlockSpellParadigm(int id) - { - super(id); - setUnlocalizedName("blockSpellParadigm"); - //setBlockBounds(minPos, minPos, minPos, maxPos, maxPos, maxPos); - } - - @Override - @SideOnly(Side.CLIENT) - public void registerIcons(IconRegister iconRegister) - { - this.projectileIcons = this.registerIconsWithString(iconRegister, "projectileParadigmBlock"); - } - -// @Override -// public Icon[] getIconsForMeta(int metadata) -// { -// return this.projectileIcons; -// } - - @Override - public boolean renderAsNormalBlock() - { - return false; - } - - @Override - public int getRenderType() - { - return -1; - } - - @Override - public boolean isOpaqueCube() - { - return false; - } - - @Override - public TileEntity createNewTileEntity(World world) - { - return new TESpellParadigmBlock(); - } - - @SideOnly(Side.CLIENT) - - /** - * returns a list of items with the same ID, but different meta (eg: dye returns 16 items) - */ - public void getSubBlocks(int par1, CreativeTabs par2CreativeTabs, List par3List) - { - if (this.blockID == ModBlocks.blockSpellParadigm.blockID) - { - par3List.add(new ItemStack(par1, 1, 0)); - par3List.add(new ItemStack(par1, 1, 1)); - par3List.add(new ItemStack(par1, 1, 2)); - } else - { - super.getSubBlocks(par1, par2CreativeTabs, par3List); - } - } - - @Override - public boolean onBlockActivated(World world, int x, int y, int z, EntityPlayer player, int side, float what, float these, float are) - { - ItemStack stack = player.getCurrentEquippedItem(); - - if(stack != null && stack.getItem() instanceof ItemComplexSpellCrystal) - { - if (stack.stackTagCompound == null) - { - stack.setTagCompound(new NBTTagCompound()); - } - - NBTTagCompound itemTag = stack.stackTagCompound; - itemTag.setInteger("xCoord", x); - itemTag.setInteger("yCoord", y); - itemTag.setInteger("zCoord", z); - itemTag.setInteger("dimensionId", world.provider.dimensionId); - return true; - } - - return super.onBlockActivated(world, x, y, z, player, side, what, these, are); - } - -// @Override -// public boolean isOpaqueCube() -// { -// return false; -// } -// -// @Override -// public boolean renderAsNormalBlock() -// { -// return false; -// } - -// @Override -// public int getRenderType() -// { -// return -1; -// } - - //TODO Need to make a renderer for the paradigm blocks and other spell blocks. - /* - @Override - public void addCollisionBoxesToList(World world, int i, int j, int k, AxisAlignedBB axisalignedbb, List arraylist, Entity par7Entity) - { - - setBlockBounds(minPos, minPos, minPos, maxPos, maxPos, maxPos); - super.addCollisionBoxesToList(world, i, j, k, axisalignedbb, arraylist, par7Entity); - - - TileEntity tile1 = world.getBlockTileEntity(i, j, k); - if (tile1 instanceof TESpellParadigmBlock) - { - TESpellParadigmBlock tileG = (TESpellParadigmBlock) tile1; - - - if (tileG.isSideRendered(ForgeDirection.WEST)) - { - setBlockBounds(0.0F, minPos, minPos, maxPos, maxPos, maxPos); - super.addCollisionBoxesToList(world, i, j, k, axisalignedbb, arraylist, par7Entity); - } - - - if (tileG.isSideRendered(ForgeDirection.EAST)) - { - setBlockBounds(minPos, minPos, minPos, 1.0F, maxPos, maxPos); - super.addCollisionBoxesToList(world, i, j, k, axisalignedbb, arraylist, par7Entity); - } - - - if (tileG.isSideRendered(ForgeDirection.DOWN)) - { - setBlockBounds(minPos, 0.0F, minPos, maxPos, maxPos, maxPos); - super.addCollisionBoxesToList(world, i, j, k, axisalignedbb, arraylist, par7Entity); - } - - - if (tileG.isSideRendered(ForgeDirection.UP)) - { - setBlockBounds(minPos, minPos, minPos, maxPos, 1.0F, maxPos); - super.addCollisionBoxesToList(world, i, j, k, axisalignedbb, arraylist, par7Entity); - } - - - if (tileG.isSideRendered(ForgeDirection.NORTH)) - { - setBlockBounds(minPos, minPos, 0.0F, maxPos, maxPos, maxPos); - super.addCollisionBoxesToList(world, i, j, k, axisalignedbb, arraylist, par7Entity); - } - - - if (tileG.isSideRendered(ForgeDirection.SOUTH)) - { - setBlockBounds(minPos, minPos, minPos, maxPos, maxPos, 1.0F); - super.addCollisionBoxesToList(world, i, j, k, axisalignedbb, arraylist, par7Entity); - } - - -// float facadeThickness = TransportConstants.FACADE_THICKNESS; -// -// -// if (tileG.hasFacade(ForgeDirection.EAST)) { -// setBlockBounds(1 - facadeThickness, 0.0F, 0.0F, 1.0F, 1.0F, 1.0F); -// super.addCollisionBoxesToList(world, i, j, k, axisalignedbb, arraylist, par7Entity); -// } -// -// -// if (tileG.hasFacade(ForgeDirection.WEST)) { -// setBlockBounds(0.0F, 0.0F, 0.0F, facadeThickness, 1.0F, 1.0F); -// super.addCollisionBoxesToList(world, i, j, k, axisalignedbb, arraylist, par7Entity); -// } -// -// -// if (tileG.hasFacade(ForgeDirection.UP)) { -// setBlockBounds(0.0F, 1 - facadeThickness, 0.0F, 1.0F, 1.0F, 1.0F); -// super.addCollisionBoxesToList(world, i, j, k, axisalignedbb, arraylist, par7Entity); -// } -// -// -// if (tileG.hasFacade(ForgeDirection.DOWN)) { -// setBlockBounds(0.0F, 0.0F, 0.0F, 1.0F, facadeThickness, 1.0F); -// super.addCollisionBoxesToList(world, i, j, k, axisalignedbb, arraylist, par7Entity); -// } -// -// -// if (tileG.hasFacade(ForgeDirection.SOUTH)) { -// setBlockBounds(0.0F, 0.0F, 1 - facadeThickness, 1.0F, 1.0F, 1.0F); -// super.addCollisionBoxesToList(world, i, j, k, axisalignedbb, arraylist, par7Entity); -// } -// -// -// if (tileG.hasFacade(ForgeDirection.NORTH)) { -// setBlockBounds(0.0F, 0.0F, 0.0F, 1.0F, 1.0F, facadeThickness); -// super.addCollisionBoxesToList(world, i, j, k, axisalignedbb, arraylist, par7Entity); -// } - } - setBlockBounds(0.0F, 0.0F, 0.0F, 1.0F, 1.0F, 1.0F); - } - */ -} diff --git a/BM_src/WayofTime/alchemicalWizardry/common/block/BlockTeleposer.java b/BM_src/WayofTime/alchemicalWizardry/common/block/BlockTeleposer.java deleted file mode 100644 index bd1a64a3..00000000 --- a/BM_src/WayofTime/alchemicalWizardry/common/block/BlockTeleposer.java +++ /dev/null @@ -1,318 +0,0 @@ -package WayofTime.alchemicalWizardry.common.block; - -import WayofTime.alchemicalWizardry.AlchemicalWizardry; -import WayofTime.alchemicalWizardry.common.items.TelepositionFocus; -import WayofTime.alchemicalWizardry.common.tileEntity.TETeleposer; -import cpw.mods.fml.relauncher.Side; -import cpw.mods.fml.relauncher.SideOnly; -import net.minecraft.block.Block; -import net.minecraft.block.BlockContainer; -import net.minecraft.block.BlockMobSpawner; -import net.minecraft.block.material.Material; -import net.minecraft.client.renderer.texture.IconRegister; -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.nbt.NBTTagCompound; -import net.minecraft.tileentity.TileEntity; -import net.minecraft.util.Icon; -import net.minecraft.world.World; - -import java.util.Random; - -public class BlockTeleposer extends BlockContainer -{ - @SideOnly(Side.CLIENT) - private static Icon topIcon; - @SideOnly(Side.CLIENT) - private static Icon sideIcon1; - @SideOnly(Side.CLIENT) - private static Icon sideIcon2; - @SideOnly(Side.CLIENT) - private static Icon bottomIcon; - - public BlockTeleposer(int id) - { - super(id, Material.rock); - setHardness(2.0F); - setResistance(5.0F); - setCreativeTab(AlchemicalWizardry.tabBloodMagic); - setUnlocalizedName("bloodTeleposer"); - //func_111022_d("AlchemicalWizardry:blocks"); - } - - @Override - @SideOnly(Side.CLIENT) - public void registerIcons(IconRegister iconRegister) - { - this.topIcon = iconRegister.registerIcon("AlchemicalWizardry:Teleposer_Top"); - this.sideIcon1 = iconRegister.registerIcon("AlchemicalWizardry:Teleposer_Side"); - this.sideIcon2 = iconRegister.registerIcon("AlchemicalWizardry:Teleposer_Side"); - this.bottomIcon = iconRegister.registerIcon("AlchemicalWizardry:Teleposer_Side"); - } - - @Override - @SideOnly(Side.CLIENT) - public Icon getIcon(int side, int meta) - { - switch (side) - { - case 0: - return bottomIcon; - - case 1: - return topIcon; - - //case 2: return sideIcon1; - //case 3: return sideIcon1; - //case 4: return sideIcon2; - //case 5: return sideIcon2; - default: - return sideIcon2; - } - } - - @Override - public boolean onBlockActivated(World world, int x, int y, int z, EntityPlayer player, int idk, float what, float these, float are) - { - TETeleposer tileEntity = (TETeleposer) world.getBlockTileEntity(x, y, z); - ItemStack playerItem = player.getCurrentEquippedItem(); - - if (playerItem != null) - { - if (playerItem.getItem() instanceof TelepositionFocus) - { - if (playerItem.stackTagCompound == null) - { - playerItem.setTagCompound(new NBTTagCompound()); - } - - NBTTagCompound itemTag = playerItem.stackTagCompound; - itemTag.setInteger("xCoord", x); - itemTag.setInteger("yCoord", y); - itemTag.setInteger("zCoord", z); - itemTag.setInteger("dimensionId", world.provider.dimensionId); - return true; - } - } - - player.openGui(AlchemicalWizardry.instance, 1, world, x, y, z); -// this.swapBlocks(world, x, y+1, z, x, y+2, z); -// -// world.markBlockForUpdate(x, y, z); - //player.openGui(AlchemicalWizardry.instance, 0, world, x, y, z); - //PacketDispatcher.sendPacketToServer(tileEntity.getDescriptionPacket()); - return true; - } - - @Override - public void breakBlock(World world, int x, int y, int z, int par5, int par6) - { - dropItems(world, x, y, z); - super.breakBlock(world, x, y, z, par5, par6); - } - - private void dropItems(World world, int x, int y, int z) - { - Random rand = new Random(); - TileEntity tileEntity = world.getBlockTileEntity(x, y, z); - - if (!(tileEntity instanceof IInventory)) - { - return; - } - - IInventory inventory = (IInventory) tileEntity; - - for (int i = 0; i < inventory.getSizeInventory(); i++) - { - ItemStack item = inventory.getStackInSlot(i); - - if (item != null && item.stackSize > 0) - { - float rx = rand.nextFloat() * 0.8F + 0.1F; - float ry = rand.nextFloat() * 0.8F + 0.1F; - float rz = rand.nextFloat() * 0.8F + 0.1F; - EntityItem entityItem = new EntityItem(world, x + rx, y + ry, z + rz, new ItemStack(item.itemID, item.stackSize, item.getItemDamage())); - - if (item.hasTagCompound()) - { - entityItem.getEntityItem().setTagCompound((NBTTagCompound) item.getTagCompound().copy()); - } - - float factor = 0.05F; - entityItem.motionX = rand.nextGaussian() * factor; - entityItem.motionY = rand.nextGaussian() * factor + 0.2F; - entityItem.motionZ = rand.nextGaussian() * factor; - world.spawnEntityInWorld(entityItem); - item.stackSize = 0; - } - } - } - - @Override - public TileEntity createNewTileEntity(World world) - { - return new TETeleposer(); - } - - public static boolean swapBlocks(World worldI, World worldF, int xi, int yi, int zi, int xf, int yf, int zf) - { - //TODO Fix sapling duplication glitch - TileEntity tileEntityI = worldI.getBlockTileEntity(xi, yi, zi); - TileEntity tileEntityF = worldF.getBlockTileEntity(xf, yf, zf); - TileEntity tileI; - TileEntity tileF; -// ItemStack[] inv1 = new ItemStack[0]; -// ItemStack[] inv2 = new ItemStack[0]; - NBTTagCompound nbttag1 = new NBTTagCompound(); - NBTTagCompound nbttag2 = new NBTTagCompound(); - - if (tileEntityI != null) - { - //NBTTagCompound nbttag1 = new NBTTagCompound(); -// tileEntityI.xCoord=xf; -// tileEntityI.yCoord=yf; -// tileEntityI.zCoord=zf; - tileEntityI.writeToNBT(nbttag1); - //tileEntityI.readFromNBT(new NBTTagCompound()); - } - -// if(tileEntityI instanceof IInventory) -// { -// int size = ((IInventory)tileEntityI).getSizeInventory(); -// inv1 = new ItemStack[size]; -// for(int i=0; i0) -// { -// for(int i=0;i<((IInventory)tileI).getSizeInventory();i++) -// { -// ((IInventory)tileI).setInventorySlotContents(i, inv2[i]); -// } -// } -// -// if(tileF instanceof IInventory && inv1.length>0) -// { -// for(int i=0;i<((IInventory)tileF).getSizeInventory();i++) -// { -// ((IInventory)tileF).setInventorySlotContents(i, inv1[i]); -// } -// } -// worldI.markBlockForUpdate(xi, yi, zi); -// worldF.markBlockForUpdate(xf, yf, zf); - return true; - } -} diff --git a/BM_src/WayofTime/alchemicalWizardry/common/block/BlockWritingTable.java b/BM_src/WayofTime/alchemicalWizardry/common/block/BlockWritingTable.java deleted file mode 100644 index 9bdaa8e7..00000000 --- a/BM_src/WayofTime/alchemicalWizardry/common/block/BlockWritingTable.java +++ /dev/null @@ -1,180 +0,0 @@ -package WayofTime.alchemicalWizardry.common.block; - -import WayofTime.alchemicalWizardry.AlchemicalWizardry; -import WayofTime.alchemicalWizardry.common.tileEntity.TEWritingTable; -import cpw.mods.fml.relauncher.Side; -import cpw.mods.fml.relauncher.SideOnly; -import net.minecraft.block.BlockContainer; -import net.minecraft.block.material.Material; -import net.minecraft.client.renderer.texture.IconRegister; -import net.minecraft.entity.Entity; -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.nbt.NBTTagCompound; -import net.minecraft.tileentity.TileEntity; -import net.minecraft.util.AxisAlignedBB; -import net.minecraft.util.Icon; -import net.minecraft.world.World; - -import java.util.List; -import java.util.Random; - -public class BlockWritingTable extends BlockContainer -{ - @SideOnly(Side.CLIENT) - private static Icon topIcon; - @SideOnly(Side.CLIENT) - private static Icon sideIcon1; - @SideOnly(Side.CLIENT) - private static Icon sideIcon2; - @SideOnly(Side.CLIENT) - private static Icon bottomIcon; - - public BlockWritingTable(int id) - { - super(id, Material.wood); - setHardness(2.0F); - setResistance(5.0F); - setUnlocalizedName("blockWritingTable"); - setCreativeTab(AlchemicalWizardry.tabBloodMagic); - } - - @Override - @SideOnly(Side.CLIENT) - public void registerIcons(IconRegister iconRegister) - { - this.topIcon = iconRegister.registerIcon("AlchemicalWizardry:AlchemicChemistrySet"); - this.sideIcon1 = iconRegister.registerIcon("AlchemicalWizardry:BloodAltar_SideType1"); - this.sideIcon2 = iconRegister.registerIcon("AlchemicalWizardry:BloodAltar_SideType2"); - this.bottomIcon = iconRegister.registerIcon("AlchemicalWizardry:BloodAltar_Bottom"); - } - - @Override - @SideOnly(Side.CLIENT) - public Icon getIcon(int side, int meta) - { - switch (side) - { - case 0: - return bottomIcon; - - case 1: - return topIcon; - - //case 2: return sideIcon1; - //case 3: return sideIcon1; - //case 4: return sideIcon2; - //case 5: return sideIcon2; - default: - return sideIcon2; - } - } - - @Override - public boolean onBlockActivated(World world, int x, int y, int z, EntityPlayer player, int metadata, float what, float these, float are) - { - TileEntity tileEntity = world.getBlockTileEntity(x, y, z); - - if (tileEntity == null || player.isSneaking()) - { - return false; - } - - //code to open gui explained later - player.openGui(AlchemicalWizardry.instance, 0, world, x, y, z); - return true; - } - - @Override - public void breakBlock(World world, int x, int y, int z, int par5, int par6) - { - dropItems(world, x, y, z); - super.breakBlock(world, x, y, z, par5, par6); - } - - private void dropItems(World world, int x, int y, int z) - { - Random rand = new Random(); - TileEntity tileEntity = world.getBlockTileEntity(x, y, z); - - if (!(tileEntity instanceof IInventory)) - { - return; - } - - IInventory inventory = (IInventory) tileEntity; - - for (int i = 0; i < inventory.getSizeInventory(); i++) - { - ItemStack item = inventory.getStackInSlot(i); - - if (item != null && item.stackSize > 0) - { - float rx = rand.nextFloat() * 0.8F + 0.1F; - float ry = rand.nextFloat() * 0.8F + 0.1F; - float rz = rand.nextFloat() * 0.8F + 0.1F; - EntityItem entityItem = new EntityItem(world, - x + rx, y + ry, z + rz, - new ItemStack(item.itemID, item.stackSize, item.getItemDamage())); - - if (item.hasTagCompound()) - { - entityItem.getEntityItem().setTagCompound((NBTTagCompound) item.getTagCompound().copy()); - } - - float factor = 0.05F; - entityItem.motionX = rand.nextGaussian() * factor; - entityItem.motionY = rand.nextGaussian() * factor + 0.2F; - entityItem.motionZ = rand.nextGaussian() * factor; - world.spawnEntityInWorld(entityItem); - item.stackSize = 0; - } - } - } - - @Override - public TileEntity createNewTileEntity(World world) - { - return new TEWritingTable(); - } - - @Override - public boolean renderAsNormalBlock() - { - return false; - } - - @Override - public int getRenderType() - { - return -1; - } - - @Override - public boolean isOpaqueCube() - { - return false; - } - - @Override - public boolean hasTileEntity() - { - return true; - } - - @Override - public void addCollisionBoxesToList(World par1World, int par2, int par3, int par4, AxisAlignedBB par5AxisAlignedBB, List par6List, Entity par7Entity) - { - this.setBlockBounds(0.4375F, 0.0F, 0.4375F, 0.5625F, 0.9375F, 0.5625F); - super.addCollisionBoxesToList(par1World, par2, par3, par4, par5AxisAlignedBB, par6List, par7Entity); - this.setBlockBoundsForItemRender(); - super.addCollisionBoxesToList(par1World, par2, par3, par4, par5AxisAlignedBB, par6List, par7Entity); - } - - public void setBlockBoundsForItemRender() - { - this.setBlockBounds(0.0F, 0.0F, 0.0F, 1.0F, 0.125F, 1.0F); - } -} \ No newline at end of file diff --git a/BM_src/WayofTime/alchemicalWizardry/common/block/BloodRune.java b/BM_src/WayofTime/alchemicalWizardry/common/block/BloodRune.java deleted file mode 100644 index 1279b7ab..00000000 --- a/BM_src/WayofTime/alchemicalWizardry/common/block/BloodRune.java +++ /dev/null @@ -1,109 +0,0 @@ -package WayofTime.alchemicalWizardry.common.block; - -import WayofTime.alchemicalWizardry.AlchemicalWizardry; -import WayofTime.alchemicalWizardry.ModBlocks; -import cpw.mods.fml.relauncher.Side; -import cpw.mods.fml.relauncher.SideOnly; -import net.minecraft.block.Block; -import net.minecraft.block.material.Material; -import net.minecraft.client.renderer.texture.IconRegister; -import net.minecraft.creativetab.CreativeTabs; -import net.minecraft.item.ItemStack; -import net.minecraft.util.Icon; - -import java.util.List; - -public class BloodRune extends Block -{ - //private Icon bloodRuneIcon; - private Icon altarCapacityRuneIcon; - private Icon dislocationRuneIcon; - private Icon orbCapacityRuneIcon; - - public BloodRune(int id) - { - super(id, Material.iron); - setUnlocalizedName("bloodRune"); - setCreativeTab(AlchemicalWizardry.tabBloodMagic); - setHardness(2.0F); - setResistance(5.0F); - } - - @Override - @SideOnly(Side.CLIENT) - public void registerIcons(IconRegister iconRegister) - { - this.blockIcon = iconRegister.registerIcon("AlchemicalWizardry:BlankRune"); - this.altarCapacityRuneIcon = iconRegister.registerIcon("AlchemicalWizardry:AltarCapacityRune"); - this.dislocationRuneIcon = iconRegister.registerIcon("AlchemicalWizardry:DislocationRune"); - this.orbCapacityRuneIcon = iconRegister.registerIcon("AlchemicalWizardry:OrbCapacityRune"); - } - - public int getRuneEffect(int metaData) - { - switch (metaData) - { - case 0: - return 0; - - case 1: //Altar Capacity rune - return 5; - - case 2: //Filling/emptying rune - return 6; - - case 3: //Orb Capacity rune - return 7; - } - - return 0; - } - - @SideOnly(Side.CLIENT) - - /** - * returns a list of items with the same ID, but different meta (eg: dye returns 16 items) - */ - public void getSubBlocks(int par1, CreativeTabs par2CreativeTabs, List par3List) - { - if (this.blockID == ModBlocks.bloodRune.blockID) - { - 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); - } - } - - @Override - @SideOnly(Side.CLIENT) - public Icon getIcon(int side, int meta) - { - switch (meta) - { - case 0: - return blockIcon; - - case 1: - return altarCapacityRuneIcon; - - case 2: - return dislocationRuneIcon; - - case 3: - return this.orbCapacityRuneIcon; - - default: - return blockIcon; - } - } - - @Override - public int damageDropped(int metadata) - { - return metadata; - } -} diff --git a/BM_src/WayofTime/alchemicalWizardry/common/block/BloodStoneBrick.java b/BM_src/WayofTime/alchemicalWizardry/common/block/BloodStoneBrick.java deleted file mode 100644 index 7e601839..00000000 --- a/BM_src/WayofTime/alchemicalWizardry/common/block/BloodStoneBrick.java +++ /dev/null @@ -1,27 +0,0 @@ -package WayofTime.alchemicalWizardry.common.block; - -import WayofTime.alchemicalWizardry.AlchemicalWizardry; -import cpw.mods.fml.relauncher.Side; -import cpw.mods.fml.relauncher.SideOnly; -import net.minecraft.block.Block; -import net.minecraft.block.material.Material; -import net.minecraft.client.renderer.texture.IconRegister; - -public class BloodStoneBrick extends Block -{ - public BloodStoneBrick(int par1) - { - super(par1, Material.iron); - setHardness(2.0F); - setResistance(5.0F); - setCreativeTab(AlchemicalWizardry.tabBloodMagic); - setUnlocalizedName("bloodStoneBrick"); - } - - @Override - @SideOnly(Side.CLIENT) - public void registerIcons(IconRegister iconRegister) - { - this.blockIcon = iconRegister.registerIcon("AlchemicalWizardry:BloodStoneBrick"); - } -} diff --git a/BM_src/WayofTime/alchemicalWizardry/common/block/EfficiencyRune.java b/BM_src/WayofTime/alchemicalWizardry/common/block/EfficiencyRune.java deleted file mode 100644 index 9d108745..00000000 --- a/BM_src/WayofTime/alchemicalWizardry/common/block/EfficiencyRune.java +++ /dev/null @@ -1,31 +0,0 @@ -package WayofTime.alchemicalWizardry.common.block; - -import WayofTime.alchemicalWizardry.AlchemicalWizardry; -import cpw.mods.fml.relauncher.Side; -import cpw.mods.fml.relauncher.SideOnly; -import net.minecraft.client.renderer.texture.IconRegister; - -public class EfficiencyRune extends BloodRune -{ - public EfficiencyRune(int id) - { - super(id); - setUnlocalizedName("efficiencyRune"); - setCreativeTab(AlchemicalWizardry.tabBloodMagic); - setHardness(2.0F); - setResistance(5.0F); - } - - @Override - @SideOnly(Side.CLIENT) - public void registerIcons(IconRegister iconRegister) - { - this.blockIcon = iconRegister.registerIcon("AlchemicalWizardry:EfficiencyRune"); - } - - @Override - public int getRuneEffect(int metaData) - { - return 2; - } -} diff --git a/BM_src/WayofTime/alchemicalWizardry/common/block/EmptySocket.java b/BM_src/WayofTime/alchemicalWizardry/common/block/EmptySocket.java deleted file mode 100644 index 28b350e1..00000000 --- a/BM_src/WayofTime/alchemicalWizardry/common/block/EmptySocket.java +++ /dev/null @@ -1,34 +0,0 @@ -package WayofTime.alchemicalWizardry.common.block; - -import WayofTime.alchemicalWizardry.AlchemicalWizardry; -import cpw.mods.fml.relauncher.Side; -import cpw.mods.fml.relauncher.SideOnly; -import net.minecraft.block.Block; -import net.minecraft.block.material.Material; -import net.minecraft.client.renderer.texture.IconRegister; - -public class EmptySocket extends Block -{ - public EmptySocket(int par1) - { - super(par1, Material.iron); - setHardness(2.0F); - setResistance(5.0F); - setCreativeTab(AlchemicalWizardry.tabBloodMagic); - setUnlocalizedName("emptySocket"); - // TODO Auto-generated constructor stub - } - - @Override - public boolean isOpaqueCube() - { - return false; - } - - @Override - @SideOnly(Side.CLIENT) - public void registerIcons(IconRegister iconRegister) - { - this.blockIcon = iconRegister.registerIcon("AlchemicalWizardry:EmptySocket"); - } -} diff --git a/BM_src/WayofTime/alchemicalWizardry/common/block/IOrientable.java b/BM_src/WayofTime/alchemicalWizardry/common/block/IOrientable.java deleted file mode 100644 index 22aca9cb..00000000 --- a/BM_src/WayofTime/alchemicalWizardry/common/block/IOrientable.java +++ /dev/null @@ -1,14 +0,0 @@ -package WayofTime.alchemicalWizardry.common.block; - -import net.minecraftforge.common.ForgeDirection; - -public interface IOrientable -{ - public ForgeDirection getInputDirection(); - - public ForgeDirection getOutputDirection(); - - public void setInputDirection(ForgeDirection direction); - - public void setOutputDirection(ForgeDirection direction); -} diff --git a/BM_src/WayofTime/alchemicalWizardry/common/block/ImperfectRitualStone.java b/BM_src/WayofTime/alchemicalWizardry/common/block/ImperfectRitualStone.java deleted file mode 100644 index f45e29f4..00000000 --- a/BM_src/WayofTime/alchemicalWizardry/common/block/ImperfectRitualStone.java +++ /dev/null @@ -1,140 +0,0 @@ -package WayofTime.alchemicalWizardry.common.block; - -import WayofTime.alchemicalWizardry.AlchemicalWizardry; -import WayofTime.alchemicalWizardry.common.PacketHandler; -import cpw.mods.fml.common.network.PacketDispatcher; -import cpw.mods.fml.relauncher.Side; -import cpw.mods.fml.relauncher.SideOnly; -import net.minecraft.block.Block; -import net.minecraft.block.material.Material; -import net.minecraft.client.renderer.texture.IconRegister; -import net.minecraft.entity.effect.EntityLightningBolt; -import net.minecraft.entity.monster.EntityZombie; -import net.minecraft.entity.player.EntityPlayer; -import net.minecraft.potion.Potion; -import net.minecraft.potion.PotionEffect; -import net.minecraft.world.World; - -public class ImperfectRitualStone extends Block -{ - public ImperfectRitualStone(int id) - { - super(id, Material.iron); - setHardness(2.0F); - setResistance(5.0F); - setCreativeTab(AlchemicalWizardry.tabBloodMagic); - setUnlocalizedName("imperfectRitualStone"); - // TODO Auto-generated constructor stub - } - - @Override - @SideOnly(Side.CLIENT) - public void registerIcons(IconRegister iconRegister) - { - this.blockIcon = iconRegister.registerIcon("AlchemicalWizardry:ImperfectRitualStone"); - } - - @Override - public boolean onBlockActivated(World world, int x, int y, int z, EntityPlayer player, int side, float xOff, float yOff, float zOff) - { - //ItemStack ist = player.getItemInUse(); - //if (!world.isRemote) - { - int blockID = world.getBlockId(x, y + 1, z); - - if (blockID == Block.waterStill.blockID) - { - if (!player.capabilities.isCreativeMode && world.isRemote) - { - PacketDispatcher.sendPacketToServer(PacketHandler.getPacket(player.getEntityName(), -5000, 0)); - } - - if (!world.isRemote) - { - world.addWeatherEffect(new EntityLightningBolt(world, x, y + 2, z)); -// if (!player.capabilities.isCreativeMode) -// { -// PacketDispatcher.sendPacketToServer(PacketHandler.getPacket(player.getEntityName(), -5000, 0)); -// } - } - - world.getWorldInfo().setRaining(true); - - if (world.isRemote) - { - world.setRainStrength(1.0F); - } - - world.thunderingStrength = 1.0F; - world.getWorldInfo().setThunderTime(0); - world.getWorldInfo().setThundering(true); - return true; - } else if (blockID == Block.coalBlock.blockID) - { - if (!player.capabilities.isCreativeMode && world.isRemote) - { - PacketDispatcher.sendPacketToServer(PacketHandler.getPacket(player.getEntityName(), -5000, 0)); - } - - //EntityFallenAngel zomb = new EntityFallenAngel(world); - EntityZombie zomb = new EntityZombie(world); - zomb.setPosition(x + 0.5, y + 2, z + 0.5); - // zomb.setCurrentItemOrArmor(4, new ItemStack(Item.helmetIron.itemID,1,0)); - // zomb.setCurrentItemOrArmor(3, new ItemStack(Item.plateIron.itemID,1,0)); - // zomb.setCurrentItemOrArmor(2, new ItemStack(Item.legsIron.itemID,1,0)); - // zomb.setCurrentItemOrArmor(1, new ItemStack(Item.bootsIron.itemID,1,0)); - //zomb.setCurrentItemOrArmor(0, new ItemStack(AlchemicalWizardry.energySword.itemID,1,0)); - zomb.addPotionEffect(new PotionEffect(Potion.fireResistance.id, 2000)); - zomb.addPotionEffect(new PotionEffect(Potion.damageBoost.id, 20000, 7)); - zomb.addPotionEffect(new PotionEffect(Potion.resistance.id, 20000, 3)); - - if (!world.isRemote) - { - world.spawnEntityInWorld(zomb); - world.addWeatherEffect(new EntityLightningBolt(world, x, y + 2, z)); -// if (!player.capabilities.isCreativeMode) -// { -// PacketDispatcher.sendPacketToServer(PacketHandler.getPacket(player.getEntityName(), -5000, 0)); -// } - } - - return true; - } else if (blockID == Block.blockLapis.blockID) - { - if (!player.capabilities.isCreativeMode && world.isRemote) - { - PacketDispatcher.sendPacketToServer(PacketHandler.getPacket(player.getEntityName(), -5000, 0)); - } - - if (!world.isRemote) - { - world.addWeatherEffect(new EntityLightningBolt(world, x, y + 2, z)); - world.setWorldTime((world.getWorldTime() / 24000) * 24000 + 13800); -// if (!player.capabilities.isCreativeMode) -// { -// PacketDispatcher.sendPacketToServer(PacketHandler.getPacket(player.getEntityName(), -5000, 0)); -// } - } - } else if (blockID == Block.bedrock.blockID) - { - if (!player.capabilities.isCreativeMode && world.isRemote) - { - PacketDispatcher.sendPacketToServer(PacketHandler.getPacket(player.getEntityName(), -5000, 0)); - } - - if (!world.isRemote) - { - world.addWeatherEffect(new EntityLightningBolt(world, x, y + 2, z)); - //world.setWorldTime((world.getWorldTime()/24000)*24000+13800); -// if (!player.capabilities.isCreativeMode) -// { -// PacketDispatcher.sendPacketToServer(PacketHandler.getPacket(player.getEntityName(), -5000, 0)); -// } - } - - player.addPotionEffect(new PotionEffect(Potion.resistance.id, 60 * 20, 1)); - } - } - return false; - } -} diff --git a/BM_src/WayofTime/alchemicalWizardry/common/block/LargeBloodStoneBrick.java b/BM_src/WayofTime/alchemicalWizardry/common/block/LargeBloodStoneBrick.java deleted file mode 100644 index 3c53977f..00000000 --- a/BM_src/WayofTime/alchemicalWizardry/common/block/LargeBloodStoneBrick.java +++ /dev/null @@ -1,27 +0,0 @@ -package WayofTime.alchemicalWizardry.common.block; - -import WayofTime.alchemicalWizardry.AlchemicalWizardry; -import cpw.mods.fml.relauncher.Side; -import cpw.mods.fml.relauncher.SideOnly; -import net.minecraft.block.Block; -import net.minecraft.block.material.Material; -import net.minecraft.client.renderer.texture.IconRegister; - -public class LargeBloodStoneBrick extends Block -{ - public LargeBloodStoneBrick(int par1) - { - super(par1, Material.iron); - setHardness(2.0F); - setResistance(5.0F); - setCreativeTab(AlchemicalWizardry.tabBloodMagic); - setUnlocalizedName("largeBloodStoneBrick"); - } - - @Override - @SideOnly(Side.CLIENT) - public void registerIcons(IconRegister iconRegister) - { - this.blockIcon = iconRegister.registerIcon("AlchemicalWizardry:LargeBloodStoneBrick"); - } -} diff --git a/BM_src/WayofTime/alchemicalWizardry/common/block/LifeEssenceBlock.java b/BM_src/WayofTime/alchemicalWizardry/common/block/LifeEssenceBlock.java deleted file mode 100644 index a42cca60..00000000 --- a/BM_src/WayofTime/alchemicalWizardry/common/block/LifeEssenceBlock.java +++ /dev/null @@ -1,58 +0,0 @@ -package WayofTime.alchemicalWizardry.common.block; - -import WayofTime.alchemicalWizardry.AlchemicalWizardry; -import cpw.mods.fml.relauncher.Side; -import cpw.mods.fml.relauncher.SideOnly; -import net.minecraft.block.material.Material; -import net.minecraft.client.renderer.texture.IconRegister; -import net.minecraft.util.Icon; -import net.minecraft.world.IBlockAccess; -import net.minecraft.world.World; -import net.minecraftforge.fluids.BlockFluidClassic; - -public class LifeEssenceBlock extends BlockFluidClassic -{ - public LifeEssenceBlock(int id) - { - super(id, AlchemicalWizardry.lifeEssenceFluid, Material.water); - AlchemicalWizardry.lifeEssenceFluid.setBlockID(id); - //setCreativeTab(AlchemicalWizardry.tabBloodMagic); - } - - @Override - @SideOnly(Side.CLIENT) - public Icon getIcon(int side, int meta) - { - return this.blockIcon; - } - - @Override - @SideOnly(Side.CLIENT) - public void registerIcons(IconRegister iconRegister) - { - this.blockIcon = iconRegister.registerIcon("AlchemicalWizardry:lifeEssenceStill"); - this.getFluid().setIcons(blockIcon); - } - - @Override - public boolean canDisplace(IBlockAccess world, int x, int y, int z) - { - if (world.getBlockMaterial(x, y, z).isLiquid()) - { - return false; - } - - return super.canDisplace(world, x, y, z); - } - - @Override - public boolean displaceIfPossible(World world, int x, int y, int z) - { - if (world.getBlockMaterial(x, y, z).isLiquid()) - { - return false; - } - - return super.displaceIfPossible(world, x, y, z); - } -} diff --git a/BM_src/WayofTime/alchemicalWizardry/common/block/LifeEssenceFlowing.java b/BM_src/WayofTime/alchemicalWizardry/common/block/LifeEssenceFlowing.java deleted file mode 100644 index a4930ce1..00000000 --- a/BM_src/WayofTime/alchemicalWizardry/common/block/LifeEssenceFlowing.java +++ /dev/null @@ -1,32 +0,0 @@ -package WayofTime.alchemicalWizardry.common.block; - -import cpw.mods.fml.relauncher.Side; -import cpw.mods.fml.relauncher.SideOnly; -import net.minecraft.block.BlockFlowing; -import net.minecraft.block.material.Material; -import net.minecraft.client.renderer.texture.IconRegister; -import net.minecraft.creativetab.CreativeTabs; -import net.minecraft.util.Icon; - -public class LifeEssenceFlowing extends BlockFlowing -{ - protected LifeEssenceFlowing(int par1) - { - super(par1, Material.water); - this.blockHardness = 100.0F; - this.setLightOpacity(3); - //this.setLightValue(10); - setCreativeTab(CreativeTabs.tabMisc); - } - - @Override - @SideOnly(Side.CLIENT) - public void registerIcons(IconRegister iconRegister) - { - this.theIcon = new Icon[] - { - iconRegister.registerIcon("AlchemicalWizardry:lifeEssenceStill"), - iconRegister.registerIcon("AlchemicalWizardry:lifeEssenceFlowing") - }; - } -} diff --git a/BM_src/WayofTime/alchemicalWizardry/common/block/LifeEssenceStill.java b/BM_src/WayofTime/alchemicalWizardry/common/block/LifeEssenceStill.java deleted file mode 100644 index aa0f4bab..00000000 --- a/BM_src/WayofTime/alchemicalWizardry/common/block/LifeEssenceStill.java +++ /dev/null @@ -1,32 +0,0 @@ -package WayofTime.alchemicalWizardry.common.block; - -import cpw.mods.fml.relauncher.Side; -import cpw.mods.fml.relauncher.SideOnly; -import net.minecraft.block.BlockStationary; -import net.minecraft.block.material.Material; -import net.minecraft.client.renderer.texture.IconRegister; -import net.minecraft.util.Icon; - -public class LifeEssenceStill extends BlockStationary -{ - protected LifeEssenceStill(int par1) - { - super(par1, Material.water); - this.blockHardness = 100.0F; - this.setLightOpacity(3); - //this.setLightValue(10); - this.disableStats(); - //setCreativeTab(CreativeTabs.tabMisc); - } - - @Override - @SideOnly(Side.CLIENT) - public void registerIcons(IconRegister iconRegister) - { - this.theIcon = new Icon[] - { - iconRegister.registerIcon("AlchemicalWizardry:lifeEssenceStill"), - iconRegister.registerIcon("AlchemicalWizardry:lifeEssenceFlowing") - }; - } -} \ No newline at end of file diff --git a/BM_src/WayofTime/alchemicalWizardry/common/block/RitualStone.java b/BM_src/WayofTime/alchemicalWizardry/common/block/RitualStone.java deleted file mode 100644 index 47bc1f16..00000000 --- a/BM_src/WayofTime/alchemicalWizardry/common/block/RitualStone.java +++ /dev/null @@ -1,127 +0,0 @@ -package WayofTime.alchemicalWizardry.common.block; - -import net.minecraft.block.Block; -import net.minecraft.block.material.Material; -import net.minecraft.client.renderer.texture.IconRegister; -import net.minecraft.entity.player.EntityPlayer; -import net.minecraft.item.Item; -import net.minecraft.item.ItemStack; -import net.minecraft.util.Icon; -import net.minecraft.world.World; -import WayofTime.alchemicalWizardry.AlchemicalWizardry; -import WayofTime.alchemicalWizardry.api.rituals.IRitualStone; -import WayofTime.alchemicalWizardry.common.items.ScribeTool; -import cpw.mods.fml.relauncher.Side; -import cpw.mods.fml.relauncher.SideOnly; - -public class RitualStone extends Block implements IRitualStone -{ - @SideOnly(Side.CLIENT) - private static Icon blankIcon; - @SideOnly(Side.CLIENT) - private static Icon waterStoneIcon; - @SideOnly(Side.CLIENT) - private static Icon fireStoneIcon; - @SideOnly(Side.CLIENT) - private static Icon earthStoneIcon; - @SideOnly(Side.CLIENT) - private static Icon airStoneIcon; - @SideOnly(Side.CLIENT) - private static Icon duskStoneIcon; - - public RitualStone(int par1) - { - super(par1, Material.iron); - setHardness(2.0F); - setResistance(5.0F); - setUnlocalizedName("ritualStone"); - setCreativeTab(AlchemicalWizardry.tabBloodMagic); - } - - @Override - @SideOnly(Side.CLIENT) - public void registerIcons(IconRegister iconRegister) - { - this.blankIcon = iconRegister.registerIcon("AlchemicalWizardry:RitualStone"); - this.waterStoneIcon = iconRegister.registerIcon("AlchemicalWizardry:WaterRitualStone"); - this.fireStoneIcon = iconRegister.registerIcon("AlchemicalWizardry:FireRitualStone"); - this.earthStoneIcon = iconRegister.registerIcon("AlchemicalWizardry:EarthRitualStone"); - this.airStoneIcon = iconRegister.registerIcon("AlchemicalWizardry:AirRitualStone"); - this.duskStoneIcon = iconRegister.registerIcon("AlchemicalWizardry:DuskRitualStone"); - } - - @Override - public int damageDropped(int metadata) - { - return 0; - } - - @Override - public boolean onBlockActivated(World world, int x, int y, int z, EntityPlayer player, int idk, float what, float these, float are) - { - ItemStack playerItem = player.getCurrentEquippedItem(); - - if (playerItem == null) - { - return false; - } - - Item item = playerItem.getItem(); - - if (!(item instanceof ScribeTool)) - { - return false; - } - - if (playerItem.getMaxDamage() <= playerItem.getItemDamage() && !(playerItem.getMaxDamage() == 0)) - { - return false; - } - - ScribeTool scribeTool = (ScribeTool) item; - - if (!player.capabilities.isCreativeMode) - { - playerItem.setItemDamage(playerItem.getItemDamage() + 1); - } - - world.setBlockMetadataWithNotify(x, y, z, scribeTool.getType(), 3); - world.markBlockForUpdate(x, y, z); - return true; - } - - @Override - @SideOnly(Side.CLIENT) - public Icon getIcon(int side, int metadata) - { - switch (metadata) - { - case 0: - return blankIcon; - - case 1: - return waterStoneIcon; - - case 2: - return fireStoneIcon; - - case 3: - return earthStoneIcon; - - case 4: - return airStoneIcon; - - case 5: - return duskStoneIcon; - - default: - return blankIcon; - } - } - - @Override - public boolean canSilkHarvest(World world, EntityPlayer player, int x, int y, int z, int meta) - { - return false; - } -} diff --git a/BM_src/WayofTime/alchemicalWizardry/common/block/RuneOfSacrifice.java b/BM_src/WayofTime/alchemicalWizardry/common/block/RuneOfSacrifice.java deleted file mode 100644 index e5898f98..00000000 --- a/BM_src/WayofTime/alchemicalWizardry/common/block/RuneOfSacrifice.java +++ /dev/null @@ -1,31 +0,0 @@ -package WayofTime.alchemicalWizardry.common.block; - -import WayofTime.alchemicalWizardry.AlchemicalWizardry; -import cpw.mods.fml.relauncher.Side; -import cpw.mods.fml.relauncher.SideOnly; -import net.minecraft.client.renderer.texture.IconRegister; - -public class RuneOfSacrifice extends BloodRune -{ - public RuneOfSacrifice(int id) - { - super(id); - setUnlocalizedName("runeOfSacrifice"); - setCreativeTab(AlchemicalWizardry.tabBloodMagic); - setHardness(2.0F); - setResistance(5.0F); - } - - @Override - @SideOnly(Side.CLIENT) - public void registerIcons(IconRegister iconRegister) - { - this.blockIcon = iconRegister.registerIcon("AlchemicalWizardry:RuneOfSacrifice"); - } - - @Override - public int getRuneEffect(int metaData) - { - return 3; - } -} diff --git a/BM_src/WayofTime/alchemicalWizardry/common/block/RuneOfSelfSacrifice.java b/BM_src/WayofTime/alchemicalWizardry/common/block/RuneOfSelfSacrifice.java deleted file mode 100644 index 29c89216..00000000 --- a/BM_src/WayofTime/alchemicalWizardry/common/block/RuneOfSelfSacrifice.java +++ /dev/null @@ -1,31 +0,0 @@ -package WayofTime.alchemicalWizardry.common.block; - -import WayofTime.alchemicalWizardry.AlchemicalWizardry; -import cpw.mods.fml.relauncher.Side; -import cpw.mods.fml.relauncher.SideOnly; -import net.minecraft.client.renderer.texture.IconRegister; - -public class RuneOfSelfSacrifice extends BloodRune -{ - public RuneOfSelfSacrifice(int id) - { - super(id); - setUnlocalizedName("runeOfSelfSacrifice"); - setCreativeTab(AlchemicalWizardry.tabBloodMagic); - setHardness(2.0F); - setResistance(5.0F); - } - - @Override - @SideOnly(Side.CLIENT) - public void registerIcons(IconRegister iconRegister) - { - this.blockIcon = iconRegister.registerIcon("AlchemicalWizardry:RuneOfSelfSacrifice"); - } - - @Override - public int getRuneEffect(int metaData) - { - return 4; - } -} diff --git a/BM_src/WayofTime/alchemicalWizardry/common/block/SpectralBlock.java b/BM_src/WayofTime/alchemicalWizardry/common/block/SpectralBlock.java deleted file mode 100644 index 50a1357e..00000000 --- a/BM_src/WayofTime/alchemicalWizardry/common/block/SpectralBlock.java +++ /dev/null @@ -1,78 +0,0 @@ -package WayofTime.alchemicalWizardry.common.block; - -import cpw.mods.fml.relauncher.Side; -import cpw.mods.fml.relauncher.SideOnly; -import net.minecraft.block.Block; -import net.minecraft.block.material.Material; -import net.minecraft.client.renderer.texture.IconRegister; -import net.minecraft.entity.player.EntityPlayer; -import net.minecraft.item.ItemBlock; -import net.minecraft.item.ItemStack; -import net.minecraft.world.World; - -import java.util.Random; - -public class SpectralBlock extends Block -{ - public SpectralBlock(int par1) - { - super(par1, Material.rock); - this.setUnlocalizedName("spectralBlock"); - } - -// @Override -// public int tickRate(World par1World) -// { -// return 10; -// } - - /** - * Ticks the block if it's been scheduled - */ - @Override - public void updateTick(World par1World, int par2, int par3, int par4, Random par5Random) - { - //if(!par1World.isRemote) - par1World.setBlockToAir(par2, par3, par4); - } - - @Override - @SideOnly(Side.CLIENT) - public void registerIcons(IconRegister iconRegister) - { - this.blockIcon = iconRegister.registerIcon("AlchemicalWizardry:SpectralBlock"); - } - - @Override - public boolean isOpaqueCube() - { - return false; - } - - @Override - public int quantityDropped(Random par1Random) - { - return 0; - } - - @SideOnly(Side.CLIENT) - /** - * Returns which pass should this block be rendered on. 0 for solids and 1 for alpha - */ - public int getRenderBlockPass() - { - return 1; - } - - @Override - public void onBlockAdded(World par1World, int par2, int par3, int par4) - { - par1World.scheduleBlockUpdate(par2, par3, par4, this.blockID, 100); - } - - @Override - public boolean isBlockReplaceable(World par1World, int par2, int par3, int par4) - { - return true; - } -} diff --git a/BM_src/WayofTime/alchemicalWizardry/common/block/SpeedRune.java b/BM_src/WayofTime/alchemicalWizardry/common/block/SpeedRune.java deleted file mode 100644 index c46712f9..00000000 --- a/BM_src/WayofTime/alchemicalWizardry/common/block/SpeedRune.java +++ /dev/null @@ -1,31 +0,0 @@ -package WayofTime.alchemicalWizardry.common.block; - -import WayofTime.alchemicalWizardry.AlchemicalWizardry; -import cpw.mods.fml.relauncher.Side; -import cpw.mods.fml.relauncher.SideOnly; -import net.minecraft.client.renderer.texture.IconRegister; - -public class SpeedRune extends BloodRune -{ - public SpeedRune(int id) - { - super(id); - setUnlocalizedName("speedRune"); - setCreativeTab(AlchemicalWizardry.tabBloodMagic); - setHardness(2.0F); - setResistance(5.0F); - } - - @Override - @SideOnly(Side.CLIENT) - public void registerIcons(IconRegister iconRegister) - { - this.blockIcon = iconRegister.registerIcon("AlchemicalWizardry:SpeedRune"); - } - - @Override - public int getRuneEffect(int metaData) - { - return 1; - } -} diff --git a/BM_src/WayofTime/alchemicalWizardry/common/bloodAltarUpgrade/AltarComponent.java b/BM_src/WayofTime/alchemicalWizardry/common/bloodAltarUpgrade/AltarComponent.java deleted file mode 100644 index 4d16891b..00000000 --- a/BM_src/WayofTime/alchemicalWizardry/common/bloodAltarUpgrade/AltarComponent.java +++ /dev/null @@ -1,58 +0,0 @@ -package WayofTime.alchemicalWizardry.common.bloodAltarUpgrade; - -public class AltarComponent -{ - private int x; - private int y; - private int z; - private int blockID; - private int metadata; - private boolean isBloodRune; - private boolean isUpgradeSlot; - - public AltarComponent(int x, int y, int z, int blockID, int metadata, boolean isBloodRune, boolean isUpgradeSlot) - { - this.x = x; - this.y = y; - this.z = z; - this.blockID = blockID; - this.metadata = metadata; - this.isBloodRune = isBloodRune; - this.isUpgradeSlot = isUpgradeSlot; - } - - public int getX() - { - return x; - } - - public int getY() - { - return y; - } - - public int getZ() - { - return z; - } - - public int getBlockID() - { - return blockID; - } - - public int getMetadata() - { - return metadata; - } - - public boolean isBloodRune() - { - return isBloodRune; - } - - public boolean isUpgradeSlot() - { - return isUpgradeSlot; - } -} diff --git a/BM_src/WayofTime/alchemicalWizardry/common/bloodAltarUpgrade/AltarUpgradeComponent.java b/BM_src/WayofTime/alchemicalWizardry/common/bloodAltarUpgrade/AltarUpgradeComponent.java deleted file mode 100644 index acdede16..00000000 --- a/BM_src/WayofTime/alchemicalWizardry/common/bloodAltarUpgrade/AltarUpgradeComponent.java +++ /dev/null @@ -1,93 +0,0 @@ -package WayofTime.alchemicalWizardry.common.bloodAltarUpgrade; - -public class AltarUpgradeComponent -{ - private int speedUpgrades; - private int efficiencyUpgrades; - private int sacrificeUpgrades; - private int selfSacrificeUpgrades; - private int displacementUpgrades; - private int altarCapacitiveUpgrades; - private int orbCapacitiveUpgrades; - - public AltarUpgradeComponent() - { - speedUpgrades = 0; - efficiencyUpgrades = 0; - sacrificeUpgrades = 0; - selfSacrificeUpgrades = 0; - displacementUpgrades = 0; - altarCapacitiveUpgrades = 0; - orbCapacitiveUpgrades = 0; - } - - public void addSpeedUpgrade() - { - speedUpgrades++; - } - - public void addEfficiencyUpgrade() - { - efficiencyUpgrades++; - } - - public void addSacrificeUpgrade() - { - sacrificeUpgrades++; - } - - public void addSelfSacrificeUpgrade() - { - selfSacrificeUpgrades++; - } - - public void addDisplacementUpgrade() - { - displacementUpgrades++; - } - - public void addaltarCapacitiveUpgrade() - { - altarCapacitiveUpgrades++; - } - - public void addorbCapacitiveUpgrade() - { - orbCapacitiveUpgrades++; - } - - public int getSpeedUpgrades() - { - return speedUpgrades; - } - - public int getEfficiencyUpgrades() - { - return efficiencyUpgrades; - } - - public int getSacrificeUpgrades() - { - return sacrificeUpgrades; - } - - public int getSelfSacrificeUpgrades() - { - return selfSacrificeUpgrades; - } - - public int getDisplacementUpgrades() - { - return displacementUpgrades; - } - - public int getAltarCapacitiveUpgrades() - { - return this.altarCapacitiveUpgrades; - } - - public int getOrbCapacitiveUpgrades() - { - return this.orbCapacitiveUpgrades; - } -} diff --git a/BM_src/WayofTime/alchemicalWizardry/common/bloodAltarUpgrade/UpgradedAltars.java b/BM_src/WayofTime/alchemicalWizardry/common/bloodAltarUpgrade/UpgradedAltars.java deleted file mode 100644 index 5ab1a937..00000000 --- a/BM_src/WayofTime/alchemicalWizardry/common/bloodAltarUpgrade/UpgradedAltars.java +++ /dev/null @@ -1,295 +0,0 @@ -package WayofTime.alchemicalWizardry.common.bloodAltarUpgrade; - -import WayofTime.alchemicalWizardry.AlchemicalWizardry; -import WayofTime.alchemicalWizardry.ModBlocks; -import WayofTime.alchemicalWizardry.common.block.BloodRune; -import net.minecraft.block.Block; -import net.minecraft.world.World; - -import java.util.ArrayList; -import java.util.List; - -public class UpgradedAltars -{ - public static List secondTierAltar = new ArrayList(); - public static List thirdTierAltar = new ArrayList(); - public static List fourthTierAltar = new ArrayList(); - public static List fifthTierAltar = new ArrayList(); - public static int highestAltar = 5; - - public static int isAltarValid(World world, int x, int y, int z) - { - for (int i = highestAltar; i >= 2; i--) - { - if (checkAltarIsValid(world, x, y, z, i)) - { - return i; - } - } - - return 1; - } - - public static boolean checkAltarIsValid(World world, int x, int y, int z, int altarTier) - { - switch (altarTier) - { - case 1: - return true; - - case 2: - for (AltarComponent ac : secondTierAltar) - { - if (ac.isBloodRune()) - { - Block testBlock = Block.blocksList[world.getBlockId(x + ac.getX(), y + ac.getY(), z + ac.getZ())]; - - if (!(testBlock instanceof BloodRune)) - { - return false; - } - } else - { - int blockId = world.getBlockId(x + ac.getX(), y + ac.getY(), z + ac.getZ()); - int metadata = world.getBlockMetadata(x + ac.getX(), y + ac.getY(), z + ac.getZ()); - - if (((ac.getBlockID() != blockId) || (ac.getMetadata() != metadata)) && !(ac.getBlockID() == Block.stoneBrick.blockID && !world.isAirBlock(x + ac.getX(), y + ac.getY(), z + ac.getZ()))) - { - return false; - } - } - } - - return true; - - case 3: - for (AltarComponent ac : thirdTierAltar) - { - if (ac.isBloodRune()) - { - Block testBlock = Block.blocksList[world.getBlockId(x + ac.getX(), y + ac.getY(), z + ac.getZ())]; - - if (!(testBlock instanceof BloodRune)) - { - return false; - } - } else - { - int blockId = world.getBlockId(x + ac.getX(), y + ac.getY(), z + ac.getZ()); - int metadata = world.getBlockMetadata(x + ac.getX(), y + ac.getY(), z + ac.getZ()); - - if (((ac.getBlockID() != blockId) || (ac.getMetadata() != metadata)) && !(ac.getBlockID() == Block.stoneBrick.blockID && !world.isAirBlock(x + ac.getX(), y + ac.getY(), z + ac.getZ()))) - { - return false; - } - } - } - - return true; - - case 4: - for (AltarComponent ac : fourthTierAltar) - { - if (ac.isBloodRune()) - { - Block testBlock = Block.blocksList[world.getBlockId(x + ac.getX(), y + ac.getY(), z + ac.getZ())]; - - if (!(testBlock instanceof BloodRune)) - { - return false; - } - } else - { - int blockId = world.getBlockId(x + ac.getX(), y + ac.getY(), z + ac.getZ()); - int metadata = world.getBlockMetadata(x + ac.getX(), y + ac.getY(), z + ac.getZ()); - - if (((ac.getBlockID() != blockId) || (ac.getMetadata() != metadata)) && !(ac.getBlockID() == Block.stoneBrick.blockID && !world.isAirBlock(x + ac.getX(), y + ac.getY(), z + ac.getZ()))) - { - return false; - } - } - } - - return true; - - case 5: - for (AltarComponent ac : fifthTierAltar) - { - if (ac.isBloodRune()) - { - Block testBlock = Block.blocksList[world.getBlockId(x + ac.getX(), y + ac.getY(), z + ac.getZ())]; - - if (!(testBlock instanceof BloodRune)) - { - return false; - } - } else - { - int blockId = world.getBlockId(x + ac.getX(), y + ac.getY(), z + ac.getZ()); - int metadata = world.getBlockMetadata(x + ac.getX(), y + ac.getY(), z + ac.getZ()); - - if (((ac.getBlockID() != blockId) || (ac.getMetadata() != metadata)) && !(ac.getBlockID() == Block.stoneBrick.blockID && !world.isAirBlock(x + ac.getX(), y + ac.getY(), z + ac.getZ()))) - { - return false; - } - } - } - - return true; - - default: - return false; - } - } - - public static AltarUpgradeComponent getUpgrades(World world, int x, int y, int z, int altarTier) - { - AltarUpgradeComponent upgrades = new AltarUpgradeComponent(); - List list = UpgradedAltars.getAltarUpgradeListForTier(altarTier); - - for (AltarComponent ac : list) - { - if (ac.isUpgradeSlot()) - { - //Currently checks the getRuneEffect. - //TODO Change so that it uses the metadata instead, with the BlockID. - Block testBlock = Block.blocksList[world.getBlockId(x + ac.getX(), y + ac.getY(), z + ac.getZ())]; - - if (testBlock instanceof BloodRune) - { - if (!world.isRemote) - { - switch (((BloodRune) testBlock).getRuneEffect(world.getBlockMetadata(x + ac.getX(), y + ac.getY(), z + ac.getZ()))) - { - case 1: - upgrades.addSpeedUpgrade(); - break; - - case 2: - upgrades.addEfficiencyUpgrade(); - break; - - case 3: - upgrades.addSacrificeUpgrade(); - break; - - case 4: - upgrades.addSelfSacrificeUpgrade(); - break; - - case 5: - upgrades.addaltarCapacitiveUpgrade(); - break; - - case 6: - upgrades.addDisplacementUpgrade(); - break; - - case 7: - upgrades.addorbCapacitiveUpgrade(); - break; - } - } - } - } - } - - return upgrades; - } - - public static void loadAltars() - { - secondTierAltar.add(new AltarComponent(-1, -1, -1, AlchemicalWizardry.bloodRuneBlockID, 0, true, false)); - secondTierAltar.add(new AltarComponent(0, -1, -1, AlchemicalWizardry.bloodRuneBlockID, 0, true, true)); - secondTierAltar.add(new AltarComponent(1, -1, -1, AlchemicalWizardry.bloodRuneBlockID, 0, true, false)); - secondTierAltar.add(new AltarComponent(-1, -1, 0, AlchemicalWizardry.bloodRuneBlockID, 0, true, true)); - secondTierAltar.add(new AltarComponent(1, -1, 0, AlchemicalWizardry.bloodRuneBlockID, 0, true, true)); - secondTierAltar.add(new AltarComponent(-1, -1, 1, AlchemicalWizardry.bloodRuneBlockID, 0, true, false)); - secondTierAltar.add(new AltarComponent(0, -1, 1, AlchemicalWizardry.bloodRuneBlockID, 0, true, true)); - secondTierAltar.add(new AltarComponent(1, -1, 1, AlchemicalWizardry.bloodRuneBlockID, 0, true, false)); - thirdTierAltar.add(new AltarComponent(-1, -1, -1, AlchemicalWizardry.bloodRuneBlockID, 0, true, true)); - thirdTierAltar.add(new AltarComponent(0, -1, -1, AlchemicalWizardry.bloodRuneBlockID, 0, true, true)); - thirdTierAltar.add(new AltarComponent(1, -1, -1, AlchemicalWizardry.bloodRuneBlockID, 0, true, true)); - thirdTierAltar.add(new AltarComponent(-1, -1, 0, AlchemicalWizardry.bloodRuneBlockID, 0, true, true)); - thirdTierAltar.add(new AltarComponent(1, -1, 0, AlchemicalWizardry.bloodRuneBlockID, 0, true, true)); - thirdTierAltar.add(new AltarComponent(-1, -1, 1, AlchemicalWizardry.bloodRuneBlockID, 0, true, true)); - thirdTierAltar.add(new AltarComponent(0, -1, 1, AlchemicalWizardry.bloodRuneBlockID, 0, true, true)); - thirdTierAltar.add(new AltarComponent(1, -1, 1, AlchemicalWizardry.bloodRuneBlockID, 0, true, true)); - thirdTierAltar.add(new AltarComponent(-3, -1, -3, Block.stoneBrick.blockID, 0, false, false)); - thirdTierAltar.add(new AltarComponent(-3, 0, -3, Block.stoneBrick.blockID, 0, false, false)); - thirdTierAltar.add(new AltarComponent(3, -1, -3, Block.stoneBrick.blockID, 0, false, false)); - thirdTierAltar.add(new AltarComponent(3, 0, -3, Block.stoneBrick.blockID, 0, false, false)); - thirdTierAltar.add(new AltarComponent(-3, -1, 3, Block.stoneBrick.blockID, 0, false, false)); - thirdTierAltar.add(new AltarComponent(-3, 0, 3, Block.stoneBrick.blockID, 0, false, false)); - thirdTierAltar.add(new AltarComponent(3, -1, 3, Block.stoneBrick.blockID, 0, false, false)); - thirdTierAltar.add(new AltarComponent(3, 0, 3, Block.stoneBrick.blockID, 0, false, false)); - thirdTierAltar.add(new AltarComponent(-3, 1, -3, Block.glowStone.blockID, 0, false, false)); - thirdTierAltar.add(new AltarComponent(3, 1, -3, Block.glowStone.blockID, 0, false, false)); - thirdTierAltar.add(new AltarComponent(-3, 1, 3, Block.glowStone.blockID, 0, false, false)); - thirdTierAltar.add(new AltarComponent(3, 1, 3, Block.glowStone.blockID, 0, false, false)); - - for (int i = -2; i <= 2; i++) - { - thirdTierAltar.add(new AltarComponent(3, -2, i, AlchemicalWizardry.bloodRuneBlockID, 0, true, true)); - thirdTierAltar.add(new AltarComponent(-3, -2, i, AlchemicalWizardry.bloodRuneBlockID, 0, true, true)); - thirdTierAltar.add(new AltarComponent(i, -2, 3, AlchemicalWizardry.bloodRuneBlockID, 0, true, true)); - thirdTierAltar.add(new AltarComponent(i, -2, -3, AlchemicalWizardry.bloodRuneBlockID, 0, true, true)); - } - - fourthTierAltar.addAll(thirdTierAltar); - - for (int i = -3; i <= 3; i++) - { - fourthTierAltar.add(new AltarComponent(5, -3, i, AlchemicalWizardry.bloodRuneBlockID, 0, true, true)); - fourthTierAltar.add(new AltarComponent(-5, -3, i, AlchemicalWizardry.bloodRuneBlockID, 0, true, true)); - fourthTierAltar.add(new AltarComponent(i, -3, 5, AlchemicalWizardry.bloodRuneBlockID, 0, true, true)); - fourthTierAltar.add(new AltarComponent(i, -3, -5, AlchemicalWizardry.bloodRuneBlockID, 0, true, true)); - } - - for (int i = -2; i <= 1; i++) - { - fourthTierAltar.add(new AltarComponent(5, i, 5, Block.stoneBrick.blockID, 0, false, false)); - fourthTierAltar.add(new AltarComponent(5, i, -5, Block.stoneBrick.blockID, 0, false, false)); - fourthTierAltar.add(new AltarComponent(-5, i, -5, Block.stoneBrick.blockID, 0, false, false)); - fourthTierAltar.add(new AltarComponent(-5, i, 5, Block.stoneBrick.blockID, 0, false, false)); - } - - fourthTierAltar.add(new AltarComponent(5, 2, 5, ModBlocks.largeBloodStoneBrick.blockID, 0, false, false)); - fourthTierAltar.add(new AltarComponent(5, 2, -5, ModBlocks.largeBloodStoneBrick.blockID, 0, false, false)); - fourthTierAltar.add(new AltarComponent(-5, 2, -5, ModBlocks.largeBloodStoneBrick.blockID, 0, false, false)); - fourthTierAltar.add(new AltarComponent(-5, 2, 5, ModBlocks.largeBloodStoneBrick.blockID, 0, false, false)); - fifthTierAltar.addAll(fourthTierAltar); - fifthTierAltar.add(new AltarComponent(-8, -3, 8, Block.beacon.blockID, 0, false, false)); - fifthTierAltar.add(new AltarComponent(-8, -3, -8, Block.beacon.blockID, 0, false, false)); - fifthTierAltar.add(new AltarComponent(8, -3, 8, Block.beacon.blockID, 0, false, false)); - fifthTierAltar.add(new AltarComponent(8, -3, 8, Block.beacon.blockID, 0, false, false)); - - for (int i = -6; i <= 6; i++) - { - fifthTierAltar.add(new AltarComponent(8, -4, i, AlchemicalWizardry.bloodRuneBlockID, 0, true, true)); - fifthTierAltar.add(new AltarComponent(-8, -4, i, AlchemicalWizardry.bloodRuneBlockID, 0, true, true)); - fifthTierAltar.add(new AltarComponent(i, -4, 8, AlchemicalWizardry.bloodRuneBlockID, 0, true, true)); - fifthTierAltar.add(new AltarComponent(i, -4, -8, AlchemicalWizardry.bloodRuneBlockID, 0, true, true)); - } - } - - public static List getAltarUpgradeListForTier(int tier) - { - switch (tier) - { - case 2: - return secondTierAltar; - - case 3: - return thirdTierAltar; - - case 4: - return fourthTierAltar; - - case 5: - return fifthTierAltar; - } - - return null; - } -} diff --git a/BM_src/WayofTime/alchemicalWizardry/common/entity/mob/EntityBileDemon.java b/BM_src/WayofTime/alchemicalWizardry/common/entity/mob/EntityBileDemon.java deleted file mode 100644 index fc39029f..00000000 --- a/BM_src/WayofTime/alchemicalWizardry/common/entity/mob/EntityBileDemon.java +++ /dev/null @@ -1,483 +0,0 @@ -package WayofTime.alchemicalWizardry.common.entity.mob; - -import WayofTime.alchemicalWizardry.AlchemicalWizardry; -import WayofTime.alchemicalWizardry.ModItems; -import net.minecraft.block.BlockColored; -import net.minecraft.entity.Entity; -import net.minecraft.entity.EntityAgeable; -import net.minecraft.entity.EntityLivingBase; -import net.minecraft.entity.SharedMonsterAttributes; -import net.minecraft.entity.ai.*; -import net.minecraft.entity.monster.EntityCreeper; -import net.minecraft.entity.monster.EntityGhast; -import net.minecraft.entity.passive.EntityAnimal; -import net.minecraft.entity.passive.EntityHorse; -import net.minecraft.entity.passive.EntityWolf; -import net.minecraft.entity.player.EntityPlayer; -import net.minecraft.entity.projectile.EntityArrow; -import net.minecraft.item.Item; -import net.minecraft.item.ItemFood; -import net.minecraft.item.ItemStack; -import net.minecraft.nbt.NBTTagCompound; -import net.minecraft.pathfinding.PathEntity; -import net.minecraft.util.DamageSource; -import net.minecraft.world.World; - -public class EntityBileDemon extends EntityDemon -{ - private EntityAIAttackOnCollide aiAttackOnCollide = new EntityAIAttackOnCollide(this, EntityPlayer.class, 1.2D, false); - - private static float maxTamedHealth = 100.0F; - private static float maxUntamedHealth = 200.0F; - private int attackTimer; - - public EntityBileDemon(World par1World) - { - super(par1World, AlchemicalWizardry.entityBileDemonID); - this.setSize(1.3F, 2.0F); - this.getNavigator().setAvoidsWater(true); - this.tasks.addTask(1, new EntityAISwimming(this)); - //this.tasks.addTask(3, new EntityAILeapAtTarget(this, 0.4F)); - this.tasks.addTask(2, new EntityAIAttackOnCollide(this, 1.0D, true)); - this.tasks.addTask(3, this.aiSit); - this.tasks.addTask(5, new EntityAIFollowOwner(this, 1.0D, 10.0F, 2.0F)); - //this.tasks.addTask(6, new EntityAIMate(this, 1.0D)); - this.tasks.addTask(7, new EntityAIWander(this, 1.0D)); - //this.tasks.addTask(8, new EntityAIBeg(this, 8.0F)); - this.tasks.addTask(9, new EntityAIWatchClosest(this, EntityPlayer.class, 8.0F)); - this.tasks.addTask(9, new EntityAILookIdle(this)); - this.targetTasks.addTask(1, new EntityAIOwnerHurtByTarget(this)); - this.targetTasks.addTask(2, new EntityAIOwnerHurtTarget(this)); - this.targetTasks.addTask(3, new EntityAIHurtByTarget(this, true)); - //this.targetTasks.addTask(4, new EntityAITargetNonTamed(this, EntitySheep.class, 200, false)); - this.setTamed(false); - attackTimer = 0; - //this.isImmuneToFire = true; - } - - @Override - protected void applyEntityAttributes() - { - super.applyEntityAttributes(); - //This line affects the speed of the monster - this.getEntityAttribute(SharedMonsterAttributes.movementSpeed).setAttribute(0.20000001192092896D); - - //My guess is that this will alter the max health - if (this.isTamed()) - { - this.getEntityAttribute(SharedMonsterAttributes.maxHealth).setAttribute(this.maxTamedHealth); - } else - { - this.getEntityAttribute(SharedMonsterAttributes.maxHealth).setAttribute(this.maxUntamedHealth); - } - - //this.func_110148_a(SharedMonsterAttributes.field_111267_a).func_111128_a(10.0D); - } - - /** - * Returns true if the newer Entity AI code should be run - */ - public boolean isAIEnabled() - { - return true; - } - - /** - * Sets the active target the Task system uses for tracking - */ - public void setAttackTarget(EntityLivingBase par1EntityLivingBase) - { - super.setAttackTarget(par1EntityLivingBase); - - if (par1EntityLivingBase == null) - { - this.setAngry(false); - } else if (!this.isTamed()) - { - this.setAngry(true); - } - } - - /** - * main AI tick function, replaces updateEntityActionState - */ - protected void updateAITick() - { - this.dataWatcher.updateObject(18, Float.valueOf(this.getHealth())); - } - - protected void entityInit() - { - super.entityInit(); - this.dataWatcher.addObject(18, new Float(this.getHealth())); - this.dataWatcher.addObject(19, new Byte((byte) 0)); - this.dataWatcher.addObject(20, new Byte((byte) BlockColored.getBlockFromDye(1))); - } - - /** - * Plays step sound at given x, y, z for the entity - */ - protected void playStepSound(int par1, int par2, int par3, int par4) - { - this.playSound("mob.zombie.step", 0.15F, 1.0F); - } - - /** - * (abstract) Protected helper method to write subclass entity data to NBT. - */ - public void writeEntityToNBT(NBTTagCompound par1NBTTagCompound) - { - super.writeEntityToNBT(par1NBTTagCompound); - par1NBTTagCompound.setBoolean("Angry", this.isAngry()); - par1NBTTagCompound.setByte("CollarColor", (byte) this.getCollarColor()); - par1NBTTagCompound.setByte("attackTimer", (byte) attackTimer); - } - - /** - * (abstract) Protected helper method to read subclass entity data from NBT. - */ - public void readEntityFromNBT(NBTTagCompound par1NBTTagCompound) - { - super.readEntityFromNBT(par1NBTTagCompound); - this.setAngry(par1NBTTagCompound.getBoolean("Angry")); - - if (par1NBTTagCompound.hasKey("CollarColor")) - { - this.setCollarColor(par1NBTTagCompound.getByte("CollarColor")); - } - - attackTimer = par1NBTTagCompound.getByte("attackTimer"); - } - - /** - * Returns the sound this mob makes while it's alive. - */ - protected String getLivingSound() - { - return "none"; - } - - /** - * Returns the sound this mob makes when it is hurt. - */ - protected String getHurtSound() - { - return "mob.irongolem.hit"; - } - - /** - * Returns the sound this mob makes on death. - */ - protected String getDeathSound() - { - return "mob.irongolem.death"; - } - - /** - * Returns the volume for the sounds this mob makes. - */ - protected float getSoundVolume() - { - return 1.0F; - } - - /** - * Returns the item ID for the item the mob drops on death. - */ - protected int getDropItemId() - { - return -1; - } - - /** - * Called frequently so the entity can update its state every tick as required. For example, zombies and skeletons - * use this to react to sunlight and start to burn. - */ - public void onLivingUpdate() - { - super.onLivingUpdate(); - - if (attackTimer > 0) - { - attackTimer--; - } - } - - public int getAttackTimer() - { - return attackTimer; - } - - /** - * Called to update the entity's position/logic. - */ - public void onUpdate() - { - super.onUpdate(); - } - - public float getEyeHeight() - { - return this.height * 0.8F; - } - - /** - * The speed it takes to move the entityliving's rotationPitch through the faceEntity method. This is only currently - * use in wolves. - */ - public int getVerticalFaceSpeed() - { - return this.isSitting() ? 20 : super.getVerticalFaceSpeed(); - } - - /** - * Called when the entity is attacked. - */ - public boolean attackEntityFrom(DamageSource par1DamageSource, float par2) - { - if (this.isEntityInvulnerable()) - { - return false; - } else - { - Entity entity = par1DamageSource.getEntity(); - this.aiSit.setSitting(false); - - if (entity != null && !(entity instanceof EntityPlayer) && !(entity instanceof EntityArrow)) - { - par2 = (par2 + 1.0F) / 2.0F; - } - - return super.attackEntityFrom(par1DamageSource, par2); - } - } - - public boolean attackEntityAsMob(Entity par1Entity) - { - this.attackTimer = 10; - this.worldObj.setEntityState(this, (byte) 4); - boolean flag = par1Entity.attackEntityFrom(DamageSource.causeMobDamage(this), (float) (7 + this.rand.nextInt(15))); - - if (flag) - { - par1Entity.motionY += 0.4000000059604645D; - } - - this.playSound("mob.irongolem.throw", 1.0F, 1.0F); - return flag; - } - - public void setTamed(boolean par1) - { - super.setTamed(par1); - - if (par1) - { - this.getEntityAttribute(SharedMonsterAttributes.maxHealth).setAttribute(this.maxTamedHealth); - } else - { - this.getEntityAttribute(SharedMonsterAttributes.maxHealth).setAttribute(this.maxUntamedHealth); - } - } - - /** - * Called when a player interacts with a mob. e.g. gets milk from a cow, gets into the saddle on a pig. - */ - public boolean interact(EntityPlayer par1EntityPlayer) - { - ItemStack itemstack = par1EntityPlayer.inventory.getCurrentItem(); - - if (this.isTamed()) - { - if (itemstack != null) - { - if (Item.itemsList[itemstack.itemID] instanceof ItemFood) - { - ItemFood itemfood = (ItemFood) Item.itemsList[itemstack.itemID]; - - if (itemfood.isWolfsFavoriteMeat() && this.dataWatcher.getWatchableObjectFloat(18) < this.maxTamedHealth) - { - if (!par1EntityPlayer.capabilities.isCreativeMode) - { - --itemstack.stackSize; - } - - this.heal((float) itemfood.getHealAmount()); - - if (itemstack.stackSize <= 0) - { - par1EntityPlayer.inventory.setInventorySlotContents(par1EntityPlayer.inventory.currentItem, (ItemStack) null); - } - - return true; - } - } - } - - if (par1EntityPlayer.getCommandSenderName().equalsIgnoreCase(this.getOwnerName()) && !this.isBreedingItem(itemstack)) - { - if (!this.worldObj.isRemote) - { - this.aiSit.setSitting(!this.isSitting()); - this.isJumping = false; - this.setPathToEntity((PathEntity) null); - this.setTarget((Entity) null); - this.setAttackTarget((EntityLivingBase) null); - } - - this.sendSittingMessageToPlayer(par1EntityPlayer, !this.isSitting()); - } - } else if (itemstack != null && itemstack.itemID == ModItems.weakBloodOrb.itemID && !this.isAngry()) - { - if (!par1EntityPlayer.capabilities.isCreativeMode) - { - --itemstack.stackSize; - } - - if (itemstack.stackSize <= 0) - { - par1EntityPlayer.inventory.setInventorySlotContents(par1EntityPlayer.inventory.currentItem, (ItemStack) null); - } - - if (!this.worldObj.isRemote) - { - if (this.rand.nextInt(1) == 0) - { - this.setTamed(true); - this.setPathToEntity((PathEntity) null); - this.setAttackTarget((EntityLivingBase) null); - this.aiSit.setSitting(true); - this.setHealth(this.maxTamedHealth); - this.setOwner(par1EntityPlayer.getCommandSenderName()); - this.playTameEffect(true); - this.worldObj.setEntityState(this, (byte) 7); - } else - { - this.playTameEffect(false); - this.worldObj.setEntityState(this, (byte) 6); - } - } - - return true; - } - - return super.interact(par1EntityPlayer); - } - - /** - * Checks if the parameter is an item which this animal can be fed to breed it (wheat, carrots or seeds depending on - * the animal type) - */ - public boolean isBreedingItem(ItemStack par1ItemStack) - { - return false; - //return par1ItemStack == null ? false : (!(Item.itemsList[par1ItemStack.itemID] instanceof ItemFood) ? false : ((ItemFood)Item.itemsList[par1ItemStack.itemID]).isWolfsFavoriteMeat()); - } - - /** - * Determines whether this wolf is angry or not. - */ - public boolean isAngry() - { - return (this.dataWatcher.getWatchableObjectByte(16) & 2) != 0; - } - - /** - * Sets whether this wolf is angry or not. - */ - public void setAngry(boolean par1) - { - byte b0 = this.dataWatcher.getWatchableObjectByte(16); - - if (par1) - { - this.dataWatcher.updateObject(16, Byte.valueOf((byte) (b0 | 2))); - } else - { - this.dataWatcher.updateObject(16, Byte.valueOf((byte) (b0 & -3))); - } - } - - /** - * Return this wolf's collar color. - */ - public int getCollarColor() - { - return this.dataWatcher.getWatchableObjectByte(20) & 15; - } - - /** - * Set this wolf's collar color. - */ - public void setCollarColor(int par1) - { - this.dataWatcher.updateObject(20, Byte.valueOf((byte) (par1 & 15))); - } - - /** - * This function is used when two same-species animals in 'love mode' breed to generate the new baby animal. - */ - public EntityWolf spawnBabyAnimal(EntityAgeable par1EntityAgeable) - { - return null; - } - - public void func_70918_i(boolean par1) - { - if (par1) - { - this.dataWatcher.updateObject(19, Byte.valueOf((byte) 1)); - } else - { - this.dataWatcher.updateObject(19, Byte.valueOf((byte) 0)); - } - } - - /** - * Returns true if the mob is currently able to mate with the specified mob. - */ - public boolean canMateWith(EntityAnimal par1EntityAnimal) - { - return false; - } - - public boolean func_70922_bv() - { - return this.dataWatcher.getWatchableObjectByte(19) == 1; - } - - /** - * Determines if an entity can be despawned, used on idle far away entities - */ - protected boolean canDespawn() - { - //return !this.isTamed() && this.ticksExisted > 2400; - return false; - } - - public boolean func_142018_a(EntityLivingBase par1EntityLivingBase, EntityLivingBase par2EntityLivingBase) - { - if (!(par1EntityLivingBase instanceof EntityCreeper) && !(par1EntityLivingBase instanceof EntityGhast)) - { - if (par1EntityLivingBase instanceof EntityBileDemon) - { - EntityBileDemon entitywolf = (EntityBileDemon) par1EntityLivingBase; - - if (entitywolf.isTamed() && entitywolf.func_130012_q() == par2EntityLivingBase) - { - return false; - } - } - - return par1EntityLivingBase instanceof EntityPlayer && par2EntityLivingBase instanceof EntityPlayer && !((EntityPlayer) par2EntityLivingBase).canAttackPlayer((EntityPlayer) par1EntityLivingBase) ? false : !(par1EntityLivingBase instanceof EntityHorse) || !((EntityHorse) par1EntityLivingBase).isTame(); - } else - { - return false; - } - } - - public EntityAgeable createChild(EntityAgeable par1EntityAgeable) - { - return this.spawnBabyAnimal(par1EntityAgeable); - } -} \ No newline at end of file diff --git a/BM_src/WayofTime/alchemicalWizardry/common/entity/mob/EntityBoulderFist.java b/BM_src/WayofTime/alchemicalWizardry/common/entity/mob/EntityBoulderFist.java deleted file mode 100644 index 7579772f..00000000 --- a/BM_src/WayofTime/alchemicalWizardry/common/entity/mob/EntityBoulderFist.java +++ /dev/null @@ -1,496 +0,0 @@ -package WayofTime.alchemicalWizardry.common.entity.mob; - -import WayofTime.alchemicalWizardry.AlchemicalWizardry; -import WayofTime.alchemicalWizardry.ModItems; -import WayofTime.alchemicalWizardry.common.EntityAITargetAggro; -import WayofTime.alchemicalWizardry.common.entity.projectile.HolyProjectile; -import net.minecraft.block.BlockColored; -import net.minecraft.entity.Entity; -import net.minecraft.entity.EntityAgeable; -import net.minecraft.entity.EntityLivingBase; -import net.minecraft.entity.SharedMonsterAttributes; -import net.minecraft.entity.ai.*; -import net.minecraft.entity.monster.EntityCreeper; -import net.minecraft.entity.monster.EntityGhast; -import net.minecraft.entity.passive.EntityAnimal; -import net.minecraft.entity.passive.EntityHorse; -import net.minecraft.entity.passive.EntityWolf; -import net.minecraft.entity.player.EntityPlayer; -import net.minecraft.entity.projectile.EntityArrow; -import net.minecraft.item.Item; -import net.minecraft.item.ItemFood; -import net.minecraft.item.ItemStack; -import net.minecraft.nbt.NBTTagCompound; -import net.minecraft.pathfinding.PathEntity; -import net.minecraft.util.DamageSource; -import net.minecraft.world.World; - -public class EntityBoulderFist extends EntityDemon -{ - //private EntityAIArrowAttack aiArrowAttack = new EntityAIArrowAttack(this, 1.0D, 40, 40, 15.0F); - private EntityAIAttackOnCollide aiAttackOnCollide = new EntityAIAttackOnCollide(this, EntityPlayer.class, 1.2D, false); - - private static float maxTamedHealth = 60.0F; - private static float maxUntamedHealth = 50.0F; - - public EntityBoulderFist(World par1World) - { - super(par1World, AlchemicalWizardry.entityBoulderFistID); - this.setSize(0.8F, 1.2F); - this.getNavigator().setAvoidsWater(true); - this.tasks.addTask(1, new EntityAISwimming(this)); - this.tasks.addTask(2, this.aiSit); - this.tasks.addTask(3, new EntityAILeapAtTarget(this, 0.4F)); - this.tasks.addTask(4, new EntityAIAttackOnCollide(this, 1.0D, true)); - this.tasks.addTask(5, new EntityAIFollowOwner(this, 1.0D, 10.0F, 2.0F)); - //this.tasks.addTask(6, new EntityAIMate(this, 1.0D)); - this.tasks.addTask(7, new EntityAIWander(this, 1.0D)); - //this.tasks.addTask(8, new EntityAIBeg(this, 8.0F)); - this.tasks.addTask(9, new EntityAIWatchClosest(this, EntityPlayer.class, 8.0F)); - this.tasks.addTask(9, new EntityAILookIdle(this)); - this.targetTasks.addTask(1, new EntityAIOwnerHurtByTarget(this)); - this.targetTasks.addTask(2, new EntityAIOwnerHurtTarget(this)); - this.targetTasks.addTask(3, new EntityAIHurtByTarget(this, true)); - this.targetTasks.addTask(4, new EntityAITargetAggro(this, EntityPlayer.class, 0, false)); - this.setAggro(false); - //this.targetTasks.addTask(4, new EntityAITargetNonTamed(this, EntitySheep.class, 200, false)); - this.setTamed(false); - - if (par1World != null && !par1World.isRemote) - { - this.setCombatTask(); - } - - //this.isImmuneToFire = true; - } - - @Override - protected void applyEntityAttributes() - { - super.applyEntityAttributes(); - //This line affects the speed of the monster - this.getEntityAttribute(SharedMonsterAttributes.movementSpeed).setAttribute(0.30000001192092896D); - - //My guess is that this will alter the max health - if (this.isTamed()) - { - this.getEntityAttribute(SharedMonsterAttributes.maxHealth).setAttribute(this.maxTamedHealth); - } else - { - this.getEntityAttribute(SharedMonsterAttributes.maxHealth).setAttribute(this.maxUntamedHealth); - } - - //this.func_110148_a(SharedMonsterAttributes.field_111267_a).func_111128_a(10.0D); - } - - /** - * Returns true if the newer Entity AI code should be run - */ - public boolean isAIEnabled() - { - return true; - } - - /** - * Sets the active target the Task system uses for tracking - */ - public void setAttackTarget(EntityLivingBase par1EntityLivingBase) - { - super.setAttackTarget(par1EntityLivingBase); - - if (par1EntityLivingBase == null) - { - this.setAngry(false); - } else if (!this.isTamed()) - { - this.setAngry(true); - } - } - - /** - * main AI tick function, replaces updateEntityActionState - */ - protected void updateAITick() - { - this.dataWatcher.updateObject(18, Float.valueOf(this.getHealth())); - } - - protected void entityInit() - { - super.entityInit(); - this.dataWatcher.addObject(18, new Float(this.getHealth())); - this.dataWatcher.addObject(19, new Byte((byte) 0)); - this.dataWatcher.addObject(20, new Byte((byte) BlockColored.getBlockFromDye(1))); - } - - /** - * Plays step sound at given x, y, z for the entity - */ - protected void playStepSound(int par1, int par2, int par3, int par4) - { - this.playSound("mob.zombie.step", 0.15F, 1.0F); - } - - /** - * (abstract) Protected helper method to write subclass entity data to NBT. - */ - public void writeEntityToNBT(NBTTagCompound par1NBTTagCompound) - { - super.writeEntityToNBT(par1NBTTagCompound); - par1NBTTagCompound.setBoolean("Angry", this.isAngry()); - par1NBTTagCompound.setByte("CollarColor", (byte) this.getCollarColor()); - } - - /** - * (abstract) Protected helper method to read subclass entity data from NBT. - */ - public void readEntityFromNBT(NBTTagCompound par1NBTTagCompound) - { - super.readEntityFromNBT(par1NBTTagCompound); - this.setAngry(par1NBTTagCompound.getBoolean("Angry")); - - if (par1NBTTagCompound.hasKey("CollarColor")) - { - this.setCollarColor(par1NBTTagCompound.getByte("CollarColor")); - } - - this.setCombatTask(); - } - - /** - * Returns the sound this mob makes while it's alive. - */ - protected String getLivingSound() - { - //TODO change sounds - return this.isAngry() ? "mob.wolf.growl" : (this.rand.nextInt(3) == 0 ? (this.isTamed() && this.dataWatcher.getWatchableObjectFloat(18) < 10.0F ? "mob.wolf.whine" : "mob.wolf.panting") : "mob.wolf.bark"); - } - - /** - * Returns the sound this mob makes when it is hurt. - */ - protected String getHurtSound() - { - return "mob.wolf.hurt"; - } - - /** - * Returns the sound this mob makes on death. - */ - protected String getDeathSound() - { - return "mob.wolf.death"; - } - - /** - * Returns the volume for the sounds this mob makes. - */ - protected float getSoundVolume() - { - return 0.4F; - } - - /** - * Returns the item ID for the item the mob drops on death. - */ - protected int getDropItemId() - { - return -1; - } - - /** - * Called frequently so the entity can update its state every tick as required. For example, zombies and skeletons - * use this to react to sunlight and start to burn. - */ - public void onLivingUpdate() - { - super.onLivingUpdate(); - } - - /** - * Called to update the entity's position/logic. - */ - public void onUpdate() - { - super.onUpdate(); - } - - public float getEyeHeight() - { - return this.height * 0.8F; - } - - /** - * The speed it takes to move the entityliving's rotationPitch through the faceEntity method. This is only currently - * use in wolves. - */ - public int getVerticalFaceSpeed() - { - return this.isSitting() ? 20 : super.getVerticalFaceSpeed(); - } - - /** - * Called when the entity is attacked. - */ - public boolean attackEntityFrom(DamageSource par1DamageSource, float par2) - { - if (this.isEntityInvulnerable()) - { - return false; - } else - { - Entity entity = par1DamageSource.getEntity(); - this.aiSit.setSitting(false); - - if (entity != null && !(entity instanceof EntityPlayer) && !(entity instanceof EntityArrow)) - { - par2 = (par2 + 1.0F) / 2.0F; - } - - return super.attackEntityFrom(par1DamageSource, par2); - } - } - - public boolean attackEntityAsMob(Entity par1Entity) - { - int i = this.isTamed() ? 6 : 7; - return par1Entity.attackEntityFrom(DamageSource.causeMobDamage(this), (float) i); - } - - public void setTamed(boolean par1) - { - super.setTamed(par1); - - if (par1) - { - this.getEntityAttribute(SharedMonsterAttributes.maxHealth).setAttribute(this.maxTamedHealth); - } else - { - this.getEntityAttribute(SharedMonsterAttributes.maxHealth).setAttribute(this.maxUntamedHealth); - } - } - - /** - * Called when a player interacts with a mob. e.g. gets milk from a cow, gets into the saddle on a pig. - */ - public boolean interact(EntityPlayer par1EntityPlayer) - { - ItemStack itemstack = par1EntityPlayer.inventory.getCurrentItem(); - - if (this.isTamed()) - { - if (itemstack != null) - { - if (Item.itemsList[itemstack.itemID] instanceof ItemFood) - { - ItemFood itemfood = (ItemFood) Item.itemsList[itemstack.itemID]; - - if (itemfood.isWolfsFavoriteMeat() && this.dataWatcher.getWatchableObjectFloat(18) < this.maxTamedHealth) - { - if (!par1EntityPlayer.capabilities.isCreativeMode) - { - --itemstack.stackSize; - } - - this.heal((float) itemfood.getHealAmount()); - - if (itemstack.stackSize <= 0) - { - par1EntityPlayer.inventory.setInventorySlotContents(par1EntityPlayer.inventory.currentItem, (ItemStack) null); - } - - return true; - } - } - } - - if (par1EntityPlayer.getCommandSenderName().equalsIgnoreCase(this.getOwnerName()) && !this.isBreedingItem(itemstack)) - { - if (!this.worldObj.isRemote) - { - this.aiSit.setSitting(!this.isSitting()); - this.isJumping = false; - this.setPathToEntity((PathEntity) null); - this.setTarget((Entity) null); - this.setAttackTarget((EntityLivingBase) null); - } - - this.sendSittingMessageToPlayer(par1EntityPlayer, !this.isSitting()); - } - } else if (itemstack != null && itemstack.itemID == ModItems.weakBloodOrb.itemID && !this.isAngry() && !this.isAggro()) - { - if (!par1EntityPlayer.capabilities.isCreativeMode) - { - --itemstack.stackSize; - } - - if (itemstack.stackSize <= 0) - { - par1EntityPlayer.inventory.setInventorySlotContents(par1EntityPlayer.inventory.currentItem, (ItemStack) null); - } - - if (!this.worldObj.isRemote) - { - if (this.rand.nextInt(1) == 0) - { - this.setTamed(true); - this.setPathToEntity((PathEntity) null); - this.setAttackTarget((EntityLivingBase) null); - this.aiSit.setSitting(true); - this.setHealth(this.maxTamedHealth); - this.setOwner(par1EntityPlayer.getCommandSenderName()); - this.playTameEffect(true); - this.worldObj.setEntityState(this, (byte) 7); - } else - { - this.playTameEffect(false); - this.worldObj.setEntityState(this, (byte) 6); - } - } - - return true; - } - - return super.interact(par1EntityPlayer); - } - - /** - * Checks if the parameter is an item which this animal can be fed to breed it (wheat, carrots or seeds depending on - * the animal type) - */ - public boolean isBreedingItem(ItemStack par1ItemStack) - { - return false; - //return par1ItemStack == null ? false : (!(Item.itemsList[par1ItemStack.itemID] instanceof ItemFood) ? false : ((ItemFood)Item.itemsList[par1ItemStack.itemID]).isWolfsFavoriteMeat()); - } - - /** - * Determines whether this wolf is angry or not. - */ - public boolean isAngry() - { - return (this.dataWatcher.getWatchableObjectByte(16) & 2) != 0; - } - - /** - * Sets whether this wolf is angry or not. - */ - public void setAngry(boolean par1) - { - byte b0 = this.dataWatcher.getWatchableObjectByte(16); - - if (par1) - { - this.dataWatcher.updateObject(16, Byte.valueOf((byte) (b0 | 2))); - } else - { - this.dataWatcher.updateObject(16, Byte.valueOf((byte) (b0 & -3))); - } - } - - /** - * Return this wolf's collar color. - */ - public int getCollarColor() - { - return this.dataWatcher.getWatchableObjectByte(20) & 15; - } - - /** - * Set this wolf's collar color. - */ - public void setCollarColor(int par1) - { - this.dataWatcher.updateObject(20, Byte.valueOf((byte) (par1 & 15))); - } - - /** - * This function is used when two same-species animals in 'love mode' breed to generate the new baby animal. - */ - public EntityWolf spawnBabyAnimal(EntityAgeable par1EntityAgeable) - { - return null; - } - - public void func_70918_i(boolean par1) - { - if (par1) - { - this.dataWatcher.updateObject(19, Byte.valueOf((byte) 1)); - } else - { - this.dataWatcher.updateObject(19, Byte.valueOf((byte) 0)); - } - } - - /** - * Returns true if the mob is currently able to mate with the specified mob. - */ - public boolean canMateWith(EntityAnimal par1EntityAnimal) - { - return false; - } - - public boolean func_70922_bv() - { - return this.dataWatcher.getWatchableObjectByte(19) == 1; - } - - /** - * Determines if an entity can be despawned, used on idle far away entities - */ - protected boolean canDespawn() - { - //return !this.isTamed() && this.ticksExisted > 2400; - return false; - } - - public boolean func_142018_a(EntityLivingBase par1EntityLivingBase, EntityLivingBase par2EntityLivingBase) - { - if (!(par1EntityLivingBase instanceof EntityCreeper) && !(par1EntityLivingBase instanceof EntityGhast)) - { - if (par1EntityLivingBase instanceof EntityBoulderFist) - { - EntityBoulderFist entitywolf = (EntityBoulderFist) par1EntityLivingBase; - - if (entitywolf.isTamed() && entitywolf.func_130012_q() == par2EntityLivingBase) - { - return false; - } - } - - return par1EntityLivingBase instanceof EntityPlayer && par2EntityLivingBase instanceof EntityPlayer && !((EntityPlayer) par2EntityLivingBase).canAttackPlayer((EntityPlayer) par1EntityLivingBase) ? false : !(par1EntityLivingBase instanceof EntityHorse) || !((EntityHorse) par1EntityLivingBase).isTame(); - } else - { - return false; - } - } - - public EntityAgeable createChild(EntityAgeable par1EntityAgeable) - { - return this.spawnBabyAnimal(par1EntityAgeable); - } - - /** - * Attack the specified entity using a ranged attack. - */ - public void attackEntityWithRangedAttack(EntityLivingBase par1EntityLivingBase, float par2) - { - double xCoord; - double yCoord; - double zCoord; - HolyProjectile hol = new HolyProjectile(worldObj, this, par1EntityLivingBase, 1.8f, 0f, 5, 600); - this.worldObj.spawnEntityInWorld(hol); - } - - /** - * sets this entity's combat AI. - */ - public void setCombatTask() - { - this.tasks.removeTask(this.aiAttackOnCollide); - //this.tasks.removeTask(this.aiArrowAttack); - ItemStack itemstack = this.getHeldItem(); - this.tasks.addTask(4, this.aiAttackOnCollide); - } -} \ No newline at end of file diff --git a/BM_src/WayofTime/alchemicalWizardry/common/entity/mob/EntityDemon.java b/BM_src/WayofTime/alchemicalWizardry/common/entity/mob/EntityDemon.java deleted file mode 100644 index e36f736d..00000000 --- a/BM_src/WayofTime/alchemicalWizardry/common/entity/mob/EntityDemon.java +++ /dev/null @@ -1,101 +0,0 @@ -package WayofTime.alchemicalWizardry.common.entity.mob; - -import WayofTime.alchemicalWizardry.ModItems; -import WayofTime.alchemicalWizardry.common.IDemon; -import WayofTime.alchemicalWizardry.common.items.DemonPlacer; -import net.minecraft.entity.Entity; -import net.minecraft.entity.EntityAgeable; -import net.minecraft.entity.passive.EntityTameable; -import net.minecraft.entity.player.EntityPlayer; -import net.minecraft.item.ItemStack; -import net.minecraft.util.ChatMessageComponent; -import net.minecraft.world.World; - -public class EntityDemon extends EntityTameable implements IDemon -{ - private boolean isAggro; - private int demonID; - - public EntityDemon(World par1World, int demonID) - { - super(par1World); - this.demonID = demonID; - } - - @Override - public void setSummonedConditions() - { - this.setAggro(true); - } - - @Override - public boolean isAggro() - { - return this.isAggro; - } - - @Override - public void setAggro(boolean aggro) - { - this.isAggro = aggro; - } - - @Override - public EntityAgeable createChild(EntityAgeable entityageable) - { - // TODO Auto-generated method stub - return null; - } - - protected void dropFewItems(boolean par1, int par2) - { - ItemStack drop = new ItemStack(ModItems.demonPlacer, 1, this.getDemonID()); - DemonPlacer.setOwnerName(drop, this.getOwnerName()); - - if (this.hasCustomNameTag()) - { - drop.setItemName(this.getCustomNameTag()); - } - - this.entityDropItem(drop, 0.0f); - } - - public void onLivingUpdate() - { - super.onLivingUpdate(); - - if (!this.isAggro() && worldObj.getWorldTime() % 100 == 0) - { - this.heal(1); - } - } - - public void sendSittingMessageToPlayer(EntityPlayer owner, boolean isSitting) - { - if (owner != null && owner.worldObj.isRemote) - { - ChatMessageComponent chatmessagecomponent = new ChatMessageComponent(); - - if (isSitting) - { - chatmessagecomponent.addText("I will stay here for now, Master."); - } else - { - chatmessagecomponent.addText("I shall follow and protect you!"); - } - - owner.sendChatToPlayer(chatmessagecomponent); - } - } - - public int getDemonID() - { - return this.demonID; - } - - @Override - public Entity getOwner() - { - return func_130012_q(); - } -} diff --git a/BM_src/WayofTime/alchemicalWizardry/common/entity/mob/EntityEarthElemental.java b/BM_src/WayofTime/alchemicalWizardry/common/entity/mob/EntityEarthElemental.java deleted file mode 100644 index 5d7b5045..00000000 --- a/BM_src/WayofTime/alchemicalWizardry/common/entity/mob/EntityEarthElemental.java +++ /dev/null @@ -1,28 +0,0 @@ -package WayofTime.alchemicalWizardry.common.entity.mob; - -import WayofTime.alchemicalWizardry.AlchemicalWizardry; -import net.minecraft.entity.Entity; -import net.minecraft.entity.EntityLivingBase; -import net.minecraft.entity.monster.IMob; -import net.minecraft.potion.Potion; -import net.minecraft.potion.PotionEffect; -import net.minecraft.util.DamageSource; -import net.minecraft.world.World; - -public class EntityEarthElemental extends EntityElemental implements IMob -{ - public EntityEarthElemental(World world) - { - super(world, AlchemicalWizardry.entityEarthElementalID); - } - - public void inflictEffectOnEntity(Entity target) - { - if (target instanceof EntityLivingBase) - { - ((EntityLivingBase) target).attackEntityFrom(DamageSource.causeMobDamage(this), 10); - ((EntityLivingBase) target).addPotionEffect(new PotionEffect(Potion.moveSlowdown.id, 100, 4)); - ((EntityLivingBase) target).addPotionEffect(new PotionEffect(AlchemicalWizardry.customPotionInhibit.id, 150, 0)); - } - } -} \ No newline at end of file diff --git a/BM_src/WayofTime/alchemicalWizardry/common/entity/mob/EntityElemental.java b/BM_src/WayofTime/alchemicalWizardry/common/entity/mob/EntityElemental.java deleted file mode 100644 index 821f4c40..00000000 --- a/BM_src/WayofTime/alchemicalWizardry/common/entity/mob/EntityElemental.java +++ /dev/null @@ -1,750 +0,0 @@ -package WayofTime.alchemicalWizardry.common.entity.mob; - -import WayofTime.alchemicalWizardry.AlchemicalWizardry; -import WayofTime.alchemicalWizardry.ModItems; -import cpw.mods.fml.relauncher.Side; -import cpw.mods.fml.relauncher.SideOnly; -import net.minecraft.block.Block; -import net.minecraft.block.BlockColored; -import net.minecraft.entity.Entity; -import net.minecraft.entity.EntityAgeable; -import net.minecraft.entity.EntityLivingBase; -import net.minecraft.entity.SharedMonsterAttributes; -import net.minecraft.entity.ai.EntityAIAttackOnCollide; -import net.minecraft.entity.monster.EntityCreeper; -import net.minecraft.entity.monster.EntityGhast; -import net.minecraft.entity.passive.EntityAnimal; -import net.minecraft.entity.passive.EntityHorse; -import net.minecraft.entity.passive.EntityWolf; -import net.minecraft.entity.player.EntityPlayer; -import net.minecraft.entity.projectile.EntityArrow; -import net.minecraft.item.ItemStack; -import net.minecraft.nbt.NBTTagCompound; -import net.minecraft.potion.PotionEffect; -import net.minecraft.util.AxisAlignedBB; -import net.minecraft.util.DamageSource; -import net.minecraft.util.MathHelper; -import net.minecraft.world.World; - -import java.util.List; - -public class EntityElemental extends EntityDemon -{ - //private EntityAIArrowAttack aiArrowAttack = new EntityAIArrowAttack(this, 1.0D, 40, 40, 15.0F); - private EntityAIAttackOnCollide aiAttackOnCollide = new EntityAIAttackOnCollide(this, EntityPlayer.class, 1.2D, false); - - private static float maxTamedHealth = 100.0F; - private static float maxUntamedHealth = 100.0F; - - public EntityElemental(World par1World, int demonID) - { - super(par1World, demonID); - this.setSize(0.5F, 1.0F); - this.setAggro(false); - //this.targetTasks.addTask(4, new EntityAITargetNonTamed(this, EntitySheep.class, 200, false)); - this.setTamed(false); - - if (par1World != null && !par1World.isRemote) - { - this.setCombatTask(); - } - - //this.isImmuneToFire = true; - } - - public int courseChangeCooldown; - public double waypointX; - public double waypointY; - public double waypointZ; - private Entity targetedEntity; - - /** - * Cooldown time between target loss and new target aquirement. - */ - private int aggroCooldown; - public int prevAttackCounter; - public int attackCounter; - - /** - * The explosion radius of spawned fireballs. - */ - //private int explosionStrength = 1; -// -// private int heightOffsetUpdateTime; -// private float heightOffset = 0.5F; -// private int field_70846_g; - protected void dropFewItems(boolean par1, int par2) - { - if (worldObj.rand.nextFloat() < (1 - Math.pow(0.6f, par2 + 1))) - { - this.entityDropItem(new ItemStack(ModItems.demonBloodShard, 1, 0), 0.0f); - } - } - - protected void fall(float par1) - { - } - - /** - * Takes in the distance the entity has fallen this tick and whether its on the ground to update the fall distance - * and deal fall damage if landing on the ground. Args: distanceFallenThisTick, onGround - */ - protected void updateFallState(double par1, boolean par3) - { - } - - /** - * Moves the entity based on the specified heading. Args: strafe, forward - */ - public void moveEntityWithHeading(float par1, float par2) - { - if (this.isInWater()) - { - this.moveFlying(par1, par2, 0.02F); - this.moveEntity(this.motionX, this.motionY, this.motionZ); - this.motionX *= 0.800000011920929D; - this.motionY *= 0.800000011920929D; - this.motionZ *= 0.800000011920929D; - } else if (this.handleLavaMovement()) - { - this.moveFlying(par1, par2, 0.02F); - this.moveEntity(this.motionX, this.motionY, this.motionZ); - this.motionX *= 0.5D; - this.motionY *= 0.5D; - this.motionZ *= 0.5D; - } else - { - float f2 = 0.91F; - - if (this.onGround) - { - f2 = 0.54600006F; - int i = this.worldObj.getBlockId(MathHelper.floor_double(this.posX), MathHelper.floor_double(this.boundingBox.minY) - 1, MathHelper.floor_double(this.posZ)); - - if (i > 0) - { - f2 = Block.blocksList[i].slipperiness * 0.91F; - } - } - - float f3 = 0.16277136F / (f2 * f2 * f2); - this.moveFlying(par1, par2, this.onGround ? 0.1F * f3 : 0.02F); - f2 = 0.91F; - - if (this.onGround) - { - f2 = 0.54600006F; - int j = this.worldObj.getBlockId(MathHelper.floor_double(this.posX), MathHelper.floor_double(this.boundingBox.minY) - 1, MathHelper.floor_double(this.posZ)); - - if (j > 0) - { - f2 = Block.blocksList[j].slipperiness * 0.91F; - } - } - - this.moveEntity(this.motionX, this.motionY, this.motionZ); - this.motionX *= (double) f2; - this.motionY *= (double) f2; - this.motionZ *= (double) f2; - } - - double d0 = this.posX - this.prevPosX; - double d1 = this.posZ - this.prevPosZ; - float f4 = MathHelper.sqrt_double(d0 * d0 + d1 * d1) * 4.0F; - - if (f4 > 1.0F) - { - f4 = 1.0F; - } - } - - /** - * returns true if this entity is by a ladder, false otherwise - */ - public boolean isOnLadder() - { - return false; - } - - @SideOnly(Side.CLIENT) - public boolean func_110182_bF() - { - return this.dataWatcher.getWatchableObjectByte(25) != 0; - } - - protected void updateEntityActionState() - { -// if (!this.worldObj.isRemote && this.worldObj.difficultySetting == 0) -// { -// this.setDead(); -// } - - //this.despawnEntity(); - if (this.getHealth() <= this.getMaxHealth() / 2.0f && worldObj.rand.nextInt(200) == 0) - { - this.addPotionEffect(new PotionEffect(AlchemicalWizardry.customPotionReciprocation.id, 100, 1)); - } - - this.prevAttackCounter = this.attackCounter; - double d0 = this.waypointX - this.posX; - double d1 = this.waypointY - this.posY; - double d2 = this.waypointZ - this.posZ; - double d3 = d0 * d0 + d1 * d1 + d2 * d2; - - if (d3 < 1.0D || d3 > 3600.0D) - { - this.waypointX = this.posX + (double) ((this.rand.nextFloat() * 2.0F - 1.0F) * 16.0F); - this.waypointY = this.posY + (double) ((this.rand.nextFloat() * 2.0F - 1.0F) * 16.0F); - this.waypointZ = this.posZ + (double) ((this.rand.nextFloat() * 2.0F - 1.0F) * 16.0F); - } - - if (this.courseChangeCooldown-- <= 0) - { - this.courseChangeCooldown += this.rand.nextInt(5) + 2; - d3 = (double) MathHelper.sqrt_double(d3); - - if (this.isCourseTraversable(this.waypointX, this.waypointY, this.waypointZ, d3)) - { - this.motionX += d0 / d3 * 0.1D; - this.motionY += d1 / d3 * 0.1D; - this.motionZ += d2 / d3 * 0.1D; - } else - { - this.waypointX = this.posX + (double) ((this.rand.nextFloat() * 2.0F - 1.0F) * 16.0F); - this.waypointY = this.posY + (double) ((this.rand.nextFloat() * 2.0F - 1.0F) * 16.0F); - this.waypointZ = this.posZ + (double) ((this.rand.nextFloat() * 2.0F - 1.0F) * 16.0F); - } - } - - if (this.targetedEntity != null && this.targetedEntity.isDead) - { - this.targetedEntity = null; - } - - if (this.targetedEntity == null || this.aggroCooldown-- <= 0) - { - this.targetedEntity = getClosestVulnerableMonsterToEntity(this, 100.0D); - - if (this.targetedEntity != null) - { - this.aggroCooldown = 20; - } - } - - double d4 = 64.0D; - - if (this.targetedEntity != null && this.targetedEntity.getDistanceSqToEntity(this) < d4 * d4) - { - double d5 = this.targetedEntity.posX - this.posX; - double d6 = this.targetedEntity.boundingBox.minY + (double) (this.targetedEntity.height / 2.0F) - (this.posY + (double) (this.height / 2.0F)); - double d7 = this.targetedEntity.posZ - this.posZ; - this.renderYawOffset = this.rotationYaw = -((float) Math.atan2(d5, d7)) * 180.0F / (float) Math.PI; - - if (this.courseChangeCooldown <= 0) - { - if (isCourseTraversable(this.targetedEntity.posX, this.targetedEntity.posY, this.targetedEntity.posZ, Math.sqrt(d5 * d5 + d6 * d6 + d7 * d7))) - { - this.waypointX = this.targetedEntity.posX; - this.waypointY = this.targetedEntity.posY; - this.waypointZ = this.targetedEntity.posZ; - this.motionX += d5 / d3 * 0.1D; - this.motionY += d6 / d3 * 0.1D; - this.motionZ += d7 / d3 * 0.1D; - } else - { - this.waypointX = this.posX + (double) ((this.rand.nextFloat() * 2.0F - 1.0F) * 16.0F); - this.waypointY = this.posY + (double) ((this.rand.nextFloat() * 2.0F - 1.0F) * 16.0F); - this.waypointZ = this.posZ + (double) ((this.rand.nextFloat() * 2.0F - 1.0F) * 16.0F); - this.motionX += d5 / d3 * 0.1D; - this.motionY += d6 / d3 * 0.1D; - this.motionZ += d7 / d3 * 0.1D; - } - } - - if (this.canEntityBeSeen(this.targetedEntity)) - { - if (Math.sqrt(d5 * d5 + d6 * d6 + d7 * d7) < 4) - { -// if (this.attackCounter == 10) -// { -// this.worldObj.playAuxSFXAtEntity((EntityPlayer)null, 1007, (int)this.posX, (int)this.posY, (int)this.posZ, 0); -// } - ++this.attackCounter; - - if (this.attackCounter >= 10) - { - this.worldObj.playAuxSFXAtEntity((EntityPlayer) null, 1008, (int) this.posX, (int) this.posY, (int) this.posZ, 0); - this.inflictEffectOnEntity(this.targetedEntity); - this.attackCounter = -40; - } - } - } else if (this.attackCounter > 0) - { - --this.attackCounter; - } - } else - { - this.renderYawOffset = this.rotationYaw = -((float) Math.atan2(this.motionX, this.motionZ)) * 180.0F / (float) Math.PI; - - if (this.attackCounter > 0) - { - --this.attackCounter; - } - } - - if (!this.worldObj.isRemote) - { - byte b0 = this.dataWatcher.getWatchableObjectByte(25); - byte b1 = (byte) (this.attackCounter > 10 ? 1 : 0); - - if (b0 != b1) - { - this.dataWatcher.updateObject(25, Byte.valueOf(b1)); - } - } - } - - /** - * True if the ghast has an unobstructed line of travel to the waypoint. - */ - private boolean isCourseTraversable(double par1, double par3, double par5, double par7) - { - double d4 = (this.waypointX - this.posX) / par7; - double d5 = (this.waypointY - this.posY) / par7; - double d6 = (this.waypointZ - this.posZ) / par7; - AxisAlignedBB axisalignedbb = this.boundingBox.copy(); - - for (int i = 1; (double) i < par7; ++i) - { - axisalignedbb.offset(d4, d5, d6); - - if (!this.worldObj.getCollidingBoundingBoxes(this, axisalignedbb).isEmpty()) - { - return false; - } - } - - return true; - } - - /** - * Will return how many at most can spawn in a chunk at once. - */ - public int getMaxSpawnedInChunk() - { - return 1; - } - - /** - * (abstract) Protected helper method to write subclass entity data to NBT. - */ - public void writeEntityToNBT(NBTTagCompound par1NBTTagCompound) - { - super.writeEntityToNBT(par1NBTTagCompound); - par1NBTTagCompound.setBoolean("Angry", this.isAngry()); - par1NBTTagCompound.setByte("CollarColor", (byte) this.getCollarColor()); - } - - /** - * (abstract) Protected helper method to read subclass entity data from NBT. - */ - public void readEntityFromNBT(NBTTagCompound par1NBTTagCompound) - { - super.readEntityFromNBT(par1NBTTagCompound); - this.setAngry(par1NBTTagCompound.getBoolean("Angry")); - - if (par1NBTTagCompound.hasKey("CollarColor")) - { - this.setCollarColor(par1NBTTagCompound.getByte("CollarColor")); - } - - this.setCombatTask(); - } - - @Override - protected void applyEntityAttributes() - { - super.applyEntityAttributes(); - //This line affects the speed of the monster - this.getEntityAttribute(SharedMonsterAttributes.movementSpeed).setAttribute(0.30000001192092896D); - - //My guess is that this will alter the max health - if (this.isTamed()) - { - this.getEntityAttribute(SharedMonsterAttributes.maxHealth).setAttribute(this.maxTamedHealth); - } else - { - this.getEntityAttribute(SharedMonsterAttributes.maxHealth).setAttribute(this.maxUntamedHealth); - } - - //this.func_110148_a(SharedMonsterAttributes.field_111267_a).func_111128_a(10.0D); - } - - /** - * Returns true if the newer Entity AI code should be run - */ - public boolean isAIEnabled() - { - return false; - } - - /** - * Sets the active target the Task system uses for tracking - */ - public void setAttackTarget(EntityLivingBase par1EntityLivingBase) - { - super.setAttackTarget(par1EntityLivingBase); - - if (par1EntityLivingBase == null) - { - this.setAngry(false); - } else if (!this.isTamed()) - { - this.setAngry(true); - } - } - - /** - * main AI tick function, replaces updateEntityActionState - */ - protected void updateAITick() - { - this.dataWatcher.updateObject(18, Float.valueOf(this.getHealth())); - } - - protected void entityInit() - { - super.entityInit(); - this.dataWatcher.addObject(18, new Float(this.getHealth())); - this.dataWatcher.addObject(19, new Byte((byte) 0)); - this.dataWatcher.addObject(20, new Byte((byte) BlockColored.getBlockFromDye(1))); - this.dataWatcher.addObject(25, Byte.valueOf((byte) 0)); - } - - /** - * Plays step sound at given x, y, z for the entity - */ - protected void playStepSound(int par1, int par2, int par3, int par4) - { - this.playSound("mob.zombie.step", 0.15F, 1.0F); - } - - /** - * Returns the sound this mob makes while it's alive. - */ - protected String getLivingSound() - { - //TODO change sounds - return "none"; - } - - /** - * Returns the sound this mob makes when it is hurt. - */ - protected String getHurtSound() - { - return "none"; - } - - /** - * Returns the sound this mob makes on death. - */ - protected String getDeathSound() - { - return "none"; - } - - /** - * Returns the volume for the sounds this mob makes. - */ - protected float getSoundVolume() - { - return 0.4F; - } - - /** - * Returns the item ID for the item the mob drops on death. - */ - protected int getDropItemId() - { - return -1; - } - - /** - * Called frequently so the entity can update its state every tick as required. For example, zombies and skeletons - * use this to react to sunlight and start to burn. - */ - public void onLivingUpdate() - { - super.onLivingUpdate(); - } - - /** - * Called to update the entity's position/logic. - */ - public void onUpdate() - { - super.onUpdate(); - } - - public float getEyeHeight() - { - return this.height * 0.8F; - } - - /** - * The speed it takes to move the entityliving's rotationPitch through the faceEntity method. This is only currently - * use in wolves. - */ - public int getVerticalFaceSpeed() - { - return this.isSitting() ? 20 : super.getVerticalFaceSpeed(); - } - - /** - * Called when the entity is attacked. - */ - public boolean attackEntityFrom(DamageSource par1DamageSource, float par2) - { - if (this.isEntityInvulnerable()) - { - return false; - } else - { - Entity entity = par1DamageSource.getEntity(); - this.aiSit.setSitting(false); - - if (entity != null && !(entity instanceof EntityPlayer) && !(entity instanceof EntityArrow)) - { - par2 = (par2 + 1.0F) / 2.0F; - } - - return super.attackEntityFrom(par1DamageSource, par2); - } - } - - public boolean attackEntityAsMob(Entity par1Entity) - { - int i = this.isTamed() ? 6 : 7; - return par1Entity.attackEntityFrom(DamageSource.causeMobDamage(this), (float) i); - } - - public void setTamed(boolean par1) - { - super.setTamed(par1); - - if (par1) - { - this.getEntityAttribute(SharedMonsterAttributes.maxHealth).setAttribute(this.maxTamedHealth); - } else - { - this.getEntityAttribute(SharedMonsterAttributes.maxHealth).setAttribute(this.maxUntamedHealth); - } - } - - /** - * Called when a player interacts with a mob. e.g. gets milk from a cow, gets into the saddle on a pig. - */ - - /** - * Checks if the parameter is an item which this animal can be fed to breed it (wheat, carrots or seeds depending on - * the animal type) - */ - public boolean isBreedingItem(ItemStack par1ItemStack) - { - return false; - //return par1ItemStack == null ? false : (!(Item.itemsList[par1ItemStack.itemID] instanceof ItemFood) ? false : ((ItemFood)Item.itemsList[par1ItemStack.itemID]).isWolfsFavoriteMeat()); - } - - /** - * Determines whether this wolf is angry or not. - */ - public boolean isAngry() - { - return (this.dataWatcher.getWatchableObjectByte(16) & 2) != 0; - } - - /** - * Sets whether this wolf is angry or not. - */ - public void setAngry(boolean par1) - { - byte b0 = this.dataWatcher.getWatchableObjectByte(16); - - if (par1) - { - this.dataWatcher.updateObject(16, Byte.valueOf((byte) (b0 | 2))); - } else - { - this.dataWatcher.updateObject(16, Byte.valueOf((byte) (b0 & -3))); - } - } - - /** - * Return this wolf's collar color. - */ - public int getCollarColor() - { - return this.dataWatcher.getWatchableObjectByte(20) & 15; - } - - /** - * Set this wolf's collar color. - */ - public void setCollarColor(int par1) - { - this.dataWatcher.updateObject(20, Byte.valueOf((byte) (par1 & 15))); - } - - /** - * This function is used when two same-species animals in 'love mode' breed to generate the new baby animal. - */ - public EntityWolf spawnBabyAnimal(EntityAgeable par1EntityAgeable) - { - return null; - } - - public void func_70918_i(boolean par1) - { - if (par1) - { - this.dataWatcher.updateObject(19, Byte.valueOf((byte) 1)); - } else - { - this.dataWatcher.updateObject(19, Byte.valueOf((byte) 0)); - } - } - - /** - * Returns true if the mob is currently able to mate with the specified mob. - */ - public boolean canMateWith(EntityAnimal par1EntityAnimal) - { - return false; - } - - public boolean func_70922_bv() - { - return this.dataWatcher.getWatchableObjectByte(19) == 1; - } - - /** - * Determines if an entity can be despawned, used on idle far away entities - */ - protected boolean canDespawn() - { - //return !this.isTamed() && this.ticksExisted > 2400; - return false; - } - - @Override - public boolean func_142018_a(EntityLivingBase par1EntityLivingBase, EntityLivingBase par2EntityLivingBase) - { - if (!(par1EntityLivingBase instanceof EntityCreeper) && !(par1EntityLivingBase instanceof EntityGhast)) - { - if (par1EntityLivingBase instanceof EntityBoulderFist) - { - EntityBoulderFist entitywolf = (EntityBoulderFist) par1EntityLivingBase; - - if (entitywolf.isTamed() && entitywolf.func_130012_q() == par2EntityLivingBase) - { - return false; - } - } - - return par1EntityLivingBase instanceof EntityPlayer && par2EntityLivingBase instanceof EntityPlayer && !((EntityPlayer) par2EntityLivingBase).canAttackPlayer((EntityPlayer) par1EntityLivingBase) ? false : !(par1EntityLivingBase instanceof EntityHorse) || !((EntityHorse) par1EntityLivingBase).isTame(); - //return par1EntityLivingBase instanceof EntityPlayer && par2EntityLivingBase instanceof EntityPlayer && !((EntityPlayer)par2EntityLivingBase).func_96122_a((EntityPlayer)par1EntityLivingBase) ? false : !(par1EntityLivingBase instanceof EntityHorse) || !((EntityHorse)par1EntityLivingBase).func_110248_bS(); - } else - { - return false; - } - } - - public EntityAgeable createChild(EntityAgeable par1EntityAgeable) - { - return this.spawnBabyAnimal(par1EntityAgeable); - } - - /** - * sets this entity's combat AI. - */ - public void setCombatTask() - { - this.tasks.removeTask(this.aiAttackOnCollide); - //this.tasks.removeTask(this.aiArrowAttack); - ItemStack itemstack = this.getHeldItem(); - this.tasks.addTask(4, this.aiAttackOnCollide); - } - - public void inflictEffectOnEntity(Entity target) - { - if (target instanceof EntityLivingBase) - { - ((EntityLivingBase) target).addPotionEffect(new PotionEffect(AlchemicalWizardry.customPotionDrowning.id, 100, 0)); - } - } - - public static Entity getClosestVulnerableMonsterToEntity(Entity par1Entity, double par2) - { - double d4 = -1.0D; - double par1 = par1Entity.posX; - double par3 = par1Entity.posY; - double par5 = par1Entity.posZ; - - EntityLivingBase entityLiving = null; - World world = par1Entity.worldObj; - - double range = Math.sqrt(par2); - double verticalRange = Math.sqrt(par2); - List entities = world.getEntitiesWithinAABB(EntityLivingBase.class, AxisAlignedBB.getBoundingBox(par1 - 0.5f, par3 - 0.5f, par5 - 0.5f, par1 + 0.5f, par3 + 0.5f, par5 + 0.5f).expand(range, verticalRange, range)); - if (entities == null) - { - return null; - } - - for (int i = 0; i < entities.size(); ++i) - { - EntityLivingBase entityLiving1 = entities.get(i); - - if (!(entityLiving1 instanceof EntityPlayer && ((EntityPlayer) entityLiving1).capabilities.disableDamage) && entityLiving1.isEntityAlive() && !(entityLiving1 instanceof EntityElemental)) - { - double d5 = entityLiving1.getDistanceSq(par1, par3, par5); - double d6 = par2; - - if (entityLiving1.isSneaking()) - { - d6 = par2 * 0.800000011920929D; - } - - if (entityLiving1.isInvisible()) - { - float f = entityLiving1 instanceof EntityPlayer ? ((EntityPlayer) entityLiving1).getArmorVisibility() : 1.0f; - - if (f < 0.1F) - { - f = 0.1F; - } - - d6 *= (double) (0.7F * f); - } - - if ((par2 < 0.0D || d5 < d6 * d6) && (d4 == -1.0D || d5 < d4)) - { - if (par1Entity != entityLiving1) - { - d4 = d5; - entityLiving = entityLiving1; - } - } - } - } - - return entityLiving; - } - - @Override - public int getTotalArmorValue() //TODO - { - return 10; - } -} \ No newline at end of file diff --git a/BM_src/WayofTime/alchemicalWizardry/common/entity/mob/EntityFallenAngel.java b/BM_src/WayofTime/alchemicalWizardry/common/entity/mob/EntityFallenAngel.java deleted file mode 100644 index 9987e866..00000000 --- a/BM_src/WayofTime/alchemicalWizardry/common/entity/mob/EntityFallenAngel.java +++ /dev/null @@ -1,495 +0,0 @@ -package WayofTime.alchemicalWizardry.common.entity.mob; - -import WayofTime.alchemicalWizardry.AlchemicalWizardry; -import WayofTime.alchemicalWizardry.ModItems; -import WayofTime.alchemicalWizardry.common.EntityAITargetAggro; -import WayofTime.alchemicalWizardry.common.entity.projectile.HolyProjectile; -import cpw.mods.fml.common.network.Player; -import net.minecraft.block.BlockColored; -import net.minecraft.entity.*; -import net.minecraft.entity.ai.*; -import net.minecraft.entity.monster.EntityCreeper; -import net.minecraft.entity.monster.EntityGhast; -import net.minecraft.entity.passive.EntityAnimal; -import net.minecraft.entity.passive.EntityHorse; -import net.minecraft.entity.passive.EntityWolf; -import net.minecraft.entity.player.EntityPlayer; -import net.minecraft.entity.projectile.EntityArrow; -import net.minecraft.item.Item; -import net.minecraft.item.ItemFood; -import net.minecraft.item.ItemStack; -import net.minecraft.nbt.NBTTagCompound; -import net.minecraft.pathfinding.PathEntity; -import net.minecraft.util.DamageSource; -import net.minecraft.world.World; - -public class EntityFallenAngel extends EntityDemon implements IRangedAttackMob, Player -{ - private EntityAIArrowAttack aiArrowAttack = new EntityAIArrowAttack(this, 1.0D, 40, 40, 15.0F); - private EntityAIAttackOnCollide aiAttackOnCollide = new EntityAIAttackOnCollide(this, EntityPlayer.class, 1.2D, false); - - private static float maxTamedHealth = 50.0F; - private static float maxUntamedHealth = 50.0F; - - public EntityFallenAngel(World par1World) - { - super(par1World, AlchemicalWizardry.entityFallenAngelID); - this.setSize(0.7F, 1.8F); - this.getNavigator().setAvoidsWater(true); - this.tasks.addTask(1, new EntityAISwimming(this)); - this.tasks.addTask(2, this.aiSit); - //this.tasks.addTask(3, new EntityAILeapAtTarget(this, 0.4F)); - //this.tasks.addTask(4, new EntityAIAttackOnCollide(this, 1.0D, true)); - this.tasks.addTask(5, new EntityAIFollowOwner(this, 1.0D, 10.0F, 2.0F)); - //this.tasks.addTask(6, new EntityAIMate(this, 1.0D)); - this.tasks.addTask(7, new EntityAIWander(this, 1.0D)); - //this.tasks.addTask(8, new EntityAIBeg(this, 8.0F)); - this.tasks.addTask(9, new EntityAIWatchClosest(this, EntityPlayer.class, 8.0F)); - this.tasks.addTask(9, new EntityAILookIdle(this)); - this.targetTasks.addTask(1, new EntityAIOwnerHurtByTarget(this)); - this.targetTasks.addTask(2, new EntityAIOwnerHurtTarget(this)); - this.targetTasks.addTask(3, new EntityAIHurtByTarget(this, true)); - this.targetTasks.addTask(4, new EntityAITargetAggro(this, EntityPlayer.class, 0, false)); - this.setAggro(false); - //this.targetTasks.addTask(4, new EntityAITargetNonTamed(this, EntitySheep.class, 200, false)); - this.setTamed(false); - - if (par1World != null && !par1World.isRemote) - { - this.setCombatTask(); - } - - //this.isImmuneToFire = true; - } - - @Override - protected void applyEntityAttributes() - { - super.applyEntityAttributes(); - //This line affects the speed of the monster - this.getEntityAttribute(SharedMonsterAttributes.movementSpeed).setAttribute(0.30000001192092896D); - - //My guess is that this will alter the max health - if (this.isTamed()) - { - this.getEntityAttribute(SharedMonsterAttributes.maxHealth).setAttribute(this.maxTamedHealth); - } else - { - this.getEntityAttribute(SharedMonsterAttributes.maxHealth).setAttribute(this.maxUntamedHealth); - } - - //this.func_110148_a(SharedMonsterAttributes.field_111267_a).func_111128_a(10.0D); - } - - /** - * Returns true if the newer Entity AI code should be run - */ - public boolean isAIEnabled() - { - return true; - } - - /** - * Sets the active target the Task system uses for tracking - */ - public void setAttackTarget(EntityLivingBase par1EntityLivingBase) - { - super.setAttackTarget(par1EntityLivingBase); - - if (par1EntityLivingBase == null) - { - this.setAngry(false); - } else if (!this.isTamed()) - { - this.setAngry(true); - } - } - - /** - * main AI tick function, replaces updateEntityActionState - */ - protected void updateAITick() - { - this.dataWatcher.updateObject(18, Float.valueOf(this.getHealth())); - } - - protected void entityInit() - { - super.entityInit(); - this.dataWatcher.addObject(18, new Float(this.getHealth())); - this.dataWatcher.addObject(19, new Byte((byte) 0)); - this.dataWatcher.addObject(20, new Byte((byte) BlockColored.getBlockFromDye(1))); - } - - /** - * Plays step sound at given x, y, z for the entity - */ - protected void playStepSound(int par1, int par2, int par3, int par4) - { - this.playSound("mob.zombie.step", 0.15F, 1.0F); - } - - /** - * (abstract) Protected helper method to write subclass entity data to NBT. - */ - public void writeEntityToNBT(NBTTagCompound par1NBTTagCompound) - { - super.writeEntityToNBT(par1NBTTagCompound); - par1NBTTagCompound.setBoolean("Angry", this.isAngry()); - par1NBTTagCompound.setByte("CollarColor", (byte) this.getCollarColor()); - } - - /** - * (abstract) Protected helper method to read subclass entity data from NBT. - */ - public void readEntityFromNBT(NBTTagCompound par1NBTTagCompound) - { - super.readEntityFromNBT(par1NBTTagCompound); - this.setAngry(par1NBTTagCompound.getBoolean("Angry")); - - if (par1NBTTagCompound.hasKey("CollarColor")) - { - this.setCollarColor(par1NBTTagCompound.getByte("CollarColor")); - } - - this.setCombatTask(); - } - - /** - * Returns the sound this mob makes while it's alive. - */ - protected String getLivingSound() - { - //TODO change sounds - return "none"; - } - - /** - * Returns the sound this mob makes when it is hurt. - */ - protected String getHurtSound() - { - return "none"; - } - - /** - * Returns the sound this mob makes on death. - */ - protected String getDeathSound() - { - return "mob.wolf.death"; - } - - /** - * Returns the volume for the sounds this mob makes. - */ - protected float getSoundVolume() - { - return 0.4F; - } - - /** - * Returns the item ID for the item the mob drops on death. - */ - protected int getDropItemId() - { - return -1; - } - - /** - * Called frequently so the entity can update its state every tick as required. For example, zombies and skeletons - * use this to react to sunlight and start to burn. - */ - public void onLivingUpdate() - { - super.onLivingUpdate(); - } - - /** - * Called to update the entity's position/logic. - */ - public void onUpdate() - { - super.onUpdate(); - this.onGround = false; - } - - public float getEyeHeight() - { - return this.height * 0.8F; - } - - /** - * The speed it takes to move the entityliving's rotationPitch through the faceEntity method. This is only currently - * use in wolves. - */ - public int getVerticalFaceSpeed() - { - return this.isSitting() ? 20 : super.getVerticalFaceSpeed(); - } - - /** - * Called when the entity is attacked. - */ - public boolean attackEntityFrom(DamageSource par1DamageSource, float par2) - { - if (this.isEntityInvulnerable()) - { - return false; - } else - { - Entity entity = par1DamageSource.getEntity(); - this.aiSit.setSitting(false); - - if (entity != null && !(entity instanceof EntityPlayer) && !(entity instanceof EntityArrow)) - { - par2 = (par2 + 1.0F) / 2.0F; - } - - return super.attackEntityFrom(par1DamageSource, par2); - } - } - - public boolean attackEntityAsMob(Entity par1Entity) - { - int i = this.isTamed() ? 4 : 2; - return par1Entity.attackEntityFrom(DamageSource.causeMobDamage(this), (float) i); - } - - public void setTamed(boolean par1) - { - super.setTamed(par1); - - if (par1) - { - this.getEntityAttribute(SharedMonsterAttributes.maxHealth).setAttribute(this.maxTamedHealth); - } else - { - this.getEntityAttribute(SharedMonsterAttributes.maxHealth).setAttribute(this.maxUntamedHealth); - } - } - - /** - * Called when a player interacts with a mob. e.g. gets milk from a cow, gets into the saddle on a pig. - */ - public boolean interact(EntityPlayer par1EntityPlayer) - { - ItemStack itemstack = par1EntityPlayer.inventory.getCurrentItem(); - - if (this.isTamed()) - { - if (itemstack != null) - { - if (Item.itemsList[itemstack.itemID] instanceof ItemFood) - { - ItemFood itemfood = (ItemFood) Item.itemsList[itemstack.itemID]; - - if (itemfood.isWolfsFavoriteMeat() && this.dataWatcher.getWatchableObjectFloat(18) < this.maxTamedHealth) - { - if (!par1EntityPlayer.capabilities.isCreativeMode) - { - --itemstack.stackSize; - } - - this.heal((float) itemfood.getHealAmount()); - - if (itemstack.stackSize <= 0) - { - par1EntityPlayer.inventory.setInventorySlotContents(par1EntityPlayer.inventory.currentItem, (ItemStack) null); - } - - return true; - } - } - } - - if (par1EntityPlayer.getCommandSenderName().equalsIgnoreCase(this.getOwnerName()) && !this.isBreedingItem(itemstack)) - { - if (!this.worldObj.isRemote) - { - this.aiSit.setSitting(!this.isSitting()); - this.isJumping = false; - this.setPathToEntity((PathEntity) null); - this.setTarget((Entity) null); - this.setAttackTarget((EntityLivingBase) null); - } - - this.sendSittingMessageToPlayer(par1EntityPlayer, !this.isSitting()); - } - } else if (itemstack != null && itemstack.itemID == ModItems.weakBloodOrb.itemID && !this.isAngry() && !this.isAggro()) - { - if (!par1EntityPlayer.capabilities.isCreativeMode) - { - --itemstack.stackSize; - } - - if (itemstack.stackSize <= 0) - { - par1EntityPlayer.inventory.setInventorySlotContents(par1EntityPlayer.inventory.currentItem, (ItemStack) null); - } - - if (!this.worldObj.isRemote) - { - if (this.rand.nextInt(1) == 0) - { - this.setTamed(true); - this.setPathToEntity((PathEntity) null); - this.setAttackTarget((EntityLivingBase) null); - this.aiSit.setSitting(true); - this.setHealth(this.maxTamedHealth); - this.setOwner(par1EntityPlayer.getCommandSenderName()); - this.playTameEffect(true); - this.worldObj.setEntityState(this, (byte) 7); - } else - { - this.playTameEffect(false); - this.worldObj.setEntityState(this, (byte) 6); - } - } - - return true; - } - - return super.interact(par1EntityPlayer); - } - - /** - * Checks if the parameter is an item which this animal can be fed to breed it (wheat, carrots or seeds depending on - * the animal type) - */ - public boolean isBreedingItem(ItemStack par1ItemStack) - { - return false; - //return par1ItemStack == null ? false : (!(Item.itemsList[par1ItemStack.itemID] instanceof ItemFood) ? false : ((ItemFood)Item.itemsList[par1ItemStack.itemID]).isWolfsFavoriteMeat()); - } - - /** - * Determines whether this wolf is angry or not. - */ - public boolean isAngry() - { - return (this.dataWatcher.getWatchableObjectByte(16) & 2) != 0; - } - - /** - * Sets whether this wolf is angry or not. - */ - public void setAngry(boolean par1) - { - byte b0 = this.dataWatcher.getWatchableObjectByte(16); - - if (par1) - { - this.dataWatcher.updateObject(16, Byte.valueOf((byte) (b0 | 2))); - } else - { - this.dataWatcher.updateObject(16, Byte.valueOf((byte) (b0 & -3))); - } - } - - /** - * Return this wolf's collar color. - */ - public int getCollarColor() - { - return this.dataWatcher.getWatchableObjectByte(20) & 15; - } - - /** - * Set this wolf's collar color. - */ - public void setCollarColor(int par1) - { - this.dataWatcher.updateObject(20, Byte.valueOf((byte) (par1 & 15))); - } - - /** - * This function is used when two same-species animals in 'love mode' breed to generate the new baby animal. - */ - public EntityWolf spawnBabyAnimal(EntityAgeable par1EntityAgeable) - { - return null; - } - - public void func_70918_i(boolean par1) - { - if (par1) - { - this.dataWatcher.updateObject(19, Byte.valueOf((byte) 1)); - } else - { - this.dataWatcher.updateObject(19, Byte.valueOf((byte) 0)); - } - } - - /** - * Returns true if the mob is currently able to mate with the specified mob. - */ - public boolean canMateWith(EntityAnimal par1EntityAnimal) - { - return false; - } - - public boolean func_70922_bv() - { - return this.dataWatcher.getWatchableObjectByte(19) == 1; - } - - /** - * Determines if an entity can be despawned, used on idle far away entities - */ - protected boolean canDespawn() - { - //return !this.isTamed() && this.ticksExisted > 2400; - return false; - } - - public boolean func_142018_a(EntityLivingBase par1EntityLivingBase, EntityLivingBase par2EntityLivingBase) - { - if (!(par1EntityLivingBase instanceof EntityCreeper) && !(par1EntityLivingBase instanceof EntityGhast)) - { - if (par1EntityLivingBase instanceof EntityFallenAngel) - { - EntityFallenAngel entitywolf = (EntityFallenAngel) par1EntityLivingBase; - - if (entitywolf.isTamed() && entitywolf.func_130012_q() == par2EntityLivingBase) - { - return false; - } - } - - return par1EntityLivingBase instanceof EntityPlayer && par2EntityLivingBase instanceof EntityPlayer && !((EntityPlayer) par2EntityLivingBase).canAttackPlayer((EntityPlayer) par1EntityLivingBase) ? false : !(par1EntityLivingBase instanceof EntityHorse) || !((EntityHorse) par1EntityLivingBase).isTame(); - } else - { - return false; - } - } - - public EntityAgeable createChild(EntityAgeable par1EntityAgeable) - { - return this.spawnBabyAnimal(par1EntityAgeable); - } - - /** - * Attack the specified entity using a ranged attack. - */ - public void attackEntityWithRangedAttack(EntityLivingBase par1EntityLivingBase, float par2) - { - double xCoord; - double yCoord; - double zCoord; - HolyProjectile hol = new HolyProjectile(worldObj, this, par1EntityLivingBase, 1.8f, 0f, 5, 600); - this.worldObj.spawnEntityInWorld(hol); - } - - /** - * sets this entity's combat AI. - */ - public void setCombatTask() - { - this.tasks.removeTask(this.aiAttackOnCollide); - this.tasks.removeTask(this.aiArrowAttack); - ItemStack itemstack = this.getHeldItem(); - this.tasks.addTask(4, this.aiArrowAttack); - } -} diff --git a/BM_src/WayofTime/alchemicalWizardry/common/entity/mob/EntityFireElemental.java b/BM_src/WayofTime/alchemicalWizardry/common/entity/mob/EntityFireElemental.java deleted file mode 100644 index a599be7c..00000000 --- a/BM_src/WayofTime/alchemicalWizardry/common/entity/mob/EntityFireElemental.java +++ /dev/null @@ -1,26 +0,0 @@ -package WayofTime.alchemicalWizardry.common.entity.mob; - -import WayofTime.alchemicalWizardry.AlchemicalWizardry; -import net.minecraft.entity.Entity; -import net.minecraft.entity.EntityLivingBase; -import net.minecraft.entity.monster.IMob; -import net.minecraft.potion.PotionEffect; -import net.minecraft.world.World; - -public class EntityFireElemental extends EntityElemental implements IMob -{ - public EntityFireElemental(World world) - { - super(world, AlchemicalWizardry.entityFireElementalID); - this.isImmuneToFire = true; - } - - public void inflictEffectOnEntity(Entity target) - { - if (target instanceof EntityLivingBase) - { - ((EntityLivingBase) target).setFire(10); - ((EntityLivingBase) target).addPotionEffect(new PotionEffect(AlchemicalWizardry.customPotionInhibit.id, 150, 0)); - } - } -} \ No newline at end of file diff --git a/BM_src/WayofTime/alchemicalWizardry/common/entity/mob/EntityHolyElemental.java b/BM_src/WayofTime/alchemicalWizardry/common/entity/mob/EntityHolyElemental.java deleted file mode 100644 index c4c626a0..00000000 --- a/BM_src/WayofTime/alchemicalWizardry/common/entity/mob/EntityHolyElemental.java +++ /dev/null @@ -1,28 +0,0 @@ -package WayofTime.alchemicalWizardry.common.entity.mob; - -import WayofTime.alchemicalWizardry.AlchemicalWizardry; -import net.minecraft.entity.Entity; -import net.minecraft.entity.EntityLivingBase; -import net.minecraft.entity.monster.IMob; -import net.minecraft.potion.Potion; -import net.minecraft.potion.PotionEffect; -import net.minecraft.util.DamageSource; -import net.minecraft.world.World; - -public class EntityHolyElemental extends EntityElemental implements IMob -{ - public EntityHolyElemental(World world) - { - super(world, AlchemicalWizardry.entityHolyElementalID); - } - - public void inflictEffectOnEntity(Entity target) - { - if (target instanceof EntityLivingBase) - { - ((EntityLivingBase) target).attackEntityFrom(DamageSource.causeMobDamage(this), 15); - ((EntityLivingBase) target).addPotionEffect(new PotionEffect(AlchemicalWizardry.customPotionInhibit.id, 150, 0)); - ((EntityLivingBase) target).addPotionEffect(new PotionEffect(Potion.poison.id, 100, 1)); - } - } -} \ No newline at end of file diff --git a/BM_src/WayofTime/alchemicalWizardry/common/entity/mob/EntityIceDemon.java b/BM_src/WayofTime/alchemicalWizardry/common/entity/mob/EntityIceDemon.java deleted file mode 100644 index 7894486c..00000000 --- a/BM_src/WayofTime/alchemicalWizardry/common/entity/mob/EntityIceDemon.java +++ /dev/null @@ -1,513 +0,0 @@ -package WayofTime.alchemicalWizardry.common.entity.mob; - -import WayofTime.alchemicalWizardry.AlchemicalWizardry; -import WayofTime.alchemicalWizardry.ModItems; -import WayofTime.alchemicalWizardry.common.EntityAITargetAggro; -import WayofTime.alchemicalWizardry.common.entity.projectile.IceProjectile; -import net.minecraft.block.Block; -import net.minecraft.block.BlockColored; -import net.minecraft.entity.*; -import net.minecraft.entity.ai.*; -import net.minecraft.entity.monster.EntityCreeper; -import net.minecraft.entity.monster.EntityGhast; -import net.minecraft.entity.passive.EntityAnimal; -import net.minecraft.entity.passive.EntityHorse; -import net.minecraft.entity.passive.EntityWolf; -import net.minecraft.entity.player.EntityPlayer; -import net.minecraft.entity.projectile.EntityArrow; -import net.minecraft.item.Item; -import net.minecraft.item.ItemFood; -import net.minecraft.item.ItemStack; -import net.minecraft.nbt.NBTTagCompound; -import net.minecraft.pathfinding.PathEntity; -import net.minecraft.util.DamageSource; -import net.minecraft.world.World; - -public class EntityIceDemon extends EntityDemon implements IRangedAttackMob -{ - private EntityAIArrowAttack aiArrowAttack = new EntityAIArrowAttack(this, 1.0D, 30, 50, 15.0F); - private EntityAIAttackOnCollide aiAttackOnCollide = new EntityAIAttackOnCollide(this, EntityPlayer.class, 1.2D, false); - - private static float maxTamedHealth = 50.0F; - private static float maxUntamedHealth = 30.0F; - - public EntityIceDemon(World par1World) - { - super(par1World, AlchemicalWizardry.entityIceDemonID); - this.setSize(0.5F, 2.0F); - //this.getNavigator().setAvoidsWater(true); - this.tasks.addTask(1, new EntityAISwimming(this)); - this.tasks.addTask(2, this.aiSit); - //this.tasks.addTask(3, new EntityAILeapAtTarget(this, 0.4F)); - //this.tasks.addTask(4, new EntityAIAttackOnCollide(this, 1.0D, true)); - this.tasks.addTask(5, new EntityAIFollowOwner(this, 1.0D, 10.0F, 2.0F)); - //this.tasks.addTask(6, new EntityAIMate(this, 1.0D)); - this.tasks.addTask(7, new EntityAIWander(this, 1.0D)); - //this.tasks.addTask(8, new EntityAIBeg(this, 8.0F)); - this.tasks.addTask(9, new EntityAIWatchClosest(this, EntityPlayer.class, 8.0F)); - this.tasks.addTask(9, new EntityAILookIdle(this)); - this.targetTasks.addTask(1, new EntityAIOwnerHurtByTarget(this)); - this.targetTasks.addTask(2, new EntityAIOwnerHurtTarget(this)); - this.targetTasks.addTask(3, new EntityAIHurtByTarget(this, true)); - this.targetTasks.addTask(4, new EntityAITargetAggro(this, EntityPlayer.class, 0, false)); - this.setAggro(false); - //this.targetTasks.addTask(4, new EntityAITargetNonTamed(this, EntitySheep.class, 200, false)); - this.setTamed(false); - - if (par1World != null && !par1World.isRemote) - { - this.setCombatTask(); - } - - //this.isImmuneToFire = true; - } - - @Override - protected void applyEntityAttributes() - { - super.applyEntityAttributes(); - //This line affects the speed of the monster - this.getEntityAttribute(SharedMonsterAttributes.movementSpeed).setAttribute(0.40000001192092896D); - - //My guess is that this will alter the max health - if (this.isTamed()) - { - this.getEntityAttribute(SharedMonsterAttributes.maxHealth).setAttribute(this.maxTamedHealth); - } else - { - this.getEntityAttribute(SharedMonsterAttributes.maxHealth).setAttribute(this.maxUntamedHealth); - } - - //this.func_110148_a(SharedMonsterAttributes.field_111267_a).func_111128_a(10.0D); - } - - /** - * Returns true if the newer Entity AI code should be run - */ - public boolean isAIEnabled() - { - return true; - } - - /** - * Sets the active target the Task system uses for tracking - */ - public void setAttackTarget(EntityLivingBase par1EntityLivingBase) - { - super.setAttackTarget(par1EntityLivingBase); - - if (par1EntityLivingBase == null) - { - this.setAngry(false); - } else if (!this.isTamed()) - { - this.setAngry(true); - } - } - - /** - * main AI tick function, replaces updateEntityActionState - */ - protected void updateAITick() - { - this.dataWatcher.updateObject(18, Float.valueOf(this.getHealth())); - } - - protected void entityInit() - { - super.entityInit(); - this.dataWatcher.addObject(18, new Float(this.getHealth())); - this.dataWatcher.addObject(19, new Byte((byte) 0)); - this.dataWatcher.addObject(20, new Byte((byte) BlockColored.getBlockFromDye(1))); - } - - /** - * Plays step sound at given x, y, z for the entity - */ - protected void playStepSound(int par1, int par2, int par3, int par4) - { - this.playSound("mob.zombie.step", 0.15F, 1.0F); - } - - /** - * (abstract) Protected helper method to write subclass entity data to NBT. - */ - public void writeEntityToNBT(NBTTagCompound par1NBTTagCompound) - { - super.writeEntityToNBT(par1NBTTagCompound); - par1NBTTagCompound.setBoolean("Angry", this.isAngry()); - par1NBTTagCompound.setByte("CollarColor", (byte) this.getCollarColor()); - } - - /** - * (abstract) Protected helper method to read subclass entity data from NBT. - */ - public void readEntityFromNBT(NBTTagCompound par1NBTTagCompound) - { - super.readEntityFromNBT(par1NBTTagCompound); - this.setAngry(par1NBTTagCompound.getBoolean("Angry")); - - if (par1NBTTagCompound.hasKey("CollarColor")) - { - this.setCollarColor(par1NBTTagCompound.getByte("CollarColor")); - } - - this.setCombatTask(); - } - - /** - * Returns the sound this mob makes while it's alive. - */ - protected String getLivingSound() - { - return "none"; - } - - /** - * Returns the sound this mob makes when it is hurt. - */ - protected String getHurtSound() - { - return "mob.irongolem.hit"; - } - - /** - * Returns the sound this mob makes on death. - */ - protected String getDeathSound() - { - return "mob.irongolem.death"; - } - - /** - * Returns the volume for the sounds this mob makes. - */ - protected float getSoundVolume() - { - return 0.4F; - } - - /** - * Returns the item ID for the item the mob drops on death. - */ - protected int getDropItemId() - { - return -1; - } - - /** - * Called frequently so the entity can update its state every tick as required. For example, zombies and skeletons - * use this to react to sunlight and start to burn. - */ - public void onLivingUpdate() - { - super.onLivingUpdate(); - int range = 2; - - for (int i = -range; i <= range; i++) - { - for (int j = -range; j <= range; j++) - { - for (int k = -range; k <= range; k++) - { - if (worldObj.rand.nextFloat() < 0.25f) - { - int blockID = worldObj.getBlockId((int) posX + i, (int) posY + j, (int) posZ + k); - - if (blockID == Block.waterStill.blockID || blockID == Block.waterMoving.blockID) - { - worldObj.setBlock((int) posX + i, (int) posY + j, (int) posZ + k, Block.ice.blockID); - } - } - } - } - } - } - - /** - * Called to update the entity's position/logic. - */ - public void onUpdate() - { - super.onUpdate(); - } - - public float getEyeHeight() - { - return this.height * 0.8F; - } - - /** - * The speed it takes to move the entityliving's rotationPitch through the faceEntity method. This is only currently - * use in wolves. - */ - public int getVerticalFaceSpeed() - { - return this.isSitting() ? 20 : super.getVerticalFaceSpeed(); - } - - /** - * Called when the entity is attacked. - */ - public boolean attackEntityFrom(DamageSource par1DamageSource, float par2) - { - if (this.isEntityInvulnerable()) - { - return false; - } else - { - Entity entity = par1DamageSource.getEntity(); - this.aiSit.setSitting(false); - - if (entity != null && !(entity instanceof EntityPlayer) && !(entity instanceof EntityArrow)) - { - par2 = (par2 + 1.0F) / 2.0F; - } - - return super.attackEntityFrom(par1DamageSource, par2); - } - } - - public boolean attackEntityAsMob(Entity par1Entity) - { - int i = this.isTamed() ? 4 : 2; - return par1Entity.attackEntityFrom(DamageSource.causeMobDamage(this), (float) i); - } - - public void setTamed(boolean par1) - { - super.setTamed(par1); - - if (par1) - { - this.getEntityAttribute(SharedMonsterAttributes.maxHealth).setAttribute(this.maxTamedHealth); - } else - { - this.getEntityAttribute(SharedMonsterAttributes.maxHealth).setAttribute(this.maxUntamedHealth); - } - } - - /** - * Called when a player interacts with a mob. e.g. gets milk from a cow, gets into the saddle on a pig. - */ - public boolean interact(EntityPlayer par1EntityPlayer) - { - ItemStack itemstack = par1EntityPlayer.inventory.getCurrentItem(); - - if (this.isTamed()) - { - if (itemstack != null) - { - if (Item.itemsList[itemstack.itemID] instanceof ItemFood) - { - ItemFood itemfood = (ItemFood) Item.itemsList[itemstack.itemID]; - - if (itemfood.isWolfsFavoriteMeat() && this.dataWatcher.getWatchableObjectFloat(18) < this.maxTamedHealth) - { - if (!par1EntityPlayer.capabilities.isCreativeMode) - { - --itemstack.stackSize; - } - - this.heal((float) itemfood.getHealAmount()); - - if (itemstack.stackSize <= 0) - { - par1EntityPlayer.inventory.setInventorySlotContents(par1EntityPlayer.inventory.currentItem, (ItemStack) null); - } - - return true; - } - } - } - - if (par1EntityPlayer.getCommandSenderName().equalsIgnoreCase(this.getOwnerName()) && !this.isBreedingItem(itemstack)) - { - if (!this.worldObj.isRemote) - { - this.aiSit.setSitting(!this.isSitting()); - this.isJumping = false; - this.setPathToEntity((PathEntity) null); - this.setTarget((Entity) null); - this.setAttackTarget((EntityLivingBase) null); - } - - this.sendSittingMessageToPlayer(par1EntityPlayer, !this.isSitting()); - } - } else if (itemstack != null && itemstack.itemID == ModItems.weakBloodOrb.itemID && !this.isAngry() && !this.isAggro()) - { - if (!par1EntityPlayer.capabilities.isCreativeMode) - { - --itemstack.stackSize; - } - - if (itemstack.stackSize <= 0) - { - par1EntityPlayer.inventory.setInventorySlotContents(par1EntityPlayer.inventory.currentItem, (ItemStack) null); - } - - if (!this.worldObj.isRemote) - { - if (this.rand.nextInt(1) == 0) - { - this.setTamed(true); - this.setPathToEntity((PathEntity) null); - this.setAttackTarget((EntityLivingBase) null); - this.aiSit.setSitting(true); - this.setHealth(this.maxTamedHealth); - this.setOwner(par1EntityPlayer.getCommandSenderName()); - this.playTameEffect(true); - this.worldObj.setEntityState(this, (byte) 7); - } else - { - this.playTameEffect(false); - this.worldObj.setEntityState(this, (byte) 6); - } - } - - return true; - } - - return super.interact(par1EntityPlayer); - } - - /** - * Checks if the parameter is an item which this animal can be fed to breed it (wheat, carrots or seeds depending on - * the animal type) - */ - public boolean isBreedingItem(ItemStack par1ItemStack) - { - return false; - //return par1ItemStack == null ? false : (!(Item.itemsList[par1ItemStack.itemID] instanceof ItemFood) ? false : ((ItemFood)Item.itemsList[par1ItemStack.itemID]).isWolfsFavoriteMeat()); - } - - /** - * Determines whether this wolf is angry or not. - */ - public boolean isAngry() - { - return (this.dataWatcher.getWatchableObjectByte(16) & 2) != 0; - } - - /** - * Sets whether this wolf is angry or not. - */ - public void setAngry(boolean par1) - { - byte b0 = this.dataWatcher.getWatchableObjectByte(16); - - if (par1) - { - this.dataWatcher.updateObject(16, Byte.valueOf((byte) (b0 | 2))); - } else - { - this.dataWatcher.updateObject(16, Byte.valueOf((byte) (b0 & -3))); - } - } - - /** - * Return this wolf's collar color. - */ - public int getCollarColor() - { - return this.dataWatcher.getWatchableObjectByte(20) & 15; - } - - /** - * Set this wolf's collar color. - */ - public void setCollarColor(int par1) - { - this.dataWatcher.updateObject(20, Byte.valueOf((byte) (par1 & 15))); - } - - /** - * This function is used when two same-species animals in 'love mode' breed to generate the new baby animal. - */ - public EntityWolf spawnBabyAnimal(EntityAgeable par1EntityAgeable) - { - return null; - } - - public void func_70918_i(boolean par1) - { - if (par1) - { - this.dataWatcher.updateObject(19, Byte.valueOf((byte) 1)); - } else - { - this.dataWatcher.updateObject(19, Byte.valueOf((byte) 0)); - } - } - - /** - * Returns true if the mob is currently able to mate with the specified mob. - */ - public boolean canMateWith(EntityAnimal par1EntityAnimal) - { - return false; - } - - public boolean func_70922_bv() - { - return this.dataWatcher.getWatchableObjectByte(19) == 1; - } - - /** - * Determines if an entity can be despawned, used on idle far away entities - */ - protected boolean canDespawn() - { - //return !this.isTamed() && this.ticksExisted > 2400; - return false; - } - - public boolean func_142018_a(EntityLivingBase par1EntityLivingBase, EntityLivingBase par2EntityLivingBase) - { - if (!(par1EntityLivingBase instanceof EntityCreeper) && !(par1EntityLivingBase instanceof EntityGhast)) - { - if (par1EntityLivingBase instanceof EntityIceDemon) - { - EntityIceDemon entitywolf = (EntityIceDemon) par1EntityLivingBase; - - if (entitywolf.isTamed() && entitywolf.func_130012_q() == par2EntityLivingBase) - { - return false; - } - } - - return par1EntityLivingBase instanceof EntityPlayer && par2EntityLivingBase instanceof EntityPlayer && !((EntityPlayer) par2EntityLivingBase).canAttackPlayer((EntityPlayer) par1EntityLivingBase) ? false : !(par1EntityLivingBase instanceof EntityHorse) || !((EntityHorse) par1EntityLivingBase).isTame(); - } else - { - return false; - } - } - - public EntityAgeable createChild(EntityAgeable par1EntityAgeable) - { - return this.spawnBabyAnimal(par1EntityAgeable); - } - - /** - * Attack the specified entity using a ranged attack. - */ - public void attackEntityWithRangedAttack(EntityLivingBase par1EntityLivingBase, float par2) - { - double xCoord; - double yCoord; - double zCoord; - IceProjectile hol = new IceProjectile(worldObj, this, par1EntityLivingBase, 1.8f, 0f, 3, 600); - this.worldObj.spawnEntityInWorld(hol); - } - - /** - * sets this entity's combat AI. - */ - public void setCombatTask() - { - this.tasks.removeTask(this.aiAttackOnCollide); - this.tasks.removeTask(this.aiArrowAttack); - ItemStack itemstack = this.getHeldItem(); - this.tasks.addTask(4, this.aiArrowAttack); - } -} \ No newline at end of file diff --git a/BM_src/WayofTime/alchemicalWizardry/common/entity/mob/EntityLowerGuardian.java b/BM_src/WayofTime/alchemicalWizardry/common/entity/mob/EntityLowerGuardian.java deleted file mode 100644 index 8a68fb9a..00000000 --- a/BM_src/WayofTime/alchemicalWizardry/common/entity/mob/EntityLowerGuardian.java +++ /dev/null @@ -1,489 +0,0 @@ -package WayofTime.alchemicalWizardry.common.entity.mob; - -import WayofTime.alchemicalWizardry.AlchemicalWizardry; -import WayofTime.alchemicalWizardry.ModItems; -import WayofTime.alchemicalWizardry.common.EntityAITargetAggro; -import net.minecraft.block.BlockColored; -import net.minecraft.entity.Entity; -import net.minecraft.entity.EntityAgeable; -import net.minecraft.entity.EntityLivingBase; -import net.minecraft.entity.SharedMonsterAttributes; -import net.minecraft.entity.ai.*; -import net.minecraft.entity.monster.EntityCreeper; -import net.minecraft.entity.monster.EntityGhast; -import net.minecraft.entity.passive.EntityAnimal; -import net.minecraft.entity.passive.EntityHorse; -import net.minecraft.entity.passive.EntityWolf; -import net.minecraft.entity.player.EntityPlayer; -import net.minecraft.entity.projectile.EntityArrow; -import net.minecraft.item.Item; -import net.minecraft.item.ItemFood; -import net.minecraft.item.ItemStack; -import net.minecraft.nbt.NBTTagCompound; -import net.minecraft.pathfinding.PathEntity; -import net.minecraft.util.DamageSource; -import net.minecraft.world.World; - -public class EntityLowerGuardian extends EntityDemon -{ - private EntityAIAttackOnCollide aiAttackOnCollide = new EntityAIAttackOnCollide(this, EntityPlayer.class, 1.2D, false); - - private static float maxTamedHealth = 50.0F; - private static float maxUntamedHealth = 30.0F; - private int attackTimer; - private boolean isAggro; - - public EntityLowerGuardian(World par1World) - { - super(par1World, AlchemicalWizardry.entityLowerGuardianID); - this.setSize(0.7F, 1.8F); - this.getNavigator().setAvoidsWater(true); - this.tasks.addTask(1, new EntityAISwimming(this)); - //this.tasks.addTask(3, new EntityAILeapAtTarget(this, 0.4F)); - this.tasks.addTask(2, new EntityAIAttackOnCollide(this, 1.0D, true)); - this.tasks.addTask(3, this.aiSit); - this.tasks.addTask(5, new EntityAIFollowOwner(this, 1.0D, 10.0F, 2.0F)); - //this.tasks.addTask(6, new EntityAIMate(this, 1.0D)); - this.tasks.addTask(7, new EntityAIWander(this, 1.0D)); - //this.tasks.addTask(8, new EntityAIBeg(this, 8.0F)); - this.tasks.addTask(9, new EntityAIWatchClosest(this, EntityPlayer.class, 8.0F)); - this.tasks.addTask(9, new EntityAILookIdle(this)); - this.targetTasks.addTask(1, new EntityAIOwnerHurtByTarget(this)); - this.targetTasks.addTask(2, new EntityAIOwnerHurtTarget(this)); - this.targetTasks.addTask(3, new EntityAIHurtByTarget(this, true)); - this.targetTasks.addTask(4, new EntityAITargetAggro(this, EntityPlayer.class, 0, false)); - this.setAggro(false); - this.setTamed(false); - attackTimer = 0; - //isAggro = false; - //this.isImmuneToFire = true; - } - - @Override - protected void applyEntityAttributes() - { - super.applyEntityAttributes(); - //This line affects the speed of the monster - this.getEntityAttribute(SharedMonsterAttributes.movementSpeed).setAttribute(0.30000001192092896D); - - //My guess is that this will alter the max health - if (this.isTamed()) - { - this.getEntityAttribute(SharedMonsterAttributes.maxHealth).setAttribute(this.maxTamedHealth); - } else - { - this.getEntityAttribute(SharedMonsterAttributes.maxHealth).setAttribute(this.maxUntamedHealth); - } - - //this.func_110148_a(SharedMonsterAttributes.field_111267_a).func_111128_a(10.0D); - } - - /** - * Returns true if the newer Entity AI code should be run - */ - public boolean isAIEnabled() - { - return true; - } - - /** - * Sets the active target the Task system uses for tracking - */ - public void setAttackTarget(EntityLivingBase par1EntityLivingBase) - { - super.setAttackTarget(par1EntityLivingBase); - - if (par1EntityLivingBase == null) - { - this.setAngry(false); - } else if (!this.isTamed()) - { - this.setAngry(true); - } - } - - /** - * main AI tick function, replaces updateEntityActionState - */ - protected void updateAITick() - { - this.dataWatcher.updateObject(18, Float.valueOf(this.getHealth())); - } - - protected void entityInit() - { - super.entityInit(); - this.dataWatcher.addObject(18, new Float(this.getHealth())); - this.dataWatcher.addObject(19, new Byte((byte) 0)); - this.dataWatcher.addObject(20, new Byte((byte) BlockColored.getBlockFromDye(1))); - } - - /** - * Plays step sound at given x, y, z for the entity - */ - protected void playStepSound(int par1, int par2, int par3, int par4) - { - this.playSound("mob.zombie.step", 0.15F, 1.0F); - } - - /** - * (abstract) Protected helper method to write subclass entity data to NBT. - */ - public void writeEntityToNBT(NBTTagCompound par1NBTTagCompound) - { - super.writeEntityToNBT(par1NBTTagCompound); - par1NBTTagCompound.setBoolean("Angry", this.isAngry()); - par1NBTTagCompound.setByte("CollarColor", (byte) this.getCollarColor()); - par1NBTTagCompound.setByte("attackTimer", (byte) attackTimer); - par1NBTTagCompound.setBoolean("isAggro", this.isAggro()); - } - - /** - * (abstract) Protected helper method to read subclass entity data from NBT. - */ - public void readEntityFromNBT(NBTTagCompound par1NBTTagCompound) - { - super.readEntityFromNBT(par1NBTTagCompound); - this.setAngry(par1NBTTagCompound.getBoolean("Angry")); - - if (par1NBTTagCompound.hasKey("CollarColor")) - { - this.setCollarColor(par1NBTTagCompound.getByte("CollarColor")); - } - - attackTimer = par1NBTTagCompound.getByte("attackTimer"); - isAggro = par1NBTTagCompound.getBoolean("isAggro"); - } - - /** - * Returns the sound this mob makes while it's alive. - */ - protected String getLivingSound() - { - return "none"; - } - - /** - * Returns the sound this mob makes when it is hurt. - */ - protected String getHurtSound() - { - return "mob.irongolem.hit"; - } - - /** - * Returns the sound this mob makes on death. - */ - protected String getDeathSound() - { - return "mob.irongolem.death"; - } - - /** - * Returns the volume for the sounds this mob makes. - */ - protected float getSoundVolume() - { - return 1.0F; - } - - /** - * Returns the item ID for the item the mob drops on death. - */ - protected int getDropItemId() - { - return -1; - } - - /** - * Called frequently so the entity can update its state every tick as required. For example, zombies and skeletons - * use this to react to sunlight and start to burn. - */ - public void onLivingUpdate() - { - super.onLivingUpdate(); - - if (attackTimer > 0) - { - attackTimer--; - } - } - - public int getAttackTimer() - { - return attackTimer; - } - - /** - * Called to update the entity's position/logic. - */ - public void onUpdate() - { - super.onUpdate(); - } - - public float getEyeHeight() - { - return this.height * 0.8F; - } - - /** - * The speed it takes to move the entityliving's rotationPitch through the faceEntity method. This is only currently - * use in wolves. - */ - public int getVerticalFaceSpeed() - { - return this.isSitting() ? 20 : super.getVerticalFaceSpeed(); - } - - /** - * Called when the entity is attacked. - */ - public boolean attackEntityFrom(DamageSource par1DamageSource, float par2) - { - if (this.isEntityInvulnerable()) - { - return false; - } else - { - Entity entity = par1DamageSource.getEntity(); - this.aiSit.setSitting(false); - - if (entity != null && !(entity instanceof EntityPlayer) && !(entity instanceof EntityArrow)) - { - par2 = (par2 + 1.0F) / 2.0F; - } - - return super.attackEntityFrom(par1DamageSource, par2); - } - } - - public boolean attackEntityAsMob(Entity par1Entity) - { - this.attackTimer = 10; - this.worldObj.setEntityState(this, (byte) 4); - boolean flag = par1Entity.attackEntityFrom(DamageSource.causeMobDamage(this), (float) (7 + this.rand.nextInt(15))); - - if (flag) - { - par1Entity.motionY += 0.4000000059604645D; - } - - this.playSound("mob.irongolem.throw", 1.0F, 1.0F); - return flag; - } - - public void setTamed(boolean par1) - { - super.setTamed(par1); - - if (par1) - { - this.getEntityAttribute(SharedMonsterAttributes.maxHealth).setAttribute(this.maxTamedHealth); - } else - { - this.getEntityAttribute(SharedMonsterAttributes.maxHealth).setAttribute(this.maxUntamedHealth); - } - } - - /** - * Called when a player interacts with a mob. e.g. gets milk from a cow, gets into the saddle on a pig. - */ - public boolean interact(EntityPlayer par1EntityPlayer) - { - ItemStack itemstack = par1EntityPlayer.inventory.getCurrentItem(); - - if (this.isTamed()) - { - if (itemstack != null) - { - if (Item.itemsList[itemstack.itemID] instanceof ItemFood) - { - ItemFood itemfood = (ItemFood) Item.itemsList[itemstack.itemID]; - - if (itemfood.isWolfsFavoriteMeat() && this.dataWatcher.getWatchableObjectInt(18) < this.maxTamedHealth) - { - if (!par1EntityPlayer.capabilities.isCreativeMode) - { - --itemstack.stackSize; - } - - this.heal((float) itemfood.getHealAmount()); - - if (itemstack.stackSize <= 0) - { - par1EntityPlayer.inventory.setInventorySlotContents(par1EntityPlayer.inventory.currentItem, (ItemStack) null); - } - - return true; - } - } - } - - if (par1EntityPlayer.getCommandSenderName().equalsIgnoreCase(this.getOwnerName()) && !this.isBreedingItem(itemstack)) - { - if (!this.worldObj.isRemote) - { - this.aiSit.setSitting(!this.isSitting()); - this.isJumping = false; - this.setPathToEntity((PathEntity) null); - this.setTarget((Entity) null); - this.setAttackTarget((EntityLivingBase) null); - } - - this.sendSittingMessageToPlayer(par1EntityPlayer, !this.isSitting()); - } - } else if (itemstack != null && itemstack.itemID == ModItems.weakBloodOrb.itemID && !this.isAngry() && !this.isAggro()) - { - if (!par1EntityPlayer.capabilities.isCreativeMode) - { - --itemstack.stackSize; - } - - if (itemstack.stackSize <= 0) - { - par1EntityPlayer.inventory.setInventorySlotContents(par1EntityPlayer.inventory.currentItem, (ItemStack) null); - } - - if (!this.worldObj.isRemote) - { - if (this.rand.nextInt(1) == 0) - { - this.setTamed(true); - this.setPathToEntity((PathEntity) null); - this.setAttackTarget((EntityLivingBase) null); - this.aiSit.setSitting(true); - this.setHealth(this.maxTamedHealth); - this.setOwner(par1EntityPlayer.getCommandSenderName()); - this.playTameEffect(true); - this.worldObj.setEntityState(this, (byte) 7); - } else - { - this.playTameEffect(false); - this.worldObj.setEntityState(this, (byte) 6); - } - } - - return true; - } - - return super.interact(par1EntityPlayer); - } - - /** - * Checks if the parameter is an item which this animal can be fed to breed it (wheat, carrots or seeds depending on - * the animal type) - */ - public boolean isBreedingItem(ItemStack par1ItemStack) - { - return false; - //return par1ItemStack == null ? false : (!(Item.itemsList[par1ItemStack.itemID] instanceof ItemFood) ? false : ((ItemFood)Item.itemsList[par1ItemStack.itemID]).isWolfsFavoriteMeat()); - } - - /** - * Determines whether this wolf is angry or not. - */ - public boolean isAngry() - { - return (this.dataWatcher.getWatchableObjectByte(16) & 2) != 0; - } - - /** - * Sets whether this wolf is angry or not. - */ - public void setAngry(boolean par1) - { - byte b0 = this.dataWatcher.getWatchableObjectByte(16); - - if (par1) - { - this.dataWatcher.updateObject(16, Byte.valueOf((byte) (b0 | 2))); - } else - { - this.dataWatcher.updateObject(16, Byte.valueOf((byte) (b0 & -3))); - } - } - - /** - * Return this wolf's collar color. - */ - public int getCollarColor() - { - return this.dataWatcher.getWatchableObjectByte(20) & 15; - } - - /** - * Set this wolf's collar color. - */ - public void setCollarColor(int par1) - { - this.dataWatcher.updateObject(20, Byte.valueOf((byte) (par1 & 15))); - } - - /** - * This function is used when two same-species animals in 'love mode' breed to generate the new baby animal. - */ - public EntityWolf spawnBabyAnimal(EntityAgeable par1EntityAgeable) - { - return null; - } - - public void func_70918_i(boolean par1) - { - if (par1) - { - this.dataWatcher.updateObject(19, Byte.valueOf((byte) 1)); - } else - { - this.dataWatcher.updateObject(19, Byte.valueOf((byte) 0)); - } - } - - /** - * Returns true if the mob is currently able to mate with the specified mob. - */ - public boolean canMateWith(EntityAnimal par1EntityAnimal) - { - return false; - } - - public boolean func_70922_bv() - { - return this.dataWatcher.getWatchableObjectByte(19) == 1; - } - - /** - * Determines if an entity can be despawned, used on idle far away entities - */ - protected boolean canDespawn() - { - //return !this.isTamed() && this.ticksExisted > 2400; - return false; - } - - public boolean func_142018_a(EntityLivingBase par1EntityLivingBase, EntityLivingBase par2EntityLivingBase) - { - if (!(par1EntityLivingBase instanceof EntityCreeper) && !(par1EntityLivingBase instanceof EntityGhast)) - { - if (par1EntityLivingBase instanceof EntityLowerGuardian) - { - EntityLowerGuardian entitywolf = (EntityLowerGuardian) par1EntityLivingBase; - - if (entitywolf.isTamed() && entitywolf.func_130012_q() == par2EntityLivingBase) - { - return false; - } - } - - return par1EntityLivingBase instanceof EntityPlayer && par2EntityLivingBase instanceof EntityPlayer && !((EntityPlayer) par2EntityLivingBase).canAttackPlayer((EntityPlayer) par1EntityLivingBase) ? false : !(par1EntityLivingBase instanceof EntityHorse) || !((EntityHorse) par1EntityLivingBase).isTame(); - } else - { - return false; - } - } - - public EntityAgeable createChild(EntityAgeable par1EntityAgeable) - { - return this.spawnBabyAnimal(par1EntityAgeable); - } -} diff --git a/BM_src/WayofTime/alchemicalWizardry/common/entity/mob/EntityShade.java b/BM_src/WayofTime/alchemicalWizardry/common/entity/mob/EntityShade.java deleted file mode 100644 index 1154d467..00000000 --- a/BM_src/WayofTime/alchemicalWizardry/common/entity/mob/EntityShade.java +++ /dev/null @@ -1,496 +0,0 @@ -package WayofTime.alchemicalWizardry.common.entity.mob; - -import WayofTime.alchemicalWizardry.AlchemicalWizardry; -import WayofTime.alchemicalWizardry.ModItems; -import WayofTime.alchemicalWizardry.common.EntityAITargetAggro; -import WayofTime.alchemicalWizardry.common.entity.projectile.HolyProjectile; -import net.minecraft.block.BlockColored; -import net.minecraft.entity.Entity; -import net.minecraft.entity.EntityAgeable; -import net.minecraft.entity.EntityLivingBase; -import net.minecraft.entity.SharedMonsterAttributes; -import net.minecraft.entity.ai.*; -import net.minecraft.entity.monster.EntityCreeper; -import net.minecraft.entity.monster.EntityGhast; -import net.minecraft.entity.passive.EntityAnimal; -import net.minecraft.entity.passive.EntityHorse; -import net.minecraft.entity.passive.EntityWolf; -import net.minecraft.entity.player.EntityPlayer; -import net.minecraft.entity.projectile.EntityArrow; -import net.minecraft.item.Item; -import net.minecraft.item.ItemFood; -import net.minecraft.item.ItemStack; -import net.minecraft.nbt.NBTTagCompound; -import net.minecraft.pathfinding.PathEntity; -import net.minecraft.util.DamageSource; -import net.minecraft.world.World; - -public class EntityShade extends EntityDemon -{ - //private EntityAIArrowAttack aiArrowAttack = new EntityAIArrowAttack(this, 1.0D, 40, 40, 15.0F); - private EntityAIAttackOnCollide aiAttackOnCollide = new EntityAIAttackOnCollide(this, EntityPlayer.class, 1.2D, false); - - private static float maxTamedHealth = 50.0F; - private static float maxUntamedHealth = 100.0F; - - public EntityShade(World par1World) - { - super(par1World, AlchemicalWizardry.entityShadeID); - this.setSize(0.8F, 2.0F); - this.getNavigator().setAvoidsWater(true); - this.tasks.addTask(1, new EntityAISwimming(this)); - this.tasks.addTask(2, this.aiSit); - //this.tasks.addTask(3, new EntityAILeapAtTarget(this, 0.4F)); - this.tasks.addTask(4, new EntityAIAttackOnCollide(this, 1.0D, true)); - this.tasks.addTask(5, new EntityAIFollowOwner(this, 1.0D, 10.0F, 2.0F)); - //this.tasks.addTask(6, new EntityAIMate(this, 1.0D)); - this.tasks.addTask(7, new EntityAIWander(this, 1.0D)); - //this.tasks.addTask(8, new EntityAIBeg(this, 8.0F)); - this.tasks.addTask(9, new EntityAIWatchClosest(this, EntityPlayer.class, 8.0F)); - this.tasks.addTask(9, new EntityAILookIdle(this)); - this.targetTasks.addTask(1, new EntityAIOwnerHurtByTarget(this)); - this.targetTasks.addTask(2, new EntityAIOwnerHurtTarget(this)); - this.targetTasks.addTask(3, new EntityAIHurtByTarget(this, true)); - this.targetTasks.addTask(4, new EntityAITargetAggro(this, EntityPlayer.class, 0, false)); - this.setAggro(false); - //this.targetTasks.addTask(4, new EntityAITargetNonTamed(this, EntitySheep.class, 200, false)); - this.setTamed(false); - - if (par1World != null && !par1World.isRemote) - { - this.setCombatTask(); - } - - //this.isImmuneToFire = true; - } - - @Override - protected void applyEntityAttributes() - { - super.applyEntityAttributes(); - //This line affects the speed of the monster - this.getEntityAttribute(SharedMonsterAttributes.movementSpeed).setAttribute(0.30000001192092896D); - - //My guess is that this will alter the max health - if (this.isTamed()) - { - this.getEntityAttribute(SharedMonsterAttributes.maxHealth).setAttribute(this.maxTamedHealth); - } else - { - this.getEntityAttribute(SharedMonsterAttributes.maxHealth).setAttribute(this.maxUntamedHealth); - } - - //this.func_110148_a(SharedMonsterAttributes.field_111267_a).func_111128_a(10.0D); - } - - /** - * Returns true if the newer Entity AI code should be run - */ - public boolean isAIEnabled() - { - return true; - } - - /** - * Sets the active target the Task system uses for tracking - */ - public void setAttackTarget(EntityLivingBase par1EntityLivingBase) - { - super.setAttackTarget(par1EntityLivingBase); - - if (par1EntityLivingBase == null) - { - this.setAngry(false); - } else if (!this.isTamed()) - { - this.setAngry(true); - } - } - - /** - * main AI tick function, replaces updateEntityActionState - */ - protected void updateAITick() - { - this.dataWatcher.updateObject(18, Float.valueOf(this.getHealth())); - } - - protected void entityInit() - { - super.entityInit(); - this.dataWatcher.addObject(18, new Float(this.getHealth())); - this.dataWatcher.addObject(19, new Byte((byte) 0)); - this.dataWatcher.addObject(20, new Byte((byte) BlockColored.getBlockFromDye(1))); - } - - /** - * Plays step sound at given x, y, z for the entity - */ - protected void playStepSound(int par1, int par2, int par3, int par4) - { - this.playSound("mob.zombie.step", 0.15F, 1.0F); - } - - /** - * (abstract) Protected helper method to write subclass entity data to NBT. - */ - public void writeEntityToNBT(NBTTagCompound par1NBTTagCompound) - { - super.writeEntityToNBT(par1NBTTagCompound); - par1NBTTagCompound.setBoolean("Angry", this.isAngry()); - par1NBTTagCompound.setByte("CollarColor", (byte) this.getCollarColor()); - } - - /** - * (abstract) Protected helper method to read subclass entity data from NBT. - */ - public void readEntityFromNBT(NBTTagCompound par1NBTTagCompound) - { - super.readEntityFromNBT(par1NBTTagCompound); - this.setAngry(par1NBTTagCompound.getBoolean("Angry")); - - if (par1NBTTagCompound.hasKey("CollarColor")) - { - this.setCollarColor(par1NBTTagCompound.getByte("CollarColor")); - } - - this.setCombatTask(); - } - - /** - * Returns the sound this mob makes while it's alive. - */ - protected String getLivingSound() - { - //TODO change sounds - return "none"; - } - - /** - * Returns the sound this mob makes when it is hurt. - */ - protected String getHurtSound() - { - return "none"; - } - - /** - * Returns the sound this mob makes on death. - */ - protected String getDeathSound() - { - return "none"; - } - - /** - * Returns the volume for the sounds this mob makes. - */ - protected float getSoundVolume() - { - return 0.4F; - } - - /** - * Returns the item ID for the item the mob drops on death. - */ - protected int getDropItemId() - { - return -1; - } - - /** - * Called frequently so the entity can update its state every tick as required. For example, zombies and skeletons - * use this to react to sunlight and start to burn. - */ - public void onLivingUpdate() - { - super.onLivingUpdate(); - } - - /** - * Called to update the entity's position/logic. - */ - public void onUpdate() - { - super.onUpdate(); - } - - public float getEyeHeight() - { - return this.height * 0.8F; - } - - /** - * The speed it takes to move the entityliving's rotationPitch through the faceEntity method. This is only currently - * use in wolves. - */ - public int getVerticalFaceSpeed() - { - return this.isSitting() ? 20 : super.getVerticalFaceSpeed(); - } - - /** - * Called when the entity is attacked. - */ - public boolean attackEntityFrom(DamageSource par1DamageSource, float par2) - { - if (this.isEntityInvulnerable()) - { - return false; - } else - { - Entity entity = par1DamageSource.getEntity(); - this.aiSit.setSitting(false); - - if (entity != null && !(entity instanceof EntityPlayer) && !(entity instanceof EntityArrow)) - { - par2 = (par2 + 1.0F) / 2.0F; - } - - return super.attackEntityFrom(par1DamageSource, par2); - } - } - - public boolean attackEntityAsMob(Entity par1Entity) - { - int i = this.isTamed() ? 6 : 7; - return par1Entity.attackEntityFrom(DamageSource.causeMobDamage(this), (float) i); - } - - public void setTamed(boolean par1) - { - super.setTamed(par1); - - if (par1) - { - this.getEntityAttribute(SharedMonsterAttributes.maxHealth).setAttribute(this.maxTamedHealth); - } else - { - this.getEntityAttribute(SharedMonsterAttributes.maxHealth).setAttribute(this.maxUntamedHealth); - } - } - - /** - * Called when a player interacts with a mob. e.g. gets milk from a cow, gets into the saddle on a pig. - */ - public boolean interact(EntityPlayer par1EntityPlayer) - { - ItemStack itemstack = par1EntityPlayer.inventory.getCurrentItem(); - - if (this.isTamed()) - { - if (itemstack != null) - { - if (Item.itemsList[itemstack.itemID] instanceof ItemFood) - { - ItemFood itemfood = (ItemFood) Item.itemsList[itemstack.itemID]; - - if (itemfood.isWolfsFavoriteMeat() && this.dataWatcher.getWatchableObjectFloat(18) < this.maxTamedHealth) - { - if (!par1EntityPlayer.capabilities.isCreativeMode) - { - --itemstack.stackSize; - } - - this.heal((float) itemfood.getHealAmount()); - - if (itemstack.stackSize <= 0) - { - par1EntityPlayer.inventory.setInventorySlotContents(par1EntityPlayer.inventory.currentItem, (ItemStack) null); - } - - return true; - } - } - } - - if (par1EntityPlayer.getCommandSenderName().equalsIgnoreCase(this.getOwnerName()) && !this.isBreedingItem(itemstack)) - { - if (!this.worldObj.isRemote) - { - this.aiSit.setSitting(!this.isSitting()); - this.isJumping = false; - this.setPathToEntity((PathEntity) null); - this.setTarget((Entity) null); - this.setAttackTarget((EntityLivingBase) null); - } - - this.sendSittingMessageToPlayer(par1EntityPlayer, !this.isSitting()); - } - } else if (itemstack != null && itemstack.itemID == ModItems.weakBloodOrb.itemID && !this.isAngry() && !this.isAggro()) - { - if (!par1EntityPlayer.capabilities.isCreativeMode) - { - --itemstack.stackSize; - } - - if (itemstack.stackSize <= 0) - { - par1EntityPlayer.inventory.setInventorySlotContents(par1EntityPlayer.inventory.currentItem, (ItemStack) null); - } - - if (!this.worldObj.isRemote) - { - if (this.rand.nextInt(1) == 0) - { - this.setTamed(true); - this.setPathToEntity((PathEntity) null); - this.setAttackTarget((EntityLivingBase) null); - this.aiSit.setSitting(true); - this.setHealth(this.maxTamedHealth); - this.setOwner(par1EntityPlayer.getCommandSenderName()); - this.playTameEffect(true); - this.worldObj.setEntityState(this, (byte) 7); - } else - { - this.playTameEffect(false); - this.worldObj.setEntityState(this, (byte) 6); - } - } - - return true; - } - - return super.interact(par1EntityPlayer); - } - - /** - * Checks if the parameter is an item which this animal can be fed to breed it (wheat, carrots or seeds depending on - * the animal type) - */ - public boolean isBreedingItem(ItemStack par1ItemStack) - { - return false; - //return par1ItemStack == null ? false : (!(Item.itemsList[par1ItemStack.itemID] instanceof ItemFood) ? false : ((ItemFood)Item.itemsList[par1ItemStack.itemID]).isWolfsFavoriteMeat()); - } - - /** - * Determines whether this wolf is angry or not. - */ - public boolean isAngry() - { - return (this.dataWatcher.getWatchableObjectByte(16) & 2) != 0; - } - - /** - * Sets whether this wolf is angry or not. - */ - public void setAngry(boolean par1) - { - byte b0 = this.dataWatcher.getWatchableObjectByte(16); - - if (par1) - { - this.dataWatcher.updateObject(16, Byte.valueOf((byte) (b0 | 2))); - } else - { - this.dataWatcher.updateObject(16, Byte.valueOf((byte) (b0 & -3))); - } - } - - /** - * Return this wolf's collar color. - */ - public int getCollarColor() - { - return this.dataWatcher.getWatchableObjectByte(20) & 15; - } - - /** - * Set this wolf's collar color. - */ - public void setCollarColor(int par1) - { - this.dataWatcher.updateObject(20, Byte.valueOf((byte) (par1 & 15))); - } - - /** - * This function is used when two same-species animals in 'love mode' breed to generate the new baby animal. - */ - public EntityWolf spawnBabyAnimal(EntityAgeable par1EntityAgeable) - { - return null; - } - - public void func_70918_i(boolean par1) - { - if (par1) - { - this.dataWatcher.updateObject(19, Byte.valueOf((byte) 1)); - } else - { - this.dataWatcher.updateObject(19, Byte.valueOf((byte) 0)); - } - } - - /** - * Returns true if the mob is currently able to mate with the specified mob. - */ - public boolean canMateWith(EntityAnimal par1EntityAnimal) - { - return false; - } - - public boolean func_70922_bv() - { - return this.dataWatcher.getWatchableObjectByte(19) == 1; - } - - /** - * Determines if an entity can be despawned, used on idle far away entities - */ - protected boolean canDespawn() - { - //return !this.isTamed() && this.ticksExisted > 2400; - return false; - } - - public boolean func_142018_a(EntityLivingBase par1EntityLivingBase, EntityLivingBase par2EntityLivingBase) - { - if (!(par1EntityLivingBase instanceof EntityCreeper) && !(par1EntityLivingBase instanceof EntityGhast)) - { - if (par1EntityLivingBase instanceof EntityBoulderFist) - { - EntityBoulderFist entitywolf = (EntityBoulderFist) par1EntityLivingBase; - - if (entitywolf.isTamed() && entitywolf.func_130012_q() == par2EntityLivingBase) - { - return false; - } - } - - return par1EntityLivingBase instanceof EntityPlayer && par2EntityLivingBase instanceof EntityPlayer && !((EntityPlayer) par2EntityLivingBase).canAttackPlayer((EntityPlayer) par1EntityLivingBase) ? false : !(par1EntityLivingBase instanceof EntityHorse) || !((EntityHorse) par1EntityLivingBase).isTame(); - } else - { - return false; - } - } - - public EntityAgeable createChild(EntityAgeable par1EntityAgeable) - { - return this.spawnBabyAnimal(par1EntityAgeable); - } - - /** - * Attack the specified entity using a ranged attack. - */ - public void attackEntityWithRangedAttack(EntityLivingBase par1EntityLivingBase, float par2) - { - double xCoord; - double yCoord; - double zCoord; - HolyProjectile hol = new HolyProjectile(worldObj, this, par1EntityLivingBase, 1.8f, 0f, 5, 600); - this.worldObj.spawnEntityInWorld(hol); - } - - /** - * sets this entity's combat AI. - */ - public void setCombatTask() - { - this.tasks.removeTask(this.aiAttackOnCollide); - //this.tasks.removeTask(this.aiArrowAttack); - ItemStack itemstack = this.getHeldItem(); - this.tasks.addTask(4, this.aiAttackOnCollide); - } -} \ No newline at end of file diff --git a/BM_src/WayofTime/alchemicalWizardry/common/entity/mob/EntityShadeElemental.java b/BM_src/WayofTime/alchemicalWizardry/common/entity/mob/EntityShadeElemental.java deleted file mode 100644 index 004fcce4..00000000 --- a/BM_src/WayofTime/alchemicalWizardry/common/entity/mob/EntityShadeElemental.java +++ /dev/null @@ -1,27 +0,0 @@ -package WayofTime.alchemicalWizardry.common.entity.mob; - -import WayofTime.alchemicalWizardry.AlchemicalWizardry; -import net.minecraft.entity.Entity; -import net.minecraft.entity.EntityLivingBase; -import net.minecraft.entity.monster.IMob; -import net.minecraft.potion.Potion; -import net.minecraft.potion.PotionEffect; -import net.minecraft.world.World; - -public class EntityShadeElemental extends EntityElemental implements IMob -{ - public EntityShadeElemental(World world) - { - super(world, AlchemicalWizardry.entityShadeElementalID); - } - - public void inflictEffectOnEntity(Entity target) - { - if (target instanceof EntityLivingBase) - { - ((EntityLivingBase) target).addPotionEffect(new PotionEffect(Potion.blindness.id, 100, 1)); - ((EntityLivingBase) target).addPotionEffect(new PotionEffect(AlchemicalWizardry.customPotionInhibit.id, 150, 0)); - ((EntityLivingBase) target).addPotionEffect(new PotionEffect(Potion.nightVision.id, 100, 0)); - } - } -} \ No newline at end of file diff --git a/BM_src/WayofTime/alchemicalWizardry/common/entity/mob/EntitySmallEarthGolem.java b/BM_src/WayofTime/alchemicalWizardry/common/entity/mob/EntitySmallEarthGolem.java deleted file mode 100644 index 59fbbf34..00000000 --- a/BM_src/WayofTime/alchemicalWizardry/common/entity/mob/EntitySmallEarthGolem.java +++ /dev/null @@ -1,493 +0,0 @@ -package WayofTime.alchemicalWizardry.common.entity.mob; - -import WayofTime.alchemicalWizardry.AlchemicalWizardry; -import WayofTime.alchemicalWizardry.ModItems; -import WayofTime.alchemicalWizardry.common.EntityAITargetAggro; -import WayofTime.alchemicalWizardry.common.entity.projectile.MudProjectile; -import cpw.mods.fml.common.network.Player; -import net.minecraft.block.BlockColored; -import net.minecraft.entity.*; -import net.minecraft.entity.ai.*; -import net.minecraft.entity.monster.EntityCreeper; -import net.minecraft.entity.monster.EntityGhast; -import net.minecraft.entity.passive.EntityAnimal; -import net.minecraft.entity.passive.EntityHorse; -import net.minecraft.entity.passive.EntityWolf; -import net.minecraft.entity.player.EntityPlayer; -import net.minecraft.entity.projectile.EntityArrow; -import net.minecraft.item.Item; -import net.minecraft.item.ItemFood; -import net.minecraft.item.ItemStack; -import net.minecraft.nbt.NBTTagCompound; -import net.minecraft.pathfinding.PathEntity; -import net.minecraft.util.DamageSource; -import net.minecraft.world.World; - -public class EntitySmallEarthGolem extends EntityDemon implements IRangedAttackMob, Player -{ - private EntityAIArrowAttack aiArrowAttack = new EntityAIArrowAttack(this, 1.0D, 25, 25, 15.0F); - private EntityAIAttackOnCollide aiAttackOnCollide = new EntityAIAttackOnCollide(this, EntityPlayer.class, 1.2D, false); - - private static float maxTamedHealth = 20.0F; - private static float maxUntamedHealth = 10.0F; - - public EntitySmallEarthGolem(World par1World) - { - super(par1World, AlchemicalWizardry.entitySmallEarthGolemID); - this.setSize(0.2F, 1.0F); - this.getNavigator().setAvoidsWater(true); - this.tasks.addTask(1, new EntityAISwimming(this)); - this.tasks.addTask(2, this.aiSit); - //this.tasks.addTask(3, new EntityAILeapAtTarget(this, 0.4F)); - //this.tasks.addTask(4, new EntityAIAttackOnCollide(this, 1.0D, true)); - this.tasks.addTask(5, new EntityAIFollowOwner(this, 1.0D, 10.0F, 2.0F)); - //this.tasks.addTask(6, new EntityAIMate(this, 1.0D)); - this.tasks.addTask(7, new EntityAIWander(this, 1.0D)); - //this.tasks.addTask(8, new EntityAIBeg(this, 8.0F)); - this.tasks.addTask(9, new EntityAIWatchClosest(this, EntityPlayer.class, 8.0F)); - this.tasks.addTask(9, new EntityAILookIdle(this)); - this.targetTasks.addTask(1, new EntityAIOwnerHurtByTarget(this)); - this.targetTasks.addTask(2, new EntityAIOwnerHurtTarget(this)); - this.targetTasks.addTask(3, new EntityAIHurtByTarget(this, true)); - this.targetTasks.addTask(4, new EntityAITargetAggro(this, EntityPlayer.class, 0, false)); - this.setAggro(false); - //this.targetTasks.addTask(4, new EntityAITargetNonTamed(this, EntitySheep.class, 200, false)); - this.setTamed(false); - - if (par1World != null && !par1World.isRemote) - { - this.setCombatTask(); - } - - //this.isImmuneToFire = true; - } - - @Override - protected void applyEntityAttributes() - { - super.applyEntityAttributes(); - //This line affects the speed of the monster - this.getEntityAttribute(SharedMonsterAttributes.movementSpeed).setAttribute(0.40000001192092896D); - - //My guess is that this will alter the max health - if (this.isTamed()) - { - this.getEntityAttribute(SharedMonsterAttributes.maxHealth).setAttribute(this.maxTamedHealth); - } else - { - this.getEntityAttribute(SharedMonsterAttributes.maxHealth).setAttribute(this.maxUntamedHealth); - } - - //this.func_110148_a(SharedMonsterAttributes.field_111267_a).func_111128_a(10.0D); - } - - /** - * Returns true if the newer Entity AI code should be run - */ - public boolean isAIEnabled() - { - return true; - } - - /** - * Sets the active target the Task system uses for tracking - */ - public void setAttackTarget(EntityLivingBase par1EntityLivingBase) - { - super.setAttackTarget(par1EntityLivingBase); - - if (par1EntityLivingBase == null) - { - this.setAngry(false); - } else if (!this.isTamed()) - { - this.setAngry(true); - } - } - - /** - * main AI tick function, replaces updateEntityActionState - */ - protected void updateAITick() - { - this.dataWatcher.updateObject(18, Float.valueOf(this.getHealth())); - } - - protected void entityInit() - { - super.entityInit(); - this.dataWatcher.addObject(18, new Float(this.getHealth())); - this.dataWatcher.addObject(19, new Byte((byte) 0)); - this.dataWatcher.addObject(20, new Byte((byte) BlockColored.getBlockFromDye(1))); - } - - /** - * Plays step sound at given x, y, z for the entity - */ - protected void playStepSound(int par1, int par2, int par3, int par4) - { - this.playSound("mob.zombie.step", 0.15F, 1.0F); - } - - /** - * (abstract) Protected helper method to write subclass entity data to NBT. - */ - public void writeEntityToNBT(NBTTagCompound par1NBTTagCompound) - { - super.writeEntityToNBT(par1NBTTagCompound); - par1NBTTagCompound.setBoolean("Angry", this.isAngry()); - par1NBTTagCompound.setByte("CollarColor", (byte) this.getCollarColor()); - } - - /** - * (abstract) Protected helper method to read subclass entity data from NBT. - */ - public void readEntityFromNBT(NBTTagCompound par1NBTTagCompound) - { - super.readEntityFromNBT(par1NBTTagCompound); - this.setAngry(par1NBTTagCompound.getBoolean("Angry")); - - if (par1NBTTagCompound.hasKey("CollarColor")) - { - this.setCollarColor(par1NBTTagCompound.getByte("CollarColor")); - } - - this.setCombatTask(); - } - - /** - * Returns the sound this mob makes while it's alive. - */ - protected String getLivingSound() - { - return "none"; - } - - /** - * Returns the sound this mob makes when it is hurt. - */ - protected String getHurtSound() - { - return "mob.irongolem.hit"; - } - - /** - * Returns the sound this mob makes on death. - */ - protected String getDeathSound() - { - return "mob.irongolem.death"; - } - - /** - * Returns the volume for the sounds this mob makes. - */ - protected float getSoundVolume() - { - return 0.4F; - } - - /** - * Returns the item ID for the item the mob drops on death. - */ - protected int getDropItemId() - { - return -1; - } - - /** - * Called frequently so the entity can update its state every tick as required. For example, zombies and skeletons - * use this to react to sunlight and start to burn. - */ - public void onLivingUpdate() - { - super.onLivingUpdate(); - } - - /** - * Called to update the entity's position/logic. - */ - public void onUpdate() - { - super.onUpdate(); - } - - public float getEyeHeight() - { - return this.height * 0.8F; - } - - /** - * The speed it takes to move the entityliving's rotationPitch through the faceEntity method. This is only currently - * use in wolves. - */ - public int getVerticalFaceSpeed() - { - return this.isSitting() ? 20 : super.getVerticalFaceSpeed(); - } - - /** - * Called when the entity is attacked. - */ - public boolean attackEntityFrom(DamageSource par1DamageSource, float par2) - { - if (this.isEntityInvulnerable()) - { - return false; - } else - { - Entity entity = par1DamageSource.getEntity(); - this.aiSit.setSitting(false); - - if (entity != null && !(entity instanceof EntityPlayer) && !(entity instanceof EntityArrow)) - { - par2 = (par2 + 1.0F) / 2.0F; - } - - return super.attackEntityFrom(par1DamageSource, par2); - } - } - - public boolean attackEntityAsMob(Entity par1Entity) - { - int i = this.isTamed() ? 4 : 2; - return par1Entity.attackEntityFrom(DamageSource.causeMobDamage(this), (float) i); - } - - public void setTamed(boolean par1) - { - super.setTamed(par1); - - if (par1) - { - this.getEntityAttribute(SharedMonsterAttributes.maxHealth).setAttribute(this.maxTamedHealth); - } else - { - this.getEntityAttribute(SharedMonsterAttributes.maxHealth).setAttribute(this.maxUntamedHealth); - } - } - - /** - * Called when a player interacts with a mob. e.g. gets milk from a cow, gets into the saddle on a pig. - */ - public boolean interact(EntityPlayer par1EntityPlayer) - { - ItemStack itemstack = par1EntityPlayer.inventory.getCurrentItem(); - - if (this.isTamed()) - { - if (itemstack != null) - { - if (Item.itemsList[itemstack.itemID] instanceof ItemFood) - { - ItemFood itemfood = (ItemFood) Item.itemsList[itemstack.itemID]; - - if (itemfood.isWolfsFavoriteMeat() && this.dataWatcher.getWatchableObjectFloat(18) < this.maxTamedHealth) - { - if (!par1EntityPlayer.capabilities.isCreativeMode) - { - --itemstack.stackSize; - } - - this.heal((float) itemfood.getHealAmount()); - - if (itemstack.stackSize <= 0) - { - par1EntityPlayer.inventory.setInventorySlotContents(par1EntityPlayer.inventory.currentItem, (ItemStack) null); - } - - return true; - } - } - } - - if (par1EntityPlayer.getCommandSenderName().equalsIgnoreCase(this.getOwnerName()) && !this.isBreedingItem(itemstack)) - { - if (!this.worldObj.isRemote) - { - this.aiSit.setSitting(!this.isSitting()); - this.isJumping = false; - this.setPathToEntity((PathEntity) null); - this.setTarget((Entity) null); - this.setAttackTarget((EntityLivingBase) null); - } - - this.sendSittingMessageToPlayer(par1EntityPlayer, !this.isSitting()); - } - } else if (itemstack != null && itemstack.itemID == ModItems.weakBloodOrb.itemID && !this.isAngry() && !this.isAggro()) - { - if (!par1EntityPlayer.capabilities.isCreativeMode) - { - --itemstack.stackSize; - } - - if (itemstack.stackSize <= 0) - { - par1EntityPlayer.inventory.setInventorySlotContents(par1EntityPlayer.inventory.currentItem, (ItemStack) null); - } - - if (!this.worldObj.isRemote) - { - if (this.rand.nextInt(1) == 0) - { - this.setTamed(true); - this.setPathToEntity((PathEntity) null); - this.setAttackTarget((EntityLivingBase) null); - this.aiSit.setSitting(true); - this.setHealth(this.maxTamedHealth); - this.setOwner(par1EntityPlayer.getCommandSenderName()); - this.playTameEffect(true); - this.worldObj.setEntityState(this, (byte) 7); - } else - { - this.playTameEffect(false); - this.worldObj.setEntityState(this, (byte) 6); - } - } - - return true; - } - - return super.interact(par1EntityPlayer); - } - - /** - * Checks if the parameter is an item which this animal can be fed to breed it (wheat, carrots or seeds depending on - * the animal type) - */ - public boolean isBreedingItem(ItemStack par1ItemStack) - { - return false; - //return par1ItemStack == null ? false : (!(Item.itemsList[par1ItemStack.itemID] instanceof ItemFood) ? false : ((ItemFood)Item.itemsList[par1ItemStack.itemID]).isWolfsFavoriteMeat()); - } - - /** - * Determines whether this wolf is angry or not. - */ - public boolean isAngry() - { - return (this.dataWatcher.getWatchableObjectByte(16) & 2) != 0; - } - - /** - * Sets whether this wolf is angry or not. - */ - public void setAngry(boolean par1) - { - byte b0 = this.dataWatcher.getWatchableObjectByte(16); - - if (par1) - { - this.dataWatcher.updateObject(16, Byte.valueOf((byte) (b0 | 2))); - } else - { - this.dataWatcher.updateObject(16, Byte.valueOf((byte) (b0 & -3))); - } - } - - /** - * Return this wolf's collar color. - */ - public int getCollarColor() - { - return this.dataWatcher.getWatchableObjectByte(20) & 15; - } - - /** - * Set this wolf's collar color. - */ - public void setCollarColor(int par1) - { - this.dataWatcher.updateObject(20, Byte.valueOf((byte) (par1 & 15))); - } - - /** - * This function is used when two same-species animals in 'love mode' breed to generate the new baby animal. - */ - public EntityWolf spawnBabyAnimal(EntityAgeable par1EntityAgeable) - { - return null; - } - - public void func_70918_i(boolean par1) - { - if (par1) - { - this.dataWatcher.updateObject(19, Byte.valueOf((byte) 1)); - } else - { - this.dataWatcher.updateObject(19, Byte.valueOf((byte) 0)); - } - } - - /** - * Returns true if the mob is currently able to mate with the specified mob. - */ - public boolean canMateWith(EntityAnimal par1EntityAnimal) - { - return false; - } - - public boolean func_70922_bv() - { - return this.dataWatcher.getWatchableObjectByte(19) == 1; - } - - /** - * Determines if an entity can be despawned, used on idle far away entities - */ - protected boolean canDespawn() - { - //return !this.isTamed() && this.ticksExisted > 2400; - return false; - } - - public boolean func_142018_a(EntityLivingBase par1EntityLivingBase, EntityLivingBase par2EntityLivingBase) - { - if (!(par1EntityLivingBase instanceof EntityCreeper) && !(par1EntityLivingBase instanceof EntityGhast)) - { - if (par1EntityLivingBase instanceof EntitySmallEarthGolem) - { - EntitySmallEarthGolem entitywolf = (EntitySmallEarthGolem) par1EntityLivingBase; - - if (entitywolf.isTamed() && entitywolf.func_130012_q() == par2EntityLivingBase) - { - return false; - } - } - - return par1EntityLivingBase instanceof EntityPlayer && par2EntityLivingBase instanceof EntityPlayer && !((EntityPlayer) par2EntityLivingBase).canAttackPlayer((EntityPlayer) par1EntityLivingBase) ? false : !(par1EntityLivingBase instanceof EntityHorse) || !((EntityHorse) par1EntityLivingBase).isTame(); - } else - { - return false; - } - } - - public EntityAgeable createChild(EntityAgeable par1EntityAgeable) - { - return this.spawnBabyAnimal(par1EntityAgeable); - } - - /** - * Attack the specified entity using a ranged attack. - */ - public void attackEntityWithRangedAttack(EntityLivingBase par1EntityLivingBase, float par2) - { - double xCoord; - double yCoord; - double zCoord; - MudProjectile hol = new MudProjectile(worldObj, this, par1EntityLivingBase, 1.8f, 0f, 3, 600, false); - this.worldObj.spawnEntityInWorld(hol); - } - - /** - * sets this entity's combat AI. - */ - public void setCombatTask() - { - this.tasks.removeTask(this.aiAttackOnCollide); - this.tasks.removeTask(this.aiArrowAttack); - ItemStack itemstack = this.getHeldItem(); - this.tasks.addTask(4, this.aiArrowAttack); - } -} diff --git a/BM_src/WayofTime/alchemicalWizardry/common/entity/mob/EntityTestDemon.java b/BM_src/WayofTime/alchemicalWizardry/common/entity/mob/EntityTestDemon.java deleted file mode 100644 index 77a29d97..00000000 --- a/BM_src/WayofTime/alchemicalWizardry/common/entity/mob/EntityTestDemon.java +++ /dev/null @@ -1,502 +0,0 @@ -package WayofTime.alchemicalWizardry.common.entity.mob; - -import WayofTime.alchemicalWizardry.AlchemicalWizardry; -import WayofTime.alchemicalWizardry.ModItems; -import WayofTime.alchemicalWizardry.common.EntityAITargetAggro; -import WayofTime.alchemicalWizardry.common.entity.projectile.HolyProjectile; -import cpw.mods.fml.common.network.Player; -import net.minecraft.block.BlockColored; -import net.minecraft.entity.*; -import net.minecraft.entity.ai.*; -import net.minecraft.entity.monster.EntityCreeper; -import net.minecraft.entity.monster.EntityGhast; -import net.minecraft.entity.passive.EntityAnimal; -import net.minecraft.entity.passive.EntityHorse; -import net.minecraft.entity.passive.EntityWolf; -import net.minecraft.entity.player.EntityPlayer; -import net.minecraft.entity.projectile.EntityArrow; -import net.minecraft.item.Item; -import net.minecraft.item.ItemFood; -import net.minecraft.item.ItemStack; -import net.minecraft.nbt.NBTTagCompound; -import net.minecraft.pathfinding.PathEntity; -import net.minecraft.util.DamageSource; -import net.minecraft.world.World; - -public class EntityTestDemon extends EntityDemon implements IRangedAttackMob, Player -{ - private EntityAIArrowAttack aiArrowAttack = new EntityAIArrowAttack(this, 1.0D, 40, 40, 15.0F); - private EntityAIAttackOnCollide aiAttackOnCollide = new EntityAIAttackOnCollide(this, EntityPlayer.class, 1.2D, false); - - private static float maxTamedHealth = 50.0F; - private static float maxUntamedHealth = 50.0F; - - public EntityTestDemon(World par1World) - { - super(par1World, AlchemicalWizardry.entityFallenAngelID); - this.setSize(0.7F, 1.8F); - this.getNavigator().setAvoidsWater(true); - this.tasks.addTask(1, new EntityAISwimming(this)); - this.tasks.addTask(2, this.aiSit); - //this.tasks.addTask(3, new EntityAILeapAtTarget(this, 0.4F)); - //this.tasks.addTask(4, new EntityAIAttackOnCollide(this, 1.0D, true)); - this.tasks.addTask(5, new EntityAIFollowOwner(this, 1.0D, 10.0F, 2.0F)); - //this.tasks.addTask(6, new EntityAIMate(this, 1.0D)); - this.tasks.addTask(7, new EntityAIWander(this, 1.0D)); - //this.tasks.addTask(8, new EntityAIBeg(this, 8.0F)); - this.tasks.addTask(9, new EntityAIWatchClosest(this, EntityPlayer.class, 8.0F)); - this.tasks.addTask(9, new EntityAILookIdle(this)); - this.targetTasks.addTask(1, new EntityAIOwnerHurtByTarget(this)); - this.targetTasks.addTask(2, new EntityAIOwnerHurtTarget(this)); - this.targetTasks.addTask(3, new EntityAIHurtByTarget(this, true)); - this.targetTasks.addTask(4, new EntityAITargetAggro(this, EntityPlayer.class, 0, false)); - this.setAggro(false); - //this.targetTasks.addTask(4, new EntityAITargetNonTamed(this, EntitySheep.class, 200, false)); - this.setTamed(false); - - if (par1World != null && !par1World.isRemote) - { - this.setCombatTask(); - } - - //this.isImmuneToFire = true; - } - - @Override - protected void applyEntityAttributes() - { - super.applyEntityAttributes(); - //This line affects the speed of the monster - this.getEntityAttribute(SharedMonsterAttributes.movementSpeed).setAttribute(0.30000001192092896D); - - //My guess is that this will alter the max health - if (this.isTamed()) - { - this.getEntityAttribute(SharedMonsterAttributes.maxHealth).setAttribute(this.maxTamedHealth); - } else - { - this.getEntityAttribute(SharedMonsterAttributes.maxHealth).setAttribute(this.maxUntamedHealth); - } - - //this.func_110148_a(SharedMonsterAttributes.field_111267_a).func_111128_a(10.0D); - } - - /** - * Returns true if the newer Entity AI code should be run - */ - public boolean isAIEnabled() - { - return true; - } - - /** - * Sets the active target the Task system uses for tracking - */ - public void setAttackTarget(EntityLivingBase par1EntityLivingBase) - { - super.setAttackTarget(par1EntityLivingBase); - - if (par1EntityLivingBase == null) - { - this.setAngry(false); - } else if (!this.isTamed()) - { - this.setAngry(true); - } - } - - /** - * main AI tick function, replaces updateEntityActionState - */ - protected void updateAITick() - { - this.dataWatcher.updateObject(18, Float.valueOf(this.getHealth())); - } - - protected void entityInit() - { - super.entityInit(); - this.dataWatcher.addObject(18, new Float(this.getHealth())); - this.dataWatcher.addObject(19, new Byte((byte) 0)); - this.dataWatcher.addObject(20, new Byte((byte) BlockColored.getBlockFromDye(1))); - } - - /** - * Plays step sound at given x, y, z for the entity - */ - protected void playStepSound(int par1, int par2, int par3, int par4) - { - this.playSound("mob.zombie.step", 0.15F, 1.0F); - } - - /** - * (abstract) Protected helper method to write subclass entity data to NBT. - */ - public void writeEntityToNBT(NBTTagCompound par1NBTTagCompound) - { - super.writeEntityToNBT(par1NBTTagCompound); - par1NBTTagCompound.setBoolean("Angry", this.isAngry()); - par1NBTTagCompound.setByte("CollarColor", (byte) this.getCollarColor()); - } - - /** - * (abstract) Protected helper method to read subclass entity data from NBT. - */ - public void readEntityFromNBT(NBTTagCompound par1NBTTagCompound) - { - super.readEntityFromNBT(par1NBTTagCompound); - this.setAngry(par1NBTTagCompound.getBoolean("Angry")); - - if (par1NBTTagCompound.hasKey("CollarColor")) - { - this.setCollarColor(par1NBTTagCompound.getByte("CollarColor")); - } - - this.setCombatTask(); - } - - /** - * Returns the sound this mob makes while it's alive. - */ - protected String getLivingSound() - { - //TODO change sounds - return "none"; - } - - /** - * Returns the sound this mob makes when it is hurt. - */ - protected String getHurtSound() - { - return "none"; - } - - /** - * Returns the sound this mob makes on death. - */ - protected String getDeathSound() - { - return "mob.wolf.death"; - } - - /** - * Returns the volume for the sounds this mob makes. - */ - protected float getSoundVolume() - { - return 0.4F; - } - - /** - * Returns the item ID for the item the mob drops on death. - */ - protected int getDropItemId() - { - return -1; - } - - /** - * Called frequently so the entity can update its state every tick as required. For example, zombies and skeletons - * use this to react to sunlight and start to burn. - */ - public void onLivingUpdate() - { - super.onLivingUpdate(); - } - - /** - * Called to update the entity's position/logic. - */ - public void onUpdate() - { - super.onUpdate(); - } - - public float getEyeHeight() - { - return this.height * 0.8F; - } - - /** - * The speed it takes to move the entityliving's rotationPitch through the faceEntity method. This is only currently - * use in wolves. - */ - public int getVerticalFaceSpeed() - { - return this.isSitting() ? 20 : super.getVerticalFaceSpeed(); - } - - /** - * Called when the entity is attacked. - */ - public boolean attackEntityFrom(DamageSource par1DamageSource, float par2) - { - if (this.isEntityInvulnerable()) - { - return false; - } else - { - Entity entity = par1DamageSource.getEntity(); - this.aiSit.setSitting(false); - - if (entity != null && !(entity instanceof EntityPlayer) && !(entity instanceof EntityArrow)) - { - par2 = (par2 + 1.0F) / 2.0F; - } - - return super.attackEntityFrom(par1DamageSource, par2); - } - } - - public boolean attackEntityAsMob(Entity par1Entity) - { - int i = this.isTamed() ? 4 : 2; - return par1Entity.attackEntityFrom(DamageSource.causeMobDamage(this), (float) i); - } - - public void setTamed(boolean par1) - { - super.setTamed(par1); - - if (par1) - { - this.getEntityAttribute(SharedMonsterAttributes.maxHealth).setAttribute(this.maxTamedHealth); - } else - { - this.getEntityAttribute(SharedMonsterAttributes.maxHealth).setAttribute(this.maxUntamedHealth); - } - } - - /** - * Called when a player interacts with a mob. e.g. gets milk from a cow, gets into the saddle on a pig. - */ - public boolean interact(EntityPlayer par1EntityPlayer) - { - ItemStack itemstack = par1EntityPlayer.inventory.getCurrentItem(); - - if (this.isTamed()) - { - if (itemstack != null) - { - if (Item.itemsList[itemstack.itemID] instanceof ItemFood) - { - ItemFood itemfood = (ItemFood) Item.itemsList[itemstack.itemID]; - - if (itemfood.isWolfsFavoriteMeat() && this.dataWatcher.getWatchableObjectFloat(18) < this.maxTamedHealth) - { - if (!par1EntityPlayer.capabilities.isCreativeMode) - { - --itemstack.stackSize; - } - - this.heal((float) itemfood.getHealAmount()); - - if (itemstack.stackSize <= 0) - { - par1EntityPlayer.inventory.setInventorySlotContents(par1EntityPlayer.inventory.currentItem, (ItemStack) null); - } - - return true; - } - } - } - - if (par1EntityPlayer.getCommandSenderName().equalsIgnoreCase(this.getOwnerName()) && !this.isBreedingItem(itemstack)) - { - if (!this.worldObj.isRemote) - { - this.aiSit.setSitting(!this.isSitting()); - this.isJumping = false; - this.setPathToEntity((PathEntity) null); - this.setTarget((Entity) null); - this.setAttackTarget((EntityLivingBase) null); - } - - this.sendSittingMessageToPlayer(par1EntityPlayer, !this.isSitting()); - } - } else if (itemstack != null && itemstack.itemID == ModItems.weakBloodOrb.itemID && !this.isAngry() && !this.isAggro()) - { - if (!par1EntityPlayer.capabilities.isCreativeMode) - { - --itemstack.stackSize; - } - - if (itemstack.stackSize <= 0) - { - par1EntityPlayer.inventory.setInventorySlotContents(par1EntityPlayer.inventory.currentItem, (ItemStack) null); - } - - if (!this.worldObj.isRemote) - { - if (this.rand.nextInt(1) == 0) - { - this.setTamed(true); - this.setPathToEntity((PathEntity) null); - this.setAttackTarget((EntityLivingBase) null); - this.aiSit.setSitting(true); - this.setHealth(this.maxTamedHealth); - this.setOwner(par1EntityPlayer.getCommandSenderName()); - this.playTameEffect(true); - this.worldObj.setEntityState(this, (byte) 7); - } else - { - this.playTameEffect(false); - this.worldObj.setEntityState(this, (byte) 6); - } - } - - return true; - } - - return super.interact(par1EntityPlayer); - } - - /** - * Checks if the parameter is an item which this animal can be fed to breed it (wheat, carrots or seeds depending on - * the animal type) - */ - public boolean isBreedingItem(ItemStack par1ItemStack) - { - return false; - //return par1ItemStack == null ? false : (!(Item.itemsList[par1ItemStack.itemID] instanceof ItemFood) ? false : ((ItemFood)Item.itemsList[par1ItemStack.itemID]).isWolfsFavoriteMeat()); - } - - /** - * Determines whether this wolf is angry or not. - */ - public boolean isAngry() - { - return (this.dataWatcher.getWatchableObjectByte(16) & 2) != 0; - } - - /** - * Sets whether this wolf is angry or not. - */ - public void setAngry(boolean par1) - { - byte b0 = this.dataWatcher.getWatchableObjectByte(16); - - if (par1) - { - this.dataWatcher.updateObject(16, Byte.valueOf((byte) (b0 | 2))); - } else - { - this.dataWatcher.updateObject(16, Byte.valueOf((byte) (b0 & -3))); - } - } - - /** - * Return this wolf's collar color. - */ - public int getCollarColor() - { - return this.dataWatcher.getWatchableObjectByte(20) & 15; - } - - /** - * Set this wolf's collar color. - */ - public void setCollarColor(int par1) - { - this.dataWatcher.updateObject(20, Byte.valueOf((byte) (par1 & 15))); - } - - /** - * This function is used when two same-species animals in 'love mode' breed to generate the new baby animal. - */ - public EntityWolf spawnBabyAnimal(EntityAgeable par1EntityAgeable) - { - return null; - } - - public void func_70918_i(boolean par1) - { - if (par1) - { - this.dataWatcher.updateObject(19, Byte.valueOf((byte) 1)); - } else - { - this.dataWatcher.updateObject(19, Byte.valueOf((byte) 0)); - } - } - - /** - * Returns true if the mob is currently able to mate with the specified mob. - */ - public boolean canMateWith(EntityAnimal par1EntityAnimal) - { - return false; - } - - public boolean func_70922_bv() - { - return this.dataWatcher.getWatchableObjectByte(19) == 1; - } - - /** - * Determines if an entity can be despawned, used on idle far away entities - */ - protected boolean canDespawn() - { - //return !this.isTamed() && this.ticksExisted > 2400; - return false; - } - - public boolean func_142018_a(EntityLivingBase par1EntityLivingBase, EntityLivingBase par2EntityLivingBase) - { - if (!(par1EntityLivingBase instanceof EntityCreeper) && !(par1EntityLivingBase instanceof EntityGhast)) - { - if (par1EntityLivingBase instanceof EntityTestDemon) - { - EntityTestDemon entitywolf = (EntityTestDemon) par1EntityLivingBase; - - if (entitywolf.isTamed() && entitywolf.func_130012_q() == par2EntityLivingBase) - { - return false; - } - } - - return par1EntityLivingBase instanceof EntityPlayer && par2EntityLivingBase instanceof EntityPlayer && !((EntityPlayer) par2EntityLivingBase).canAttackPlayer((EntityPlayer) par1EntityLivingBase) ? false : !(par1EntityLivingBase instanceof EntityHorse) || !((EntityHorse) par1EntityLivingBase).isTame(); - } else - { - return false; - } - } - - public EntityAgeable createChild(EntityAgeable par1EntityAgeable) - { - return this.spawnBabyAnimal(par1EntityAgeable); - } - - /** - * Attack the specified entity using a ranged attack. - */ - public void attackEntityWithRangedAttack(EntityLivingBase par1EntityLivingBase, float par2) - { - double xCoord; - double yCoord; - double zCoord; - HolyProjectile hol = new HolyProjectile(worldObj, this, par1EntityLivingBase, 1.8f, 0f, 5, 600); - this.worldObj.spawnEntityInWorld(hol); - } - - /** - * sets this entity's combat AI. - */ - public void setCombatTask() - { - this.tasks.removeTask(this.aiAttackOnCollide); - this.tasks.removeTask(this.aiArrowAttack); - ItemStack itemstack = this.getHeldItem(); - this.tasks.addTask(4, this.aiArrowAttack); - } - - protected void fall(float par1) - { - } - - protected void updateFallState(double par1, boolean par3) - { - } -} diff --git a/BM_src/WayofTime/alchemicalWizardry/common/entity/mob/EntityWaterElemental.java b/BM_src/WayofTime/alchemicalWizardry/common/entity/mob/EntityWaterElemental.java deleted file mode 100644 index ab141887..00000000 --- a/BM_src/WayofTime/alchemicalWizardry/common/entity/mob/EntityWaterElemental.java +++ /dev/null @@ -1,25 +0,0 @@ -package WayofTime.alchemicalWizardry.common.entity.mob; - -import WayofTime.alchemicalWizardry.AlchemicalWizardry; -import net.minecraft.entity.Entity; -import net.minecraft.entity.EntityLivingBase; -import net.minecraft.entity.monster.IMob; -import net.minecraft.potion.PotionEffect; -import net.minecraft.world.World; - -public class EntityWaterElemental extends EntityElemental implements IMob -{ - public EntityWaterElemental(World world) - { - super(world, AlchemicalWizardry.entityWaterElementalID); - } - - public void inflictEffectOnEntity(Entity target) - { - if (target instanceof EntityLivingBase) - { - ((EntityLivingBase) target).addPotionEffect(new PotionEffect(AlchemicalWizardry.customPotionDrowning.id, 100, 2)); - ((EntityLivingBase) target).addPotionEffect(new PotionEffect(AlchemicalWizardry.customPotionInhibit.id, 150, 0)); - } - } -} \ No newline at end of file diff --git a/BM_src/WayofTime/alchemicalWizardry/common/entity/mob/EntityWingedFireDemon.java b/BM_src/WayofTime/alchemicalWizardry/common/entity/mob/EntityWingedFireDemon.java deleted file mode 100644 index 1ce71085..00000000 --- a/BM_src/WayofTime/alchemicalWizardry/common/entity/mob/EntityWingedFireDemon.java +++ /dev/null @@ -1,494 +0,0 @@ -package WayofTime.alchemicalWizardry.common.entity.mob; - -import WayofTime.alchemicalWizardry.AlchemicalWizardry; -import WayofTime.alchemicalWizardry.ModItems; -import WayofTime.alchemicalWizardry.common.EntityAITargetAggro; -import WayofTime.alchemicalWizardry.common.entity.projectile.FireProjectile; -import cpw.mods.fml.common.network.Player; -import net.minecraft.block.BlockColored; -import net.minecraft.entity.*; -import net.minecraft.entity.ai.*; -import net.minecraft.entity.monster.EntityCreeper; -import net.minecraft.entity.monster.EntityGhast; -import net.minecraft.entity.passive.EntityAnimal; -import net.minecraft.entity.passive.EntityHorse; -import net.minecraft.entity.passive.EntityWolf; -import net.minecraft.entity.player.EntityPlayer; -import net.minecraft.entity.projectile.EntityArrow; -import net.minecraft.item.Item; -import net.minecraft.item.ItemFood; -import net.minecraft.item.ItemStack; -import net.minecraft.nbt.NBTTagCompound; -import net.minecraft.pathfinding.PathEntity; -import net.minecraft.util.DamageSource; -import net.minecraft.world.World; - -public class EntityWingedFireDemon extends EntityDemon implements IRangedAttackMob, Player -{ - private EntityAIArrowAttack aiArrowAttack = new EntityAIArrowAttack(this, 1.0D, 40, 40, 15.0F); - private EntityAIAttackOnCollide aiAttackOnCollide = new EntityAIAttackOnCollide(this, EntityPlayer.class, 1.2D, false); - - private static float maxTamedHealth = 100.0F; - private static float maxUntamedHealth = 200.0F; - - public EntityWingedFireDemon(World par1World) - { - super(par1World, AlchemicalWizardry.entityWingedFireDemonID); - this.setSize(0.7F, 1.8F); - this.getNavigator().setAvoidsWater(true); - this.tasks.addTask(1, new EntityAISwimming(this)); - this.tasks.addTask(2, this.aiSit); - //this.tasks.addTask(3, new EntityAILeapAtTarget(this, 0.4F)); - //this.tasks.addTask(4, new EntityAIAttackOnCollide(this, 1.0D, true)); - this.tasks.addTask(5, new EntityAIFollowOwner(this, 1.0D, 10.0F, 2.0F)); - //this.tasks.addTask(6, new EntityAIMate(this, 1.0D)); - this.tasks.addTask(7, new EntityAIWander(this, 1.0D)); - //this.tasks.addTask(8, new EntityAIBeg(this, 8.0F)); - this.tasks.addTask(9, new EntityAIWatchClosest(this, EntityPlayer.class, 8.0F)); - this.tasks.addTask(9, new EntityAILookIdle(this)); - this.targetTasks.addTask(1, new EntityAIOwnerHurtByTarget(this)); - this.targetTasks.addTask(2, new EntityAIOwnerHurtTarget(this)); - this.targetTasks.addTask(3, new EntityAIHurtByTarget(this, true)); - this.targetTasks.addTask(4, new EntityAITargetAggro(this, EntityPlayer.class, 0, false)); - this.setAggro(false); - //this.targetTasks.addTask(4, new EntityAITargetNonTamed(this, EntitySheep.class, 200, false)); - this.setTamed(false); - - if (par1World != null && !par1World.isRemote) - { - this.setCombatTask(); - } - - this.isImmuneToFire = true; - } - - @Override - protected void applyEntityAttributes() - { - super.applyEntityAttributes(); - //This line affects the speed of the monster - this.getEntityAttribute(SharedMonsterAttributes.movementSpeed).setAttribute(0.30000001192092896D); - - //My guess is that this will alter the max health - if (this.isTamed()) - { - this.getEntityAttribute(SharedMonsterAttributes.maxHealth).setAttribute(this.maxTamedHealth); - } else - { - this.getEntityAttribute(SharedMonsterAttributes.maxHealth).setAttribute(this.maxUntamedHealth); - } - - //this.func_110148_a(SharedMonsterAttributes.field_111267_a).func_111128_a(10.0D); - } - - /** - * Returns true if the newer Entity AI code should be run - */ - public boolean isAIEnabled() - { - return true; - } - - /** - * Sets the active target the Task system uses for tracking - */ - public void setAttackTarget(EntityLivingBase par1EntityLivingBase) - { - super.setAttackTarget(par1EntityLivingBase); - - if (par1EntityLivingBase == null) - { - this.setAngry(false); - } else if (!this.isTamed()) - { - this.setAngry(true); - } - } - - /** - * main AI tick function, replaces updateEntityActionState - */ - protected void updateAITick() - { - this.dataWatcher.updateObject(18, Float.valueOf(this.getHealth())); - } - - protected void entityInit() - { - super.entityInit(); - this.dataWatcher.addObject(18, new Float(this.getHealth())); - this.dataWatcher.addObject(19, new Byte((byte) 0)); - this.dataWatcher.addObject(20, new Byte((byte) BlockColored.getBlockFromDye(1))); - } - - /** - * Plays step sound at given x, y, z for the entity - */ - protected void playStepSound(int par1, int par2, int par3, int par4) - { - this.playSound("mob.zombie.step", 0.15F, 1.0F); - } - - /** - * (abstract) Protected helper method to write subclass entity data to NBT. - */ - public void writeEntityToNBT(NBTTagCompound par1NBTTagCompound) - { - super.writeEntityToNBT(par1NBTTagCompound); - par1NBTTagCompound.setBoolean("Angry", this.isAngry()); - par1NBTTagCompound.setByte("CollarColor", (byte) this.getCollarColor()); - } - - /** - * (abstract) Protected helper method to read subclass entity data from NBT. - */ - public void readEntityFromNBT(NBTTagCompound par1NBTTagCompound) - { - super.readEntityFromNBT(par1NBTTagCompound); - this.setAngry(par1NBTTagCompound.getBoolean("Angry")); - - if (par1NBTTagCompound.hasKey("CollarColor")) - { - this.setCollarColor(par1NBTTagCompound.getByte("CollarColor")); - } - - this.setCombatTask(); - } - - /** - * Returns the sound this mob makes while it's alive. - */ - protected String getLivingSound() - { - return "mob.blaze.breathe"; - } - - /** - * Returns the sound this mob makes when it is hurt. - */ - protected String getHurtSound() - { - return "mob.blaze.hit"; - } - - /** - * Returns the sound this mob makes on death. - */ - protected String getDeathSound() - { - return "mob.blaze.death"; - } - - /** - * Returns the volume for the sounds this mob makes. - */ - protected float getSoundVolume() - { - return 0.4F; - } - - /** - * Returns the item ID for the item the mob drops on death. - */ - protected int getDropItemId() - { - return -1; - } - - /** - * Called frequently so the entity can update its state every tick as required. For example, zombies and skeletons - * use this to react to sunlight and start to burn. - */ - public void onLivingUpdate() - { - super.onLivingUpdate(); - } - - /** - * Called to update the entity's position/logic. - */ - public void onUpdate() - { - super.onUpdate(); - } - - public float getEyeHeight() - { - return this.height * 0.8F; - } - - /** - * The speed it takes to move the entityliving's rotationPitch through the faceEntity method. This is only currently - * use in wolves. - */ - public int getVerticalFaceSpeed() - { - return this.isSitting() ? 20 : super.getVerticalFaceSpeed(); - } - - /** - * Called when the entity is attacked. - */ - public boolean attackEntityFrom(DamageSource par1DamageSource, float par2) - { - if (this.isEntityInvulnerable()) - { - return false; - } else - { - Entity entity = par1DamageSource.getEntity(); - this.aiSit.setSitting(false); - - if (entity != null && !(entity instanceof EntityPlayer) && !(entity instanceof EntityArrow)) - { - par2 = (par2 + 1.0F) / 2.0F; - } - - return super.attackEntityFrom(par1DamageSource, par2); - } - } - - public boolean attackEntityAsMob(Entity par1Entity) - { - int i = this.isTamed() ? 4 : 2; - return par1Entity.attackEntityFrom(DamageSource.causeMobDamage(this), (float) i); - } - - public void setTamed(boolean par1) - { - super.setTamed(par1); - - if (par1) - { - this.getEntityAttribute(SharedMonsterAttributes.maxHealth).setAttribute(this.maxTamedHealth); - } else - { - this.getEntityAttribute(SharedMonsterAttributes.maxHealth).setAttribute(this.maxUntamedHealth); - } - } - - /** - * Called when a player interacts with a mob. e.g. gets milk from a cow, gets into the saddle on a pig. - */ - public boolean interact(EntityPlayer par1EntityPlayer) - { - ItemStack itemstack = par1EntityPlayer.inventory.getCurrentItem(); - - if (this.isTamed()) - { - if (itemstack != null) - { - if (Item.itemsList[itemstack.itemID] instanceof ItemFood) - { - ItemFood itemfood = (ItemFood) Item.itemsList[itemstack.itemID]; - - if (itemfood.isWolfsFavoriteMeat() && this.dataWatcher.getWatchableObjectFloat(18) < this.maxTamedHealth) - { - if (!par1EntityPlayer.capabilities.isCreativeMode) - { - --itemstack.stackSize; - } - - this.heal((float) itemfood.getHealAmount()); - - if (itemstack.stackSize <= 0) - { - par1EntityPlayer.inventory.setInventorySlotContents(par1EntityPlayer.inventory.currentItem, (ItemStack) null); - } - - return true; - } - } - } - - if (par1EntityPlayer.getCommandSenderName().equalsIgnoreCase(this.getOwnerName()) && !this.isBreedingItem(itemstack)) - { - if (!this.worldObj.isRemote) - { - this.aiSit.setSitting(!this.isSitting()); - this.isJumping = false; - this.setPathToEntity((PathEntity) null); - this.setTarget((Entity) null); - this.setAttackTarget((EntityLivingBase) null); - } - - this.sendSittingMessageToPlayer(par1EntityPlayer, !this.isSitting()); - } - } else if (itemstack != null && itemstack.itemID == ModItems.weakBloodOrb.itemID && !this.isAngry() && !this.isAggro()) - { - if (!par1EntityPlayer.capabilities.isCreativeMode) - { - --itemstack.stackSize; - } - - if (itemstack.stackSize <= 0) - { - par1EntityPlayer.inventory.setInventorySlotContents(par1EntityPlayer.inventory.currentItem, (ItemStack) null); - } - - if (!this.worldObj.isRemote) - { - if (this.rand.nextInt(1) == 0) - { - this.setTamed(true); - this.setPathToEntity((PathEntity) null); - this.setAttackTarget((EntityLivingBase) null); - this.aiSit.setSitting(true); - this.setHealth(this.maxTamedHealth); - this.setOwner(par1EntityPlayer.getCommandSenderName()); - this.playTameEffect(true); - this.worldObj.setEntityState(this, (byte) 7); - } else - { - this.playTameEffect(false); - this.worldObj.setEntityState(this, (byte) 6); - } - } - - return true; - } - - return super.interact(par1EntityPlayer); - } - - /** - * Checks if the parameter is an item which this animal can be fed to breed it (wheat, carrots or seeds depending on - * the animal type) - */ - public boolean isBreedingItem(ItemStack par1ItemStack) - { - return false; - //return par1ItemStack == null ? false : (!(Item.itemsList[par1ItemStack.itemID] instanceof ItemFood) ? false : ((ItemFood)Item.itemsList[par1ItemStack.itemID]).isWolfsFavoriteMeat()); - } - - /** - * Determines whether this wolf is angry or not. - */ - public boolean isAngry() - { - return (this.dataWatcher.getWatchableObjectByte(16) & 2) != 0; - } - - /** - * Sets whether this wolf is angry or not. - */ - public void setAngry(boolean par1) - { - byte b0 = this.dataWatcher.getWatchableObjectByte(16); - - if (par1) - { - this.dataWatcher.updateObject(16, Byte.valueOf((byte) (b0 | 2))); - } else - { - this.dataWatcher.updateObject(16, Byte.valueOf((byte) (b0 & -3))); - } - } - - /** - * Return this wolf's collar color. - */ - public int getCollarColor() - { - return this.dataWatcher.getWatchableObjectByte(20) & 15; - } - - /** - * Set this wolf's collar color. - */ - public void setCollarColor(int par1) - { - this.dataWatcher.updateObject(20, Byte.valueOf((byte) (par1 & 15))); - } - - /** - * This function is used when two same-species animals in 'love mode' breed to generate the new baby animal. - */ - public EntityWolf spawnBabyAnimal(EntityAgeable par1EntityAgeable) - { - return null; - } - - public void func_70918_i(boolean par1) - { - if (par1) - { - this.dataWatcher.updateObject(19, Byte.valueOf((byte) 1)); - } else - { - this.dataWatcher.updateObject(19, Byte.valueOf((byte) 0)); - } - } - - /** - * Returns true if the mob is currently able to mate with the specified mob. - */ - public boolean canMateWith(EntityAnimal par1EntityAnimal) - { - return false; - } - - public boolean func_70922_bv() - { - return this.dataWatcher.getWatchableObjectByte(19) == 1; - } - - /** - * Determines if an entity can be despawned, used on idle far away entities - */ - protected boolean canDespawn() - { - //return !this.isTamed() && this.ticksExisted > 2400; - return false; - } - - public boolean func_142018_a(EntityLivingBase par1EntityLivingBase, EntityLivingBase par2EntityLivingBase) - { - if (!(par1EntityLivingBase instanceof EntityCreeper) && !(par1EntityLivingBase instanceof EntityGhast)) - { - if (par1EntityLivingBase instanceof EntityWingedFireDemon) - { - EntityWingedFireDemon entitywolf = (EntityWingedFireDemon) par1EntityLivingBase; - - if (entitywolf.isTamed() && entitywolf.func_130012_q() == par2EntityLivingBase) - { - return false; - } - } - - return par1EntityLivingBase instanceof EntityPlayer && par2EntityLivingBase instanceof EntityPlayer && !((EntityPlayer) par2EntityLivingBase).canAttackPlayer((EntityPlayer) par1EntityLivingBase) ? false : !(par1EntityLivingBase instanceof EntityHorse) || !((EntityHorse) par1EntityLivingBase).isTame(); - } else - { - return false; - } - } - - public EntityAgeable createChild(EntityAgeable par1EntityAgeable) - { - return this.spawnBabyAnimal(par1EntityAgeable); - } - - /** - * Attack the specified entity using a ranged attack. - */ - public void attackEntityWithRangedAttack(EntityLivingBase par1EntityLivingBase, float par2) - { - double xCoord; - double yCoord; - double zCoord; - this.worldObj.playAuxSFXAtEntity((EntityPlayer) null, 1009, (int) this.posX, (int) this.posY, (int) this.posZ, 0); - FireProjectile hol = new FireProjectile(worldObj, this, par1EntityLivingBase, 1.8f, 0f, 20, 600); - this.worldObj.spawnEntityInWorld(hol); - } - - /** - * sets this entity's combat AI. - */ - public void setCombatTask() - { - this.tasks.removeTask(this.aiAttackOnCollide); - this.tasks.removeTask(this.aiArrowAttack); - ItemStack itemstack = this.getHeldItem(); - this.tasks.addTask(4, this.aiArrowAttack); - } -} diff --git a/BM_src/WayofTime/alchemicalWizardry/common/entity/mob/ai/PathNavigateFlying.java b/BM_src/WayofTime/alchemicalWizardry/common/entity/mob/ai/PathNavigateFlying.java deleted file mode 100644 index de146df9..00000000 --- a/BM_src/WayofTime/alchemicalWizardry/common/entity/mob/ai/PathNavigateFlying.java +++ /dev/null @@ -1,18 +0,0 @@ -package WayofTime.alchemicalWizardry.common.entity.mob.ai; - -import net.minecraft.entity.EntityLiving; -import net.minecraft.pathfinding.PathNavigate; -import net.minecraft.world.World; - -public class PathNavigateFlying extends PathNavigate -{ - public PathNavigateFlying(EntityLiving par1EntityLiving, World par2World) - { - super(par1EntityLiving, par2World); - } - - public boolean canFlyingNavigate() - { - return true; - } -} diff --git a/BM_src/WayofTime/alchemicalWizardry/common/entity/projectile/EnergyBlastProjectile.java b/BM_src/WayofTime/alchemicalWizardry/common/entity/projectile/EnergyBlastProjectile.java deleted file mode 100644 index 2569513f..00000000 --- a/BM_src/WayofTime/alchemicalWizardry/common/entity/projectile/EnergyBlastProjectile.java +++ /dev/null @@ -1,504 +0,0 @@ -package WayofTime.alchemicalWizardry.common.entity.projectile; - -import cpw.mods.fml.relauncher.Side; -import cpw.mods.fml.relauncher.SideOnly; -import net.minecraft.block.Block; -import net.minecraft.entity.Entity; -import net.minecraft.entity.EntityLivingBase; -import net.minecraft.entity.IProjectile; -import net.minecraft.entity.player.EntityPlayer; -import net.minecraft.nbt.NBTTagCompound; -import net.minecraft.potion.Potion; -import net.minecraft.potion.PotionEffect; -import net.minecraft.util.*; -import net.minecraft.world.World; - -import java.util.Iterator; -import java.util.List; - -//Shamelessly ripped off from x3n0ph0b3 -public class EnergyBlastProjectile extends Entity implements IProjectile -{ - protected int xTile = -1; - protected int yTile = -1; - protected int zTile = -1; - protected int inTile = 0; - protected int inData = 0; - protected boolean inGround = false; - /** - * The owner of this arrow. - */ - public EntityLivingBase shootingEntity; - protected int ticksInAir = 0; - protected int maxTicksInAir = 600; - private int ricochetCounter = 0; - private boolean scheduledForDeath = false; - protected int projectileDamage; - - public EnergyBlastProjectile(World par1World) - { - super(par1World); - this.setSize(0.5F, 0.5F); - } - - public EnergyBlastProjectile(World par1World, double par2, double par4, double par6) - { - super(par1World); - this.setSize(0.5F, 0.5F); - this.setPosition(par2, par4, par6); - yOffset = 0.0F; - } - - public EnergyBlastProjectile(World par1World, EntityLivingBase par2EntityPlayer, int damage) - { - super(par1World); - shootingEntity = par2EntityPlayer; - float par3 = 0.8F; - this.setSize(0.5F, 0.5F); - this.setLocationAndAngles(par2EntityPlayer.posX, par2EntityPlayer.posY + par2EntityPlayer.getEyeHeight(), par2EntityPlayer.posZ, par2EntityPlayer.rotationYaw, par2EntityPlayer.rotationPitch); - posX -= MathHelper.cos(rotationYaw / 180.0F * (float) Math.PI) * 0.16F; - posY -= 0.2D; - posZ -= MathHelper.sin(rotationYaw / 180.0F * (float) Math.PI) * 0.16F; - this.setPosition(posX, posY, posZ); - yOffset = 0.0F; - motionX = -MathHelper.sin(rotationYaw / 180.0F * (float) Math.PI) * MathHelper.cos(rotationPitch / 180.0F * (float) Math.PI); - motionZ = MathHelper.cos(rotationYaw / 180.0F * (float) Math.PI) * MathHelper.cos(rotationPitch / 180.0F * (float) Math.PI); - motionY = -MathHelper.sin(rotationPitch / 180.0F * (float) Math.PI); - this.setThrowableHeading(motionX, motionY, motionZ, par3 * 1.5F, 1.0F); - this.projectileDamage = damage; - this.maxTicksInAir = 600; - } - - public EnergyBlastProjectile(World par1World, EntityLivingBase par2EntityPlayer, int damage, int maxTicksInAir, double posX, double posY, double posZ, float rotationYaw, float rotationPitch) - { - super(par1World); - shootingEntity = par2EntityPlayer; - float par3 = 0.8F; - this.setSize(0.5F, 0.5F); - this.setLocationAndAngles(posX, posY, posZ, rotationYaw, rotationPitch); - posX -= MathHelper.cos(rotationYaw / 180.0F * (float) Math.PI) * 0.16F; - posY -= 0.2D; - posZ -= MathHelper.sin(rotationYaw / 180.0F * (float) Math.PI) * 0.16F; - this.setPosition(posX, posY, posZ); - yOffset = 0.0F; - motionX = -MathHelper.sin(rotationYaw / 180.0F * (float) Math.PI) * MathHelper.cos(rotationPitch / 180.0F * (float) Math.PI); - motionZ = MathHelper.cos(rotationYaw / 180.0F * (float) Math.PI) * MathHelper.cos(rotationPitch / 180.0F * (float) Math.PI); - motionY = -MathHelper.sin(rotationPitch / 180.0F * (float) Math.PI); - this.setThrowableHeading(motionX, motionY, motionZ, par3 * 1.5F, 1.0F); - this.projectileDamage = damage; - this.maxTicksInAir = maxTicksInAir; - } - - public EnergyBlastProjectile(World par1World, EntityLivingBase par2EntityLivingBase, EntityLivingBase par3EntityLivingBase, float par4, float par5, int damage, int maxTicksInAir) - { - super(par1World); - this.renderDistanceWeight = 10.0D; - this.shootingEntity = par2EntityLivingBase; - this.posY = par2EntityLivingBase.posY + (double) par2EntityLivingBase.getEyeHeight() - 0.10000000149011612D; - double d0 = par3EntityLivingBase.posX - par2EntityLivingBase.posX; - double d1 = par3EntityLivingBase.boundingBox.minY + (double) (par3EntityLivingBase.height / 1.5F) - this.posY; - double d2 = par3EntityLivingBase.posZ - par2EntityLivingBase.posZ; - double d3 = (double) MathHelper.sqrt_double(d0 * d0 + d2 * d2); - - if (d3 >= 1.0E-7D) - { - float f2 = (float) (Math.atan2(d2, d0) * 180.0D / Math.PI) - 90.0F; - float f3 = (float) (-(Math.atan2(d1, d3) * 180.0D / Math.PI)); - double d4 = d0 / d3; - double d5 = d2 / d3; - this.setLocationAndAngles(par2EntityLivingBase.posX + d4, this.posY, par2EntityLivingBase.posZ + d5, f2, f3); - this.yOffset = 0.0F; - float f4 = (float) d3 * 0.2F; - this.setThrowableHeading(d0, d1, d2, par4, par5); - } - - this.projectileDamage = damage; - this.maxTicksInAir = maxTicksInAir; - } - - @Override - protected void entityInit() - { - dataWatcher.addObject(16, Byte.valueOf((byte) 0)); - } - - /** - * Similar to setArrowHeading, it's point the throwable entity to a x, y, z - * direction. - */ - @Override - public void setThrowableHeading(double var1, double var3, double var5, float var7, float var8) - { - float var9 = MathHelper.sqrt_double(var1 * var1 + var3 * var3 + var5 * var5); - var1 /= var9; - var3 /= var9; - var5 /= var9; - var1 += rand.nextGaussian() * 0.007499999832361937D * var8; - var3 += rand.nextGaussian() * 0.007499999832361937D * var8; - var5 += rand.nextGaussian() * 0.007499999832361937D * var8; - var1 *= var7; - var3 *= var7; - var5 *= var7; - motionX = var1; - motionY = var3; - motionZ = var5; - float var10 = MathHelper.sqrt_double(var1 * var1 + var5 * var5); - prevRotationYaw = rotationYaw = (float) (Math.atan2(var1, var5) * 180.0D / Math.PI); - prevRotationPitch = rotationPitch = (float) (Math.atan2(var3, var10) * 180.0D / Math.PI); - } - - @Override - @SideOnly(Side.CLIENT) - /** - * Sets the position and rotation. Only difference from the other one is no bounding on the rotation. Args: posX, - * posY, posZ, yaw, pitch - */ - public void setPositionAndRotation2(double par1, double par3, double par5, float par7, float par8, int par9) - { - this.setPosition(par1, par3, par5); - this.setRotation(par7, par8); - } - - @Override - @SideOnly(Side.CLIENT) - /** - * Sets the velocity to the args. Args: x, y, z - */ - public void setVelocity(double par1, double par3, double par5) - { - motionX = par1; - motionY = par3; - motionZ = par5; - - if (prevRotationPitch == 0.0F && prevRotationYaw == 0.0F) - { - float var7 = MathHelper.sqrt_double(par1 * par1 + par5 * par5); - prevRotationYaw = rotationYaw = (float) (Math.atan2(par1, par5) * 180.0D / Math.PI); - prevRotationPitch = rotationPitch = (float) (Math.atan2(par3, var7) * 180.0D / Math.PI); - prevRotationPitch = rotationPitch; - prevRotationYaw = rotationYaw; - this.setLocationAndAngles(posX, posY, posZ, rotationYaw, rotationPitch); - } - } - - /** - * Called to update the entity's position/logic. - */ - @Override - public void onUpdate() - { - super.onUpdate(); - - if (ticksInAir > maxTicksInAir) - { - this.setDead(); - } - - if (shootingEntity == null) - { - List players = worldObj.getEntitiesWithinAABB(EntityPlayer.class, AxisAlignedBB.getBoundingBox(posX - 1, posY - 1, posZ - 1, posX + 1, posY + 1, posZ + 1)); - Iterator i = players.iterator(); - double closestDistance = Double.MAX_VALUE; - EntityPlayer closestPlayer = null; - - while (i.hasNext()) - { - EntityPlayer e = (EntityPlayer) i.next(); - double distance = e.getDistanceToEntity(this); - - if (distance < closestDistance) - { - closestPlayer = e; - } - } - - if (closestPlayer != null) - { - shootingEntity = closestPlayer; - } - } - - if (prevRotationPitch == 0.0F && prevRotationYaw == 0.0F) - { - float var1 = MathHelper.sqrt_double(motionX * motionX + motionZ * motionZ); - prevRotationYaw = rotationYaw = (float) (Math.atan2(motionX, motionZ) * 180.0D / Math.PI); - prevRotationPitch = rotationPitch = (float) (Math.atan2(motionY, var1) * 180.0D / Math.PI); - } - - int var16 = worldObj.getBlockId(xTile, yTile, zTile); - - if (var16 > 0) - { - Block.blocksList[var16].setBlockBoundsBasedOnState(worldObj, xTile, yTile, zTile); - AxisAlignedBB var2 = Block.blocksList[var16].getCollisionBoundingBoxFromPool(worldObj, xTile, yTile, zTile); - - if (var2 != null && var2.isVecInside(worldObj.getWorldVec3Pool().getVecFromPool(posX, posY, posZ))) - { - inGround = true; - } - } - - if (inGround) - { - int var18 = worldObj.getBlockId(xTile, yTile, zTile); - int var19 = worldObj.getBlockMetadata(xTile, yTile, zTile); - - if (var18 == inTile && var19 == inData) - { - // this.groundImpact(); - // this.setDead(); - } - } else - { - ++ticksInAir; - - if (ticksInAir > 1 && ticksInAir < 3) - { - //worldObj.spawnParticle("flame", posX + smallGauss(0.1D), posY + smallGauss(0.1D), posZ + smallGauss(0.1D), 0D, 0D, 0D); - for (int particles = 0; particles < 3; particles++) - { - this.doFiringParticles(); - } - } - - Vec3 var17 = worldObj.getWorldVec3Pool().getVecFromPool(posX, posY, posZ); - Vec3 var3 = worldObj.getWorldVec3Pool().getVecFromPool(posX + motionX, posY + motionY, posZ + motionZ); - MovingObjectPosition var4 = worldObj.rayTraceBlocks_do_do(var17, var3, false, true); - var17 = worldObj.getWorldVec3Pool().getVecFromPool(posX, posY, posZ); - var3 = worldObj.getWorldVec3Pool().getVecFromPool(posX + motionX, posY + motionY, posZ + motionZ); - - if (var4 != null) - { - var3 = worldObj.getWorldVec3Pool().getVecFromPool(var4.hitVec.xCoord, var4.hitVec.yCoord, var4.hitVec.zCoord); - } - - Entity var5 = null; - List var6 = worldObj.getEntitiesWithinAABBExcludingEntity(this, boundingBox.addCoord(motionX, motionY, motionZ).expand(1.0D, 1.0D, 1.0D)); - double var7 = 0.0D; - Iterator var9 = var6.iterator(); - float var11; - - while (var9.hasNext()) - { - Entity var10 = (Entity) var9.next(); - - if (var10.canBeCollidedWith() && (var10 != shootingEntity || ticksInAir >= 5)) - { - var11 = 0.3F; - AxisAlignedBB var12 = var10.boundingBox.expand(var11, var11, var11); - MovingObjectPosition var13 = var12.calculateIntercept(var17, var3); - - if (var13 != null) - { - double var14 = var17.distanceTo(var13.hitVec); - - if (var14 < var7 || var7 == 0.0D) - { - var5 = var10; - var7 = var14; - } - } - } - } - - if (var5 != null) - { - var4 = new MovingObjectPosition(var5); - } - - if (var4 != null) - { - this.onImpact(var4); - - if (scheduledForDeath) - { - this.setDead(); - } - } - - posX += motionX; - posY += motionY; - posZ += motionZ; - MathHelper.sqrt_double(motionX * motionX + motionZ * motionZ); - this.setPosition(posX, posY, posZ); - this.doBlockCollisions(); - } - } - - public void doFiringParticles() - { - worldObj.spawnParticle("mobSpellAmbient", posX + smallGauss(0.1D), posY + smallGauss(0.1D), posZ + smallGauss(0.1D), 0.5D, 0.5D, 0.5D); - worldObj.spawnParticle("flame", posX, posY, posZ, gaussian(motionX), gaussian(motionY), gaussian(motionZ)); - } - - /** - * (abstract) Protected helper method to write subclass entity data to NBT. - */ - @Override - public void writeEntityToNBT(NBTTagCompound par1NBTTagCompound) - { - par1NBTTagCompound.setShort("xTile", (short) xTile); - par1NBTTagCompound.setShort("yTile", (short) yTile); - par1NBTTagCompound.setShort("zTile", (short) zTile); - par1NBTTagCompound.setByte("inTile", (byte) inTile); - par1NBTTagCompound.setByte("inData", (byte) inData); - par1NBTTagCompound.setByte("inGround", (byte) (inGround ? 1 : 0)); - par1NBTTagCompound.setInteger("ticksInAir", ticksInAir); - par1NBTTagCompound.setInteger("maxTicksInAir", maxTicksInAir); - par1NBTTagCompound.setInteger("projectileDamage", this.projectileDamage); - } - - /** - * (abstract) Protected helper method to read subclass entity data from NBT. - */ - @Override - public void readEntityFromNBT(NBTTagCompound par1NBTTagCompound) - { - xTile = par1NBTTagCompound.getShort("xTile"); - yTile = par1NBTTagCompound.getShort("yTile"); - zTile = par1NBTTagCompound.getShort("zTile"); - inTile = par1NBTTagCompound.getByte("inTile") & 255; - inData = par1NBTTagCompound.getByte("inData") & 255; - inGround = par1NBTTagCompound.getByte("inGround") == 1; - ticksInAir = par1NBTTagCompound.getInteger("ticksInAir"); - maxTicksInAir = par1NBTTagCompound.getInteger("maxTicksInAir"); - projectileDamage = par1NBTTagCompound.getInteger("projectileDamage"); - } - - /** - * returns if this entity triggers Block.onEntityWalking on the blocks they - * walk on. used for spiders and wolves to prevent them from trampling crops - */ - @Override - protected boolean canTriggerWalking() - { - return false; - } - - @Override - @SideOnly(Side.CLIENT) - public float getShadowSize() - { - return 0.0F; - } - - /** - * Sets the amount of knockback the arrow applies when it hits a mob. - */ - public void setKnockbackStrength(int par1) - { - } - - /** - * If returns false, the item will not inflict any damage against entities. - */ - @Override - public boolean canAttackWithItem() - { - return false; - } - - /** - * Whether the arrow has a stream of critical hit particles flying behind - * it. - */ - public void setIsCritical(boolean par1) - { - byte var2 = dataWatcher.getWatchableObjectByte(16); - - if (par1) - { - dataWatcher.updateObject(16, Byte.valueOf((byte) (var2 | 1))); - } else - { - dataWatcher.updateObject(16, Byte.valueOf((byte) (var2 & -2))); - } - } - - /** - * Whether the arrow has a stream of critical hit particles flying behind - * it. - */ - public boolean getIsCritical() - { - byte var1 = dataWatcher.getWatchableObjectByte(16); - return (var1 & 1) != 0; - } - - public void onImpact(MovingObjectPosition mop) - { - if (mop.typeOfHit == EnumMovingObjectType.ENTITY && mop.entityHit != null) - { - if (mop.entityHit == shootingEntity) - { - return; - } - - this.onImpact(mop.entityHit); - } else if (mop.typeOfHit == EnumMovingObjectType.TILE) - { - worldObj.createExplosion(shootingEntity, this.posX, this.posY, this.posZ, (float) (0.1), true); - this.setDead(); - } - } - - public void onImpact(Entity mop) - { - if (mop == shootingEntity && ticksInAir > 3) - { - shootingEntity.attackEntityFrom(DamageSource.causeMobDamage(shootingEntity), 1); - this.setDead(); - } else - { - //doDamage(8 + d6(), mop); - if (mop instanceof EntityLivingBase) - { - ((EntityLivingBase) mop).addPotionEffect(new PotionEffect(Potion.weakness.id, 60, 2)); - } - - doDamage(projectileDamage, mop); - worldObj.createExplosion(shootingEntity, this.posX, this.posY, this.posZ, (float) (0.1), true); - } - - spawnHitParticles("magicCrit", 8); - this.setDead(); - } - - private int d6() - { - return rand.nextInt(6) + 1; - } - - protected void spawnHitParticles(String string, int i) - { - for (int particles = 0; particles < i; particles++) - { - worldObj.spawnParticle(string, posX, posY - (string == "portal" ? 1 : 0), posZ, gaussian(motionX), gaussian(motionY), gaussian(motionZ)); - } - } - - protected void doDamage(int i, Entity mop) - { - mop.attackEntityFrom(this.getDamageSource(), i); - } - - public DamageSource getDamageSource() - { - return DamageSource.causeMobDamage(shootingEntity); - } - - public double smallGauss(double d) - { - return (worldObj.rand.nextFloat() - 0.5D) * d; - } - - public double gaussian(double d) - { - return d + d * ((rand.nextFloat() - 0.5D) / 4); - } - - private int getRicochetMax() - { - return 0; - } -} diff --git a/BM_src/WayofTime/alchemicalWizardry/common/entity/projectile/EntityBloodLightProjectile.java b/BM_src/WayofTime/alchemicalWizardry/common/entity/projectile/EntityBloodLightProjectile.java deleted file mode 100644 index 3789195a..00000000 --- a/BM_src/WayofTime/alchemicalWizardry/common/entity/projectile/EntityBloodLightProjectile.java +++ /dev/null @@ -1,129 +0,0 @@ -package WayofTime.alchemicalWizardry.common.entity.projectile; - -import WayofTime.alchemicalWizardry.ModBlocks; -import net.minecraft.block.Block; -import net.minecraft.entity.Entity; -import net.minecraft.entity.EntityLivingBase; -import net.minecraft.potion.Potion; -import net.minecraft.util.DamageSource; -import net.minecraft.util.EnumMovingObjectType; -import net.minecraft.util.MovingObjectPosition; -import net.minecraft.world.World; - - -public class EntityBloodLightProjectile extends EnergyBlastProjectile -{ - public EntityBloodLightProjectile(World par1World) - { - super(par1World); - } - - public EntityBloodLightProjectile(World par1World, double par2, double par4, double par6) - { - super(par1World, par2, par4, par6); - } - - public EntityBloodLightProjectile(World par1World, EntityLivingBase par2EntityPlayer, int damage) - { - super(par1World, par2EntityPlayer, damage); - } - - public EntityBloodLightProjectile(World par1World, EntityLivingBase par2EntityPlayer, int damage, int maxTicksInAir, double posX, double posY, double posZ, float rotationYaw, float rotationPitch) - { - super(par1World, par2EntityPlayer, damage, maxTicksInAir, posX, posY, posZ, rotationYaw, rotationPitch); - } - - public EntityBloodLightProjectile(World par1World, EntityLivingBase par2EntityLivingBase, EntityLivingBase par3EntityLivingBase, float par4, float par5, int damage, int maxTicksInAir) - { - super(par1World, par2EntityLivingBase, par3EntityLivingBase, par4, par5, damage, maxTicksInAir); - } - - @Override - public DamageSource getDamageSource() - { - return DamageSource.causeMobDamage(shootingEntity); - } - - @Override - public void onImpact(MovingObjectPosition mop) - { - if (mop.typeOfHit == EnumMovingObjectType.ENTITY && mop.entityHit != null) - { - if (mop.entityHit == shootingEntity) - { - return; - } - - this.onImpact(mop.entityHit); - } else if (mop.typeOfHit == EnumMovingObjectType.TILE) - { - int sideHit = mop.sideHit; - int blockX = mop.blockX; - int blockY = mop.blockY; - int blockZ = mop.blockZ; - - if (sideHit == 0 && this.worldObj.isAirBlock(blockX, blockY - 1, blockZ)) - { - this.worldObj.setBlock(blockX, blockY - 1, blockZ, ModBlocks.blockBloodLight.blockID); - } - - if (sideHit == 1 && this.worldObj.isAirBlock(blockX, blockY + 1, blockZ)) - { - this.worldObj.setBlock(blockX, blockY + 1, blockZ, ModBlocks.blockBloodLight.blockID); - } - - if (sideHit == 2 && this.worldObj.isAirBlock(blockX, blockY, blockZ - 1)) - { - this.worldObj.setBlock(blockX, blockY, blockZ - 1, ModBlocks.blockBloodLight.blockID); - } - - if (sideHit == 3 && this.worldObj.isAirBlock(blockX, blockY, blockZ + 1)) - { - this.worldObj.setBlock(blockX, blockY, blockZ + 1, ModBlocks.blockBloodLight.blockID); - } - - if (sideHit == 4 && this.worldObj.isAirBlock(blockX - 1, blockY, blockZ)) - { - this.worldObj.setBlock(blockX - 1, blockY, blockZ, ModBlocks.blockBloodLight.blockID); - } - - if (sideHit == 5 && this.worldObj.isAirBlock(blockX + 1, blockY, blockZ)) - { - this.worldObj.setBlock(blockX + 1, blockY, blockZ, ModBlocks.blockBloodLight.blockID); - } - - //worldObj.createExplosion(this, this.posX, this.posY, this.posZ, (float)(0.1), true); - } - - this.setDead(); - } - - @Override - public void onImpact(Entity mop) - { - if (mop == shootingEntity && ticksInAir > 3) - { - shootingEntity.attackEntityFrom(DamageSource.causeMobDamage(shootingEntity), 1); - this.setDead(); - } else - { - //doDamage(8 + d6(), mop); - if (mop instanceof EntityLivingBase) - { - - ((EntityLivingBase) mop).attackEntityFrom(DamageSource.causeMobDamage(shootingEntity), 1); - - } - - //worldObj.createExplosion(this, this.posX, this.posY, this.posZ, (float)(0.1), true); - } - - if (worldObj.isAirBlock((int) this.posX, (int) this.posY, (int) this.posZ)) - { - worldObj.setBlock((int) this.posX, (int) this.posY, (int) this.posZ, Block.fire.blockID); - } - - spawnHitParticles("magicCrit", 8); - this.setDead(); - } -} diff --git a/BM_src/WayofTime/alchemicalWizardry/common/entity/projectile/EntityEnergyBazookaMainProjectile.java b/BM_src/WayofTime/alchemicalWizardry/common/entity/projectile/EntityEnergyBazookaMainProjectile.java deleted file mode 100644 index e34185b8..00000000 --- a/BM_src/WayofTime/alchemicalWizardry/common/entity/projectile/EntityEnergyBazookaMainProjectile.java +++ /dev/null @@ -1,101 +0,0 @@ -package WayofTime.alchemicalWizardry.common.entity.projectile; - -import net.minecraft.entity.Entity; -import net.minecraft.entity.EntityLivingBase; -import net.minecraft.util.DamageSource; -import net.minecraft.util.EnumMovingObjectType; -import net.minecraft.util.MovingObjectPosition; -import net.minecraft.world.World; - -public class EntityEnergyBazookaMainProjectile extends EnergyBlastProjectile -{ - public EntityEnergyBazookaMainProjectile(World par1World) - { - super(par1World); - } - - public EntityEnergyBazookaMainProjectile(World par1World, double par2, double par4, double par6) - { - super(par1World, par2, par4, par6); - } - - public EntityEnergyBazookaMainProjectile(World par1World, EntityLivingBase par2EntityPlayer, int damage) - { - super(par1World, par2EntityPlayer, damage); - } - - public EntityEnergyBazookaMainProjectile(World par1World, EntityLivingBase par2EntityPlayer, int damage, int maxTicksInAir, double posX, double posY, double posZ, float rotationYaw, float rotationPitch) - { - super(par1World, par2EntityPlayer, damage, maxTicksInAir, posX, posY, posZ, rotationYaw, rotationPitch); - } - - public EntityEnergyBazookaMainProjectile(World par1World, EntityLivingBase par2EntityLivingBase, EntityLivingBase par3EntityLivingBase, float par4, float par5, int damage, int maxTicksInAir) - { - super(par1World, par2EntityLivingBase, par3EntityLivingBase, par4, par5, damage, maxTicksInAir); - } - - @Override - public DamageSource getDamageSource() - { - return DamageSource.causeMobDamage(shootingEntity); - } - - @Override - public void onImpact(MovingObjectPosition mop) - { - if (mop.typeOfHit == EnumMovingObjectType.ENTITY && mop.entityHit != null) - { - if (mop.entityHit == shootingEntity) - { - return; - } - - this.onImpact(mop.entityHit); - } else if (mop.typeOfHit == EnumMovingObjectType.TILE) - { - worldObj.createExplosion(this.shootingEntity, this.posX, this.posY, this.posZ, (float) (5.0f), false); - this.spawnSecondaryProjectiles(); - } - - this.setDead(); - } - - @Override - public void onImpact(Entity mop) - { - if (mop == shootingEntity && ticksInAir > 3) - { - shootingEntity.attackEntityFrom(DamageSource.causeMobDamage(shootingEntity), 1); - this.setDead(); - } else - { - //doDamage(8 + d6(), mop); - if (mop instanceof EntityLivingBase) - { - spawnSecondaryProjectiles(); - } - - worldObj.createExplosion(this.shootingEntity, this.posX, this.posY, this.posZ, (float) (5.0f), false); - } - - spawnHitParticles("magicCrit", 8); - this.setDead(); - } - - public void spawnSecondaryProjectiles() - { - for (int i = 0; i < 20; i++) - { - EntityEnergyBazookaSecondaryProjectile secProj = new EntityEnergyBazookaSecondaryProjectile(worldObj, this.posX, this.posY, this.posZ, 15); - secProj.shootingEntity = this.shootingEntity; - float xVel = rand.nextFloat() - rand.nextFloat(); - float yVel = rand.nextFloat() - rand.nextFloat(); - float zVel = rand.nextFloat() - rand.nextFloat(); - float wantedVel = 0.5f; - secProj.motionX = xVel * wantedVel; - secProj.motionY = yVel * wantedVel; - secProj.motionZ = zVel * wantedVel; - worldObj.spawnEntityInWorld(secProj); - } - } -} diff --git a/BM_src/WayofTime/alchemicalWizardry/common/entity/projectile/EntityEnergyBazookaSecondaryProjectile.java b/BM_src/WayofTime/alchemicalWizardry/common/entity/projectile/EntityEnergyBazookaSecondaryProjectile.java deleted file mode 100644 index f4997ab6..00000000 --- a/BM_src/WayofTime/alchemicalWizardry/common/entity/projectile/EntityEnergyBazookaSecondaryProjectile.java +++ /dev/null @@ -1,508 +0,0 @@ -package WayofTime.alchemicalWizardry.common.entity.projectile; - -import cpw.mods.fml.relauncher.Side; -import cpw.mods.fml.relauncher.SideOnly; -import net.minecraft.block.Block; -import net.minecraft.entity.Entity; -import net.minecraft.entity.EntityLivingBase; -import net.minecraft.entity.IProjectile; -import net.minecraft.entity.player.EntityPlayer; -import net.minecraft.nbt.NBTTagCompound; -import net.minecraft.util.*; -import net.minecraft.world.World; - -import java.util.Iterator; -import java.util.List; - -public class EntityEnergyBazookaSecondaryProjectile extends EnergyBlastProjectile implements IProjectile -{ - private int xTile = -1; - private int yTile = -1; - private int zTile = -1; - private int inTile = 0; - private int inData = 0; - private boolean inGround = false; - /** - * The owner of this arrow. - */ - public EntityLivingBase shootingEntity; - private int ticksInAir = 0; - private int ricochetCounter = 0; - private boolean scheduledForDeath = false; - public int damage; - - public EntityEnergyBazookaSecondaryProjectile(World par1World) - { - super(par1World); - this.setSize(0.5F, 0.5F); - damage = 5; - } - - public EntityEnergyBazookaSecondaryProjectile(World par1World, double par2, double par4, double par6, int damage) - { - super(par1World); - this.setSize(0.5F, 0.5F); - this.setPosition(par2, par4, par6); - yOffset = 0.0F; - this.damage = damage; - } - - public EntityEnergyBazookaSecondaryProjectile(World par1World, EntityPlayer par2EntityPlayer, int damage) - { - super(par1World); - shootingEntity = par2EntityPlayer; - float par3 = 0.8F; - this.setSize(0.1F, 0.1F); - this.setLocationAndAngles(par2EntityPlayer.posX, par2EntityPlayer.posY + par2EntityPlayer.getEyeHeight(), par2EntityPlayer.posZ, par2EntityPlayer.rotationYaw, par2EntityPlayer.rotationPitch); - posX -= MathHelper.cos(rotationYaw / 180.0F * (float) Math.PI) * 0.16F; - posY -= 0.2D; - posZ -= MathHelper.sin(rotationYaw / 180.0F * (float) Math.PI) * 0.16F; - this.setPosition(posX, posY, posZ); - yOffset = 0.0F; - motionX = -MathHelper.sin(rotationYaw / 180.0F * (float) Math.PI) * MathHelper.cos(rotationPitch / 180.0F * (float) Math.PI); - motionZ = MathHelper.cos(rotationYaw / 180.0F * (float) Math.PI) * MathHelper.cos(rotationPitch / 180.0F * (float) Math.PI); - motionY = -MathHelper.sin(rotationPitch / 180.0F * (float) Math.PI); - this.setThrowableHeading(motionX, motionY, motionZ, par3 * 1.5F, 1.0F); - this.damage = damage; - } - - @Override - protected void entityInit() - { - dataWatcher.addObject(16, Byte.valueOf((byte) 0)); - } - - /** - * Similar to setArrowHeading, it's point the throwable entity to a x, y, z - * direction. - */ - @Override - public void setThrowableHeading(double var1, double var3, double var5, float var7, float var8) - { - float var9 = MathHelper.sqrt_double(var1 * var1 + var3 * var3 + var5 * var5); - var1 /= var9; - var3 /= var9; - var5 /= var9; - var1 += rand.nextGaussian() * 0.007499999832361937D * var8; - var3 += rand.nextGaussian() * 0.007499999832361937D * var8; - var5 += rand.nextGaussian() * 0.007499999832361937D * var8; - var1 *= var7; - var3 *= var7; - var5 *= var7; - motionX = var1; - motionY = var3; - motionZ = var5; - float var10 = MathHelper.sqrt_double(var1 * var1 + var5 * var5); - prevRotationYaw = rotationYaw = (float) (Math.atan2(var1, var5) * 180.0D / Math.PI); - prevRotationPitch = rotationPitch = (float) (Math.atan2(var3, var10) * 180.0D / Math.PI); - } - - @Override - @SideOnly(Side.CLIENT) - /** - * Sets the position and rotation. Only difference from the other one is no bounding on the rotation. Args: posX, - * posY, posZ, yaw, pitch - */ - public void setPositionAndRotation2(double par1, double par3, double par5, float par7, float par8, int par9) - { - this.setPosition(par1, par3, par5); - this.setRotation(par7, par8); - } - - @Override - @SideOnly(Side.CLIENT) - /** - * Sets the velocity to the args. Args: x, y, z - */ - public void setVelocity(double par1, double par3, double par5) - { - motionX = par1; - motionY = par3; - motionZ = par5; - - if (prevRotationPitch == 0.0F && prevRotationYaw == 0.0F) - { - float var7 = MathHelper.sqrt_double(par1 * par1 + par5 * par5); - prevRotationYaw = rotationYaw = (float) (Math.atan2(par1, par5) * 180.0D / Math.PI); - prevRotationPitch = rotationPitch = (float) (Math.atan2(par3, var7) * 180.0D / Math.PI); - prevRotationPitch = rotationPitch; - prevRotationYaw = rotationYaw; - this.setLocationAndAngles(posX, posY, posZ, rotationYaw, rotationPitch); - } - } - - /** - * Called to update the entity's position/logic. - */ - @Override - public void onUpdate() - { - if (ticksInAir > 600) - { - this.setDead(); - } - - if (shootingEntity == null) - { - List players = worldObj.getEntitiesWithinAABB(EntityPlayer.class, AxisAlignedBB.getBoundingBox(posX - 1, posY - 1, posZ - 1, posX + 1, posY + 1, posZ + 1)); - Iterator i = players.iterator(); - double closestDistance = Double.MAX_VALUE; - EntityPlayer closestPlayer = null; - - while (i.hasNext()) - { - EntityPlayer e = (EntityPlayer) i.next(); - double distance = e.getDistanceToEntity(this); - - if (distance < closestDistance) - { - closestPlayer = e; - } - } - - if (closestPlayer != null) - { - shootingEntity = closestPlayer; - } - } - - if (prevRotationPitch == 0.0F && prevRotationYaw == 0.0F) - { - float var1 = MathHelper.sqrt_double(motionX * motionX + motionZ * motionZ); - prevRotationYaw = rotationYaw = (float) (Math.atan2(motionX, motionZ) * 180.0D / Math.PI); - prevRotationPitch = rotationPitch = (float) (Math.atan2(motionY, var1) * 180.0D / Math.PI); - } - - int var16 = worldObj.getBlockId(xTile, yTile, zTile); - - if (var16 > 0) - { - Block.blocksList[var16].setBlockBoundsBasedOnState(worldObj, xTile, yTile, zTile); - AxisAlignedBB var2 = Block.blocksList[var16].getCollisionBoundingBoxFromPool(worldObj, xTile, yTile, zTile); - - if (var2 != null && var2.isVecInside(worldObj.getWorldVec3Pool().getVecFromPool(posX, posY, posZ))) - { - inGround = true; - } - } - - if (inGround) - { - int var18 = worldObj.getBlockId(xTile, yTile, zTile); - int var19 = worldObj.getBlockMetadata(xTile, yTile, zTile); - - if (var18 == inTile && var19 == inData) - { - // this.groundImpact(); - // this.setDead(); - } - } else - { - ++ticksInAir; - - if (ticksInAir > 1 && ticksInAir < 3) - { - worldObj.spawnParticle("flame", posX + smallGauss(0.1D), posY + smallGauss(0.1D), posZ + smallGauss(0.1D), 0D, 0D, 0D); - - for (int particles = 0; particles < 3; particles++) - { - this.doFiringParticles(); - } - } - - Vec3 var17 = worldObj.getWorldVec3Pool().getVecFromPool(posX, posY, posZ); - Vec3 var3 = worldObj.getWorldVec3Pool().getVecFromPool(posX + motionX, posY + motionY, posZ + motionZ); - MovingObjectPosition var4 = worldObj.rayTraceBlocks_do_do(var17, var3, false, true); - var17 = worldObj.getWorldVec3Pool().getVecFromPool(posX, posY, posZ); - var3 = worldObj.getWorldVec3Pool().getVecFromPool(posX + motionX, posY + motionY, posZ + motionZ); - - if (var4 != null) - { - var3 = worldObj.getWorldVec3Pool().getVecFromPool(var4.hitVec.xCoord, var4.hitVec.yCoord, var4.hitVec.zCoord); - } - - Entity var5 = null; - List var6 = worldObj.getEntitiesWithinAABBExcludingEntity(this, boundingBox.addCoord(motionX, motionY, motionZ).expand(1.0D, 1.0D, 1.0D)); - double var7 = 0.0D; - Iterator var9 = var6.iterator(); - float var11; - - while (var9.hasNext()) - { - Entity var10 = (Entity) var9.next(); - - if (var10.canBeCollidedWith() && (var10 != shootingEntity || ticksInAir >= 5)) - { - var11 = 0.3F; - AxisAlignedBB var12 = var10.boundingBox.expand(var11, var11, var11); - MovingObjectPosition var13 = var12.calculateIntercept(var17, var3); - - if (var13 != null) - { - double var14 = var17.distanceTo(var13.hitVec); - - if (var14 < var7 || var7 == 0.0D) - { - var5 = var10; - var7 = var14; - } - } - } - } - - if (var5 != null) - { - var4 = new MovingObjectPosition(var5); - } - - if (var4 != null) - { - this.onImpact(var4); - - if (scheduledForDeath) - { - this.setDead(); - } - } - - posX += motionX; - posY += motionY; - posZ += motionZ; - MathHelper.sqrt_double(motionX * motionX + motionZ * motionZ); - this.setPosition(posX, posY, posZ); - motionY -= 0.1f; //TODO - this.doBlockCollisions(); - } - } - - public void doFiringParticles() - { - worldObj.spawnParticle("mobSpellAmbient", posX + smallGauss(0.1D), posY + smallGauss(0.1D), posZ + smallGauss(0.1D), 0.5D, 0.5D, 0.5D); - worldObj.spawnParticle("flame", posX, posY, posZ, gaussian(motionX), gaussian(motionY), gaussian(motionZ)); - } - - /** - * (abstract) Protected helper method to write subclass entity data to NBT. - */ - @Override - public void writeEntityToNBT(NBTTagCompound par1NBTTagCompound) - { - par1NBTTagCompound.setShort("xTile", (short) xTile); - par1NBTTagCompound.setShort("yTile", (short) yTile); - par1NBTTagCompound.setShort("zTile", (short) zTile); - par1NBTTagCompound.setByte("inTile", (byte) inTile); - par1NBTTagCompound.setByte("inData", (byte) inData); - par1NBTTagCompound.setByte("inGround", (byte) (inGround ? 1 : 0)); - } - - /** - * (abstract) Protected helper method to read subclass entity data from NBT. - */ - @Override - public void readEntityFromNBT(NBTTagCompound par1NBTTagCompound) - { - xTile = par1NBTTagCompound.getShort("xTile"); - yTile = par1NBTTagCompound.getShort("yTile"); - zTile = par1NBTTagCompound.getShort("zTile"); - inTile = par1NBTTagCompound.getByte("inTile") & 255; - inData = par1NBTTagCompound.getByte("inData") & 255; - inGround = par1NBTTagCompound.getByte("inGround") == 1; - } - - /** - * returns if this entity triggers Block.onEntityWalking on the blocks they - * walk on. used for spiders and wolves to prevent them from trampling crops - */ - @Override - protected boolean canTriggerWalking() - { - return false; - } - - @Override - @SideOnly(Side.CLIENT) - public float getShadowSize() - { - return 0.0F; - } - - /** - * Sets the amount of knockback the arrow applies when it hits a mob. - */ - public void setKnockbackStrength(int par1) - { - } - - /** - * If returns false, the item will not inflict any damage against entities. - */ - @Override - public boolean canAttackWithItem() - { - return false; - } - - /** - * Whether the arrow has a stream of critical hit particles flying behind - * it. - */ - public void setIsCritical(boolean par1) - { - byte var2 = dataWatcher.getWatchableObjectByte(16); - - if (par1) - { - dataWatcher.updateObject(16, Byte.valueOf((byte) (var2 | 1))); - } else - { - dataWatcher.updateObject(16, Byte.valueOf((byte) (var2 & -2))); - } - } - - /** - * Whether the arrow has a stream of critical hit particles flying behind - * it. - */ - public boolean getIsCritical() - { - byte var1 = dataWatcher.getWatchableObjectByte(16); - return (var1 & 1) != 0; - } - - public void onImpact(MovingObjectPosition mop) - { - if (mop.typeOfHit == EnumMovingObjectType.ENTITY && mop.entityHit != null) - { - if (mop.entityHit == shootingEntity) - { - return; - } - - this.onImpact(mop.entityHit); - } else if (mop.typeOfHit == EnumMovingObjectType.TILE) - { - this.groundImpact(mop.sideHit); - worldObj.createExplosion(shootingEntity, posX, posY, posZ, 2, false); - } - } - - public void onImpact(Entity mop) - { - if (mop == shootingEntity && ticksInAir > 3) - { - shootingEntity.attackEntityFrom(DamageSource.causeMobDamage(shootingEntity), 1); - this.setDead(); - } else - { - doDamage(this.damage + d6(), mop); - worldObj.createExplosion(shootingEntity, posX, posY, posZ, 2, false); - } - - spawnHitParticles("magicCrit", 8); - this.setDead(); - } - - private int d6() - { - return rand.nextInt(6) + 1; - } - - public void spawnHitParticles(String string, int i) - { - for (int particles = 0; particles < i; particles++) - { - worldObj.spawnParticle(string, posX, posY - (string == "portal" ? 1 : 0), posZ, gaussian(motionX), gaussian(motionY), gaussian(motionZ)); - } - } - - public void doDamage(int i, Entity mop) - { - mop.attackEntityFrom(this.getDamageSource(), i); - } - - public DamageSource getDamageSource() - { - return DamageSource.causeMobDamage(shootingEntity); - } - - public void groundImpact(int sideHit) - { - this.ricochet(sideHit); - } - - public double smallGauss(double d) - { - return (worldObj.rand.nextFloat() - 0.5D) * d; - } - - public double gaussian(double d) - { - return d + d * ((rand.nextFloat() - 0.5D) / 4); - } - - private void ricochet(int sideHit) - { - switch (sideHit) - { - case 0: - case 1: - // topHit, bottomHit, reflect Y - motionY = motionY * -1; - break; - - case 2: - case 3: - // westHit, eastHit, reflect Z - motionZ = motionZ * -1; - break; - - case 4: - case 5: - // southHit, northHit, reflect X - motionX = motionX * -1; - break; - } - - ricochetCounter++; - - if (ricochetCounter > this.getRicochetMax()) - { - scheduledForDeath = true; - - for (int particles = 0; particles < 4; particles++) - { - switch (sideHit) - { - case 0: - worldObj.spawnParticle("smoke", posX, posY, posZ, gaussian(0.1D), -gaussian(0.1D), gaussian(0.1D)); - break; - - case 1: - worldObj.spawnParticle("smoke", posX, posY, posZ, gaussian(0.1D), gaussian(0.1D), gaussian(0.1D)); - break; - - case 2: - worldObj.spawnParticle("smoke", posX, posY, posZ, gaussian(0.1D), gaussian(0.1D), -gaussian(0.1D)); - break; - - case 3: - worldObj.spawnParticle("smoke", posX, posY, posZ, gaussian(0.1D), gaussian(0.1D), gaussian(0.1D)); - break; - - case 4: - worldObj.spawnParticle("smoke", posX, posY, posZ, -gaussian(0.1D), gaussian(0.1D), gaussian(0.1D)); - break; - - case 5: - worldObj.spawnParticle("smoke", posX, posY, posZ, gaussian(0.1D), gaussian(0.1D), gaussian(0.1D)); - break; - } - } - } - } - - private int getRicochetMax() - { - return 3; - } -} diff --git a/BM_src/WayofTime/alchemicalWizardry/common/entity/projectile/EntityMeteor.java b/BM_src/WayofTime/alchemicalWizardry/common/entity/projectile/EntityMeteor.java deleted file mode 100644 index f3dcf8b2..00000000 --- a/BM_src/WayofTime/alchemicalWizardry/common/entity/projectile/EntityMeteor.java +++ /dev/null @@ -1,65 +0,0 @@ -package WayofTime.alchemicalWizardry.common.entity.projectile; - -import WayofTime.alchemicalWizardry.common.summoning.meteor.MeteorRegistry; -import net.minecraft.entity.Entity; -import net.minecraft.util.DamageSource; -import net.minecraft.util.EnumMovingObjectType; -import net.minecraft.util.MovingObjectPosition; -import net.minecraft.world.World; - -public class EntityMeteor extends EnergyBlastProjectile -{ - private int meteorID; - - public EntityMeteor(World par1World) - { - super(par1World); - this.meteorID = 0; - } - - public EntityMeteor(World par1World, double par2, double par4, double par6, int meteorID) - { - super(par1World, par2, par4, par6); - this.meteorID = meteorID; - } - - @Override - public DamageSource getDamageSource() - { - return DamageSource.fallingBlock; - } - - @Override - public void onImpact(MovingObjectPosition mop) - { - if (worldObj.isRemote) - { - return; - } - - if (mop.typeOfHit == EnumMovingObjectType.ENTITY && mop.entityHit != null) - { - this.onImpact(mop.entityHit); - } else if (mop.typeOfHit == EnumMovingObjectType.TILE) - { - MeteorRegistry.createMeteorImpact(worldObj, mop.blockX, mop.blockY, mop.blockZ, this.meteorID); - } - - this.setDead(); - } - - @Override - public void onImpact(Entity mop) - { - if (mop == shootingEntity && ticksInAir > 3) - { - shootingEntity.attackEntityFrom(DamageSource.causeMobDamage(shootingEntity), 1); - this.setDead(); - } else - { - MeteorRegistry.createMeteorImpact(worldObj, (int) this.posX, (int) this.posY, (int) this.posZ, meteorID); - } - - this.setDead(); - } -} diff --git a/BM_src/WayofTime/alchemicalWizardry/common/entity/projectile/ExplosionProjectile.java b/BM_src/WayofTime/alchemicalWizardry/common/entity/projectile/ExplosionProjectile.java deleted file mode 100644 index 16f1f03b..00000000 --- a/BM_src/WayofTime/alchemicalWizardry/common/entity/projectile/ExplosionProjectile.java +++ /dev/null @@ -1,135 +0,0 @@ -package WayofTime.alchemicalWizardry.common.entity.projectile; - -import net.minecraft.entity.Entity; -import net.minecraft.entity.EntityLivingBase; -import net.minecraft.nbt.NBTTagCompound; -import net.minecraft.util.DamageSource; -import net.minecraft.util.EnumMovingObjectType; -import net.minecraft.util.MovingObjectPosition; -import net.minecraft.world.World; - -public class ExplosionProjectile extends EnergyBlastProjectile -{ - protected boolean causesEnvDamage; - - public ExplosionProjectile(World par1World) - { - super(par1World); - } - - public ExplosionProjectile(World par1World, double par2, double par4, double par6) - { - super(par1World, par2, par4, par6); - } - - public ExplosionProjectile(World par1World, EntityLivingBase par2EntityPlayer, int damage, boolean flag) - { - super(par1World, par2EntityPlayer, damage); - causesEnvDamage = flag; - } - - public ExplosionProjectile(World par1World, EntityLivingBase par2EntityPlayer, int damage, int maxTicksInAir, double posX, double posY, double posZ, float rotationYaw, float rotationPitch, boolean flag) - { - super(par1World, par2EntityPlayer, damage, maxTicksInAir, posX, posY, posZ, rotationYaw, rotationPitch); - causesEnvDamage = flag; - } - - @Override - public DamageSource getDamageSource() - { - return DamageSource.causeMobDamage(shootingEntity); - } - - @Override - public void onImpact(MovingObjectPosition mop) - { - if (mop.typeOfHit == EnumMovingObjectType.ENTITY && mop.entityHit != null) - { - if (mop.entityHit == shootingEntity) - { - return; - } - - worldObj.createExplosion(this, this.posX, this.posY, this.posZ, (float) (2), causesEnvDamage); - //this.onImpact(mop.entityHit); - } else if (mop.typeOfHit == EnumMovingObjectType.TILE) - { -// for(int i=-1;i<=1;i++) -// { -// for(int j=-1;j<=1;j++) -// { -// for(int k=-1;k<=1;k++) -// { -// if(worldObj.isAirBlock((int)this.posX+i, (int)this.posY+j, (int)this.posZ+k)) -// { -// worldObj.setBlock( (int)this.posX+i, (int)this.posY+j, (int)this.posZ+k,Block.fire.blockID); -// } -// } -// } -// } - worldObj.createExplosion(this, this.posX, this.posY, this.posZ, (float) (2), causesEnvDamage); - } - - this.setDead(); - } - - @Override - public void onImpact(Entity mop) - { - if (mop == shootingEntity && ticksInAir > 3) - { - shootingEntity.attackEntityFrom(DamageSource.causeMobDamage(shootingEntity), 1); - this.setDead(); - } else - { - //doDamage(8 + d6(), mop); - if (mop instanceof EntityLivingBase) - { - //((EntityLivingBase)mop).addPotionEffect(new PotionEffect(Potion.weakness.id, 60,2)); - //((EntityLivingBase)mop).setFire(50); - //((EntityLivingBase)mop).setRevengeTarget(shootingEntity); - if (((EntityLivingBase) mop).isImmuneToFire()) - { - doDamage((int) (projectileDamage), mop); - } else - { - doDamage(projectileDamage, mop); - } - } - - //worldObj.createExplosion(this, this.posX, this.posY, this.posZ, (float)(0.1), true); - } - - if (worldObj.isAirBlock((int) this.posX, (int) this.posY, (int) this.posZ)) - { - //worldObj.setBlock((int)this.posX, (int)this.posY, (int)this.posZ,Block.fire.blockID); - } - - spawnHitParticles("magicCrit", 8); - this.setDead(); - } - - @Override - public void doFiringParticles() - { - worldObj.spawnParticle("mobSpellAmbient", posX + smallGauss(0.1D), posY + smallGauss(0.1D), posZ + smallGauss(0.1D), 0.5D, 0.5D, 0.5D); - worldObj.spawnParticle("explode", posX, posY, posZ, gaussian(motionX), gaussian(motionY), gaussian(motionZ)); - } - - @Override - public void writeEntityToNBT(NBTTagCompound par1NBTTagCompound) - { - super.writeEntityToNBT(par1NBTTagCompound); - par1NBTTagCompound.setBoolean("causesEnvDamage", causesEnvDamage); - } - - /** - * (abstract) Protected helper method to read subclass entity data from NBT. - */ - @Override - public void readEntityFromNBT(NBTTagCompound par1NBTTagCompound) - { - super.readEntityFromNBT(par1NBTTagCompound); - causesEnvDamage = par1NBTTagCompound.getBoolean("causesEnvDamage"); - } -} diff --git a/BM_src/WayofTime/alchemicalWizardry/common/entity/projectile/FireProjectile.java b/BM_src/WayofTime/alchemicalWizardry/common/entity/projectile/FireProjectile.java deleted file mode 100644 index 07aa9ad2..00000000 --- a/BM_src/WayofTime/alchemicalWizardry/common/entity/projectile/FireProjectile.java +++ /dev/null @@ -1,115 +0,0 @@ -package WayofTime.alchemicalWizardry.common.entity.projectile; - -import net.minecraft.block.Block; -import net.minecraft.entity.Entity; -import net.minecraft.entity.EntityLivingBase; -import net.minecraft.potion.Potion; -import net.minecraft.util.DamageSource; -import net.minecraft.util.EnumMovingObjectType; -import net.minecraft.util.MovingObjectPosition; -import net.minecraft.world.World; - -public class FireProjectile extends EnergyBlastProjectile -{ - public FireProjectile(World par1World) - { - super(par1World); - } - - public FireProjectile(World par1World, double par2, double par4, double par6) - { - super(par1World, par2, par4, par6); - } - - public FireProjectile(World par1World, EntityLivingBase par2EntityPlayer, int damage) - { - super(par1World, par2EntityPlayer, damage); - } - - public FireProjectile(World par1World, EntityLivingBase par2EntityPlayer, int damage, int maxTicksInAir, double posX, double posY, double posZ, float rotationYaw, float rotationPitch) - { - super(par1World, par2EntityPlayer, damage, maxTicksInAir, posX, posY, posZ, rotationYaw, rotationPitch); - } - - public FireProjectile(World par1World, EntityLivingBase par2EntityLivingBase, EntityLivingBase par3EntityLivingBase, float par4, float par5, int damage, int maxTicksInAir) - { - super(par1World, par2EntityLivingBase, par3EntityLivingBase, par4, par5, damage, maxTicksInAir); - } - - @Override - public DamageSource getDamageSource() - { - return DamageSource.causeMobDamage(shootingEntity); - } - - @Override - public void onImpact(MovingObjectPosition mop) - { - if (mop.typeOfHit == EnumMovingObjectType.ENTITY && mop.entityHit != null) - { - if (mop.entityHit == shootingEntity) - { - return; - } - - this.onImpact(mop.entityHit); - } else if (mop.typeOfHit == EnumMovingObjectType.TILE) - { - for (int i = -1; i <= 1; i++) - { - for (int j = -1; j <= 1; j++) - { - for (int k = -1; k <= 1; k++) - { - if (worldObj.isAirBlock((int) this.posX + i, (int) this.posY + j, (int) this.posZ + k)) - { - worldObj.setBlock((int) this.posX + i, (int) this.posY + j, (int) this.posZ + k, Block.fire.blockID); - } - } - } - } - - //worldObj.createExplosion(this, this.posX, this.posY, this.posZ, (float)(0.1), true); - } - - this.setDead(); - } - - @Override - public void onImpact(Entity mop) - { - if (mop == shootingEntity && ticksInAir > 3) - { - shootingEntity.attackEntityFrom(DamageSource.causeMobDamage(shootingEntity), 1); - this.setDead(); - } else - { - //doDamage(8 + d6(), mop); - if (mop instanceof EntityLivingBase) - { - //((EntityLivingBase)mop).addPotionEffect(new PotionEffect(Potion.weakness.id, 60,2)); - ((EntityLivingBase) mop).setFire(50); - ((EntityLivingBase) mop).setRevengeTarget(shootingEntity); - - if (((EntityLivingBase) mop).isPotionActive(Potion.fireResistance) || ((EntityLivingBase) mop).isImmuneToFire()) - { - ((EntityLivingBase) mop).attackEntityFrom(DamageSource.causeMobDamage(shootingEntity), 1); - } else - { - doDamage(projectileDamage, mop); - ((EntityLivingBase) mop).hurtResistantTime = 0; - } - } - - //worldObj.createExplosion(this, this.posX, this.posY, this.posZ, (float)(0.1), true); - } - - if (worldObj.isAirBlock((int) this.posX, (int) this.posY, (int) this.posZ)) - { - worldObj.setBlock((int) this.posX, (int) this.posY, (int) this.posZ, Block.fire.blockID); - } - - spawnHitParticles("magicCrit", 8); - this.setDead(); - } -} diff --git a/BM_src/WayofTime/alchemicalWizardry/common/entity/projectile/HolyProjectile.java b/BM_src/WayofTime/alchemicalWizardry/common/entity/projectile/HolyProjectile.java deleted file mode 100644 index 1323874a..00000000 --- a/BM_src/WayofTime/alchemicalWizardry/common/entity/projectile/HolyProjectile.java +++ /dev/null @@ -1,118 +0,0 @@ -package WayofTime.alchemicalWizardry.common.entity.projectile; - -import WayofTime.alchemicalWizardry.common.PacketHandler; -import cpw.mods.fml.common.network.PacketDispatcher; -import net.minecraft.entity.Entity; -import net.minecraft.entity.EntityLivingBase; -import net.minecraft.util.DamageSource; -import net.minecraft.util.EnumMovingObjectType; -import net.minecraft.util.MovingObjectPosition; -import net.minecraft.world.World; - -public class HolyProjectile extends EnergyBlastProjectile -{ - public HolyProjectile(World par1World) - { - super(par1World); - } - - public HolyProjectile(World par1World, double par2, double par4, double par6) - { - super(par1World, par2, par4, par6); - } - - public HolyProjectile(World par1World, EntityLivingBase par2EntityPlayer, int damage) - { - super(par1World, par2EntityPlayer, damage); - } - - public HolyProjectile(World par1World, EntityLivingBase par2EntityPlayer, int damage, int maxTicksInAir, double posX, double posY, double posZ, float rotationYaw, float rotationPitch) - { - super(par1World, par2EntityPlayer, damage, maxTicksInAir, posX, posY, posZ, rotationYaw, rotationPitch); - } - - public HolyProjectile(World par1World, EntityLivingBase par2EntityLivingBase, EntityLivingBase par3EntityLivingBase, float par4, float par5, int damage, int maxTicksInAir) - { - super(par1World, par2EntityLivingBase, par3EntityLivingBase, par4, par5, damage, maxTicksInAir); - } - - @Override - public DamageSource getDamageSource() - { - return DamageSource.causeMobDamage(shootingEntity); - } - - @Override - public void onImpact(MovingObjectPosition mop) - { - if (mop.typeOfHit == EnumMovingObjectType.ENTITY && mop.entityHit != null) - { - if (mop.entityHit == shootingEntity) - { - return; - } - - this.onImpact(mop.entityHit); - } else if (mop.typeOfHit == EnumMovingObjectType.TILE) - { -// for(int i=-1;i<=1;i++) -// { -// for(int j=-1;j<=1;j++) -// { -// for(int k=-1;k<=1;k++) -// { -// if(worldObj.isAirBlock((int)this.posX+i, (int)this.posY+j, (int)this.posZ+k)) -// { -// worldObj.setBlock( (int)this.posX+i, (int)this.posY+j, (int)this.posZ+k,Block.fire.blockID); -// } -// } -// } -// } - } - - this.setDead(); - } - - @Override - public void onImpact(Entity mop) - { - if (mop == shootingEntity && ticksInAir > 3) - { - shootingEntity.attackEntityFrom(DamageSource.causeMobDamage(shootingEntity), 1); - this.setDead(); - } else - { - //doDamage(8 + d6(), mop); - if (mop instanceof EntityLivingBase) - { - //((EntityLivingBase)mop).addPotionEffect(new PotionEffect(Potion.weakness.id, 60,2)); - //((EntityLivingBase)mop).setFire(50); - //((EntityLivingBase)mop).setRevengeTarget(shootingEntity); - if (((EntityLivingBase) mop).isEntityUndead()) - { - doDamage((int) (projectileDamage * 2), mop); - } else - { - doDamage(projectileDamage, mop); - } - } - - //worldObj.createExplosion(this, this.posX, this.posY, this.posZ, (float)(0.1), true); - } - - if (worldObj.isAirBlock((int) this.posX, (int) this.posY, (int) this.posZ)) - { - //worldObj.setBlock((int)this.posX, (int)this.posY, (int)this.posZ,Block.fire.blockID); - } - - spawnHitParticles("magicCrit", 8); - this.setDead(); - } - - @Override - public void doFiringParticles() - { - PacketDispatcher.sendPacketToAllAround(posX, posY, posZ, 30, worldObj.provider.dimensionId, PacketHandler.getCustomParticlePacket("mobSpellAmbient", posX + smallGauss(0.1D), posY + smallGauss(0.1D), posZ + smallGauss(0.1D), 0.5D, 0.5D, 0.5D)); - PacketDispatcher.sendPacketToAllAround(posX, posY, posZ, 30, worldObj.provider.dimensionId, PacketHandler.getCustomParticlePacket("mobSpell", posX, posY, posZ, 1.0F, 1.0F, 1.0F)); - } -} diff --git a/BM_src/WayofTime/alchemicalWizardry/common/entity/projectile/IceProjectile.java b/BM_src/WayofTime/alchemicalWizardry/common/entity/projectile/IceProjectile.java deleted file mode 100644 index 2ad43b42..00000000 --- a/BM_src/WayofTime/alchemicalWizardry/common/entity/projectile/IceProjectile.java +++ /dev/null @@ -1,124 +0,0 @@ -package WayofTime.alchemicalWizardry.common.entity.projectile; - -import WayofTime.alchemicalWizardry.common.PacketHandler; -import WayofTime.alchemicalWizardry.common.entity.mob.EntityIceDemon; -import cpw.mods.fml.common.network.PacketDispatcher; -import net.minecraft.entity.Entity; -import net.minecraft.entity.EntityLivingBase; -import net.minecraft.potion.Potion; -import net.minecraft.potion.PotionEffect; -import net.minecraft.util.DamageSource; -import net.minecraft.util.EnumMovingObjectType; -import net.minecraft.util.MovingObjectPosition; -import net.minecraft.world.World; - -public class IceProjectile extends EnergyBlastProjectile -{ - public IceProjectile(World par1World) - { - super(par1World); - } - - public IceProjectile(World par1World, double par2, double par4, double par6) - { - super(par1World, par2, par4, par6); - } - - public IceProjectile(World par1World, EntityLivingBase par2EntityPlayer, int damage) - { - super(par1World, par2EntityPlayer, damage); - } - - public IceProjectile(World par1World, EntityLivingBase par2EntityPlayer, int damage, int maxTicksInAir, double posX, double posY, double posZ, float rotationYaw, float rotationPitch) - { - super(par1World, par2EntityPlayer, damage, maxTicksInAir, posX, posY, posZ, rotationYaw, rotationPitch); - } - - public IceProjectile(World worldObj, EntityIceDemon entityIceDemon, EntityLivingBase par1EntityLivingBase, float f, float g, int i, int j) - { - super(worldObj, entityIceDemon, par1EntityLivingBase, f, g, i, j); - } - - @Override - public DamageSource getDamageSource() - { - return DamageSource.causeMobDamage(shootingEntity); - } - - @Override - public void onImpact(MovingObjectPosition mop) - { - if (mop.typeOfHit == EnumMovingObjectType.ENTITY && mop.entityHit != null) - { - if (mop.entityHit == shootingEntity) - { - return; - } - - this.onImpact(mop.entityHit); - } else if (mop.typeOfHit == EnumMovingObjectType.TILE) - { -// for(int i=-1;i<=1;i++) -// { -// for(int j=-1;j<=1;j++) -// { -// for(int k=-1;k<=1;k++) -// { -// if(worldObj.isAirBlock((int)this.posX+i, (int)this.posY+j, (int)this.posZ+k)) -// { -// worldObj.setBlock( (int)this.posX+i, (int)this.posY+j, (int)this.posZ+k,Block.fire.blockID); -// } -// } -// } -// } - //worldObj.createExplosion(this, this.posX, this.posY, this.posZ, (float)(0.1), true); - } - - this.setDead(); - } - - @Override - public void onImpact(Entity mop) - { - if (mop == shootingEntity && ticksInAir > 3) - { - shootingEntity.attackEntityFrom(DamageSource.causeMobDamage(shootingEntity), 1); - this.setDead(); - } else - { - //doDamage(8 + d6(), mop); - if (mop instanceof EntityLivingBase) - { - //((EntityLivingBase)mop).addPotionEffect(new PotionEffect(Potion.weakness.id, 60,2)); - //((EntityLivingBase)mop).setFire(50); - //((EntityLivingBase)mop).setRevengeTarget(shootingEntity); - if (((EntityLivingBase) mop).isImmuneToFire()) - { - doDamage((int) (projectileDamage * 2), mop); - ((EntityLivingBase) mop).addPotionEffect(new PotionEffect(Potion.moveSlowdown.id, 200, 2)); - } else - { - doDamage(projectileDamage, mop); - ((EntityLivingBase) mop).addPotionEffect(new PotionEffect(Potion.moveSlowdown.id, 100, 1)); - } - } - - //worldObj.createExplosion(this, this.posX, this.posY, this.posZ, (float)(0.1), true); - } - - if (worldObj.isAirBlock((int) this.posX, (int) this.posY, (int) this.posZ)) - { - //worldObj.setBlock((int)this.posX, (int)this.posY, (int)this.posZ,Block.fire.blockID); - } - - spawnHitParticles("magicCrit", 8); - this.setDead(); - } - - @Override - public void doFiringParticles() - { - PacketDispatcher.sendPacketToAllAround(posX, posY, posZ, 30, worldObj.provider.dimensionId, PacketHandler.getCustomParticlePacket("mobSpellAmbient", posX + smallGauss(0.1D), posY + smallGauss(0.1D), posZ + smallGauss(0.1D), 0.5D, 0.5D, 0.5D)); - PacketDispatcher.sendPacketToAllAround(posX, posY, posZ, 30, worldObj.provider.dimensionId, PacketHandler.getCustomParticlePacket("explode", posX, posY, posZ, gaussian(motionX), gaussian(motionY), gaussian(motionZ))); - } -} diff --git a/BM_src/WayofTime/alchemicalWizardry/common/entity/projectile/LightningBoltProjectile.java b/BM_src/WayofTime/alchemicalWizardry/common/entity/projectile/LightningBoltProjectile.java deleted file mode 100644 index 8fa42ec5..00000000 --- a/BM_src/WayofTime/alchemicalWizardry/common/entity/projectile/LightningBoltProjectile.java +++ /dev/null @@ -1,128 +0,0 @@ -package WayofTime.alchemicalWizardry.common.entity.projectile; - -import WayofTime.alchemicalWizardry.common.PacketHandler; -import cpw.mods.fml.common.network.PacketDispatcher; -import net.minecraft.entity.Entity; -import net.minecraft.entity.EntityLivingBase; -import net.minecraft.entity.effect.EntityLightningBolt; -import net.minecraft.nbt.NBTTagCompound; -import net.minecraft.util.DamageSource; -import net.minecraft.util.EnumMovingObjectType; -import net.minecraft.util.MovingObjectPosition; -import net.minecraft.world.World; - -public class LightningBoltProjectile extends EnergyBlastProjectile -{ - private boolean causeLightning; - - public LightningBoltProjectile(World par1World) - { - super(par1World); - } - - public LightningBoltProjectile(World par1World, double par2, double par4, double par6) - { - super(par1World, par2, par4, par6); - } - - public LightningBoltProjectile(World par1World, EntityLivingBase par2EntityPlayer, int damage, boolean flag) - { - super(par1World, par2EntityPlayer, damage); - causeLightning = flag; - } - - public LightningBoltProjectile(World par1World, EntityLivingBase par2EntityPlayer, int damage, int maxTicksInAir, double posX, double posY, double posZ, float rotationYaw, float rotationPitch, boolean flag) - { - super(par1World, par2EntityPlayer, damage, maxTicksInAir, posX, posY, posZ, rotationYaw, rotationPitch); - causeLightning = flag; - } - - @Override - public DamageSource getDamageSource() - { - return DamageSource.causeMobDamage(shootingEntity); - } - - @Override - public void onImpact(MovingObjectPosition mop) - { - if (mop.typeOfHit == EnumMovingObjectType.ENTITY && mop.entityHit != null) - { - if (mop.entityHit == shootingEntity) - { - return; - } - - this.onImpact(mop.entityHit); - } else if (mop.typeOfHit == EnumMovingObjectType.TILE) - { - if (causeLightning) - { - this.worldObj.addWeatherEffect(new EntityLightningBolt(this.worldObj, this.posX, this.posY, this.posZ)); - } - } - - this.setDead(); - } - - @Override - public void onImpact(Entity mop) - { - if (mop == shootingEntity && ticksInAir > 3) - { - //shootingEntity.attackEntityFrom(DamageSource.causePlayerDamage(shootingEntity), 1); - this.setDead(); - } else - { - //doDamage(8 + d6(), mop); - if (mop instanceof EntityLivingBase) - { - //((EntityLivingBase)mop).addPotionEffect(new PotionEffect(Potion.weakness.id, 60,2)); - //((EntityLivingBase)mop).setFire(50); - //((EntityLivingBase)mop).setRevengeTarget(shootingEntity); -// if(((EntityLivingBase)mop).isEntityUndead()) -// { -// doDamage((int)(projectileDamage*2),mop); -// }else -// { -// doDamage(projectileDamage, mop); -// } - if (causeLightning) - { - this.worldObj.addWeatherEffect(new EntityLightningBolt(this.worldObj, ((EntityLivingBase) mop).posX, ((EntityLivingBase) mop).posY, ((EntityLivingBase) mop).posZ)); - } else - { - doDamage(projectileDamage, mop); - } - - //((EntityLivingBase)mop).setVelocity(this.motionX*2, ((EntityLivingBase)mop).motionY+1.5, this.motionZ*2); - } - - //worldObj.createExplosion(this, this.posX, this.posY, this.posZ, (float)(0.1), true); - } - - spawnHitParticles("magicCrit", 8); - this.setDead(); - } - - @Override - public void doFiringParticles() - { - PacketDispatcher.sendPacketToAllAround(posX, posY, posZ, 30, worldObj.provider.dimensionId, PacketHandler.getCustomParticlePacket("mobSpellAmbient", posX + smallGauss(0.1D), posY + smallGauss(0.1D), posZ + smallGauss(0.1D), 0.5D, 0.5D, 0.5D)); - PacketDispatcher.sendPacketToAllAround(posX, posY, posZ, 30, worldObj.provider.dimensionId, PacketHandler.getCustomParticlePacket("mobSpell", posX, posY, posZ, 1.0F, 1.0F, 1.0F)); - } - - @Override - public void writeEntityToNBT(NBTTagCompound par1NBTTagCompound) - { - super.writeEntityToNBT(par1NBTTagCompound); - par1NBTTagCompound.setBoolean("causeLightning", causeLightning); - } - - @Override - public void readEntityFromNBT(NBTTagCompound par1NBTTagCompound) - { - super.readEntityFromNBT(par1NBTTagCompound); - causeLightning = par1NBTTagCompound.getBoolean("causeLightning"); - } -} \ No newline at end of file diff --git a/BM_src/WayofTime/alchemicalWizardry/common/entity/projectile/MudProjectile.java b/BM_src/WayofTime/alchemicalWizardry/common/entity/projectile/MudProjectile.java deleted file mode 100644 index 0ff5e5db..00000000 --- a/BM_src/WayofTime/alchemicalWizardry/common/entity/projectile/MudProjectile.java +++ /dev/null @@ -1,132 +0,0 @@ -package WayofTime.alchemicalWizardry.common.entity.projectile; - -import WayofTime.alchemicalWizardry.common.PacketHandler; -import cpw.mods.fml.common.network.PacketDispatcher; -import net.minecraft.entity.Entity; -import net.minecraft.entity.EntityLivingBase; -import net.minecraft.nbt.NBTTagCompound; -import net.minecraft.potion.Potion; -import net.minecraft.potion.PotionEffect; -import net.minecraft.util.DamageSource; -import net.minecraft.util.EnumMovingObjectType; -import net.minecraft.util.MovingObjectPosition; -import net.minecraft.world.World; - -public class MudProjectile extends EnergyBlastProjectile -{ - private boolean doesBlindness; //True for when it applies blindness, false for slowness - - public MudProjectile(World par1World) - { - super(par1World); - } - - public MudProjectile(World par1World, double par2, double par4, double par6) - { - super(par1World, par2, par4, par6); - } - - public MudProjectile(World par1World, EntityLivingBase par2EntityPlayer, int damage, boolean flag) - { - super(par1World, par2EntityPlayer, damage); - doesBlindness = flag; - } - - public MudProjectile(World par1World, EntityLivingBase par2EntityPlayer, int damage, int maxTicksInAir, double posX, double posY, double posZ, float rotationYaw, float rotationPitch, boolean flag) - { - super(par1World, par2EntityPlayer, damage, maxTicksInAir, posX, posY, posZ, rotationYaw, rotationPitch); - doesBlindness = flag; - } - - public MudProjectile(World par1World, EntityLivingBase par2EntityLivingBase, EntityLivingBase par3EntityLivingBase, float par4, float par5, int damage, int maxTicksInAir, boolean flag) - { - super(par1World, par2EntityLivingBase, par3EntityLivingBase, par4, par5, damage, maxTicksInAir); - doesBlindness = flag; - } - - @Override - public DamageSource getDamageSource() - { - return DamageSource.causeMobDamage(shootingEntity); - } - - @Override - public void onImpact(MovingObjectPosition mop) - { - if (mop.typeOfHit == EnumMovingObjectType.ENTITY && mop.entityHit != null) - { - if (mop.entityHit == shootingEntity) - { - return; - } - - this.onImpact(mop.entityHit); - } else if (mop.typeOfHit == EnumMovingObjectType.TILE) - { - } - - this.setDead(); - } - - @Override - public void onImpact(Entity mop) - { - if (mop == shootingEntity && ticksInAir > 3) - { - //shootingEntity.attackEntityFrom(DamageSource.causePlayerDamage(shootingEntity), 1); - this.setDead(); - } else - { - //doDamage(8 + d6(), mop); - if (mop instanceof EntityLivingBase) - { - //((EntityLivingBase)mop).addPotionEffect(new PotionEffect(Potion.weakness.id, 60,2)); - //((EntityLivingBase)mop).setFire(50); - //((EntityLivingBase)mop).setRevengeTarget(shootingEntity); -// if(((EntityLivingBase)mop).isEntityUndead()) -// { -// doDamage((int)(projectileDamage*2),mop); -// }else -// { -// doDamage(projectileDamage, mop); -// } - if (doesBlindness) - { - ((EntityLivingBase) mop).addPotionEffect(new PotionEffect(Potion.blindness.id, 100, 0)); - } else - { - ((EntityLivingBase) mop).addPotionEffect(new PotionEffect(Potion.moveSlowdown.id, 100, 2)); - } - - doDamage(projectileDamage, mop); - //((EntityLivingBase)mop).setVelocity(this.motionX*2, ((EntityLivingBase)mop).motionY+1.5, this.motionZ*2); - } - - //worldObj.createExplosion(this, this.posX, this.posY, this.posZ, (float)(0.1), true); - } - - spawnHitParticles("magicCrit", 8); - this.setDead(); - } - - @Override - public void doFiringParticles() - { - PacketDispatcher.sendPacketToAllAround(posX, posY, posZ, 30, worldObj.provider.dimensionId, PacketHandler.getCustomParticlePacket("mobSpellAmbient", posX + smallGauss(0.1D), posY + smallGauss(0.1D), posZ + smallGauss(0.1D), 0.5D, 0.5D, 0.5D)); - PacketDispatcher.sendPacketToAllAround(posX, posY, posZ, 30, worldObj.provider.dimensionId, PacketHandler.getCustomParticlePacket("mobSpell", posX, posY, posZ, 0.5F, 0.297F, 0.0664F)); - } - - @Override - public void writeEntityToNBT(NBTTagCompound par1NBTTagCompound) - { - super.writeEntityToNBT(par1NBTTagCompound); - par1NBTTagCompound.setBoolean("doesBlindness", doesBlindness); - } - - @Override - public void readEntityFromNBT(NBTTagCompound par1NBTTagCompound) - { - super.readEntityFromNBT(par1NBTTagCompound); - doesBlindness = par1NBTTagCompound.getBoolean("doesBlindness"); - } -} diff --git a/BM_src/WayofTime/alchemicalWizardry/common/entity/projectile/TeleportProjectile.java b/BM_src/WayofTime/alchemicalWizardry/common/entity/projectile/TeleportProjectile.java deleted file mode 100644 index d06a38fa..00000000 --- a/BM_src/WayofTime/alchemicalWizardry/common/entity/projectile/TeleportProjectile.java +++ /dev/null @@ -1,205 +0,0 @@ -package WayofTime.alchemicalWizardry.common.entity.projectile; - -import WayofTime.alchemicalWizardry.common.PacketHandler; -import WayofTime.alchemicalWizardry.common.spell.simple.SpellTeleport; -import cpw.mods.fml.common.network.PacketDispatcher; -import net.minecraft.entity.Entity; -import net.minecraft.entity.EntityLivingBase; -import net.minecraft.entity.player.EntityPlayerMP; -import net.minecraft.nbt.NBTTagCompound; -import net.minecraft.util.DamageSource; -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.living.EnderTeleportEvent; - -public class TeleportProjectile extends EnergyBlastProjectile -{ - private boolean isEntityTeleport; //True if the entity firing teleports on hit - - public TeleportProjectile(World par1World) - { - super(par1World); - this.motionX *= 3; - this.motionY *= 3; - this.motionZ *= 3; - } - - public TeleportProjectile(World par1World, double par2, double par4, double par6) - { - super(par1World, par2, par4, par6); - this.motionX *= 3; - this.motionY *= 3; - this.motionZ *= 3; - } - - public TeleportProjectile(World par1World, EntityLivingBase par2EntityPlayer, int damage, boolean flag) - { - super(par1World, par2EntityPlayer, damage); - isEntityTeleport = flag; - this.motionX *= 3; - this.motionY *= 3; - this.motionZ *= 3; - } - - public TeleportProjectile(World par1World, EntityLivingBase par2EntityPlayer, int damage, int maxTicksInAir, double posX, double posY, double posZ, float rotationYaw, float rotationPitch, boolean flag) - { - super(par1World, par2EntityPlayer, damage, maxTicksInAir, posX, posY, posZ, rotationYaw, rotationPitch); - isEntityTeleport = flag; - this.motionX *= 3; - this.motionY *= 3; - this.motionZ *= 3; - } - - @Override - public DamageSource getDamageSource() - { - return DamageSource.causeMobDamage(shootingEntity); - } - - @Override - public void onImpact(MovingObjectPosition mop) - { - if (mop.typeOfHit == EnumMovingObjectType.ENTITY && mop.entityHit != null) - { - if (mop.entityHit == shootingEntity) - { - return; - } - - this.onImpact(mop.entityHit); - } else if (mop.typeOfHit == EnumMovingObjectType.TILE) - { - if (isEntityTeleport) - { - if (shootingEntity != null && shootingEntity instanceof EntityPlayerMP) - { - EntityPlayerMP entityplayermp = (EntityPlayerMP) shootingEntity; - - if (!entityplayermp.playerNetServerHandler.connectionClosed && entityplayermp.worldObj == this.worldObj) - { - EnderTeleportEvent event = new EnderTeleportEvent(entityplayermp, this.posX, this.posY, this.posZ, 5.0F); - - if (!MinecraftForge.EVENT_BUS.post(event)) - { - if (shootingEntity.isRiding()) - { - shootingEntity.mountEntity((Entity) null); - } - - shootingEntity.setPositionAndUpdate(event.targetX, event.targetY, event.targetZ); -// this.getThrower().fallDistance = 0.0F; -// this.getThrower().attackEntityFrom(DamageSource.fall, event.attackDamage); - } - } - } - } - } - - this.setDead(); - } - - @Override - public void onImpact(Entity mop) - { - if (mop == shootingEntity && ticksInAir > 3) - { - //shootingEntity.attackEntityFrom(DamageSource.causePlayerDamage(shootingEntity), 1); - this.setDead(); - } else - { - //doDamage(8 + d6(), mop); - if (mop instanceof EntityLivingBase) - { - //((EntityLivingBase)mop).addPotionEffect(new PotionEffect(Potion.weakness.id, 60,2)); - //((EntityLivingBase)mop).setFire(50); - //((EntityLivingBase)mop).setRevengeTarget(shootingEntity); -// if(((EntityLivingBase)mop).isEntityUndead()) -// { -// doDamage((int)(projectileDamage*2),mop); -// }else -// { -// doDamage(projectileDamage, mop); -// } - if (isEntityTeleport) - { - if (shootingEntity != null && shootingEntity instanceof EntityPlayerMP) - { - EntityPlayerMP entityplayermp = (EntityPlayerMP) shootingEntity; - - if (!entityplayermp.playerNetServerHandler.connectionClosed && entityplayermp.worldObj == this.worldObj) - { - EnderTeleportEvent event = new EnderTeleportEvent(entityplayermp, this.posX, this.posY, this.posZ, 5.0F); - - if (!MinecraftForge.EVENT_BUS.post(event)) - { - if (shootingEntity.isRiding()) - { - shootingEntity.mountEntity((Entity) null); - } - - shootingEntity.setPositionAndUpdate(event.targetX, event.targetY, event.targetZ); -// this.getThrower().fallDistance = 0.0F; -// this.getThrower().attackEntityFrom(DamageSource.fall, event.attackDamage); - } - } - } - } else - { -// int x = (int)this.posX + mop.worldObj.rand.nextInt(100) - mop.worldObj.rand.nextInt(100); -// int y = (int)this.posY + mop.worldObj.rand.nextInt(10) - mop.worldObj.rand.nextInt(10); -// int z = (int)this.posZ + mop.worldObj.rand.nextInt(100) - mop.worldObj.rand.nextInt(100); -// -// boolean bool = false; -// int i = 0; -// -// while(!bool&&i<100) -// { -// if(worldObj.isAirBlock(x, y, z)||worldObj.isAirBlock(x, y+1, z)) -// { -// ((EntityLivingBase) mop).setPositionAndUpdate(x, y, z); -// bool=true; -// }else -// { -// x = (int)this.posX + mop.worldObj.rand.nextInt(100) - mop.worldObj.rand.nextInt(100); -// y = (int)this.posY + mop.worldObj.rand.nextInt(10) - mop.worldObj.rand.nextInt(10); -// z = (int)this.posZ + mop.worldObj.rand.nextInt(100) - mop.worldObj.rand.nextInt(100); -// i++; -// } -// } - SpellTeleport.teleportRandomly((EntityLivingBase) mop, 64); - } - - //doDamage(projectileDamage, mop); - //((EntityLivingBase)mop).setVelocity(this.motionX*2, ((EntityLivingBase)mop).motionY+1.5, this.motionZ*2); - } - - //worldObj.createExplosion(this, this.posX, this.posY, this.posZ, (float)(0.1), true); - } - - spawnHitParticles("magicCrit", 8); - this.setDead(); - } - - @Override - public void doFiringParticles() - { - PacketDispatcher.sendPacketToAllAround(posX, posY, posZ, 30, worldObj.provider.dimensionId, PacketHandler.getCustomParticlePacket("mobSpellAmbient", posX + smallGauss(0.1D), posY + smallGauss(0.1D), posZ + smallGauss(0.1D), 0.5D, 0.5D, 0.5D)); - PacketDispatcher.sendPacketToAllAround(posX, posY, posZ, 30, worldObj.provider.dimensionId, PacketHandler.getCustomParticlePacket("portal", posX, posY, posZ, -motionX, -motionY, -motionZ)); - } - - @Override - public void writeEntityToNBT(NBTTagCompound par1NBTTagCompound) - { - super.writeEntityToNBT(par1NBTTagCompound); - par1NBTTagCompound.setBoolean("isEntityTeleport", isEntityTeleport); - } - - @Override - public void readEntityFromNBT(NBTTagCompound par1NBTTagCompound) - { - super.readEntityFromNBT(par1NBTTagCompound); - isEntityTeleport = par1NBTTagCompound.getBoolean("isEntityTeleport"); - } -} diff --git a/BM_src/WayofTime/alchemicalWizardry/common/entity/projectile/WaterProjectile.java b/BM_src/WayofTime/alchemicalWizardry/common/entity/projectile/WaterProjectile.java deleted file mode 100644 index bb923775..00000000 --- a/BM_src/WayofTime/alchemicalWizardry/common/entity/projectile/WaterProjectile.java +++ /dev/null @@ -1,108 +0,0 @@ -package WayofTime.alchemicalWizardry.common.entity.projectile; - -import WayofTime.alchemicalWizardry.AlchemicalWizardry; -import WayofTime.alchemicalWizardry.common.PacketHandler; -import cpw.mods.fml.common.network.PacketDispatcher; -import net.minecraft.entity.Entity; -import net.minecraft.entity.EntityLivingBase; -import net.minecraft.potion.PotionEffect; -import net.minecraft.util.DamageSource; -import net.minecraft.util.EnumMovingObjectType; -import net.minecraft.util.MovingObjectPosition; -import net.minecraft.world.World; - -public class WaterProjectile extends EnergyBlastProjectile -{ - public WaterProjectile(World par1World) - { - super(par1World); - } - - public WaterProjectile(World par1World, double par2, double par4, double par6) - { - super(par1World, par2, par4, par6); - } - - public WaterProjectile(World par1World, EntityLivingBase par2EntityPlayer, int damage) - { - super(par1World, par2EntityPlayer, damage); - } - - public WaterProjectile(World par1World, EntityLivingBase par2EntityPlayer, int damage, int maxTicksInAir, double posX, double posY, double posZ, float rotationYaw, float rotationPitch) - { - super(par1World, par2EntityPlayer, damage, maxTicksInAir, posX, posY, posZ, rotationYaw, rotationPitch); - } - - @Override - public DamageSource getDamageSource() - { - return DamageSource.causeMobDamage(shootingEntity); - } - - @Override - public void onImpact(MovingObjectPosition mop) - { - if (mop.typeOfHit == EnumMovingObjectType.ENTITY && mop.entityHit != null) - { - if (mop.entityHit == shootingEntity) - { - return; - } - - this.onImpact(mop.entityHit); - } else if (mop.typeOfHit == EnumMovingObjectType.TILE) - { - } - - this.setDead(); - } - - @Override - public void onImpact(Entity mop) - { - if (mop == shootingEntity && ticksInAir > 3) - { - //shootingEntity.attackEntityFrom(DamageSource.causePlayerDamage(shootingEntity), 1); - this.setDead(); - } else - { - //doDamage(8 + d6(), mop); - if (mop instanceof EntityLivingBase) - { - //((EntityLivingBase)mop).addPotionEffect(new PotionEffect(Potion.weakness.id, 60,2)); - //((EntityLivingBase)mop).setFire(50); - //((EntityLivingBase)mop).setRevengeTarget(shootingEntity); -// if(((EntityLivingBase)mop).isEntityUndead()) -// { -// doDamage((int)(projectileDamage*2),mop); -// }else -// { -// doDamage(projectileDamage, mop); -// } - if (((EntityLivingBase) mop).isImmuneToFire()) - { - doDamage(projectileDamage * 2, mop); - ((EntityLivingBase) mop).addPotionEffect(new PotionEffect(AlchemicalWizardry.customPotionDrowning.id, 80, 1)); - } else - { - doDamage(projectileDamage, mop); - ((EntityLivingBase) mop).addPotionEffect(new PotionEffect(AlchemicalWizardry.customPotionDrowning.id, 80, 0)); - } - - //((EntityLivingBase)mop).setVelocity(this.motionX*2, ((EntityLivingBase)mop).motionY+1.5, this.motionZ*2); - } - - //worldObj.createExplosion(this, this.posX, this.posY, this.posZ, (float)(0.1), true); - } - - spawnHitParticles("magicCrit", 8); - this.setDead(); - } - - @Override - public void doFiringParticles() - { - PacketDispatcher.sendPacketToAllAround(posX, posY, posZ, 30, worldObj.provider.dimensionId, PacketHandler.getCustomParticlePacket("mobSpellAmbient", posX + smallGauss(0.1D), posY + smallGauss(0.1D), posZ + smallGauss(0.1D), 0.5D, 0.5D, 0.5D)); - PacketDispatcher.sendPacketToAllAround(posX, posY, posZ, 30, worldObj.provider.dimensionId, PacketHandler.getCustomParticlePacket("mobSpell", posX, posY, posZ, 0.0F, 0.410F, 1.0F)); - } -} diff --git a/BM_src/WayofTime/alchemicalWizardry/common/entity/projectile/WindGustProjectile.java b/BM_src/WayofTime/alchemicalWizardry/common/entity/projectile/WindGustProjectile.java deleted file mode 100644 index 1b5354a7..00000000 --- a/BM_src/WayofTime/alchemicalWizardry/common/entity/projectile/WindGustProjectile.java +++ /dev/null @@ -1,112 +0,0 @@ -package WayofTime.alchemicalWizardry.common.entity.projectile; - -import WayofTime.alchemicalWizardry.common.PacketHandler; -import cpw.mods.fml.common.network.PacketDispatcher; -import net.minecraft.entity.Entity; -import net.minecraft.entity.EntityLivingBase; -import net.minecraft.util.DamageSource; -import net.minecraft.util.EnumMovingObjectType; -import net.minecraft.util.MovingObjectPosition; -import net.minecraft.world.World; - -public class WindGustProjectile extends EnergyBlastProjectile -{ - public WindGustProjectile(World par1World) - { - super(par1World); - } - - public WindGustProjectile(World par1World, double par2, double par4, double par6) - { - super(par1World, par2, par4, par6); - } - - public WindGustProjectile(World par1World, EntityLivingBase par2EntityPlayer, int damage) - { - super(par1World, par2EntityPlayer, damage); - } - - public WindGustProjectile(World par1World, EntityLivingBase par2EntityPlayer, int damage, int maxTicksInAir, double posX, double posY, double posZ, float rotationYaw, float rotationPitch) - { - super(par1World, par2EntityPlayer, damage, maxTicksInAir, posX, posY, posZ, rotationYaw, rotationPitch); - } - - @Override - public DamageSource getDamageSource() - { - return DamageSource.causeMobDamage(shootingEntity); - } - - @Override - public void onImpact(MovingObjectPosition mop) - { - if (mop.typeOfHit == EnumMovingObjectType.ENTITY && mop.entityHit != null) - { - if (mop.entityHit == shootingEntity) - { - return; - } - - this.onImpact(mop.entityHit); - } else if (mop.typeOfHit == EnumMovingObjectType.TILE) - { -// for(int i=-1;i<=1;i++) -// { -// for(int j=-1;j<=1;j++) -// { -// for(int k=-1;k<=1;k++) -// { -// if(worldObj.isAirBlock((int)this.posX+i, (int)this.posY+j, (int)this.posZ+k)) -// { -// worldObj.setBlock( (int)this.posX+i, (int)this.posY+j, (int)this.posZ+k,Block.fire.blockID); -// } -// } -// } -// } - } - - this.setDead(); - } - - @Override - public void onImpact(Entity mop) - { - if (mop == shootingEntity && ticksInAir > 3) - { - //shootingEntity.attackEntityFrom(DamageSource.causePlayerDamage(shootingEntity), 1); - this.setDead(); - } else - { - //doDamage(8 + d6(), mop); - if (mop instanceof EntityLivingBase) - { - //((EntityLivingBase)mop).addPotionEffect(new PotionEffect(Potion.weakness.id, 60,2)); - //((EntityLivingBase)mop).setFire(50); - //((EntityLivingBase)mop).setRevengeTarget(shootingEntity); -// if(((EntityLivingBase)mop).isEntityUndead()) -// { -// doDamage((int)(projectileDamage*2),mop); -// }else -// { -// doDamage(projectileDamage, mop); -// } - ((EntityLivingBase) mop).motionX = this.motionX * 2; - ((EntityLivingBase) mop).motionY = 1.5; - ((EntityLivingBase) mop).motionZ = this.motionZ * 2; - //((EntityLivingBase)mop).setVelocity(this.motionX*2, ((EntityLivingBase)mop).motionY+1.5, this.motionZ*2); - } - - //worldObj.createExplosion(this, this.posX, this.posY, this.posZ, (float)(0.1), true); - } - - spawnHitParticles("magicCrit", 8); - this.setDead(); - } - - @Override - public void doFiringParticles() - { - PacketDispatcher.sendPacketToAllAround(posX, posY, posZ, 30, worldObj.provider.dimensionId, PacketHandler.getCustomParticlePacket("mobSpellAmbient", posX + smallGauss(0.1D), posY + smallGauss(0.1D), posZ + smallGauss(0.1D), 0.5D, 0.5D, 0.5D)); - PacketDispatcher.sendPacketToAllAround(posX, posY, posZ, 30, worldObj.provider.dimensionId, PacketHandler.getCustomParticlePacket("mobSpell", posX, posY, posZ, 1.0F, 1.0F, 1.0F)); - } -} \ No newline at end of file diff --git a/BM_src/WayofTime/alchemicalWizardry/common/items/AWBaseItems.java b/BM_src/WayofTime/alchemicalWizardry/common/items/AWBaseItems.java deleted file mode 100644 index 82c3dbef..00000000 --- a/BM_src/WayofTime/alchemicalWizardry/common/items/AWBaseItems.java +++ /dev/null @@ -1,44 +0,0 @@ -package WayofTime.alchemicalWizardry.common.items; - -import WayofTime.alchemicalWizardry.AlchemicalWizardry; -import WayofTime.alchemicalWizardry.ModItems; -import net.minecraft.client.renderer.texture.IconRegister; -import net.minecraft.entity.player.EntityPlayer; -import net.minecraft.item.Item; -import net.minecraft.item.ItemStack; - -import java.util.List; - -public class AWBaseItems extends Item -{ - public AWBaseItems(int id) - { - super(id); - setMaxStackSize(64); - setCreativeTab(AlchemicalWizardry.tabBloodMagic); - } - - public void registerIcons(IconRegister iconRegister) - { - if (this.itemID == ModItems.blankSlate.itemID) - { - this.itemIcon = iconRegister.registerIcon("AlchemicalWizardry:BlankSlate"); - } else if (this.itemID == ModItems.reinforcedSlate.itemID) - { - this.itemIcon = iconRegister.registerIcon("AlchemicalWizardry:ReinforcedSlate"); - } else if (this.itemID == ModItems.imbuedSlate.itemID) - { - this.itemIcon = iconRegister.registerIcon("AlchemicalWizardry:InfusedSlate"); - } else if (this.itemID == ModItems.demonicSlate.itemID) - { - this.itemIcon = iconRegister.registerIcon("AlchemicalWizardry:DemonSlate"); - } - } - - @Override - public void addInformation(ItemStack par1ItemStack, EntityPlayer par2EntityPlayer, List par3List, boolean par4) - { - par3List.add("Infused stone inside of"); - par3List.add("a blood altar"); - } -} diff --git a/BM_src/WayofTime/alchemicalWizardry/common/items/ActivationCrystal.java b/BM_src/WayofTime/alchemicalWizardry/common/items/ActivationCrystal.java deleted file mode 100644 index 6bae5174..00000000 --- a/BM_src/WayofTime/alchemicalWizardry/common/items/ActivationCrystal.java +++ /dev/null @@ -1,138 +0,0 @@ -package WayofTime.alchemicalWizardry.common.items; - -import WayofTime.alchemicalWizardry.AlchemicalWizardry; -import WayofTime.alchemicalWizardry.api.alchemy.AlchemyRecipeRegistry; -import WayofTime.alchemicalWizardry.common.spell.complex.effect.SpellHelper; -import cpw.mods.fml.relauncher.Side; -import cpw.mods.fml.relauncher.SideOnly; -import net.minecraft.client.renderer.texture.IconRegister; -import net.minecraft.creativetab.CreativeTabs; -import net.minecraft.entity.player.EntityPlayer; -import net.minecraft.item.ItemStack; -import net.minecraft.util.EnumChatFormatting; -import net.minecraft.util.Icon; -import net.minecraft.util.MathHelper; -import net.minecraft.world.World; - -import org.lwjgl.input.Keyboard; - -import java.util.List; - -public class ActivationCrystal extends EnergyItems -{ - private static final String[] ACTIVATION_CRYSTAL_NAMES = new String[]{"Weak", "Awakened"}; - - @SideOnly(Side.CLIENT) - private Icon[] icons; - - public ActivationCrystal(int id) - { - super(id); - this.maxStackSize = 1; - setEnergyUsed(100); - this.setCreativeTab(AlchemicalWizardry.tabBloodMagic); - this.hasSubtypes = true; - } - - @Override - @SideOnly(Side.CLIENT) - public void registerIcons(IconRegister iconRegister) - { - icons = new Icon[ACTIVATION_CRYSTAL_NAMES.length]; - - for (int i = 0; i < ACTIVATION_CRYSTAL_NAMES.length; ++i) - { - icons[i] = iconRegister.registerIcon("AlchemicalWizardry:" + "activationCrystal" + ACTIVATION_CRYSTAL_NAMES[i]); - } - } - - @Override - public void addInformation(ItemStack par1ItemStack, EntityPlayer par2EntityPlayer, List par3List, boolean par4) - { - switch (par1ItemStack.getItemDamage()) - { - case 0: - { - par3List.add("Activates low-level rituals"); - break; - } - - case 1: - { - par3List.add("Activates more powerful rituals"); - - if (Keyboard.isKeyDown(Keyboard.KEY_RSHIFT) || Keyboard.isKeyDown(Keyboard.KEY_LSHIFT)) - { - ItemStack[] recipe = AlchemyRecipeRegistry.getRecipeForItemStack(par1ItemStack); - - if (recipe != null) - { - par3List.add(EnumChatFormatting.BLUE + "Recipe:"); - - for (ItemStack item : recipe) - { - if (item != null) - { - par3List.add("" + item.getDisplayName()); - } - } - } - } else - { - par3List.add("-Press " + EnumChatFormatting.BLUE + "shift" + EnumChatFormatting.GRAY + " for Recipe-"); - } - - break; - } - } - - 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(SpellHelper.isFakePlayer(par2World, par3EntityPlayer)) - { - return par1ItemStack; - } - - return par1ItemStack; - } - - public int getCrystalLevel(ItemStack itemStack) - { - return itemStack.getItemDamage() + 1; - } - - @Override - public String getUnlocalizedName(ItemStack itemStack) - { - //This is what will do all the localisation things on the alchemy components so you dont have to set it :D - int meta = MathHelper.clamp_int(itemStack.getItemDamage(), 0, ACTIVATION_CRYSTAL_NAMES.length - 1); - return ("" + "item.activationCrystal" + ACTIVATION_CRYSTAL_NAMES[meta]); - } - - @Override - @SideOnly(Side.CLIENT) - public Icon getIconFromDamage(int meta) - { - int j = MathHelper.clamp_int(meta, 0, ACTIVATION_CRYSTAL_NAMES.length - 1); - return icons[j]; - } - - @Override - @SideOnly(Side.CLIENT) - public void getSubItems(int id, CreativeTabs creativeTab, List list) - { - for (int meta = 0; meta < ACTIVATION_CRYSTAL_NAMES.length; ++meta) - { - list.add(new ItemStack(id, 1, meta)); - } - } -} diff --git a/BM_src/WayofTime/alchemicalWizardry/common/items/AirInk.java b/BM_src/WayofTime/alchemicalWizardry/common/items/AirInk.java deleted file mode 100644 index bc4c437d..00000000 --- a/BM_src/WayofTime/alchemicalWizardry/common/items/AirInk.java +++ /dev/null @@ -1,24 +0,0 @@ -package WayofTime.alchemicalWizardry.common.items; - -import WayofTime.alchemicalWizardry.AlchemicalWizardry; -import cpw.mods.fml.relauncher.Side; -import cpw.mods.fml.relauncher.SideOnly; -import net.minecraft.client.renderer.texture.IconRegister; -import net.minecraft.item.Item; - -public class AirInk extends Item -{ - public AirInk(int id) - { - super(id); - this.maxStackSize = 1; - setCreativeTab(AlchemicalWizardry.tabBloodMagic); - } - - @Override - @SideOnly(Side.CLIENT) - public void registerIcons(IconRegister iconRegister) - { - this.itemIcon = iconRegister.registerIcon("AlchemicalWizardry:ElementalInkWater"); - } -} diff --git a/BM_src/WayofTime/alchemicalWizardry/common/items/AirScribeTool.java b/BM_src/WayofTime/alchemicalWizardry/common/items/AirScribeTool.java deleted file mode 100644 index 35437712..00000000 --- a/BM_src/WayofTime/alchemicalWizardry/common/items/AirScribeTool.java +++ /dev/null @@ -1,20 +0,0 @@ -package WayofTime.alchemicalWizardry.common.items; - -import cpw.mods.fml.relauncher.Side; -import cpw.mods.fml.relauncher.SideOnly; -import net.minecraft.client.renderer.texture.IconRegister; - -public class AirScribeTool extends ScribeTool -{ - public AirScribeTool(int id) - { - super(id, 4); - } - - @Override - @SideOnly(Side.CLIENT) - public void registerIcons(IconRegister iconRegister) - { - this.itemIcon = iconRegister.registerIcon("AlchemicalWizardry:AirScribeTool"); - } -} \ No newline at end of file diff --git a/BM_src/WayofTime/alchemicalWizardry/common/items/ApprenticeBloodOrb.java b/BM_src/WayofTime/alchemicalWizardry/common/items/ApprenticeBloodOrb.java deleted file mode 100644 index c0913f4b..00000000 --- a/BM_src/WayofTime/alchemicalWizardry/common/items/ApprenticeBloodOrb.java +++ /dev/null @@ -1,21 +0,0 @@ -package WayofTime.alchemicalWizardry.common.items; - -import cpw.mods.fml.relauncher.Side; -import cpw.mods.fml.relauncher.SideOnly; -import net.minecraft.client.renderer.texture.IconRegister; - -public class ApprenticeBloodOrb extends EnergyBattery -{ - public ApprenticeBloodOrb(int id, int damage) - { - super(id, damage); - orbLevel = 2; - } - - @Override - @SideOnly(Side.CLIENT) - public void registerIcons(IconRegister iconRegister) - { - this.itemIcon = iconRegister.registerIcon("AlchemicalWizardry:ApprenticeBloodOrb"); - } -} diff --git a/BM_src/WayofTime/alchemicalWizardry/common/items/ArchmageBloodOrb.java b/BM_src/WayofTime/alchemicalWizardry/common/items/ArchmageBloodOrb.java deleted file mode 100644 index 27063c99..00000000 --- a/BM_src/WayofTime/alchemicalWizardry/common/items/ArchmageBloodOrb.java +++ /dev/null @@ -1,21 +0,0 @@ -package WayofTime.alchemicalWizardry.common.items; - -import cpw.mods.fml.relauncher.Side; -import cpw.mods.fml.relauncher.SideOnly; -import net.minecraft.client.renderer.texture.IconRegister; - -public class ArchmageBloodOrb extends EnergyBattery -{ - public ArchmageBloodOrb(int id, int damage) - { - super(id, damage); - orbLevel = 5; - } - - @Override - @SideOnly(Side.CLIENT) - public void registerIcons(IconRegister iconRegister) - { - this.itemIcon = iconRegister.registerIcon("AlchemicalWizardry:ArchmageBloodOrb"); - } -} diff --git a/BM_src/WayofTime/alchemicalWizardry/common/items/ArmourInhibitor.java b/BM_src/WayofTime/alchemicalWizardry/common/items/ArmourInhibitor.java deleted file mode 100644 index 790bd88e..00000000 --- a/BM_src/WayofTime/alchemicalWizardry/common/items/ArmourInhibitor.java +++ /dev/null @@ -1,213 +0,0 @@ -package WayofTime.alchemicalWizardry.common.items; - -import WayofTime.alchemicalWizardry.AlchemicalWizardry; -import cpw.mods.fml.relauncher.Side; -import cpw.mods.fml.relauncher.SideOnly; -import net.minecraft.client.renderer.texture.IconRegister; -import net.minecraft.entity.Entity; -import net.minecraft.entity.player.EntityPlayer; -import net.minecraft.item.ItemStack; -import net.minecraft.nbt.NBTTagCompound; -import net.minecraft.potion.PotionEffect; -import net.minecraft.util.Icon; -import net.minecraft.world.World; - -import java.util.List; - -public class ArmourInhibitor extends EnergyItems -{ - private static Icon activeIcon; - private static Icon passiveIcon; - private int tickDelay = 200; - - public ArmourInhibitor(int id) - { - super(id); - this.maxStackSize = 1; - //setMaxDamage(1000); - setEnergyUsed(0); - setCreativeTab(AlchemicalWizardry.tabBloodMagic); - } - - @Override - public void addInformation(ItemStack par1ItemStack, EntityPlayer par2EntityPlayer, List par3List, boolean par4) - { - par3List.add("Used to suppress a soul's"); - par3List.add("unnatural abilities."); - - if (!(par1ItemStack.stackTagCompound == null)) - { - if (par1ItemStack.stackTagCompound.getBoolean("isActive")) - { - par3List.add("Activated"); - } else - { - par3List.add("Deactivated"); - } - - par3List.add("Current owner: " + par1ItemStack.stackTagCompound.getString("ownerName")); - } - } - - @Override - @SideOnly(Side.CLIENT) - public void registerIcons(IconRegister iconRegister) - { - this.itemIcon = iconRegister.registerIcon("AlchemicalWizardry:ArmourInhibitor_deactivated"); - this.activeIcon = iconRegister.registerIcon("AlchemicalWizardry:ArmourInhibitor_activated"); - this.passiveIcon = iconRegister.registerIcon("AlchemicalWizardry:ArmourInhibitor_deactivated"); - } - - @Override - public Icon getIcon(ItemStack stack, int renderPass, EntityPlayer player, ItemStack usingItem, int useRemaining) - { - if (stack.stackTagCompound == null) - { - stack.setTagCompound(new NBTTagCompound()); - } - - NBTTagCompound tag = stack.stackTagCompound; - - if (tag.getBoolean("isActive")) - { - return this.activeIcon; - } else - { - return this.passiveIcon; - } - } - - @Override - @SideOnly(Side.CLIENT) - public Icon getIconFromDamage(int par1) - { - if (par1 == 1) - { - return this.activeIcon; - } else - { - return this.passiveIcon; - } - } - -// @Override -// public boolean onItemUse(ItemStack par1ItemStack, EntityPlayer par2EntityPlayer, World par3World, int par4, int par5, int par6, int par7, float par8, float par9, float par10) -// { -// -// if(applyBonemeal(par1ItemStack,par3World,par4,par5,par6,par2EntityPlayer)) -// { -// if (par3World.isRemote) -// { -// par3World.playAuxSFX(2005, par4, par5, par6, 0); -// EnergyItems.syphonBatteries(par1ItemStack, par2EntityPlayer, getEnergyUsed()); -// return true; -// } -// return true; -// } -// return false; -// } - - @Override - public ItemStack onItemRightClick(ItemStack par1ItemStack, World par2World, EntityPlayer par3EntityPlayer) - { - EnergyItems.checkAndSetItemOwner(par1ItemStack, par3EntityPlayer); - - if (par3EntityPlayer.isSneaking()) - { - return par1ItemStack; - } - - if (par1ItemStack.stackTagCompound == null) - { - par1ItemStack.setTagCompound(new NBTTagCompound()); - } - - NBTTagCompound tag = par1ItemStack.stackTagCompound; - tag.setBoolean("isActive", !(tag.getBoolean("isActive"))); - - if (tag.getBoolean("isActive")) - { - par1ItemStack.setItemDamage(1); - tag.setInteger("worldTimeDelay", (int) (par2World.getWorldTime() - 1) % tickDelay); - - if (!par3EntityPlayer.capabilities.isCreativeMode) - { - //EnergyItems.syphonBatteries(par1ItemStack, par3EntityPlayer, getEnergyUsed()); - } - } else - { - par1ItemStack.setItemDamage(par1ItemStack.getMaxDamage()); - } - - return par1ItemStack; - } - - @Override - public void onUpdate(ItemStack par1ItemStack, World par2World, Entity par3Entity, int par4, boolean par5) - { - if (!(par3Entity instanceof EntityPlayer)) - { - return; - } - - EntityPlayer par3EntityPlayer = (EntityPlayer) par3Entity; - - if (par1ItemStack.stackTagCompound == null) - { - par1ItemStack.setTagCompound(new NBTTagCompound()); - } - - if (par1ItemStack.stackTagCompound.getBoolean("isActive")) - { - if (par2World.getWorldTime() % tickDelay == par1ItemStack.stackTagCompound.getInteger("worldTimeDelay") && par3Entity instanceof EntityPlayer) - { - //EnergyItems.syphonBatteries(par1ItemStack, (EntityPlayer)par3Entity, getEnergyUsed()); - } - - //TODO Do stuff - par3EntityPlayer.addPotionEffect(new PotionEffect(AlchemicalWizardry.customPotionInhibit.id, 2, 0)); - } - - return; - } - -// @Override -// public void onArmourUpdate(World world, EntityPlayer player, ItemStack thisItemStack) { -// -// int range = 5; -// int verticalRange = 2; -// int posX = (int)Math.round(player.posX-0.5f); -// int posY = (int)player.posY; -// int posZ = (int)Math.round(player.posZ-0.5f); -// -// for(int ix=posX-range;ix<=posX+range;ix++) -// { -// for(int iz=posZ-range;iz<=posZ+range;iz++) -// { -// for(int iy=posY-verticalRange;iy<=posY+verticalRange;iy++) -// { -// int id = world.getBlockId(ix, iy, iz); -// Block block = Block.blocksList[id]; -// if(block instanceof IPlantable) -// { -// if(world.rand.nextInt(10)==0) -// block.updateTick(world, ix, iy, iz, world.rand); -// } -// } -// } -// } -// -// } - -// @Override -// public boolean isUpgrade() { -// // TODO Auto-generated method stub -// return true; -// } -// -// @Override -// public int getEnergyForTenSeconds() { -// // TODO Auto-generated method stub -// return 50; -// } -} diff --git a/BM_src/WayofTime/alchemicalWizardry/common/items/BlankSpell.java b/BM_src/WayofTime/alchemicalWizardry/common/items/BlankSpell.java deleted file mode 100644 index 84f46e63..00000000 --- a/BM_src/WayofTime/alchemicalWizardry/common/items/BlankSpell.java +++ /dev/null @@ -1,120 +0,0 @@ -package WayofTime.alchemicalWizardry.common.items; - -import WayofTime.alchemicalWizardry.AlchemicalWizardry; -import WayofTime.alchemicalWizardry.common.spell.complex.effect.SpellHelper; -import WayofTime.alchemicalWizardry.common.tileEntity.TEHomHeart; -import cpw.mods.fml.relauncher.Side; -import cpw.mods.fml.relauncher.SideOnly; -import net.minecraft.client.renderer.texture.IconRegister; -import net.minecraft.entity.player.EntityPlayer; -import net.minecraft.item.ItemStack; -import net.minecraft.nbt.NBTTagCompound; -import net.minecraft.tileentity.TileEntity; -import net.minecraft.world.World; -import net.minecraftforge.common.DimensionManager; - -import java.util.List; - -public class BlankSpell extends EnergyItems -{ - public BlankSpell(int par1) - { - super(par1); - this.setMaxStackSize(1); - setCreativeTab(AlchemicalWizardry.tabBloodMagic); - } - - @Override - @SideOnly(Side.CLIENT) - public void registerIcons(IconRegister iconRegister) - { - this.itemIcon = iconRegister.registerIcon("AlchemicalWizardry:BlankSpell"); - } - - @Override - public void addInformation(ItemStack par1ItemStack, EntityPlayer par2EntityPlayer, List par3List, boolean par4) - { - par3List.add("Crystal of infinite possibilities."); - - if (!(par1ItemStack.stackTagCompound == null)) - { - NBTTagCompound itemTag = par1ItemStack.stackTagCompound; - - if (!par1ItemStack.stackTagCompound.getString("ownerName").equals("")) - { - par3List.add("Current owner: " + par1ItemStack.stackTagCompound.getString("ownerName")); - } - - par3List.add("Coords: " + itemTag.getInteger("xCoord") + ", " + itemTag.getInteger("yCoord") + ", " + itemTag.getInteger("zCoord")); - par3List.add("Bound Dimension: " + getDimensionID(par1ItemStack)); - } - } - - @Override - public ItemStack onItemRightClick(ItemStack par1ItemStack, World par2World, EntityPlayer par3EntityPlayer) - { - EnergyItems.checkAndSetItemOwner(par1ItemStack, par3EntityPlayer); - - if(SpellHelper.isFakePlayer(par2World, par3EntityPlayer)) - { - return par1ItemStack; - } - - if (par3EntityPlayer.isSneaking()) - { - return par1ItemStack; - } - - if (!par2World.isRemote) - { - //World world = MinecraftServer.getServer().worldServers[getDimensionID(par1ItemStack)]; - World world = DimensionManager.getWorld(getDimensionID(par1ItemStack)); - - if (world != null) - { - NBTTagCompound itemTag = par1ItemStack.stackTagCompound; - TileEntity tileEntity = world.getBlockTileEntity(itemTag.getInteger("xCoord"), itemTag.getInteger("yCoord"), itemTag.getInteger("zCoord")); - - if (tileEntity instanceof TEHomHeart) - { - TEHomHeart homHeart = (TEHomHeart) tileEntity; - - if (homHeart.canCastSpell(par1ItemStack, par2World, par3EntityPlayer)) - { - EnergyItems.syphonBatteries(par1ItemStack, par3EntityPlayer, homHeart.castSpell(par1ItemStack, par2World, par3EntityPlayer)); - } else - { - return par1ItemStack; - } - } else - { - return par1ItemStack; - } - } else - { - return par1ItemStack; - } - } else - { - return par1ItemStack; - } - - par2World.playSoundAtEntity(par3EntityPlayer, "random.fizz", 0.5F, 0.4F / (itemRand.nextFloat() * 0.4F + 0.8F)); -// if (!par2World.isRemote) -// { -// //par2World.spawnEntityInWorld(new EnergyBlastProjectile(par2World, par3EntityPlayer, damage)); -// par2World.spawnEntityInWorld(new FireProjectile(par2World, par3EntityPlayer, 10)); -// } - return par1ItemStack; - } - - public int getDimensionID(ItemStack itemStack) - { - if (itemStack.stackTagCompound == null) - { - itemStack.setTagCompound(new NBTTagCompound()); - } - - return itemStack.stackTagCompound.getInteger("dimensionId"); - } -} diff --git a/BM_src/WayofTime/alchemicalWizardry/common/items/BloodShard.java b/BM_src/WayofTime/alchemicalWizardry/common/items/BloodShard.java deleted file mode 100644 index d9e22af0..00000000 --- a/BM_src/WayofTime/alchemicalWizardry/common/items/BloodShard.java +++ /dev/null @@ -1,73 +0,0 @@ -package WayofTime.alchemicalWizardry.common.items; - -import WayofTime.alchemicalWizardry.AlchemicalWizardry; -import WayofTime.alchemicalWizardry.ModItems; -import WayofTime.alchemicalWizardry.api.items.interfaces.ArmourUpgrade; -import cpw.mods.fml.relauncher.Side; -import cpw.mods.fml.relauncher.SideOnly; -import net.minecraft.client.renderer.texture.IconRegister; -import net.minecraft.entity.player.EntityPlayer; -import net.minecraft.item.Item; -import net.minecraft.item.ItemStack; -import net.minecraft.world.World; - -public class BloodShard extends Item implements ArmourUpgrade -{ - public BloodShard(int par1) - { - super(par1); - this.maxStackSize = 64; - //setEnergyUsed(100); - setCreativeTab(AlchemicalWizardry.tabBloodMagic); - } - - @Override - @SideOnly(Side.CLIENT) - public void registerIcons(IconRegister iconRegister) - { - if (this.itemID == ModItems.weakBloodShard.itemID) - { - this.itemIcon = iconRegister.registerIcon("AlchemicalWizardry:WeakBloodShard"); - return; - } - - if (this.itemID == ModItems.demonBloodShard.itemID) - { - this.itemIcon = iconRegister.registerIcon("AlchemicalWizardry:DemonBloodShard"); - return; - } - } - - public int getBloodShardLevel() - { - if (this.itemID == ModItems.weakBloodShard.itemID) - { - return 1; - } else if (this.itemID == ModItems.demonBloodShard.itemID) - { - return 2; - } - - return 0; - } - - @Override - public void onArmourUpdate(World world, EntityPlayer player, ItemStack thisItemStack) - { - // TODO Auto-generated method stub - } - - @Override - public boolean isUpgrade() - { - // TODO Auto-generated method stub - return false; - } - - @Override - public int getEnergyForTenSeconds() - { - // TODO Auto-generated method stub - return 0; - } -} diff --git a/BM_src/WayofTime/alchemicalWizardry/common/items/BloodboundSword.java b/BM_src/WayofTime/alchemicalWizardry/common/items/BloodboundSword.java deleted file mode 100644 index 92c188a4..00000000 --- a/BM_src/WayofTime/alchemicalWizardry/common/items/BloodboundSword.java +++ /dev/null @@ -1,102 +0,0 @@ -package WayofTime.alchemicalWizardry.common.items; - -import WayofTime.alchemicalWizardry.AlchemicalWizardry; -import cpw.mods.fml.relauncher.Side; -import cpw.mods.fml.relauncher.SideOnly; -import net.minecraft.block.Block; -import net.minecraft.block.material.Material; -import net.minecraft.client.renderer.texture.IconRegister; -import net.minecraft.entity.EntityLivingBase; -import net.minecraft.entity.player.EntityPlayer; -import net.minecraft.item.ItemStack; -import net.minecraft.nbt.NBTTagCompound; - -import java.util.List; - -public class BloodboundSword extends EnergyItems -{ - private float weaponDamage; - //private int maxMode = 3; - private NBTTagCompound data; - - public BloodboundSword(int id) - { - super(id); - this.maxStackSize = 1; - setCreativeTab(AlchemicalWizardry.tabBloodMagic); - setEnergyUsed(100); - setFull3D(); - weaponDamage = 10.0F; - } - - @Override - @SideOnly(Side.CLIENT) - public void registerIcons(IconRegister iconRegister) - { - this.itemIcon = iconRegister.registerIcon("AlchemicalWizardry:EnergySword"); - } - - public boolean hitEntity(ItemStack par1ItemStack, EntityLivingBase par2EntityLivingBase, EntityLivingBase par3EntityLivingBase) - { - if (par3EntityLivingBase instanceof EntityPlayer) - { - EnergyItems.checkAndSetItemOwner(par1ItemStack, (EntityPlayer) par3EntityLivingBase); - - if (!this.syphonBatteries(par1ItemStack, (EntityPlayer) par3EntityLivingBase, this.getEnergyUsed())) - { - //this.damagePlayer(null, (EntityPlayer)par3EntityLivingBase, (this.getEnergyUsed() + 99) / 100); - } - } - - return true; - } - - /* - public int getDamageVsEntity(Entity par1Entity) - { - return this.weaponDamage; - } - */ - - public float func_82803_g() - { - return 4.0F; - } - - @Override - public void addInformation(ItemStack par1ItemStack, EntityPlayer par2EntityPlayer, List par3List, boolean par4) - { - par3List.add("Caution: may cause"); - par3List.add("a bad day..."); - - if (!(par1ItemStack.stackTagCompound == null)) - { - par3List.add("Current owner: " + par1ItemStack.stackTagCompound.getString("ownerName")); - } - } - - @Override - public float getStrVsBlock(ItemStack par1ItemStack, Block par2Block) - { - if (par2Block.blockID == Block.web.blockID) - { - return 15.0F; - } else - { - Material material = par2Block.blockMaterial; - return material != Material.plants && material != Material.vine && material != Material.coral && material != Material.leaves && material != Material.pumpkin ? 1.0F : 1.5F; - } - } - - public boolean getIsRepairable(ItemStack par1ItemStack, ItemStack par2ItemStack) - { - return false; - } - -// public Multimap func_111205_h() -// { -// Multimap multimap = super.func_111205_h(); -// multimap.put(SharedMonsterAttributes.field_111264_e.func_111108_a(), new AttributeModifier(field_111210_e, "Weapon modifier", (double)this.weaponDamage, 0)); -// return multimap; -// } -} \ No newline at end of file diff --git a/BM_src/WayofTime/alchemicalWizardry/common/items/BoundArmour.java b/BM_src/WayofTime/alchemicalWizardry/common/items/BoundArmour.java deleted file mode 100644 index 4546b125..00000000 --- a/BM_src/WayofTime/alchemicalWizardry/common/items/BoundArmour.java +++ /dev/null @@ -1,609 +0,0 @@ -package WayofTime.alchemicalWizardry.common.items; - -import java.util.List; - -import net.minecraft.client.renderer.texture.IconRegister; -import net.minecraft.entity.Entity; -import net.minecraft.entity.EntityLivingBase; -import net.minecraft.entity.player.EntityPlayer; -import net.minecraft.item.EnumArmorMaterial; -import net.minecraft.item.ItemArmor; -import net.minecraft.item.ItemStack; -import net.minecraft.nbt.NBTTagCompound; -import net.minecraft.nbt.NBTTagList; -import net.minecraft.potion.Potion; -import net.minecraft.util.DamageSource; -import net.minecraft.util.Icon; -import net.minecraft.world.World; -import net.minecraftforge.common.ISpecialArmor; -import thaumcraft.api.IGoggles; -import thaumcraft.api.nodes.IRevealer; -import WayofTime.alchemicalWizardry.AlchemicalWizardry; -import WayofTime.alchemicalWizardry.ModItems; -import WayofTime.alchemicalWizardry.api.items.interfaces.ArmourUpgrade; -import WayofTime.alchemicalWizardry.api.items.interfaces.IBindable; -import cpw.mods.fml.common.Optional; -import cpw.mods.fml.common.Optional.Interface; -import cpw.mods.fml.relauncher.Side; -import cpw.mods.fml.relauncher.SideOnly; - -@Optional.InterfaceList(value = {@Interface(iface="thaumcraft.api.nodes.IRevealer", modid = "Thaumcraft"), @Interface(iface="thaumcraft.api.IGoggles", modid = "Thaumcraft")}) -public class BoundArmour extends ItemArmor implements ISpecialArmor, IRevealer, IGoggles, IBindable -{ - private static int invSize = 9; - private static Icon helmetIcon; - private static Icon plateIcon; - private static Icon leggingsIcon; - private static Icon bootsIcon; - - public BoundArmour(int par1, int armorType) - { - super(par1, EnumArmorMaterial.GOLD, 0, armorType); - setMaxDamage(1000); - setCreativeTab(AlchemicalWizardry.tabBloodMagic); - } - - @Override - @SideOnly(Side.CLIENT) - public void registerIcons(IconRegister iconRegister) - { - this.itemIcon = iconRegister.registerIcon("AlchemicalWizardry:SheathedItem"); - this.helmetIcon = iconRegister.registerIcon("AlchemicalWizardry:BoundHelmet"); - this.plateIcon = iconRegister.registerIcon("AlchemicalWizardry:BoundPlate"); - this.leggingsIcon = iconRegister.registerIcon("AlchemicalWizardry:BoundLeggings"); - this.bootsIcon = iconRegister.registerIcon("AlchemicalWizardry:BoundBoots"); - } - - @SideOnly(Side.CLIENT) - - public Icon getIconFromDamage(int par1) - { - if (this.itemID == ModItems.boundHelmet.itemID) - { - return this.helmetIcon; - } - - if (this.itemID == ModItems.boundPlate.itemID) - { - return this.plateIcon; - } - - if (this.itemID == ModItems.boundLeggings.itemID) - { - return this.leggingsIcon; - } - - if (this.itemID == ModItems.boundBoots.itemID) - { - return this.bootsIcon; - } - - return this.itemIcon; - } - - @Override - public boolean getIsRepairable(ItemStack par1ItemStack, ItemStack par2ItemStack) - { - return false; - } - - @Override - public ArmorProperties getProperties(EntityLivingBase player, ItemStack armor, DamageSource source, double damage, int slot) - { - if (source.equals(DamageSource.drown)) - { - return new ArmorProperties(-1, 0, 0); - } - - if (source.equals(DamageSource.outOfWorld)) - { - if (isImmuneToVoid(armor)) - { - return new ArmorProperties(-1, 3, 100000); - } else - { - return new ArmorProperties(-1, 0, 0); - } - } - - ItemStack helmet = player.getCurrentItemOrArmor(4); - ItemStack plate = player.getCurrentItemOrArmor(3); - ItemStack leggings = player.getCurrentItemOrArmor(2); - ItemStack boots = player.getCurrentItemOrArmor(1); - - if (helmet == null || plate == null || leggings == null || boots == null) - { - return new ArmorProperties(-1, 0, 0); - } - - if (helmet.itemID == ModItems.boundHelmet.itemID || plate.itemID == ModItems.boundPlate.itemID || leggings.itemID == ModItems.boundLeggings.itemID || boots.itemID == ModItems.boundBoots.itemID) - { - if (source.isUnblockable()) - { - return new ArmorProperties(-1, 3, 3); - } - - return new ArmorProperties(-1, 3, 100000); - } - - return new ArmorProperties(-1, 0, 0); - } - - @Override - public int getArmorDisplay(EntityPlayer player, ItemStack armor, int slot) - { - if (armor.itemID == ModItems.boundHelmet.itemID) - { - return 3; - } - - if (armor.itemID == ModItems.boundPlate.itemID) - { - return 8; - } - - if (armor.itemID == ModItems.boundLeggings.itemID) - { - return 6; - } - - if (armor.itemID == ModItems.boundBoots.itemID) - { - return 3; - } - - return 5; - } - - @Override - public void damageArmor(EntityLivingBase entity, ItemStack stack, DamageSource source, int damage, int slot) - { - if (entity instanceof EntityPlayer) - { - EnergyItems.checkAndSetItemOwner(stack, (EntityPlayer) entity); - - if (((EntityPlayer) entity).capabilities.isCreativeMode) - { - return; - } - - //EnergyItems.syphonBatteries(stack, (EntityPlayer)entity, 200); - } - - stack.setItemDamage(stack.getItemDamage() + damage); - } - - @Override - public void addInformation(ItemStack par1ItemStack, EntityPlayer par2EntityPlayer, List par3List, boolean par4) - { - par3List.add("Devilish Protection"); - - if (!(par1ItemStack.stackTagCompound == null)) - { - if (!par1ItemStack.stackTagCompound.getString("ownerName").equals("")) - { - par3List.add("Current owner: " + par1ItemStack.stackTagCompound.getString("ownerName")); - } - - ItemStack[] inv = getInternalInventory(par1ItemStack); - - if (inv == null) - { - return; - } - - for (int i = 0; i < invSize; i++) - { - if (inv[i] != null) - { - par3List.add("Item in slot " + i + ": " + inv[i].getDisplayName()); - } - } - } - } - - @Override - public String getArmorTexture(ItemStack stack, Entity entity, int slot, int layer) - { - //TODO Make the armour invisible when the player has Invisibility on. - if (entity instanceof EntityLivingBase) - { - if (((EntityLivingBase) entity).isPotionActive(Potion.invisibility.id)) - { - if (itemID == ModItems.boundHelmet.itemID || itemID == ModItems.boundPlate.itemID || itemID == ModItems.boundBoots.itemID) - { - return "alchemicalwizardry:models/armor/boundArmour_invisible_layer_1.png"; - } - - if (itemID == ModItems.boundLeggings.itemID) - { - return "alchemicalwizardry:models/armor/boundArmour_invisible_layer_2.png"; - } - } - } - - if (itemID == ModItems.boundHelmet.itemID || itemID == ModItems.boundPlate.itemID || itemID == ModItems.boundBoots.itemID) - { - return "alchemicalwizardry:models/armor/boundArmour_layer_1.png"; - } - - if (itemID == ModItems.boundLeggings.itemID) - { - return "alchemicalwizardry:models/armor/boundArmour_layer_2.png"; - } else - { - return null; - } - } - - @Override - public ItemStack onItemRightClick(ItemStack par1ItemStack, World par2World, EntityPlayer par3EntityPlayer) - { - EnergyItems.checkAndSetItemOwner(par1ItemStack, par3EntityPlayer); - return super.onItemRightClick(par1ItemStack, par2World, par3EntityPlayer); - } - - @Override - public void onArmorTickUpdate(World world, EntityPlayer player, ItemStack itemStack) - { - if (itemStack.stackTagCompound == null) - { - itemStack.setTagCompound(new NBTTagCompound()); - } - - int maxBloodLevel = getMaxBloodShardLevel(itemStack); - ItemStack[] inv = getInternalInventory(itemStack); - - if (inv != null) - { - int iSize = 0; - int iBlood = 0; -// while(iSize 0) - { - EnergyItems.checkAndSetItemOwner(itemStack, player); - - if (!player.capabilities.isCreativeMode) - { - EnergyItems.syphonBatteries(itemStack, player, itemStack.getItemDamage() * 75); - itemStack.setItemDamage(0); - } - } - - return; - } - - public void tickInternalInventory(ItemStack par1ItemStack, World par2World, EntityPlayer par3Entity, int par4, boolean par5) - { - ItemStack[] inv = getInternalInventory(par1ItemStack); - - if (inv == null) - { - return; - } - - int blood = getMaxBloodShardLevel(par1ItemStack); - - //int blood = 1; - for (int i = 0; i < invSize; i++) - { - if (inv[i] == null) - { - continue; - } - - if (inv[i].getItem() instanceof ArmourUpgrade && blood > 0) - { - if (((ArmourUpgrade) inv[i].getItem()).isUpgrade()) - { - ((ArmourUpgrade) inv[i].getItem()).onArmourUpdate(par2World, par3Entity, inv[i]); - blood--; - } - - if (par2World.getWorldTime() % 200 == 0) - { - if (getUpgradeCostMultiplier(par1ItemStack) > 0.02f) - { - EnergyItems.syphonBatteries(par1ItemStack, par3Entity, (int) (((ArmourUpgrade) inv[i].getItem()).getEnergyForTenSeconds() * getUpgradeCostMultiplier(par1ItemStack))); - } - } - } - } - } - - public int getMaxBloodShardLevel(ItemStack armourStack) - { - ItemStack[] inv = getInternalInventory(armourStack); - - if (inv == null) - { - return 0; - } - - int max = 0; - - for (int i = 0; i < invSize; i++) - { - ItemStack itemStack = inv[i]; - - if (itemStack != null) - { - if (itemStack.itemID == ModItems.weakBloodShard.itemID) - { - max = Math.max(max, 1); - } - - if (itemStack.itemID == ModItems.demonBloodShard.itemID) - { - max = Math.max(max, 2); - } - } - } - - return max; - } - - public boolean hasAddedToInventory(ItemStack sigilItemStack, ItemStack addedItemStack) - { - ItemStack[] inv = getInternalInventory(sigilItemStack); - - if (inv == null) - { - return false; - } - - if (addedItemStack == null) - { - return false; - } - - int itemID = addedItemStack.getItem().itemID; - int candidateSlot = -1; - - for (int i = invSize - 1; i >= 0; i--) - { - ItemStack nextItem = inv[i]; - - if (nextItem == null) - { - candidateSlot = i; - continue; - } - } - - if (candidateSlot == -1) - { - return false; - } - - if (addedItemStack.getItem() instanceof ArmourUpgrade) - { - inv[candidateSlot] = addedItemStack; - saveInternalInventory(sigilItemStack, inv); - return true; - } - - return false; - } - - public ItemStack[] getInternalInventory(ItemStack itemStack) - { - NBTTagCompound itemTag = itemStack.stackTagCompound; - - if (itemTag == null) - { - itemStack.setTagCompound(new NBTTagCompound()); - return null; - } - - ItemStack[] inv = new ItemStack[9]; - NBTTagList tagList = itemTag.getTagList("Inventory"); - - if (tagList == null) - { - return null; - } - - for (int i = 0; i < tagList.tagCount(); i++) - { - NBTTagCompound tag = (NBTTagCompound) tagList.tagAt(i); - int slot = tag.getByte("Slot"); - - if (slot >= 0 && slot < invSize) - { - inv[slot] = ItemStack.loadItemStackFromNBT(tag); - } - } - - return inv; - } - - public void saveInternalInventory(ItemStack itemStack, ItemStack[] inventory) - { - NBTTagCompound itemTag = itemStack.stackTagCompound; - - if (itemTag == null) - { - itemStack.setTagCompound(new NBTTagCompound()); - } - - NBTTagList itemList = new NBTTagList(); - - for (int i = 0; i < invSize; i++) - { - ItemStack stack = inventory[i]; - - if (inventory[i] != null) - { - NBTTagCompound tag = new NBTTagCompound(); - tag.setByte("Slot", (byte) i); - inventory[i].writeToNBT(tag); - itemList.appendTag(tag); - } - } - - itemTag.setTag("Inventory", itemList); - } - - public boolean isImmuneToVoid(ItemStack itemStack) - { - ItemStack[] inv = getInternalInventory(itemStack); - - if (inv == null) - { - return false; - } - - for (ItemStack item : inv) - { - if (item == null) - { - continue; - } - - if (item.itemID == ModItems.voidSigil.itemID) - { - return true; - } - } - - return false; - } - - @Optional.Method(modid = "Thaumcraft") - public boolean hasIRevealer(ItemStack itemStack) - { - ItemStack[] inv = getInternalInventory(itemStack); - - if (inv == null) - { - return false; - } - - for (ItemStack item : inv) - { - if (item == null) - { - continue; - } - - if (AlchemicalWizardry.isThaumcraftLoaded && item.getItem() instanceof IRevealer) - { - return true; - } - } - - return false; - } - - @Optional.Method(modid = "Thaumcraft") - public boolean hasIGoggles(ItemStack itemStack) - { - ItemStack[] inv = getInternalInventory(itemStack); - - if (inv == null) - { - return false; - } - - for (ItemStack item : inv) - { - if (item == null) - { - continue; - } - - if (AlchemicalWizardry.isThaumcraftLoaded && item.getItem() instanceof IGoggles) - { - return true; - } - } - - return false; - } - - public float getUpgradeCostMultiplier(ItemStack itemStack) - { - ItemStack[] inv = getInternalInventory(itemStack); - - if (inv == null) - { - return 1.0f; - } - - for (ItemStack item : inv) - { - if (item == null) - { - continue; - } - - if (item.itemID == ModItems.weakBloodOrb.itemID) - { - return 0.75f; - } - - if (item.itemID == ModItems.apprenticeBloodOrb.itemID) - { - return 0.50f; - } - - if (item.itemID == ModItems.magicianBloodOrb.itemID) - { - return 0.25f; - } - - if (item.itemID == ModItems.masterBloodOrb.itemID) - { - return 0.0f; - } - - if (item.itemID == ModItems.archmageBloodOrb.itemID) - { - return 0.0f; - } - } - - return 1.0f; - } - - public int getItemEnchantability() - { - return 0; - } - - @Optional.Method(modid = "Thaumcraft") - public boolean showNodes(ItemStack itemstack, EntityLivingBase player) - { - return this.hasIRevealer(itemstack); - } - - @Optional.Method(modid = "Thaumcraft") - public boolean showIngamePopups(ItemStack itemstack, EntityLivingBase player) - { - return this.hasIGoggles(itemstack); - } -} diff --git a/BM_src/WayofTime/alchemicalWizardry/common/items/BoundAxe.java b/BM_src/WayofTime/alchemicalWizardry/common/items/BoundAxe.java deleted file mode 100644 index fbae4e3e..00000000 --- a/BM_src/WayofTime/alchemicalWizardry/common/items/BoundAxe.java +++ /dev/null @@ -1,366 +0,0 @@ -package WayofTime.alchemicalWizardry.common.items; - -import WayofTime.alchemicalWizardry.AlchemicalWizardry; -import WayofTime.alchemicalWizardry.api.items.interfaces.IBindable; -import cpw.mods.fml.relauncher.Side; -import cpw.mods.fml.relauncher.SideOnly; -import net.minecraft.block.Block; -import net.minecraft.block.BlockLeavesBase; -import net.minecraft.client.renderer.texture.IconRegister; -import net.minecraft.enchantment.Enchantment; -import net.minecraft.entity.Entity; -import net.minecraft.entity.EntityLivingBase; -import net.minecraft.entity.item.EntityItem; -import net.minecraft.entity.player.EntityPlayer; -import net.minecraft.item.ItemAxe; -import net.minecraft.item.ItemStack; -import net.minecraft.nbt.NBTTagCompound; -import net.minecraft.nbt.NBTTagList; -import net.minecraft.util.Icon; -import net.minecraft.world.World; -import net.minecraftforge.common.ForgeHooks; - -import java.util.ArrayList; -import java.util.List; - -public class BoundAxe extends ItemAxe implements IBindable -{ - /** - * Array of blocks the tool has extra effect against. - */ - public static final Block[] blocksEffectiveAgainst = new Block[]{Block.planks, Block.bookShelf, Block.wood, Block.chest, Block.stoneDoubleSlab, Block.stoneSingleSlab, Block.pumpkin, Block.pumpkinLantern}; - - public float efficiencyOnProperMaterial = 12.0F; - - /** - * Damage versus entities. - */ - public float damageVsEntity; - - private static Icon activeIcon; - private static Icon passiveIcon; - - private int energyUsed; - - public BoundAxe(int id) - { - super(id, AlchemicalWizardry.bloodBoundToolMaterial); - this.maxStackSize = 1; - //this.setMaxDamage(par3EnumToolMaterial.getMaxUses()); - this.efficiencyOnProperMaterial = 12.0F; - this.damageVsEntity = 5; - setCreativeTab(AlchemicalWizardry.tabBloodMagic); - setEnergyUsed(5); - } - - public void setEnergyUsed(int i) - { - energyUsed = i; - } - - public int getEnergyUsed() - { - return this.energyUsed; - } - - @Override - public void addInformation(ItemStack par1ItemStack, EntityPlayer par2EntityPlayer, List par3List, boolean par4) - { - par3List.add("Axe me about my puns!"); - - if (!(par1ItemStack.stackTagCompound == null)) - { - if (par1ItemStack.stackTagCompound.getBoolean("isActive")) - { - par3List.add("Activated"); - } else - { - par3List.add("Deactivated"); - } - - if (!par1ItemStack.stackTagCompound.getString("ownerName").equals("")) - { - par3List.add("Current owner: " + par1ItemStack.stackTagCompound.getString("ownerName")); - } - } - } - - @Override - @SideOnly(Side.CLIENT) - public void registerIcons(IconRegister iconRegister) - { - this.itemIcon = iconRegister.registerIcon("AlchemicalWizardry:BoundAxe_activated"); - this.activeIcon = iconRegister.registerIcon("AlchemicalWizardry:BoundAxe_activated"); - this.passiveIcon = iconRegister.registerIcon("AlchemicalWizardry:SheathedItem"); - } - - @Override - public Icon getIcon(ItemStack stack, int renderPass, EntityPlayer player, ItemStack usingItem, int useRemaining) - { - if (stack.stackTagCompound == null) - { - stack.setTagCompound(new NBTTagCompound()); - } - - NBTTagCompound tag = stack.stackTagCompound; - - if (tag.getBoolean("isActive")) - { - return this.activeIcon; - } else - { - return this.passiveIcon; - } - } - - @Override - public ItemStack onItemRightClick(ItemStack par1ItemStack, World par2World, EntityPlayer par3EntityPlayer) - { - EnergyItems.checkAndSetItemOwner(par1ItemStack, par3EntityPlayer); - - if (par3EntityPlayer.isSneaking()) - { - this.setActivated(par1ItemStack, !getActivated(par1ItemStack)); - par1ItemStack.stackTagCompound.setInteger("worldTimeDelay", (int) (par2World.getWorldTime() - 1) % 200); - return par1ItemStack; - } - - if (!getActivated(par1ItemStack)) - { - return par1ItemStack; - } - - if (par3EntityPlayer.isPotionActive(AlchemicalWizardry.customPotionInhibit)) - { - return par1ItemStack; - } - - int posX = (int) par3EntityPlayer.posX; - int posY = (int) par3EntityPlayer.posY; - int posZ = (int) par3EntityPlayer.posZ; - boolean silkTouch = false; - int so = Enchantment.silkTouch.effectId; - int fortune = Enchantment.fortune.effectId; - int fortuneLvl = 0; - NBTTagList enchants = par1ItemStack.getEnchantmentTagList(); - - if (enchants != null) - { - for (int i = 0; i < enchants.tagCount(); i++) - { - if (enchants.tagAt(i) instanceof NBTTagCompound) - { - NBTTagCompound nbt = (NBTTagCompound) enchants.tagAt(i); - int id = nbt.getShort("id"); - - if (id == so) - { - silkTouch = true; - } - - if (id == fortune) - { - fortuneLvl = nbt.getShort("lvl"); - } - } - } - } - - for (int i = -5; i <= 5; i++) - { - for (int j = 0; j <= 10; j++) - { - for (int k = -5; k <= 5; k++) - { - Block block = Block.blocksList[par2World.getBlockId(posX + i, posY + j, posZ + k)]; - int meta = par2World.getBlockMetadata(posX + i, posY + j, posZ + k); - - if (block != null) - { - float str = getStrVsBlock(par1ItemStack, block); - - if (str > 1.1f || block instanceof BlockLeavesBase && par2World.canMineBlock(par3EntityPlayer, posX + i, posY + j, posZ + k)) - { - //par1ItemStack.getEnchantmentTagList(); - if (silkTouch) - { - ItemStack droppedItem = new ItemStack(block, 1, meta); - - if (!par2World.isRemote) - { - par2World.spawnEntityInWorld(new EntityItem(par2World, posX, posY + par3EntityPlayer.getEyeHeight(), posZ, droppedItem)); - } - } else - { - ArrayList itemDropList = block.getBlockDropped(par2World, posX + i, posY + j, posZ + k, meta, fortuneLvl); - - if (itemDropList != null) - { - for (ItemStack item : itemDropList) - { - if (!par2World.isRemote) - { - par2World.spawnEntityInWorld(new EntityItem(par2World, posX, posY + par3EntityPlayer.getEyeHeight(), posZ, item)); - } - } - } - } - - par2World.setBlockToAir(posX + i, posY + j, posZ + k); - } - } - } - } - } - - EnergyItems.syphonBatteries(par1ItemStack, par3EntityPlayer, 10000); - return par1ItemStack; - } - - @Override - public void onUpdate(ItemStack par1ItemStack, World par2World, Entity par3Entity, int par4, boolean par5) - { - if (!(par3Entity instanceof EntityPlayer)) - { - return; - } - - EntityPlayer par3EntityPlayer = (EntityPlayer) par3Entity; - - if (par1ItemStack.stackTagCompound == null) - { - par1ItemStack.setTagCompound(new NBTTagCompound()); - } - -// if(par1ItemStack.stackTagCompound.getBoolean("isActive")) -// { -// EnergyItems.syphonBatteries(par1ItemStack, par3EntityPlayer, 1); -// } - - if (par2World.getWorldTime() % 200 == par1ItemStack.stackTagCompound.getInteger("worldTimeDelay") && par1ItemStack.stackTagCompound.getBoolean("isActive")) - { - if (!par3EntityPlayer.capabilities.isCreativeMode) - { - EnergyItems.syphonBatteries(par1ItemStack, par3EntityPlayer, 20); - } - } - - par1ItemStack.setItemDamage(0); - return; - } - - public void setActivated(ItemStack par1ItemStack, boolean newActivated) - { - NBTTagCompound itemTag = par1ItemStack.stackTagCompound; - - if (itemTag == null) - { - par1ItemStack.setTagCompound(new NBTTagCompound()); - } - - itemTag.setBoolean("isActive", newActivated); - } - - public boolean getActivated(ItemStack par1ItemStack) - { - NBTTagCompound itemTag = par1ItemStack.stackTagCompound; - - if (itemTag == null) - { - par1ItemStack.setTagCompound(new NBTTagCompound()); - } - - return itemTag.getBoolean("isActive"); - } - - /** - * Returns the strength of the stack against a given block. 1.0F base, (Quality+1)*2 if correct blocktype, 1.5F if - * sword - */ - public float getStrVsBlock(ItemStack par1ItemStack, Block par2Block) - { - if (!getActivated(par1ItemStack)) - { - return 0.0F; - } - - return super.getStrVsBlock(par1ItemStack, par2Block); - } - - /** - * Current implementations of this method in child classes do not use the entry argument beside ev. They just raise - * the damage on the stack. - */ - public boolean hitEntity(ItemStack par1ItemStack, EntityLivingBase par2EntityLivingBase, EntityLivingBase par3EntityLivingBase) - { - if (!getActivated(par1ItemStack)) - { - return false; - } - - //par1ItemStack.damageItem(2, par3EntityLivingBase); - return true; - } - - public boolean onBlockDestroyed(ItemStack par1ItemStack, World par2World, int par3, int par4, int par5, int par6, EntityLivingBase par7EntityLivingBase) - { - if ((double) Block.blocksList[par3].getBlockHardness(par2World, par4, par5, par6) != 0.0D) - { - //par1ItemStack.damageItem(1, par7EntityLivingBase); - } - - return true; - } - - @SideOnly(Side.CLIENT) - - /** - * Returns True is the item is renderer in full 3D when hold. - */ - public boolean isFull3D() - { - return true; - } - - /** - * Return the enchantability factor of the item, most of the time is based on material. - */ - @Override - public int getItemEnchantability() - { - return 30; - } - - /** - * Return whether this item is repairable in an anvil. - */ -// public boolean getIsRepairable(ItemStack par1ItemStack, ItemStack par2ItemStack) -// { -// return true; -// } - - /** - * FORGE: Overridden to allow custom tool effectiveness - */ - @Override - public float getStrVsBlock(ItemStack stack, Block block, int meta) - { - if (!getActivated(stack)) - { - return 0.0F; - } - - if (ForgeHooks.isToolEffective(stack, block, meta)) - { - return efficiencyOnProperMaterial; - } - - return getStrVsBlock(stack, block); - } - - @Override - public boolean onLeftClickEntity(ItemStack stack, EntityPlayer player, Entity entity) - { - return !getActivated(stack); - } -} diff --git a/BM_src/WayofTime/alchemicalWizardry/common/items/BoundPickaxe.java b/BM_src/WayofTime/alchemicalWizardry/common/items/BoundPickaxe.java deleted file mode 100644 index b43e3c5b..00000000 --- a/BM_src/WayofTime/alchemicalWizardry/common/items/BoundPickaxe.java +++ /dev/null @@ -1,385 +0,0 @@ -package WayofTime.alchemicalWizardry.common.items; - -import WayofTime.alchemicalWizardry.AlchemicalWizardry; -import WayofTime.alchemicalWizardry.api.items.interfaces.IBindable; -import cpw.mods.fml.relauncher.Side; -import cpw.mods.fml.relauncher.SideOnly; -import net.minecraft.block.Block; -import net.minecraft.block.material.Material; -import net.minecraft.client.renderer.texture.IconRegister; -import net.minecraft.enchantment.Enchantment; -import net.minecraft.entity.Entity; -import net.minecraft.entity.EntityLivingBase; -import net.minecraft.entity.item.EntityItem; -import net.minecraft.entity.player.EntityPlayer; -import net.minecraft.item.ItemPickaxe; -import net.minecraft.item.ItemStack; -import net.minecraft.nbt.NBTTagCompound; -import net.minecraft.nbt.NBTTagList; -import net.minecraft.util.Icon; -import net.minecraft.world.World; -import net.minecraftforge.common.ForgeHooks; - -import java.util.ArrayList; -import java.util.List; - -public class BoundPickaxe extends ItemPickaxe implements IBindable -{ - /** - * Array of blocks the tool has extra effect against. - */ - public static final Block[] blocksEffectiveAgainst = new Block[]{Block.cobblestone, Block.stoneDoubleSlab, Block.stoneSingleSlab, Block.stone, Block.sandStone, Block.cobblestoneMossy, Block.oreIron, Block.blockIron, Block.oreCoal, Block.blockGold, Block.oreGold, Block.oreDiamond, Block.blockDiamond, Block.ice, Block.netherrack, Block.oreLapis, Block.blockLapis, Block.oreRedstone, Block.oreRedstoneGlowing, Block.rail, Block.railDetector, Block.railPowered, Block.railActivator}; - - public float efficiencyOnProperMaterial = 12.0F; - - /** - * Damage versus entities. - */ - public float damageVsEntity; - - private static Icon activeIcon; - private static Icon passiveIcon; - - private int energyUsed; - - public BoundPickaxe(int id) - { - super(id, AlchemicalWizardry.bloodBoundToolMaterial); - this.maxStackSize = 1; - //this.setMaxDamage(par3EnumToolMaterial.getMaxUses()); - this.efficiencyOnProperMaterial = 12.0F; - this.damageVsEntity = 5; - setCreativeTab(AlchemicalWizardry.tabBloodMagic); - this.setEnergyUsed(5); - } - - public void setEnergyUsed(int i) - { - energyUsed = i; - } - - public int getEnergyUsed() - { - return this.energyUsed; - } - - @Override - public void addInformation(ItemStack par1ItemStack, EntityPlayer par2EntityPlayer, List par3List, boolean par4) - { - par3List.add("The Souls of the Damned"); - par3List.add("do not like stone..."); - - if (!(par1ItemStack.stackTagCompound == null)) - { - if (par1ItemStack.stackTagCompound.getBoolean("isActive")) - { - par3List.add("Activated"); - } else - { - par3List.add("Deactivated"); - } - - if (!par1ItemStack.stackTagCompound.getString("ownerName").equals("")) - { - par3List.add("Current owner: " + par1ItemStack.stackTagCompound.getString("ownerName")); - } - } - } - - @Override - @SideOnly(Side.CLIENT) - public void registerIcons(IconRegister iconRegister) - { - this.itemIcon = iconRegister.registerIcon("AlchemicalWizardry:BoundPickaxe_activated"); - this.activeIcon = iconRegister.registerIcon("AlchemicalWizardry:BoundPickaxe_activated"); - this.passiveIcon = iconRegister.registerIcon("AlchemicalWizardry:SheathedItem"); - } - - @Override - public Icon getIcon(ItemStack stack, int renderPass, EntityPlayer player, ItemStack usingItem, int useRemaining) - { - if (stack.stackTagCompound == null) - { - stack.setTagCompound(new NBTTagCompound()); - } - - NBTTagCompound tag = stack.stackTagCompound; - - if (tag.getBoolean("isActive")) - { - return this.activeIcon; - } else - { - return this.passiveIcon; - } - } - - @Override - public ItemStack onItemRightClick(ItemStack par1ItemStack, World par2World, EntityPlayer par3EntityPlayer) - { - EnergyItems.checkAndSetItemOwner(par1ItemStack, par3EntityPlayer); - - if (par3EntityPlayer.isSneaking()) - { - this.setActivated(par1ItemStack, !getActivated(par1ItemStack)); - par1ItemStack.stackTagCompound.setInteger("worldTimeDelay", (int) (par2World.getWorldTime() - 1) % 200); - return par1ItemStack; - } - - if (!getActivated(par1ItemStack)) - { - return par1ItemStack; - } - - if (par3EntityPlayer.isPotionActive(AlchemicalWizardry.customPotionInhibit)) - { - return par1ItemStack; - } - - int posX = (int) par3EntityPlayer.posX; - int posY = (int) par3EntityPlayer.posY; - int posZ = (int) par3EntityPlayer.posZ; - boolean silkTouch = false; - int so = Enchantment.silkTouch.effectId; - int fortune = Enchantment.fortune.effectId; - int fortuneLvl = 0; - NBTTagList enchants = par1ItemStack.getEnchantmentTagList(); - - if (enchants != null) - { - for (int i = 0; i < enchants.tagCount(); i++) - { - if (enchants.tagAt(i) instanceof NBTTagCompound) - { - NBTTagCompound nbt = (NBTTagCompound) enchants.tagAt(i); - int id = nbt.getShort("id"); - - if (id == so) - { - silkTouch = true; - } - - if (id == fortune) - { - fortuneLvl = nbt.getShort("lvl"); - } - } - } - } - - for (int i = -5; i <= 5; i++) - { - for (int j = -5; j <= 5; j++) - { - for (int k = -5; k <= 5; k++) - { - Block block = Block.blocksList[par2World.getBlockId(posX + i, posY + j, posZ + k)]; - int meta = par2World.getBlockMetadata(posX + i, posY + j, posZ + k); - - if (block != null && block.getBlockHardness(par2World, posX + i, posY + j, posZ + k) != -1) - { - float str = getStrVsBlock(par1ItemStack, block); - - if (str > 1.1f && par2World.canMineBlock(par3EntityPlayer, posX + i, posY + j, posZ + k)) - { - //par1ItemStack.getEnchantmentTagList(); - if (silkTouch) - { - ItemStack droppedItem = new ItemStack(block, 1, meta); - - if (!par2World.isRemote) - { - par2World.spawnEntityInWorld(new EntityItem(par2World, posX, posY + par3EntityPlayer.getEyeHeight(), posZ, droppedItem)); - } - } else - { - ArrayList itemDropList = block.getBlockDropped(par2World, posX + i, posY + j, posZ + k, meta, fortuneLvl); - - if (itemDropList != null) - { - for (ItemStack item : itemDropList) - { - if (!par2World.isRemote) - { - par2World.spawnEntityInWorld(new EntityItem(par2World, posX, posY + par3EntityPlayer.getEyeHeight(), posZ, item)); - } - } - } - } - - par2World.setBlockToAir(posX + i, posY + j, posZ + k); - } - } - } - } - } - - EnergyItems.syphonBatteries(par1ItemStack, par3EntityPlayer, 10000); - return par1ItemStack; - } - - @Override - public void onUpdate(ItemStack par1ItemStack, World par2World, Entity par3Entity, int par4, boolean par5) - { - if (!(par3Entity instanceof EntityPlayer)) - { - return; - } - - EntityPlayer par3EntityPlayer = (EntityPlayer) par3Entity; - - if (par1ItemStack.stackTagCompound == null) - { - par1ItemStack.setTagCompound(new NBTTagCompound()); - } - -// if(par1ItemStack.stackTagCompound.getBoolean("isActive")) -// { -// EnergyItems.syphonBatteries(par1ItemStack, par3EntityPlayer, 1); -// } - - if (par2World.getWorldTime() % 200 == par1ItemStack.stackTagCompound.getInteger("worldTimeDelay") && par1ItemStack.stackTagCompound.getBoolean("isActive")) - { - if (!par3EntityPlayer.capabilities.isCreativeMode) - { - EnergyItems.syphonBatteries(par1ItemStack, par3EntityPlayer, 20); - } - } - - par1ItemStack.setItemDamage(0); - return; - } - - public void setActivated(ItemStack par1ItemStack, boolean newActivated) - { - NBTTagCompound itemTag = par1ItemStack.stackTagCompound; - - if (itemTag == null) - { - par1ItemStack.setTagCompound(new NBTTagCompound()); - } - - itemTag.setBoolean("isActive", newActivated); - } - - public boolean getActivated(ItemStack par1ItemStack) - { - NBTTagCompound itemTag = par1ItemStack.stackTagCompound; - - if (itemTag == null) - { - par1ItemStack.setTagCompound(new NBTTagCompound()); - } - - return itemTag.getBoolean("isActive"); - } - - /** - * Returns the strength of the stack against a given block. 1.0F base, (Quality+1)*2 if correct blocktype, 1.5F if - * sword - */ - public float getStrVsBlock(ItemStack par1ItemStack, Block par2Block) - { - if (!getActivated(par1ItemStack)) - { - return 0.0F; - } - - return super.getStrVsBlock(par1ItemStack, par2Block); - } - - /** - * Current implementations of this method in child classes do not use the entry argument beside ev. They just raise - * the damage on the stack. - */ - public boolean hitEntity(ItemStack par1ItemStack, EntityLivingBase par2EntityLivingBase, EntityLivingBase par3EntityLivingBase) - { - if (!getActivated(par1ItemStack)) - { - return false; - } - - //par1ItemStack.damageItem(2, par3EntityLivingBase); - return true; - } - - @Override - public boolean onBlockDestroyed(ItemStack par1ItemStack, World par2World, int par3, int par4, int par5, int par6, EntityLivingBase par7EntityLivingBase) - { - if ((double) Block.blocksList[par3].getBlockHardness(par2World, par4, par5, par6) != 0.0D) - { - //par1ItemStack.damageItem(1, par7EntityLivingBase); - } - - if (par7EntityLivingBase instanceof EntityPlayer) - { - EnergyItems.syphonBatteries(par1ItemStack, (EntityPlayer) par7EntityLivingBase, getEnergyUsed()); - } - - //TODO Possibly add better functionality for the items? - //par7EntityLivingBase.getLookVec(); - return true; - } - - @SideOnly(Side.CLIENT) - - /** - * Returns True is the item is renderer in full 3D when hold. - */ - public boolean isFull3D() - { - return true; - } - - /** - * Return the enchantability factor of the item, most of the time is based on material. - */ - @Override - public int getItemEnchantability() - { - return 30; - } - - /** - * Return whether this item is repairable in an anvil. - */ -// public boolean getIsRepairable(ItemStack par1ItemStack, ItemStack par2ItemStack) -// { -// return false; -// } - - /** - * FORGE: Overridden to allow custom tool effectiveness - */ - @Override - public float getStrVsBlock(ItemStack stack, Block block, int meta) - { - if (!getActivated(stack)) - { - return 0.0F; - } - - if (ForgeHooks.isToolEffective(stack, block, meta)) - { - return efficiencyOnProperMaterial; - } - - return getStrVsBlock(stack, block); - } - - @Override - - /** - * Returns if the item (tool) can harvest results from the block type. - */ - public boolean canHarvestBlock(Block par1Block) - { - return par1Block == Block.obsidian ? true : (par1Block != Block.blockDiamond && par1Block != Block.oreDiamond ? (par1Block != Block.oreEmerald && par1Block != Block.blockEmerald ? (par1Block != Block.blockGold && par1Block != Block.oreGold ? (par1Block != Block.blockIron && par1Block != Block.oreIron ? (par1Block != Block.blockLapis && par1Block != Block.oreLapis ? (par1Block != Block.oreRedstone && par1Block != Block.oreRedstoneGlowing ? (par1Block.blockMaterial == Material.rock ? true : (par1Block.blockMaterial == Material.iron ? true : par1Block.blockMaterial == Material.anvil)) : true) : true) : true) : true) : true) : true); - } - - @Override - public boolean onLeftClickEntity(ItemStack stack, EntityPlayer player, Entity entity) - { - return !getActivated(stack); - } -} diff --git a/BM_src/WayofTime/alchemicalWizardry/common/items/BoundShovel.java b/BM_src/WayofTime/alchemicalWizardry/common/items/BoundShovel.java deleted file mode 100644 index 2e65d6ea..00000000 --- a/BM_src/WayofTime/alchemicalWizardry/common/items/BoundShovel.java +++ /dev/null @@ -1,381 +0,0 @@ -package WayofTime.alchemicalWizardry.common.items; - -import WayofTime.alchemicalWizardry.AlchemicalWizardry; -import WayofTime.alchemicalWizardry.api.items.interfaces.IBindable; - -import com.google.common.collect.Multimap; - -import cpw.mods.fml.relauncher.Side; -import cpw.mods.fml.relauncher.SideOnly; -import net.minecraft.block.Block; -import net.minecraft.client.renderer.texture.IconRegister; -import net.minecraft.enchantment.Enchantment; -import net.minecraft.entity.Entity; -import net.minecraft.entity.EntityLivingBase; -import net.minecraft.entity.SharedMonsterAttributes; -import net.minecraft.entity.ai.attributes.AttributeModifier; -import net.minecraft.entity.item.EntityItem; -import net.minecraft.entity.player.EntityPlayer; -import net.minecraft.item.ItemSpade; -import net.minecraft.item.ItemStack; -import net.minecraft.nbt.NBTTagCompound; -import net.minecraft.nbt.NBTTagList; -import net.minecraft.util.Icon; -import net.minecraft.world.World; -import net.minecraftforge.common.ForgeHooks; - -import java.util.ArrayList; -import java.util.List; - -public class BoundShovel extends ItemSpade implements IBindable -{ - /** - * Array of blocks the tool has extra effect against. - */ - public static final Block[] blocksEffectiveAgainst = new Block[]{Block.grass, Block.dirt, Block.sand, Block.gravel, Block.snow, Block.blockSnow, Block.blockClay, Block.tilledField, Block.slowSand, Block.mycelium}; - - public float efficiencyOnProperMaterial = 12.0F; - - /** - * Damage versus entities. - */ - public float damageVsEntity; - - private static Icon activeIcon; - private static Icon passiveIcon; - - private int energyUsed; - - public BoundShovel(int id) - { - super(id, AlchemicalWizardry.bloodBoundToolMaterial); - this.maxStackSize = 1; - //this.setMaxDamage(par3EnumToolMaterial.getMaxUses()); - this.efficiencyOnProperMaterial = 12.0F; - this.damageVsEntity = 5; - setCreativeTab(AlchemicalWizardry.tabBloodMagic); - setEnergyUsed(5); - } - - public void setEnergyUsed(int i) - { - energyUsed = i; - } - - public int getEnergyUsed() - { - return this.energyUsed; - } - - @Override - public void addInformation(ItemStack par1ItemStack, EntityPlayer par2EntityPlayer, List par3List, boolean par4) - { - par3List.add("No, not that type of spade."); - - if (!(par1ItemStack.stackTagCompound == null)) - { - if (par1ItemStack.stackTagCompound.getBoolean("isActive")) - { - par3List.add("Activated"); - } else - { - par3List.add("Deactivated"); - } - - if (!par1ItemStack.stackTagCompound.getString("ownerName").equals("")) - { - par3List.add("Current owner: " + par1ItemStack.stackTagCompound.getString("ownerName")); - } - } - } - - @Override - @SideOnly(Side.CLIENT) - public void registerIcons(IconRegister iconRegister) - { - this.itemIcon = iconRegister.registerIcon("AlchemicalWizardry:BoundShovel_activated"); - this.activeIcon = iconRegister.registerIcon("AlchemicalWizardry:BoundShovel_activated"); - this.passiveIcon = iconRegister.registerIcon("AlchemicalWizardry:SheathedItem"); - } - - @Override - public Icon getIcon(ItemStack stack, int renderPass, EntityPlayer player, ItemStack usingItem, int useRemaining) - { - if (stack.stackTagCompound == null) - { - stack.setTagCompound(new NBTTagCompound()); - } - - NBTTagCompound tag = stack.stackTagCompound; - - if (tag.getBoolean("isActive")) - { - return this.activeIcon; - } else - { - return this.passiveIcon; - } - } - - @Override - public ItemStack onItemRightClick(ItemStack par1ItemStack, World par2World, EntityPlayer par3EntityPlayer) - { - EnergyItems.checkAndSetItemOwner(par1ItemStack, par3EntityPlayer); - - if (par3EntityPlayer.isSneaking()) - { - this.setActivated(par1ItemStack, !getActivated(par1ItemStack)); - par1ItemStack.stackTagCompound.setInteger("worldTimeDelay", (int) (par2World.getWorldTime() - 1) % 200); - return par1ItemStack; - } - - if (!getActivated(par1ItemStack)) - { - return par1ItemStack; - } - - if (par3EntityPlayer.isPotionActive(AlchemicalWizardry.customPotionInhibit)) - { - return par1ItemStack; - } - - int posX = (int) par3EntityPlayer.posX; - int posY = (int) par3EntityPlayer.posY; - int posZ = (int) par3EntityPlayer.posZ; - boolean silkTouch = false; - int so = Enchantment.silkTouch.effectId; - int fortune = Enchantment.fortune.effectId; - int fortuneLvl = 0; - NBTTagList enchants = par1ItemStack.getEnchantmentTagList(); - - if (enchants != null) - { - for (int i = 0; i < enchants.tagCount(); i++) - { - if (enchants.tagAt(i) instanceof NBTTagCompound) - { - NBTTagCompound nbt = (NBTTagCompound) enchants.tagAt(i); - int id = nbt.getShort("id"); - - if (id == so) - { - silkTouch = true; - } - - if (id == fortune) - { - fortuneLvl = nbt.getShort("lvl"); - } - } - } - } - - for (int i = -5; i <= 5; i++) - { - for (int j = 0; j <= 10; j++) - { - for (int k = -5; k <= 5; k++) - { - Block block = Block.blocksList[par2World.getBlockId(posX + i, posY + j, posZ + k)]; - int meta = par2World.getBlockMetadata(posX + i, posY + j, posZ + k); - - if (block != null) - { - float str = getStrVsBlock(par1ItemStack, block); - - if (str > 1.1f && par2World.canMineBlock(par3EntityPlayer, posX + i, posY + j, posZ + k)) - { - //par1ItemStack.getEnchantmentTagList(); - if (silkTouch) - { - ItemStack droppedItem = new ItemStack(block, 1, meta); - - if (!par2World.isRemote) - { - par2World.spawnEntityInWorld(new EntityItem(par2World, posX, posY + par3EntityPlayer.getEyeHeight(), posZ, droppedItem)); - } - } else - { - ArrayList itemDropList = block.getBlockDropped(par2World, posX + i, posY + j, posZ + k, meta, fortuneLvl); - - if (itemDropList != null) - { - for (ItemStack item : itemDropList) - { - if (!par2World.isRemote) - { - par2World.spawnEntityInWorld(new EntityItem(par2World, posX, posY + par3EntityPlayer.getEyeHeight(), posZ, item)); - } - } - } - } - - par2World.setBlockToAir(posX + i, posY + j, posZ + k); - } - } - } - } - } - - EnergyItems.syphonBatteries(par1ItemStack, par3EntityPlayer, 10000); - return par1ItemStack; - } - - @Override - public void onUpdate(ItemStack par1ItemStack, World par2World, Entity par3Entity, int par4, boolean par5) - { - if (!(par3Entity instanceof EntityPlayer)) - { - return; - } - - EntityPlayer par3EntityPlayer = (EntityPlayer) par3Entity; - - if (par1ItemStack.stackTagCompound == null) - { - par1ItemStack.setTagCompound(new NBTTagCompound()); - } - -// if(par1ItemStack.stackTagCompound.getBoolean("isActive")) -// { -// EnergyItems.syphonBatteries(par1ItemStack, par3EntityPlayer, 1); -// } - - if (par2World.getWorldTime() % 200 == par1ItemStack.stackTagCompound.getInteger("worldTimeDelay") && par1ItemStack.stackTagCompound.getBoolean("isActive")) - { - if (!par3EntityPlayer.capabilities.isCreativeMode) - { - EnergyItems.syphonBatteries(par1ItemStack, par3EntityPlayer, 20); - } - } - - par1ItemStack.setItemDamage(0); - return; - } - - public void setActivated(ItemStack par1ItemStack, boolean newActivated) - { - NBTTagCompound itemTag = par1ItemStack.stackTagCompound; - - if (itemTag == null) - { - par1ItemStack.setTagCompound(new NBTTagCompound()); - } - - itemTag.setBoolean("isActive", newActivated); - } - - public boolean getActivated(ItemStack par1ItemStack) - { - NBTTagCompound itemTag = par1ItemStack.stackTagCompound; - - if (itemTag == null) - { - par1ItemStack.setTagCompound(new NBTTagCompound()); - } - - return itemTag.getBoolean("isActive"); - } - - /** - * Returns the strength of the stack against a given block. 1.0F base, (Quality+1)*2 if correct blocktype, 1.5F if - * sword - */ - public float getStrVsBlock(ItemStack par1ItemStack, Block par2Block) - { - if (!getActivated(par1ItemStack)) - { - return 0.0F; - } - - return super.getStrVsBlock(par1ItemStack, par2Block); - } - - /** - * Current implementations of this method in child classes do not use the entry argument beside ev. They just raise - * the damage on the stack. - */ - public boolean hitEntity(ItemStack par1ItemStack, EntityLivingBase par2EntityLivingBase, EntityLivingBase par3EntityLivingBase) - { - if (!getActivated(par1ItemStack)) - { - return false; - } - - //par1ItemStack.damageItem(2, par3EntityLivingBase); - return true; - } - - public boolean onBlockDestroyed(ItemStack par1ItemStack, World par2World, int par3, int par4, int par5, int par6, EntityLivingBase par7EntityLivingBase) - { - if ((double) Block.blocksList[par3].getBlockHardness(par2World, par4, par5, par6) != 0.0D) - { - //par1ItemStack.damageItem(1, par7EntityLivingBase); - } - - return true; - } - - @SideOnly(Side.CLIENT) - - /** - * Returns True is the item is renderer in full 3D when hold. - */ - public boolean isFull3D() - { - return true; - } - - /** - * Return the enchantability factor of the item, most of the time is based on material. - */ - public int getItemEnchantability() - { - return 30; - } - - /** - * Return whether this item is repairable in an anvil. - */ -// public boolean getIsRepairable(ItemStack par1ItemStack, ItemStack par2ItemStack) -// { -// return false; -// } - @Override - public Multimap getItemAttributeModifiers() - { - Multimap multimap = super.getItemAttributeModifiers(); - multimap.put(SharedMonsterAttributes.attackDamage.getAttributeUnlocalizedName(), new AttributeModifier(field_111210_e, "Tool modifier", (double) this.damageVsEntity, 0)); - return multimap; - } - - /** - * FORGE: Overridden to allow custom tool effectiveness - */ - @Override - public float getStrVsBlock(ItemStack stack, Block block, int meta) - { - if (!getActivated(stack)) - { - return 0.0F; - } - - if (ForgeHooks.isToolEffective(stack, block, meta)) - { - return efficiencyOnProperMaterial; - } - - return getStrVsBlock(stack, block); - } - - public boolean canHarvestBlock(Block par1Block) - { - return par1Block == Block.snow ? true : par1Block == Block.blockSnow; - } - - @Override - public boolean onLeftClickEntity(ItemStack stack, EntityPlayer player, Entity entity) - { - return !getActivated(stack); - } -} diff --git a/BM_src/WayofTime/alchemicalWizardry/common/items/CheatyItem.java b/BM_src/WayofTime/alchemicalWizardry/common/items/CheatyItem.java deleted file mode 100644 index 06b0323c..00000000 --- a/BM_src/WayofTime/alchemicalWizardry/common/items/CheatyItem.java +++ /dev/null @@ -1,254 +0,0 @@ -package WayofTime.alchemicalWizardry.common.items; - -import WayofTime.alchemicalWizardry.AlchemicalWizardry; -import WayofTime.alchemicalWizardry.api.items.interfaces.IBindable; -import WayofTime.alchemicalWizardry.api.soulNetwork.LifeEssenceNetwork; -import WayofTime.alchemicalWizardry.common.PacketHandler; -import WayofTime.alchemicalWizardry.common.tileEntity.TEAltar; -import cpw.mods.fml.common.network.PacketDispatcher; -import cpw.mods.fml.relauncher.Side; -import cpw.mods.fml.relauncher.SideOnly; -import net.minecraft.client.renderer.texture.IconRegister; -import net.minecraft.entity.player.EntityPlayer; -import net.minecraft.item.Item; -import net.minecraft.item.ItemStack; -import net.minecraft.nbt.NBTTagCompound; -import net.minecraft.server.MinecraftServer; -import net.minecraft.util.DamageSource; -import net.minecraft.world.World; -import net.minecraftforge.common.FakePlayer; - -import java.util.List; - -public class CheatyItem extends Item implements IBindable -{ - // private int maxEssence; - //protected int orbLevel; - - public CheatyItem(int id) - { - super(id); - DamageSource damageSource = DamageSource.generic; - setMaxStackSize(1); - //setMaxDamage(damage); - setCreativeTab(AlchemicalWizardry.tabBloodMagic); - //setFull3D(); - //maxEssence = damage; - //orbLevel = 1; - } - - @Override - @SideOnly(Side.CLIENT) - public void registerIcons(IconRegister iconRegister) - { - this.itemIcon = iconRegister.registerIcon("AlchemicalWizardry:EnergyBattery"); - } - - @Override - public void addInformation(ItemStack par1ItemStack, EntityPlayer par2EntityPlayer, List par3List, boolean par4) - { - par3List.add("Creative only"); - par3List.add("Right-click to fill network,"); - par3List.add("shift-right to empty."); - - //par3List.add("LP: " + (this.getMaxDamage() - this.getDamage(par1ItemStack))); - if (!(par1ItemStack.stackTagCompound == null)) - { - par3List.add("Current owner: " + par1ItemStack.stackTagCompound.getString("ownerName")); -// EntityPlayer owner = MinecraftServer.getServer().getConfigurationManager().getPlayerForUsername(par1ItemStack.stackTagCompound.getString("ownerName")); -// if(owner!=null) -// { -// NBTTagCompound tag = owner.getEntityData(); -// par3List.add("LP: " + tag.getInteger("currentEssence")); -// } - } - - //par3List.add("LP: " + par2EntityPlayer.getEntityData().getInteger("currentEssence")); - } - - public ItemStack onItemRightClick(ItemStack par1ItemStack, World par2World, EntityPlayer par3EntityPlayer) - { - EnergyItems.checkAndSetItemOwner(par1ItemStack, par3EntityPlayer); - World world = par3EntityPlayer.worldObj; - - if (par3EntityPlayer instanceof FakePlayer) - { - return par1ItemStack; - } - - if (world != null) - { - double posX = par3EntityPlayer.posX; - double posY = par3EntityPlayer.posY; - double posZ = par3EntityPlayer.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); - PacketDispatcher.sendPacketToAllAround(posX, posY, posZ, 20, world.provider.dimensionId, TEAltar.getParticlePacket(posX, posY, posZ, (short) 4)); - } - - if (!par3EntityPlayer.worldObj.isRemote) - { - return par1ItemStack; - } - - NBTTagCompound itemTag = par1ItemStack.stackTagCompound; - - if (itemTag == null || itemTag.getString("ownerName").equals("")) - { - return par1ItemStack; - } - - if (par3EntityPlayer.isSneaking()) - { - PacketDispatcher.sendPacketToServer(PacketHandler.getCreativeCheatPacket(itemTag.getString("ownerName"), false)); - } else - { - PacketDispatcher.sendPacketToServer(PacketHandler.getCreativeCheatPacket(itemTag.getString("ownerName"), true)); - } - - //PacketDispatcher.sendPacketToPlayer(PacketHandler.getPacket(itemTag.getString("ownerName")), (Player)par3EntityPlayer); -// EntityPlayer owner = MinecraftServer.getServer().getConfigurationManager().getPlayerForUsername(itemTag.getString("ownerName")); -// if(owner==null){return par1ItemStack;} -// NBTTagCompound ownerTag = owner.getEntityData(); -// if(ownerTag.getInteger("currentEssence")<=this.maxEssence) -// { -// damagePlayer(par2World, par3EntityPlayer,2); -// ownerTag.setInteger("currentEssence", Math.min(this.maxEssence, ownerTag.getInteger("currentEssence")+200/2)); -// } - return par1ItemStack; - } - - /* - * @return the damage that was not deducted - */ - public int damageItem(ItemStack par1ItemStack, int par2int) - { - if (par2int == 0) - { - return 0; - } - - int before = this.getDamage(par1ItemStack); - this.setDamage(par1ItemStack, this.getDamage(par1ItemStack) + par2int); - return par2int - (this.getDamage(par1ItemStack) - before); - } - - 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); - } - } - - if (!player.capabilities.isCreativeMode) - { - for (int i = 0; i < damage; i++) - { - player.setHealth((player.getHealth() - 1)); - //player.setEntityHealth(player.func_110143_aJ() - 1); - } - } - - if (player.getHealth() <= 0) - { - player.inventory.dropAllItems(); - } - } - -// public int getMaxEssence() -// { -// return this.maxEssence; -// } -// -// public int getOrbLevel() -// { -// return orbLevel; -// } -// -// @Override -// public void onArmourUpdate(World world, EntityPlayer player, -// ItemStack thisItemStack) { -// // TODO Auto-generated method stub -// -// } -// -// @Override -// public boolean isUpgrade() -// { -// // TODO Auto-generated method stub -// return false; -// } -// -// @Override -// public int getEnergyForTenSeconds() -// { -// // TODO Auto-generated method stub -// return 0; -// } - - @Override - public ItemStack getContainerItemStack(ItemStack itemStack) - { - //if(!syphonBatteries(itemStack, null, 10)) - { - //syphonWhileInContainer(itemStack, this.getEnergyUsed()); -// ItemStack copiedStack = itemStack.copy(); -// copiedStack.setItemDamage(copiedStack.getItemDamage()); -// copiedStack.stackSize = 1; -// return copiedStack; - } - return itemStack; - } - - @Override - public boolean hasContainerItem() - { - return true; - } - - //@SideOnly(Side.SERVER) - public int getCurrentEssence(ItemStack par1ItemStack) - { - if (par1ItemStack == null) - { - return 0; - } - - NBTTagCompound itemTag = par1ItemStack.stackTagCompound; - - if (itemTag == null || itemTag.getString("ownerName").equals("")) - { - return 0; - } - - String owner = itemTag.getString("ownerName"); - 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; - return (currentEssence); - } - - @Override - public boolean doesContainerItemLeaveCraftingGrid(ItemStack itemStack) - { - return false; - } -} diff --git a/BM_src/WayofTime/alchemicalWizardry/common/items/DaggerOfSacrifice.java b/BM_src/WayofTime/alchemicalWizardry/common/items/DaggerOfSacrifice.java deleted file mode 100644 index 1011ac20..00000000 --- a/BM_src/WayofTime/alchemicalWizardry/common/items/DaggerOfSacrifice.java +++ /dev/null @@ -1,272 +0,0 @@ -package WayofTime.alchemicalWizardry.common.items; - -import WayofTime.alchemicalWizardry.AlchemicalWizardry; -import WayofTime.alchemicalWizardry.common.spell.complex.effect.SpellHelper; -import WayofTime.alchemicalWizardry.common.tileEntity.TEAltar; - -import com.google.common.collect.Multimap; - -import cpw.mods.fml.common.network.PacketDispatcher; -import cpw.mods.fml.relauncher.Side; -import cpw.mods.fml.relauncher.SideOnly; -import net.minecraft.block.Block; -import net.minecraft.block.material.Material; -import net.minecraft.client.renderer.texture.IconRegister; -import net.minecraft.entity.EntityLivingBase; -import net.minecraft.entity.SharedMonsterAttributes; -import net.minecraft.entity.ai.attributes.AttributeModifier; -import net.minecraft.entity.boss.EntityDragon; -import net.minecraft.entity.boss.EntityWither; -import net.minecraft.entity.boss.IBossDisplayData; -import net.minecraft.entity.monster.EntityEnderman; -import net.minecraft.entity.monster.EntitySlime; -import net.minecraft.entity.passive.EntityAnimal; -import net.minecraft.entity.passive.EntityVillager; -import net.minecraft.entity.player.EntityPlayer; -import net.minecraft.entity.player.EntityPlayerMP; -import net.minecraft.item.ItemStack; -import net.minecraft.tileentity.TileEntity; -import net.minecraft.util.DamageSource; -import net.minecraft.world.World; - -import java.util.List; - -public class DaggerOfSacrifice extends EnergyItems -{ - private float weaponDamage; - - public DaggerOfSacrifice(int id) - { - super(id); - this.maxStackSize = 1; - setCreativeTab(AlchemicalWizardry.tabBloodMagic); - setEnergyUsed(100); - setFull3D(); - setMaxDamage(100); - weaponDamage = 1.0F; - } - - @Override - @SideOnly(Side.CLIENT) - public void registerIcons(IconRegister iconRegister) - { - this.itemIcon = iconRegister.registerIcon("AlchemicalWizardry:DaggerOfSacrifice"); - } - - @Override - public boolean hitEntity(ItemStack par1ItemStack, EntityLivingBase par2EntityLivingBase, EntityLivingBase par3EntityLivingBase) - { - if (par3EntityLivingBase == null || par2EntityLivingBase == null || par3EntityLivingBase.worldObj.isRemote) - { - return false; - } - - if(par3EntityLivingBase instanceof EntityPlayer) - { - if(SpellHelper.isFakePlayer(par3EntityLivingBase.worldObj, (EntityPlayer)par3EntityLivingBase)) - { - return false; - } - } - - //EntityWither d; - if (par2EntityLivingBase.isChild() || par2EntityLivingBase instanceof EntityWither || par2EntityLivingBase instanceof EntityDragon || par2EntityLivingBase instanceof EntityPlayer || par2EntityLivingBase instanceof IBossDisplayData) - { - return false; - } - - if (par2EntityLivingBase.isDead || par2EntityLivingBase.getHealth() < 0.5f) - { - return false; - } - - if (par2EntityLivingBase instanceof EntityVillager && !par2EntityLivingBase.isChild()) - { - if (findAndFillAltar(par2EntityLivingBase.worldObj, par2EntityLivingBase, 2000)) - { - double posX = par2EntityLivingBase.posX; - double posY = par2EntityLivingBase.posY; - double posZ = par2EntityLivingBase.posZ; - - for (int i = 0; i < 8; i++) - { - PacketDispatcher.sendPacketToAllPlayers(TEAltar.getParticlePacket(posX, posY, posZ, (short) 1)); - } - - par2EntityLivingBase.setHealth(-1); - par2EntityLivingBase.onDeath(DamageSource.generic); - return false; - } - } - - if (par2EntityLivingBase instanceof EntitySlime && !par2EntityLivingBase.isChild()) - { - if (findAndFillAltar(par2EntityLivingBase.worldObj, par2EntityLivingBase, 150)) - { - double posX = par2EntityLivingBase.posX; - double posY = par2EntityLivingBase.posY; - double posZ = par2EntityLivingBase.posZ; - - for (int i = 0; i < 8; i++) - { - PacketDispatcher.sendPacketToAllPlayers(TEAltar.getParticlePacket(posX, posY, posZ, (short) 1)); - } - - par2EntityLivingBase.setHealth(-1); - par2EntityLivingBase.onDeath(DamageSource.generic); - return false; - } - } - - if (par2EntityLivingBase instanceof EntityEnderman && !par2EntityLivingBase.isChild()) - { - if (findAndFillAltar(par2EntityLivingBase.worldObj, par2EntityLivingBase, 200)) - { - double posX = par2EntityLivingBase.posX; - double posY = par2EntityLivingBase.posY; - double posZ = par2EntityLivingBase.posZ; - - for (int i = 0; i < 8; i++) - { - PacketDispatcher.sendPacketToAllPlayers(TEAltar.getParticlePacket(posX, posY, posZ, (short) 1)); - } - - par2EntityLivingBase.setHealth(-1); - par2EntityLivingBase.onDeath(DamageSource.generic); - return false; - } - } - - if (par2EntityLivingBase instanceof EntityAnimal && !par2EntityLivingBase.isChild()) - { - if (findAndFillAltar(par2EntityLivingBase.worldObj, par2EntityLivingBase, 250)) - { - double posX = par2EntityLivingBase.posX; - double posY = par2EntityLivingBase.posY; - double posZ = par2EntityLivingBase.posZ; - - for (int i = 0; i < 8; i++) - { - PacketDispatcher.sendPacketToAllPlayers(TEAltar.getParticlePacket(posX, posY, posZ, (short) 1)); - } - - par2EntityLivingBase.setHealth(-1); - par2EntityLivingBase.onDeath(DamageSource.generic); - return false; - } - } - - if (findAndFillAltar(par2EntityLivingBase.worldObj, par2EntityLivingBase, 500)) - { - double posX = par2EntityLivingBase.posX; - double posY = par2EntityLivingBase.posY; - double posZ = par2EntityLivingBase.posZ; - - for (int i = 0; i < 8; i++) - { - PacketDispatcher.sendPacketToAllPlayers(TEAltar.getParticlePacket(posX, posY, posZ, (short) 1)); - } - - par2EntityLivingBase.setHealth(-1); - par2EntityLivingBase.onDeath(DamageSource.generic); - return false; - } - - return false; - } - - public float func_82803_g() - { - return 4.0F; - } - - @Override - public void addInformation(ItemStack par1ItemStack, EntityPlayer par2EntityPlayer, List par3List, boolean par4) - { - par3List.add("Caution: may cause"); - par3List.add("a bad day..."); - } - - @Override - public float getStrVsBlock(ItemStack par1ItemStack, Block par2Block) - { - if (par2Block.blockID == Block.web.blockID) - { - return 15.0F; - } else - { - Material material = par2Block.blockMaterial; - return material != Material.plants && material != Material.vine && material != Material.coral && material != Material.leaves && material != Material.pumpkin ? 1.0F : 1.5F; - } - } - - @Override - public boolean getIsRepairable(ItemStack par1ItemStack, ItemStack par2ItemStack) - { - return false; - } - - @Override - - public Multimap getItemAttributeModifiers() - { - Multimap multimap = super.getItemAttributeModifiers(); - multimap.put(SharedMonsterAttributes.attackDamage.getAttributeUnlocalizedName(), new AttributeModifier(field_111210_e, "Tool modifier", 1.0d, 0)); - return multimap; - } - - public boolean findAndFillAltar(World world, EntityLivingBase sacrifice, int amount) - { - int posX = (int) Math.round(sacrifice.posX - 0.5f); - int posY = (int) sacrifice.posY; - int posZ = (int) Math.round(sacrifice.posZ - 0.5f); - TEAltar altarEntity = this.getAltar(world, posX, posY, posZ); - - if (altarEntity == null) - { - return false; - } - - altarEntity.sacrificialDaggerCall(amount, true); - altarEntity.startCycle(); - return true; - } - - public TEAltar getAltar(World world, int x, int y, int z) - { - TileEntity tileEntity = null; - - for (int i = -2; i <= 2; i++) - { - for (int j = -2; j <= 2; j++) - { - for (int k = -2; k <= 1; k++) - { - tileEntity = world.getBlockTileEntity(i + x, k + y, j + z); - - if ((tileEntity instanceof TEAltar)) - { - return (TEAltar) tileEntity; - } - } - - if ((tileEntity instanceof TEAltar)) - { - return (TEAltar) tileEntity; - } - } - - if ((tileEntity instanceof TEAltar)) - { - return (TEAltar) tileEntity; - } - } - - if ((tileEntity instanceof TEAltar)) - { - return (TEAltar) tileEntity; - } - - return null; - } -} diff --git a/BM_src/WayofTime/alchemicalWizardry/common/items/DemonPlacer.java b/BM_src/WayofTime/alchemicalWizardry/common/items/DemonPlacer.java deleted file mode 100644 index 3a6e0481..00000000 --- a/BM_src/WayofTime/alchemicalWizardry/common/items/DemonPlacer.java +++ /dev/null @@ -1,270 +0,0 @@ -package WayofTime.alchemicalWizardry.common.items; - -import WayofTime.alchemicalWizardry.api.summoningRegistry.SummoningRegistry; -import WayofTime.alchemicalWizardry.common.entity.mob.EntityDemon; -import cpw.mods.fml.relauncher.Side; -import cpw.mods.fml.relauncher.SideOnly; -import net.minecraft.block.Block; -import net.minecraft.block.material.Material; -import net.minecraft.client.renderer.texture.IconRegister; -import net.minecraft.creativetab.CreativeTabs; -import net.minecraft.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.util.*; -import net.minecraft.world.World; - -import java.util.List; - -public class DemonPlacer extends Item -{ - @SideOnly(Side.CLIENT) - private Icon theIcon; - - public DemonPlacer(int par1) - { - super(par1); - this.setHasSubtypes(true); - this.setCreativeTab(CreativeTabs.tabMisc); - this.maxStackSize = 1; - } - - public String getItemDisplayName(ItemStack par1ItemStack) - { -// String s = ("" + StatCollector.translateToLocal(this.getUnlocalizedName() + ".name")).trim(); -// String s1 = EntityList.getStringFromID(par1ItemStack.getItemDamage()); -// -// if (s1 != null) -// { -// s = s + " " + StatCollector.translateToLocal("entity." + s1 + ".name"); -// } -// -// return s; - return "Demon Crystal"; - } - - @SideOnly(Side.CLIENT) - public int getColorFromItemStack(ItemStack par1ItemStack, int par2) - { - EntityEggInfo entityegginfo = (EntityEggInfo) EntityList.entityEggs.get(Integer.valueOf(par1ItemStack.getItemDamage())); - return entityegginfo != null ? (par2 == 0 ? entityegginfo.primaryColor : entityegginfo.secondaryColor) : 16777215; - } - - /** - * Callback for item usage. If the item does something special on right clicking, he will have one of those. Return - * True if something happen and false if it don't. This is for ITEMS, not BLOCKS - */ - public boolean onItemUse(ItemStack par1ItemStack, EntityPlayer par2EntityPlayer, World par3World, int par4, int par5, int par6, int par7, float par8, float par9, float par10) - { - if (par3World.isRemote) - { - return true; - } else - { - int i1 = par3World.getBlockId(par4, par5, par6); - par4 += Facing.offsetsXForSide[par7]; - par5 += Facing.offsetsYForSide[par7]; - par6 += Facing.offsetsZForSide[par7]; - double d0 = 0.0D; - - if (par7 == 1 && Block.blocksList[i1] != null && Block.blocksList[i1].getRenderType() == 11) - { - d0 = 0.5D; - } - - Entity entity = spawnCreature(par3World, par1ItemStack.getItemDamage(), (double) par4 + 0.5D, (double) par5 + d0, (double) par6 + 0.5D, par1ItemStack); - - if (entity != null) - { - if (entity instanceof EntityLivingBase && par1ItemStack.hasDisplayName()) - { - ((EntityLiving) entity).setCustomNameTag(par1ItemStack.getDisplayName()); - } - - if (!par2EntityPlayer.capabilities.isCreativeMode) - { - --par1ItemStack.stackSize; - } - } - - return true; - } - } - - /** - * Called whenever this item is equipped and the right mouse button is pressed. Args: itemStack, world, entityPlayer - */ - public ItemStack onItemRightClick(ItemStack par1ItemStack, World par2World, EntityPlayer par3EntityPlayer) - { - if (par2World.isRemote) - { - return par1ItemStack; - } else - { - MovingObjectPosition movingobjectposition = this.getMovingObjectPositionFromPlayer(par2World, par3EntityPlayer, true); - - if (movingobjectposition == null) - { - return par1ItemStack; - } else - { - if (movingobjectposition.typeOfHit == EnumMovingObjectType.TILE) - { - int i = movingobjectposition.blockX; - int j = movingobjectposition.blockY; - int k = movingobjectposition.blockZ; - - if (!par2World.canMineBlock(par3EntityPlayer, i, j, k)) - { - return par1ItemStack; - } - - if (!par3EntityPlayer.canPlayerEdit(i, j, k, movingobjectposition.sideHit, par1ItemStack)) - { - return par1ItemStack; - } - - if (par2World.getBlockMaterial(i, j, k) == Material.water) - { - Entity entity = spawnCreature(par2World, par1ItemStack.getItemDamage(), (double) i, (double) j, (double) k, par1ItemStack); - - if (entity != null) - { - if (entity instanceof EntityLivingBase && par1ItemStack.hasDisplayName()) - { - ((EntityLiving) entity).setCustomNameTag(par1ItemStack.getDisplayName()); - } - - if (!par3EntityPlayer.capabilities.isCreativeMode) - { - --par1ItemStack.stackSize; - } - } - } - } - - return par1ItemStack; - } - } - } - - /** - * Spawns the creature specified by the egg's type in the location specified by the last three parameters. - * Parameters: world, entityID, x, y, z. - */ - public static Entity spawnCreature(World par0World, int par1, double par2, double par4, double par6, ItemStack itemStack) - { -// if (!EntityList.entityEggs.containsKey(Integer.valueOf(par1))) -// { -// return null; -// } -// else - { - Entity entity = null; - - for (int j = 0; j < 1; ++j) - { - entity = SummoningRegistry.getEntityWithID(par0World, par1); - - if (entity != null && entity instanceof EntityLivingBase) - { - EntityLiving entityliving = (EntityLiving) entity; - entity.setLocationAndAngles(par2, par4, par6, MathHelper.wrapAngleTo180_float(par0World.rand.nextFloat() * 360.0F), 0.0F); - entityliving.rotationYawHead = entityliving.rotationYaw; - entityliving.renderYawOffset = entityliving.rotationYaw; - - //entityliving.onSpawnWithEgg((EntityLivingData)null); - if (entityliving instanceof EntityDemon) - { - ((EntityDemon) entityliving).setOwner(DemonPlacer.getOwnerName(itemStack)); - - if (!DemonPlacer.getOwnerName(itemStack).equals("")) - { - ((EntityDemon) entityliving).setTamed(true); - } - } - - par0World.spawnEntityInWorld(entity); - entityliving.playLivingSound(); - } - } - - return entity; - } - } - -// @SideOnly(Side.CLIENT) -// public boolean requiresMultipleRenderPasses() -// { -// return true; -// } - -// @SideOnly(Side.CLIENT) -// -// /** -// * Gets an icon index based on an item's damage value and the given render pass -// */ -// public Icon getIconFromDamageForRenderPass(int par1, int par2) -// { -// return par2 > 0 ? this.theIcon : super.getIconFromDamageForRenderPass(par1, par2); -// } - -// @SideOnly(Side.CLIENT) -// -// /** -// * returns a list of items with the same ID, but different meta (eg: dye returns 16 items) -// */ -// public void getSubItems(int par1, CreativeTabs par2CreativeTabs, List par3List) -// { -// Iterator iterator = EntityList.entityEggs.values().iterator(); -// -// while (iterator.hasNext()) -// { -// EntityEggInfo entityegginfo = (EntityEggInfo)iterator.next(); -// par3List.add(new ItemStack(par1, 1, entityegginfo.spawnedID)); -// } -// } - - public static void setOwnerName(ItemStack par1ItemStack, String ownerName) - { - if (par1ItemStack.stackTagCompound == null) - { - par1ItemStack.setTagCompound(new NBTTagCompound()); - } - - par1ItemStack.stackTagCompound.setString("ownerName", ownerName); - } - - public static String getOwnerName(ItemStack par1ItemStack) - { - if (par1ItemStack.stackTagCompound == null) - { - par1ItemStack.setTagCompound(new NBTTagCompound()); - } - - return par1ItemStack.stackTagCompound.getString("ownerName"); - } - - @Override - public void addInformation(ItemStack par1ItemStack, EntityPlayer par2EntityPlayer, List par3List, boolean par4) - { - par3List.add("Used to spawn demons."); - - if (!(par1ItemStack.stackTagCompound == null)) - { - if (!par1ItemStack.stackTagCompound.getString("ownerName").equals("")) - { - par3List.add("Demon's Owner: " + par1ItemStack.stackTagCompound.getString("ownerName")); - } - } - } - - @Override - @SideOnly(Side.CLIENT) - public void registerIcons(IconRegister iconRegister) - { - this.itemIcon = iconRegister.registerIcon("AlchemicalWizardry:DemonPlacer"); - } -} diff --git a/BM_src/WayofTime/alchemicalWizardry/common/items/DemonicTelepositionFocus.java b/BM_src/WayofTime/alchemicalWizardry/common/items/DemonicTelepositionFocus.java deleted file mode 100644 index e07575a3..00000000 --- a/BM_src/WayofTime/alchemicalWizardry/common/items/DemonicTelepositionFocus.java +++ /dev/null @@ -1,47 +0,0 @@ -package WayofTime.alchemicalWizardry.common.items; - -import cpw.mods.fml.relauncher.Side; -import cpw.mods.fml.relauncher.SideOnly; -import net.minecraft.client.renderer.texture.IconRegister; -import net.minecraft.entity.player.EntityPlayer; -import net.minecraft.item.ItemStack; -import net.minecraft.nbt.NBTTagCompound; - -import java.util.List; - -public class DemonicTelepositionFocus extends TelepositionFocus -{ - public DemonicTelepositionFocus(int par1) - { - super(par1, 4); - // TODO Auto-generated constructor stub - } - - @Override - @SideOnly(Side.CLIENT) - public void registerIcons(IconRegister iconRegister) - { - //TODO - this.itemIcon = iconRegister.registerIcon("AlchemicalWizardry:DemonicTeleposerFocus"); - } - - @Override - public void addInformation(ItemStack par1ItemStack, EntityPlayer par2EntityPlayer, List par3List, boolean par4) - { - par3List.add("A stronger version of the focus,"); - par3List.add("using a demonic shard"); - - if (!(par1ItemStack.stackTagCompound == null)) - { - NBTTagCompound itemTag = par1ItemStack.stackTagCompound; - - if (!par1ItemStack.stackTagCompound.getString("ownerName").equals("")) - { - par3List.add("Current owner: " + par1ItemStack.stackTagCompound.getString("ownerName")); - } - - par3List.add("Coords: " + itemTag.getInteger("xCoord") + ", " + itemTag.getInteger("yCoord") + ", " + itemTag.getInteger("zCoord")); - par3List.add("Bound Dimension: " + getDimensionID(par1ItemStack)); - } - } -} diff --git a/BM_src/WayofTime/alchemicalWizardry/common/items/DuskScribeTool.java b/BM_src/WayofTime/alchemicalWizardry/common/items/DuskScribeTool.java deleted file mode 100644 index 937df61e..00000000 --- a/BM_src/WayofTime/alchemicalWizardry/common/items/DuskScribeTool.java +++ /dev/null @@ -1,20 +0,0 @@ -package WayofTime.alchemicalWizardry.common.items; - -import cpw.mods.fml.relauncher.Side; -import cpw.mods.fml.relauncher.SideOnly; -import net.minecraft.client.renderer.texture.IconRegister; - -public class DuskScribeTool extends ScribeTool -{ - public DuskScribeTool(int id) - { - super(id, 5); - } - - @Override - @SideOnly(Side.CLIENT) - public void registerIcons(IconRegister iconRegister) - { - this.itemIcon = iconRegister.registerIcon("AlchemicalWizardry:DuskScribeTool"); - } -} \ No newline at end of file diff --git a/BM_src/WayofTime/alchemicalWizardry/common/items/EarthInk.java b/BM_src/WayofTime/alchemicalWizardry/common/items/EarthInk.java deleted file mode 100644 index 4dc3f631..00000000 --- a/BM_src/WayofTime/alchemicalWizardry/common/items/EarthInk.java +++ /dev/null @@ -1,24 +0,0 @@ -package WayofTime.alchemicalWizardry.common.items; - -import WayofTime.alchemicalWizardry.AlchemicalWizardry; -import cpw.mods.fml.relauncher.Side; -import cpw.mods.fml.relauncher.SideOnly; -import net.minecraft.client.renderer.texture.IconRegister; -import net.minecraft.item.Item; - -public class EarthInk extends Item -{ - public EarthInk(int id) - { - super(id); - this.maxStackSize = 1; - this.setCreativeTab(AlchemicalWizardry.tabBloodMagic); - } - - @Override - @SideOnly(Side.CLIENT) - public void registerIcons(IconRegister iconRegister) - { - this.itemIcon = iconRegister.registerIcon("AlchemicalWizardry:ElementalInkEarth"); - } -} diff --git a/BM_src/WayofTime/alchemicalWizardry/common/items/EarthScribeTool.java b/BM_src/WayofTime/alchemicalWizardry/common/items/EarthScribeTool.java deleted file mode 100644 index a038f328..00000000 --- a/BM_src/WayofTime/alchemicalWizardry/common/items/EarthScribeTool.java +++ /dev/null @@ -1,20 +0,0 @@ -package WayofTime.alchemicalWizardry.common.items; - -import cpw.mods.fml.relauncher.Side; -import cpw.mods.fml.relauncher.SideOnly; -import net.minecraft.client.renderer.texture.IconRegister; - -public class EarthScribeTool extends ScribeTool -{ - public EarthScribeTool(int id) - { - super(id, 3); - } - - @Override - @SideOnly(Side.CLIENT) - public void registerIcons(IconRegister iconRegister) - { - this.itemIcon = iconRegister.registerIcon("AlchemicalWizardry:EarthScribeTool"); - } -} \ No newline at end of file diff --git a/BM_src/WayofTime/alchemicalWizardry/common/items/EnergyBattery.java b/BM_src/WayofTime/alchemicalWizardry/common/items/EnergyBattery.java deleted file mode 100644 index 497d945e..00000000 --- a/BM_src/WayofTime/alchemicalWizardry/common/items/EnergyBattery.java +++ /dev/null @@ -1,244 +0,0 @@ -package WayofTime.alchemicalWizardry.common.items; - -import WayofTime.alchemicalWizardry.AlchemicalWizardry; -import WayofTime.alchemicalWizardry.api.items.interfaces.ArmourUpgrade; -import WayofTime.alchemicalWizardry.api.items.interfaces.IBindable; -import WayofTime.alchemicalWizardry.api.items.interfaces.IBloodOrb; -import WayofTime.alchemicalWizardry.api.soulNetwork.LifeEssenceNetwork; -import WayofTime.alchemicalWizardry.common.*; -import WayofTime.alchemicalWizardry.common.spell.complex.effect.SpellHelper; -import WayofTime.alchemicalWizardry.common.tileEntity.TEAltar; -import cpw.mods.fml.common.network.PacketDispatcher; -import cpw.mods.fml.relauncher.Side; -import cpw.mods.fml.relauncher.SideOnly; -import net.minecraft.client.renderer.texture.IconRegister; -import net.minecraft.entity.player.EntityPlayer; -import net.minecraft.entity.player.EntityPlayerMP; -import net.minecraft.item.Item; -import net.minecraft.item.ItemStack; -import net.minecraft.nbt.NBTTagCompound; -import net.minecraft.server.MinecraftServer; -import net.minecraft.util.DamageSource; -import net.minecraft.world.World; -import net.minecraftforge.common.FakePlayer; - -import java.util.List; - -public class EnergyBattery extends Item implements ArmourUpgrade, IBindable, IBloodOrb -{ - private int maxEssence; - protected int orbLevel; - - public EnergyBattery(int id, int damage) - { - super(id); - DamageSource damageSource = DamageSource.generic; - setMaxStackSize(1); - //setMaxDamage(damage); - setCreativeTab(AlchemicalWizardry.tabBloodMagic); - //setFull3D(); - maxEssence = damage; - orbLevel = 1; - } - - @Override - @SideOnly(Side.CLIENT) - public void registerIcons(IconRegister iconRegister) - { - this.itemIcon = iconRegister.registerIcon("AlchemicalWizardry:EnergyBattery"); - } - - @Override - public void addInformation(ItemStack par1ItemStack, EntityPlayer par2EntityPlayer, List par3List, boolean par4) - { - par3List.add("Stores raw Life Essence"); - - //par3List.add("LP: " + (this.getMaxDamage() - this.getDamage(par1ItemStack))); - if (!(par1ItemStack.stackTagCompound == null)) - { - par3List.add("Current owner: " + par1ItemStack.stackTagCompound.getString("ownerName")); -// EntityPlayer owner = MinecraftServer.getServer().getConfigurationManager().getPlayerForUsername(par1ItemStack.stackTagCompound.getString("ownerName")); -// if(owner!=null) -// { -// NBTTagCompound tag = owner.getEntityData(); -// par3List.add("LP: " + tag.getInteger("currentEssence")); -// } - } - - //par3List.add("LP: " + par2EntityPlayer.getEntityData().getInteger("currentEssence")); - } - - public ItemStack onItemRightClick(ItemStack par1ItemStack, World par2World, EntityPlayer par3EntityPlayer) - { - EnergyItems.checkAndSetItemOwner(par1ItemStack, par3EntityPlayer); - World world = par3EntityPlayer.worldObj; - - if(SpellHelper.isFakePlayer(par2World, par3EntityPlayer)) - { - return par1ItemStack; - } - - if (world != null) - { - double posX = par3EntityPlayer.posX; - double posY = par3EntityPlayer.posY; - double posZ = par3EntityPlayer.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); - PacketDispatcher.sendPacketToAllAround(posX, posY, posZ, 20, world.provider.dimensionId, TEAltar.getParticlePacket(posX, posY, posZ, (short) 4)); - } - - if(!world.isRemote) - { - return par1ItemStack; - } -// if (Keyboard.isKeyDown(Keyboard.KEY_RSHIFT) || Keyboard.isKeyDown(Keyboard.KEY_LSHIFT)) -// { -// return par1ItemStack; -// } - NBTTagCompound itemTag = par1ItemStack.stackTagCompound; - - if (itemTag == null || itemTag.getString("ownerName").equals("")) - { - return par1ItemStack; - } - - PacketDispatcher.sendPacketToServer(PacketHandler.getPacket(itemTag.getString("ownerName"), 200, this.getMaxEssence())); - //PacketDispatcher.sendPacketToPlayer(PacketHandler.getPacket(itemTag.getString("ownerName")), (Player)par3EntityPlayer); -// EntityPlayer owner = MinecraftServer.getServer().getConfigurationManager().getPlayerForUsername(itemTag.getString("ownerName")); -// if(owner==null){return par1ItemStack;} -// NBTTagCompound ownerTag = owner.getEntityData(); -// if(ownerTag.getInteger("currentEssence")<=this.maxEssence) -// { -// damagePlayer(par2World, par3EntityPlayer,2); -// ownerTag.setInteger("currentEssence", Math.min(this.maxEssence, ownerTag.getInteger("currentEssence")+200/2)); -// } - return par1ItemStack; - } - - /* - * @return the damage that was not deducted - */ - public int damageItem(ItemStack par1ItemStack, int par2int) - { - if (par2int == 0) - { - return 0; - } - - int before = this.getDamage(par1ItemStack); - this.setDamage(par1ItemStack, this.getDamage(par1ItemStack) + par2int); - return par2int - (this.getDamage(par1ItemStack) - before); - } - - 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); - } - } - - if (!player.capabilities.isCreativeMode) - { - for (int i = 0; i < damage; i++) - { - player.setHealth((player.getHealth() - 1)); - //player.setEntityHealth(player.func_110143_aJ() - 1); - } - } - - if (player.getHealth() <= 0) - { - player.inventory.dropAllItems(); - } - } - - public int getMaxEssence() - { - return this.maxEssence; - } - - public int getOrbLevel() - { - return orbLevel; - } - - @Override - public void onArmourUpdate(World world, EntityPlayer player, - ItemStack thisItemStack) - { - // TODO Auto-generated method stub - } - - @Override - public boolean isUpgrade() - { - // TODO Auto-generated method stub - return false; - } - - @Override - public int getEnergyForTenSeconds() - { - // TODO Auto-generated method stub - return 0; - } - - @Override - public ItemStack getContainerItemStack(ItemStack itemStack) - { - return itemStack; - } - - @Override - public boolean hasContainerItem() - { - return true; - } - - //@SideOnly(Side.SERVER) - public int getCurrentEssence(ItemStack par1ItemStack) - { - if (par1ItemStack == null) - { - return 0; - } - - NBTTagCompound itemTag = par1ItemStack.stackTagCompound; - - if (itemTag == null || itemTag.getString("ownerName").equals("")) - { - return 0; - } - - String owner = itemTag.getString("ownerName"); - 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; - return (currentEssence); - } - - @Override - public boolean doesContainerItemLeaveCraftingGrid(ItemStack itemStack) - { - return false; - } -} diff --git a/BM_src/WayofTime/alchemicalWizardry/common/items/EnergyBazooka.java b/BM_src/WayofTime/alchemicalWizardry/common/items/EnergyBazooka.java deleted file mode 100644 index 6af3d045..00000000 --- a/BM_src/WayofTime/alchemicalWizardry/common/items/EnergyBazooka.java +++ /dev/null @@ -1,225 +0,0 @@ -package WayofTime.alchemicalWizardry.common.items; - -import WayofTime.alchemicalWizardry.AlchemicalWizardry; -import WayofTime.alchemicalWizardry.common.entity.projectile.EntityEnergyBazookaMainProjectile; -import WayofTime.alchemicalWizardry.common.spell.complex.effect.SpellHelper; -import cpw.mods.fml.relauncher.Side; -import cpw.mods.fml.relauncher.SideOnly; -import net.minecraft.client.renderer.texture.IconRegister; -import net.minecraft.entity.Entity; -import net.minecraft.entity.player.EntityPlayer; -import net.minecraft.item.ItemStack; -import net.minecraft.nbt.NBTTagCompound; -import net.minecraft.util.Icon; -import net.minecraft.util.Vec3; -import net.minecraft.world.World; - -import java.util.List; - -public class EnergyBazooka extends EnergyItems -{ - private static Icon activeIcon; - private static Icon passiveIcon; - private static int damage; - //private static int delay; - private static final int maxDelay = 150; - - public EnergyBazooka(int id) - { - super(id); - setMaxStackSize(1); - setCreativeTab(AlchemicalWizardry.tabBloodMagic); - setFull3D(); - setMaxDamage(250); - this.setEnergyUsed(20000); - damage = 12; - //delay = 0; - } - - @Override - @SideOnly(Side.CLIENT) - public void registerIcons(IconRegister iconRegister) - { - this.itemIcon = iconRegister.registerIcon("AlchemicalWizardry:EnergyBazooka_activated"); - this.activeIcon = iconRegister.registerIcon("AlchemicalWizardry:EnergyBazooka_activated"); - this.passiveIcon = iconRegister.registerIcon("AlchemicalWizardry:SheathedItem"); - } - - @Override - public Icon getIcon(ItemStack stack, int renderPass, EntityPlayer player, ItemStack usingItem, int useRemaining) - { - if (stack.stackTagCompound == null) - { - stack.setTagCompound(new NBTTagCompound()); - } - - NBTTagCompound tag = stack.stackTagCompound; - - if (tag.getBoolean("isActive")) - { - return this.activeIcon; - } else - { - return this.passiveIcon; - } - } - - @Override - public ItemStack onItemRightClick(ItemStack par1ItemStack, World par2World, EntityPlayer par3EntityPlayer) - { - EnergyItems.checkAndSetItemOwner(par1ItemStack, par3EntityPlayer); - - if(SpellHelper.isFakePlayer(par2World, par3EntityPlayer)) - { - return par1ItemStack; - } - - if (par3EntityPlayer.isSneaking()) - { - this.setActivated(par1ItemStack, !getActivated(par1ItemStack)); - par1ItemStack.stackTagCompound.setInteger("worldTimeDelay", (int) (par2World.getWorldTime() - 1) % 100); - return par1ItemStack; - } - - if (!getActivated(par1ItemStack)) - { - return par1ItemStack; - } - - if (this.getDelay(par1ItemStack) > 0) - { - return par1ItemStack; - } - - if (!par3EntityPlayer.capabilities.isCreativeMode) - { - this.syphonBatteries(par1ItemStack, par3EntityPlayer, this.getEnergyUsed()); - } - - par2World.playSoundAtEntity(par3EntityPlayer, "random.bow", 0.5F, 0.4F / (itemRand.nextFloat() * 0.4F + 0.8F)); - - if (!par2World.isRemote) - { - //par2World.spawnEntityInWorld(new EntityEnergyBazookaMainProjectile(par2World, par3EntityPlayer, damage)); - par2World.spawnEntityInWorld(new EntityEnergyBazookaMainProjectile(par2World, par3EntityPlayer, damage)); - this.setDelay(par1ItemStack, maxDelay); - } - - Vec3 vec = par3EntityPlayer.getLookVec(); - double wantedVelocity = 3.0f; - par3EntityPlayer.motionX = -vec.xCoord * wantedVelocity; - par3EntityPlayer.motionY = -vec.yCoord * wantedVelocity; - par3EntityPlayer.motionZ = -vec.zCoord * wantedVelocity; - par2World.playSoundEffect((double) ((float) par3EntityPlayer.posX + 0.5F), (double) ((float) par3EntityPlayer.posY + 0.5F), (double) ((float) par3EntityPlayer.posZ + 0.5F), "random.fizz", 0.5F, 2.6F + (par2World.rand.nextFloat() - par2World.rand.nextFloat()) * 0.8F); - par3EntityPlayer.fallDistance = 0; - return par1ItemStack; - } - - @Override - public void onUpdate(ItemStack par1ItemStack, World par2World, Entity par3Entity, int par4, boolean par5) - { - if (!(par3Entity instanceof EntityPlayer)) - { - return; - } - - EntityPlayer par3EntityPlayer = (EntityPlayer) par3Entity; - - if (par1ItemStack.stackTagCompound == null) - { - par1ItemStack.setTagCompound(new NBTTagCompound()); - } - -// if(par1ItemStack.stackTagCompound.getBoolean("isActive")) -// { -// EnergyItems.syphonBatteries(par1ItemStack, par3EntityPlayer, 1); -// } - int delay = this.getDelay(par1ItemStack); - - if (!par2World.isRemote && delay > 0) - { - this.setDelay(par1ItemStack, delay - 1); - } - - if (par2World.getWorldTime() % 100 == par1ItemStack.stackTagCompound.getInteger("worldTimeDelay") && par1ItemStack.stackTagCompound.getBoolean("isActive")) - { - if (!par3EntityPlayer.capabilities.isCreativeMode) - { - EnergyItems.syphonBatteries(par1ItemStack, par3EntityPlayer, 50); - } - } - - par1ItemStack.setItemDamage(0); - return; - } - - @Override - public void addInformation(ItemStack par1ItemStack, EntityPlayer par2EntityPlayer, List par3List, boolean par4) - { - par3List.add("Boom."); - - if (!(par1ItemStack.stackTagCompound == null)) - { - if (par1ItemStack.stackTagCompound.getBoolean("isActive")) - { - par3List.add("Activated"); - } else - { - par3List.add("Deactivated"); - } - - if (!par1ItemStack.stackTagCompound.getString("ownerName").equals("")) - { - par3List.add("Current owner: " + par1ItemStack.stackTagCompound.getString("ownerName")); - } - } - } - - public void setActivated(ItemStack par1ItemStack, boolean newActivated) - { - NBTTagCompound itemTag = par1ItemStack.stackTagCompound; - - if (itemTag == null) - { - par1ItemStack.setTagCompound(new NBTTagCompound()); - } - - itemTag.setBoolean("isActive", newActivated); - } - - public boolean getActivated(ItemStack par1ItemStack) - { - NBTTagCompound itemTag = par1ItemStack.stackTagCompound; - - if (itemTag == null) - { - par1ItemStack.setTagCompound(new NBTTagCompound()); - } - - return itemTag.getBoolean("isActive"); - } - - public void setDelay(ItemStack par1ItemStack, int newDelay) - { - NBTTagCompound itemTag = par1ItemStack.stackTagCompound; - - if (itemTag == null) - { - par1ItemStack.setTagCompound(new NBTTagCompound()); - } - - itemTag.setInteger("delay", newDelay); - } - - public int getDelay(ItemStack par1ItemStack) - { - NBTTagCompound itemTag = par1ItemStack.stackTagCompound; - - if (itemTag == null) - { - par1ItemStack.setTagCompound(new NBTTagCompound()); - } - - return itemTag.getInteger("delay"); - } -} diff --git a/BM_src/WayofTime/alchemicalWizardry/common/items/EnergyBlast.java b/BM_src/WayofTime/alchemicalWizardry/common/items/EnergyBlast.java deleted file mode 100644 index 8392bacc..00000000 --- a/BM_src/WayofTime/alchemicalWizardry/common/items/EnergyBlast.java +++ /dev/null @@ -1,220 +0,0 @@ -package WayofTime.alchemicalWizardry.common.items; - -import WayofTime.alchemicalWizardry.AlchemicalWizardry; -import WayofTime.alchemicalWizardry.common.entity.projectile.EnergyBlastProjectile; -import WayofTime.alchemicalWizardry.common.spell.complex.effect.SpellHelper; -import cpw.mods.fml.relauncher.Side; -import cpw.mods.fml.relauncher.SideOnly; -import net.minecraft.client.renderer.texture.IconRegister; -import net.minecraft.entity.Entity; -import net.minecraft.entity.player.EntityPlayer; -import net.minecraft.item.ItemStack; -import net.minecraft.nbt.NBTTagCompound; -import net.minecraft.util.Icon; -import net.minecraft.world.World; - -import java.util.List; - -public class EnergyBlast extends EnergyItems -{ - private static Icon activeIcon; - private static Icon passiveIcon; - private static int damage; - //private static int delay; - private static final int maxDelay = 15; - - public EnergyBlast(int id) - { - super(id); - setMaxStackSize(1); - setCreativeTab(AlchemicalWizardry.tabBloodMagic); - setUnlocalizedName("energyBlaster"); - setFull3D(); - setMaxDamage(250); - this.setEnergyUsed(150); - damage = 12; - //delay = 0; - } - - @Override - @SideOnly(Side.CLIENT) - public void registerIcons(IconRegister iconRegister) - { - this.itemIcon = iconRegister.registerIcon("AlchemicalWizardry:EnergyBlaster_activated"); - this.activeIcon = iconRegister.registerIcon("AlchemicalWizardry:EnergyBlaster_activated"); - this.passiveIcon = iconRegister.registerIcon("AlchemicalWizardry:SheathedItem"); - } - - @Override - public Icon getIcon(ItemStack stack, int renderPass, EntityPlayer player, ItemStack usingItem, int useRemaining) - { - if (stack.stackTagCompound == null) - { - stack.setTagCompound(new NBTTagCompound()); - } - - NBTTagCompound tag = stack.stackTagCompound; - - if (tag.getBoolean("isActive")) - { - return this.activeIcon; - } else - { - return this.passiveIcon; - } - } - - @Override - public ItemStack onItemRightClick(ItemStack par1ItemStack, World par2World, EntityPlayer par3EntityPlayer) - { - EnergyItems.checkAndSetItemOwner(par1ItemStack, par3EntityPlayer); - - if(SpellHelper.isFakePlayer(par2World, par3EntityPlayer)) - { - return par1ItemStack; - } - - if (par3EntityPlayer.isSneaking()) - { - this.setActivated(par1ItemStack, !getActivated(par1ItemStack)); - par1ItemStack.stackTagCompound.setInteger("worldTimeDelay", (int) (par2World.getWorldTime() - 1) % 100); - return par1ItemStack; - } - - if (!getActivated(par1ItemStack)) - { - return par1ItemStack; - } - - if (this.getDelay(par1ItemStack) > 0) - { - return par1ItemStack; - } - - if (!par3EntityPlayer.capabilities.isCreativeMode) - { - this.syphonBatteries(par1ItemStack, par3EntityPlayer, this.getEnergyUsed()); - } - - par2World.playSoundAtEntity(par3EntityPlayer, "random.bow", 0.5F, 0.4F / (itemRand.nextFloat() * 0.4F + 0.8F)); - - if (!par2World.isRemote) - { - //par2World.spawnEntityInWorld(new EnergyBlastProjectile(par2World, par3EntityPlayer, damage)); - par2World.spawnEntityInWorld(new EnergyBlastProjectile(par2World, par3EntityPlayer, damage)); - this.setDelay(par1ItemStack, maxDelay); - } - - return par1ItemStack; - } - - @Override - public void onUpdate(ItemStack par1ItemStack, World par2World, Entity par3Entity, int par4, boolean par5) - { - if (!(par3Entity instanceof EntityPlayer)) - { - return; - } - - EntityPlayer par3EntityPlayer = (EntityPlayer) par3Entity; - - if (par1ItemStack.stackTagCompound == null) - { - par1ItemStack.setTagCompound(new NBTTagCompound()); - } - -// if(par1ItemStack.stackTagCompound.getBoolean("isActive")) -// { -// EnergyItems.syphonBatteries(par1ItemStack, par3EntityPlayer, 1); -// } - int delay = this.getDelay(par1ItemStack); - - if (!par2World.isRemote && delay > 0) - { - this.setDelay(par1ItemStack, delay - 1); - } - - if (par2World.getWorldTime() % 100 == par1ItemStack.stackTagCompound.getInteger("worldTimeDelay") && par1ItemStack.stackTagCompound.getBoolean("isActive")) - { - if (!par3EntityPlayer.capabilities.isCreativeMode) - { - EnergyItems.syphonBatteries(par1ItemStack, par3EntityPlayer, 50); - } - } - - par1ItemStack.setItemDamage(0); - return; - } - - @Override - public void addInformation(ItemStack par1ItemStack, EntityPlayer par2EntityPlayer, List par3List, boolean par4) - { - par3List.add("Used to fire devastating"); - par3List.add("projectiles."); - par3List.add("Damage: " + damage); - - if (!(par1ItemStack.stackTagCompound == null)) - { - if (par1ItemStack.stackTagCompound.getBoolean("isActive")) - { - par3List.add("Activated"); - } else - { - par3List.add("Deactivated"); - } - - if (!par1ItemStack.stackTagCompound.getString("ownerName").equals("")) - { - par3List.add("Current owner: " + par1ItemStack.stackTagCompound.getString("ownerName")); - } - } - } - - public void setActivated(ItemStack par1ItemStack, boolean newActivated) - { - NBTTagCompound itemTag = par1ItemStack.stackTagCompound; - - if (itemTag == null) - { - par1ItemStack.setTagCompound(new NBTTagCompound()); - } - - itemTag.setBoolean("isActive", newActivated); - } - - public boolean getActivated(ItemStack par1ItemStack) - { - NBTTagCompound itemTag = par1ItemStack.stackTagCompound; - - if (itemTag == null) - { - par1ItemStack.setTagCompound(new NBTTagCompound()); - } - - return itemTag.getBoolean("isActive"); - } - - public void setDelay(ItemStack par1ItemStack, int newDelay) - { - NBTTagCompound itemTag = par1ItemStack.stackTagCompound; - - if (itemTag == null) - { - par1ItemStack.setTagCompound(new NBTTagCompound()); - } - - itemTag.setInteger("delay", newDelay); - } - - public int getDelay(ItemStack par1ItemStack) - { - NBTTagCompound itemTag = par1ItemStack.stackTagCompound; - - if (itemTag == null) - { - par1ItemStack.setTagCompound(new NBTTagCompound()); - } - - return itemTag.getInteger("delay"); - } -} diff --git a/BM_src/WayofTime/alchemicalWizardry/common/items/EnergyItems.java b/BM_src/WayofTime/alchemicalWizardry/common/items/EnergyItems.java deleted file mode 100644 index 078d7244..00000000 --- a/BM_src/WayofTime/alchemicalWizardry/common/items/EnergyItems.java +++ /dev/null @@ -1,138 +0,0 @@ -package WayofTime.alchemicalWizardry.common.items; - -import net.minecraft.entity.player.EntityPlayer; -import net.minecraft.item.Item; -import net.minecraft.item.ItemStack; -import net.minecraft.nbt.NBTTagCompound; -import net.minecraft.server.MinecraftServer; -import net.minecraft.util.DamageSource; -import net.minecraft.world.World; -import WayofTime.alchemicalWizardry.api.items.interfaces.IBindable; -import WayofTime.alchemicalWizardry.api.soulNetwork.LifeEssenceNetwork; -import WayofTime.alchemicalWizardry.api.soulNetwork.SoulNetworkHandler; -import WayofTime.alchemicalWizardry.common.PacketHandler; -import WayofTime.alchemicalWizardry.common.tileEntity.TEAltar; -import cpw.mods.fml.common.network.PacketDispatcher; - -public class EnergyItems extends Item implements IBindable -{ - private int energyUsed; - - public EnergyItems(int id) - { - super(id); - } - - protected void setEnergyUsed(int par1int) - { - this.energyUsed = par1int; - } - - protected int getEnergyUsed() - { - return this.energyUsed; - } - - public static boolean syphonBatteriesWithoutParticles(ItemStack ist, EntityPlayer player, int damageToBeDone, boolean particles) - { - if (!player.capabilities.isCreativeMode) - { - NBTTagCompound itemTag = ist.stackTagCompound; - - if (itemTag == null || itemTag.getString("ownerName").equals("")) - { - return false; - } - - World world = player.worldObj; - - if (world != null) - { - double posX = player.posX; - double posY = player.posY; - double posZ = player.posZ; - - if (particles) - { - PacketDispatcher.sendPacketToAllAround(posX, posY, posZ, 20, world.provider.dimensionId, TEAltar.getParticlePacket(posX, posY, posZ, (short) 4)); - world.playSoundEffect((double) ((float) player.posX + 0.5F), (double) ((float) player.posY + 0.5F), (double) ((float) player.posZ + 0.5F), "random.fizz", 0.5F, 2.6F + (world.rand.nextFloat() - world.rand.nextFloat()) * 0.8F); - } - } - - if (!player.worldObj.isRemote) - { - return false; - } - - PacketDispatcher.sendPacketToServer(PacketHandler.getPacket(itemTag.getString("ownerName"), -damageToBeDone, 0)); - return true; - } else - { - return true; - } - } - - /** - * Master method to syphon from the Soul Network. - */ - public static boolean syphonBatteries(ItemStack ist, EntityPlayer player, int damageToBeDone) - { - if (!player.worldObj.isRemote) - { - return syphonAndDamageWhileInContainer(ist, player, damageToBeDone); - } else - { - World world = player.worldObj; - - if (world != null) - { - double posX = player.posX; - double posY = player.posY; - double posZ = player.posZ; - //if(particles) - { - PacketDispatcher.sendPacketToAllAround(posX, posY, posZ, 20, world.provider.dimensionId, TEAltar.getParticlePacket(posX, posY, posZ, (short) 4)); - world.playSoundEffect((double) ((float) player.posX + 0.5F), (double) ((float) player.posY + 0.5F), (double) ((float) player.posZ + 0.5F), "random.fizz", 0.5F, 2.6F + (world.rand.nextFloat() - world.rand.nextFloat()) * 0.8F); - } - } - } - - return true; - //return syphonBatteriesWithoutParticles(ist, player, damageToBeDone, true); - } - - public static boolean syphonWhileInContainer(ItemStack ist, int damageToBeDone) - { - return SoulNetworkHandler.syphonFromNetwork(ist, damageToBeDone)!=0; - } - - public static boolean canSyphonInContainer(ItemStack ist, int damageToBeDone) - { - return SoulNetworkHandler.canSyphonFromOnlyNetwork(ist, damageToBeDone); - } - - public static boolean syphonAndDamageWhileInContainer(ItemStack ist, EntityPlayer player, int damageToBeDone) - { - return SoulNetworkHandler.syphonAndDamageFromNetwork(ist, player, damageToBeDone); - } - - public static void checkAndSetItemOwner(ItemStack item, EntityPlayer player) - { - SoulNetworkHandler.checkAndSetItemOwner(item, player); - } - - public static void checkAndSetItemOwner(ItemStack item, String ownerName) - { - SoulNetworkHandler.checkAndSetItemOwner(item, ownerName); - } - - public String getOwnerName(ItemStack item) - { - if (item.stackTagCompound == null) - { - item.setTagCompound(new NBTTagCompound()); - } - - return item.stackTagCompound.getString("ownerName"); - } -} diff --git a/BM_src/WayofTime/alchemicalWizardry/common/items/EnergySword.java b/BM_src/WayofTime/alchemicalWizardry/common/items/EnergySword.java deleted file mode 100644 index d38a3d87..00000000 --- a/BM_src/WayofTime/alchemicalWizardry/common/items/EnergySword.java +++ /dev/null @@ -1,237 +0,0 @@ -package WayofTime.alchemicalWizardry.common.items; - -import WayofTime.alchemicalWizardry.AlchemicalWizardry; -import cpw.mods.fml.relauncher.Side; -import cpw.mods.fml.relauncher.SideOnly; -import net.minecraft.block.Block; -import net.minecraft.block.material.Material; -import net.minecraft.client.renderer.texture.IconRegister; -import net.minecraft.entity.Entity; -import net.minecraft.entity.EntityLivingBase; -import net.minecraft.entity.player.EntityPlayer; -import net.minecraft.item.ItemStack; -import net.minecraft.item.ItemSword; -import net.minecraft.nbt.NBTTagCompound; -import net.minecraft.potion.Potion; -import net.minecraft.potion.PotionEffect; -import net.minecraft.util.Icon; -import net.minecraft.world.World; - -import java.util.List; - -public class EnergySword extends ItemSword -{ - //private float weaponDamaged; - //private int maxMode = 3; - private NBTTagCompound data; - - private static Icon activeIcon; - private static Icon passiveIcon; - - private int energyUsed; - - public EnergySword(int id) - { - super(id, AlchemicalWizardry.bloodBoundToolMaterial); - this.maxStackSize = 1; - setCreativeTab(AlchemicalWizardry.tabBloodMagic); - setEnergyUsed(50); - setFull3D(); - setMaxDamage(100); - //weaponDamaged = 12.0F; - } - - public void setEnergyUsed(int i) - { - energyUsed = i; - } - - public int getEnergyUsed() - { - return this.energyUsed; - } - - @Override - @SideOnly(Side.CLIENT) - public void registerIcons(IconRegister iconRegister) - { - this.itemIcon = iconRegister.registerIcon("AlchemicalWizardry:BoundSword_activated"); - this.activeIcon = iconRegister.registerIcon("AlchemicalWizardry:BoundSword_activated"); - this.passiveIcon = iconRegister.registerIcon("AlchemicalWizardry:SheathedItem"); - } - - @Override - public Icon getIcon(ItemStack stack, int renderPass, EntityPlayer player, ItemStack usingItem, int useRemaining) - { - if (stack.stackTagCompound == null) - { - stack.setTagCompound(new NBTTagCompound()); - } - - NBTTagCompound tag = stack.stackTagCompound; - - if (tag.getBoolean("isActive")) - { - return this.activeIcon; - } else - { - return this.passiveIcon; - } - } - - @Override - public boolean onLeftClickEntity(ItemStack stack, EntityPlayer player, Entity entity) - { - return !getActivated(stack); - } - - @Override - public boolean hitEntity(ItemStack par1ItemStack, EntityLivingBase par2EntityLivingBase, EntityLivingBase par3EntityLivingBase) - { - if (par3EntityLivingBase instanceof EntityPlayer) - { - EnergyItems.checkAndSetItemOwner(par1ItemStack, (EntityPlayer) par3EntityLivingBase); - - if (!EnergyItems.syphonBatteries(par1ItemStack, (EntityPlayer) par3EntityLivingBase, this.getEnergyUsed())) - { - //this.damagePlayer(null, (EntityPlayer)par3EntityLivingBase, (this.getEnergyUsed() + 99) / 100); - } - } - - par2EntityLivingBase.addPotionEffect(new PotionEffect(Potion.weakness.id, 60, 2)); - return true; - } - - @Override - public ItemStack onItemRightClick(ItemStack par1ItemStack, World par2World, EntityPlayer par3EntityPlayer) - { - EnergyItems.checkAndSetItemOwner(par1ItemStack, par3EntityPlayer); - - if (par3EntityPlayer.isSneaking()) - { - this.setActivated(par1ItemStack, !getActivated(par1ItemStack)); - par1ItemStack.stackTagCompound.setInteger("worldTimeDelay", (int) (par2World.getWorldTime() - 1) % 100); - return par1ItemStack; - } - - if (!getActivated(par1ItemStack)) - { - return par1ItemStack; - } - - return par1ItemStack; - } - - @Override - public int getItemEnchantability() - { - return 30; - } - - @Override - public void onUpdate(ItemStack par1ItemStack, World par2World, Entity par3Entity, int par4, boolean par5) - { - if (!(par3Entity instanceof EntityPlayer)) - { - return; - } - - EntityPlayer par3EntityPlayer = (EntityPlayer) par3Entity; - - if (par1ItemStack.stackTagCompound == null) - { - par1ItemStack.setTagCompound(new NBTTagCompound()); - } - -// if(par1ItemStack.stackTagCompound.getBoolean("isActive")) -// { -// EnergyItems.syphonBatteries(par1ItemStack, par3EntityPlayer, 1); -// } - - if (par2World.getWorldTime() % 100 == par1ItemStack.stackTagCompound.getInteger("worldTimeDelay") && par1ItemStack.stackTagCompound.getBoolean("isActive")) - { - if (!par3EntityPlayer.capabilities.isCreativeMode) - { - EnergyItems.syphonBatteries(par1ItemStack, par3EntityPlayer, 50); - } - } - - par1ItemStack.setItemDamage(0); - return; - } - - public void setActivated(ItemStack par1ItemStack, boolean newActivated) - { - NBTTagCompound itemTag = par1ItemStack.stackTagCompound; - - if (itemTag == null) - { - par1ItemStack.setTagCompound(new NBTTagCompound()); - } - - itemTag.setBoolean("isActive", newActivated); - } - - public boolean getActivated(ItemStack par1ItemStack) - { - NBTTagCompound itemTag = par1ItemStack.stackTagCompound; - - if (itemTag == null) - { - par1ItemStack.setTagCompound(new NBTTagCompound()); - } - - return itemTag.getBoolean("isActive"); - } - -// public int getDamageVsEntity(Entity par1Entity) -// { -// return (int) this.weaponDamage; -// } - - public float func_82803_g() - { - return 4.0F; - } - - @Override - public void addInformation(ItemStack par1ItemStack, EntityPlayer par2EntityPlayer, List par3List, boolean par4) - { - par3List.add("Caution: may cause"); - par3List.add("a bad day..."); - - if (!(par1ItemStack.stackTagCompound == null)) - { - if (par1ItemStack.stackTagCompound.getBoolean("isActive")) - { - par3List.add("Activated"); - } else - { - par3List.add("Deactivated"); - } - - if (!par1ItemStack.stackTagCompound.getString("ownerName").equals("")) - { - par3List.add("Current owner: " + par1ItemStack.stackTagCompound.getString("ownerName")); - } - } - } - - @Override - public float getStrVsBlock(ItemStack par1ItemStack, Block par2Block) - { - if (par2Block.blockID == Block.web.blockID) - { - return 15.0F; - } else - { - Material material = par2Block.blockMaterial; - return material != Material.plants && material != Material.vine && material != Material.coral && material != Material.leaves && material != Material.pumpkin ? 1.0F : 1.5F; - } - } - -// public boolean getIsRepairable(ItemStack par1ItemStack, ItemStack par2ItemStack) -// { -// return false; -// } -} diff --git a/BM_src/WayofTime/alchemicalWizardry/common/items/FireInk.java b/BM_src/WayofTime/alchemicalWizardry/common/items/FireInk.java deleted file mode 100644 index d1d99c56..00000000 --- a/BM_src/WayofTime/alchemicalWizardry/common/items/FireInk.java +++ /dev/null @@ -1,24 +0,0 @@ -package WayofTime.alchemicalWizardry.common.items; - -import WayofTime.alchemicalWizardry.AlchemicalWizardry; -import cpw.mods.fml.relauncher.Side; -import cpw.mods.fml.relauncher.SideOnly; -import net.minecraft.client.renderer.texture.IconRegister; -import net.minecraft.item.Item; - -public class FireInk extends Item -{ - public FireInk(int id) - { - super(id); - this.maxStackSize = 1; - setCreativeTab(AlchemicalWizardry.tabBloodMagic); - } - - @Override - @SideOnly(Side.CLIENT) - public void registerIcons(IconRegister iconRegister) - { - this.itemIcon = iconRegister.registerIcon("AlchemicalWizardry:ElementalInkFire"); - } -} diff --git a/BM_src/WayofTime/alchemicalWizardry/common/items/FireScribeTool.java b/BM_src/WayofTime/alchemicalWizardry/common/items/FireScribeTool.java deleted file mode 100644 index 6bef90a1..00000000 --- a/BM_src/WayofTime/alchemicalWizardry/common/items/FireScribeTool.java +++ /dev/null @@ -1,20 +0,0 @@ -package WayofTime.alchemicalWizardry.common.items; - -import cpw.mods.fml.relauncher.Side; -import cpw.mods.fml.relauncher.SideOnly; -import net.minecraft.client.renderer.texture.IconRegister; - -public class FireScribeTool extends ScribeTool -{ - public FireScribeTool(int id) - { - super(id, 2); - } - - @Override - @SideOnly(Side.CLIENT) - public void registerIcons(IconRegister iconRegister) - { - this.itemIcon = iconRegister.registerIcon("AlchemicalWizardry:FireScribeTool"); - } -} \ No newline at end of file diff --git a/BM_src/WayofTime/alchemicalWizardry/common/items/ItemAlchemyBase.java b/BM_src/WayofTime/alchemicalWizardry/common/items/ItemAlchemyBase.java deleted file mode 100644 index 0b1caf25..00000000 --- a/BM_src/WayofTime/alchemicalWizardry/common/items/ItemAlchemyBase.java +++ /dev/null @@ -1,111 +0,0 @@ -package WayofTime.alchemicalWizardry.common.items; - -import java.util.List; - -import net.minecraft.client.renderer.texture.IconRegister; -import net.minecraft.creativetab.CreativeTabs; -import net.minecraft.entity.player.EntityPlayer; -import net.minecraft.item.Item; -import net.minecraft.item.ItemStack; -import net.minecraft.util.EnumChatFormatting; -import net.minecraft.util.Icon; -import net.minecraft.util.MathHelper; -import net.minecraft.world.World; - -import org.lwjgl.input.Keyboard; - -import WayofTime.alchemicalWizardry.AlchemicalWizardry; -import WayofTime.alchemicalWizardry.api.alchemy.AlchemyRecipeRegistry; -import cpw.mods.fml.relauncher.Side; -import cpw.mods.fml.relauncher.SideOnly; - -public class ItemAlchemyBase extends Item -{ - private static final String[] ITEM_NAMES = new String[]{"Offensa","Praesidium","OrbisTerrae","StrengthenedCatalyst","ConcentratedCatalyst","FracturedBone","Virtus","Reductus","Potentia"}; - - @SideOnly(Side.CLIENT) - private Icon[] icons; - - public ItemAlchemyBase(int id) - { - super(id); - this.maxStackSize = 64; - this.setCreativeTab(AlchemicalWizardry.tabBloodMagic); - this.hasSubtypes = true; - } - - @Override - @SideOnly(Side.CLIENT) - public void registerIcons(IconRegister iconRegister) - { - icons = new Icon[ITEM_NAMES.length]; - - for (int i = 0; i < ITEM_NAMES.length; ++i) - { - icons[i] = iconRegister.registerIcon("AlchemicalWizardry:" + "baseAlchemyItem" + ITEM_NAMES[i]); - } - } - - @Override - public void addInformation(ItemStack par1ItemStack, EntityPlayer par2EntityPlayer, List par3List, boolean par4) - { - if (Keyboard.isKeyDown(Keyboard.KEY_RSHIFT) || Keyboard.isKeyDown(Keyboard.KEY_LSHIFT)) - { - ItemStack[] recipe = AlchemyRecipeRegistry.getRecipeForItemStack(par1ItemStack); - - if (recipe != null) - { - par3List.add("Used in alchemy"); - par3List.add(EnumChatFormatting.BLUE + "Recipe:"); - - for (ItemStack item : recipe) - { - if (item != null) - { - par3List.add("" + item.getDisplayName()); - } - } - } - } else - { - ItemStack[] recipe = AlchemyRecipeRegistry.getRecipeForItemStack(par1ItemStack); - if(recipe!=null) - { - par3List.add("Used in alchemy"); - par3List.add("-Press " + EnumChatFormatting.BLUE + "shift" + EnumChatFormatting.GRAY + " for Recipe-"); - } - } - } - - @Override - public ItemStack onItemRightClick(ItemStack par1ItemStack, World par2World, EntityPlayer par3EntityPlayer) - { - return par1ItemStack; - } - - @Override - public String getUnlocalizedName(ItemStack itemStack) - { - //This is what will do all the localisation things on the alchemy components so you dont have to set it :D - int meta = MathHelper.clamp_int(itemStack.getItemDamage(), 0, ITEM_NAMES.length - 1); - return ("" + "item.bloodMagicAlchemyItem." + ITEM_NAMES[meta]); - } - - @Override - @SideOnly(Side.CLIENT) - public Icon getIconFromDamage(int meta) - { - int j = MathHelper.clamp_int(meta, 0, ITEM_NAMES.length - 1); - return icons[j]; - } - - @Override - @SideOnly(Side.CLIENT) - public void getSubItems(int id, CreativeTabs creativeTab, List list) - { - for (int meta = 0; meta < ITEM_NAMES.length; ++meta) - { - list.add(new ItemStack(id, 1, meta)); - } - } -} diff --git a/BM_src/WayofTime/alchemicalWizardry/common/items/ItemBloodRuneBlock.java b/BM_src/WayofTime/alchemicalWizardry/common/items/ItemBloodRuneBlock.java deleted file mode 100644 index 5d890264..00000000 --- a/BM_src/WayofTime/alchemicalWizardry/common/items/ItemBloodRuneBlock.java +++ /dev/null @@ -1,55 +0,0 @@ -package WayofTime.alchemicalWizardry.common.items; - -import net.minecraft.item.ItemBlock; -import net.minecraft.item.ItemStack; - -public class ItemBloodRuneBlock extends ItemBlock - -{ - public ItemBloodRuneBlock(int par1) - { - super(par1); - setHasSubtypes(true); - this.setUnlocalizedName("itemBloodRuneBlock"); - } - - public String getUnlocalizedName(ItemStack itemstack) - - { - String name = ""; - - switch (itemstack.getItemDamage()) - { - case 0: - { - name = "blank"; - break; - } - - case 1: - { - name = "fill"; - break; - } - - case 2: - name = "empty"; - break; - - case 3: - name = "test"; - break; - - default: - name = "broken"; - } - - return getUnlocalizedName() + "." + name; - } - - public int getMetadata(int par1) - - { - return par1; - } -} diff --git a/BM_src/WayofTime/alchemicalWizardry/common/items/ItemComplexSpellCrystal.java b/BM_src/WayofTime/alchemicalWizardry/common/items/ItemComplexSpellCrystal.java deleted file mode 100644 index abab2db6..00000000 --- a/BM_src/WayofTime/alchemicalWizardry/common/items/ItemComplexSpellCrystal.java +++ /dev/null @@ -1,137 +0,0 @@ -package WayofTime.alchemicalWizardry.common.items; - -import WayofTime.alchemicalWizardry.AlchemicalWizardry; -import WayofTime.alchemicalWizardry.api.alchemy.AlchemyRecipeRegistry; -import WayofTime.alchemicalWizardry.common.tileEntity.TESpellParadigmBlock; -import cpw.mods.fml.relauncher.Side; -import cpw.mods.fml.relauncher.SideOnly; -import net.minecraft.client.renderer.texture.IconRegister; -import net.minecraft.entity.player.EntityPlayer; -import net.minecraft.item.ItemStack; -import net.minecraft.nbt.NBTTagCompound; -import net.minecraft.tileentity.TileEntity; -import net.minecraft.util.EnumChatFormatting; -import net.minecraft.world.World; -import net.minecraftforge.common.DimensionManager; - -import java.util.List; - -import org.lwjgl.input.Keyboard; - -public class ItemComplexSpellCrystal extends EnergyItems -{ - public ItemComplexSpellCrystal(int par1) - { - super(par1); - this.setMaxStackSize(1); - setCreativeTab(AlchemicalWizardry.tabBloodMagic); - } - - @Override - @SideOnly(Side.CLIENT) - public void registerIcons(IconRegister iconRegister) - { - this.itemIcon = iconRegister.registerIcon("AlchemicalWizardry:ComplexCrystal"); - } - - @Override - public void addInformation(ItemStack par1ItemStack, EntityPlayer par2EntityPlayer, List par3List, boolean par4) - { - par3List.add("Crystal of unimaginable power"); - - if (!(par1ItemStack.stackTagCompound == null)) - { - NBTTagCompound itemTag = par1ItemStack.stackTagCompound; - - if (!par1ItemStack.stackTagCompound.getString("ownerName").equals("")) - { - par3List.add("Current owner: " + par1ItemStack.stackTagCompound.getString("ownerName")); - } - - par3List.add("Coords: " + itemTag.getInteger("xCoord") + ", " + itemTag.getInteger("yCoord") + ", " + itemTag.getInteger("zCoord")); - par3List.add("Bound Dimension: " + getDimensionID(par1ItemStack)); - } - - if (Keyboard.isKeyDown(Keyboard.KEY_RSHIFT) || Keyboard.isKeyDown(Keyboard.KEY_LSHIFT)) - { - ItemStack[] recipe = AlchemyRecipeRegistry.getRecipeForItemStack(par1ItemStack); - - if (recipe != null) - { - par3List.add(EnumChatFormatting.BLUE + "Recipe:"); - - for (ItemStack item : recipe) - { - if (item != null) - { - par3List.add("" + item.getDisplayName()); - } - } - } - } else - { - ItemStack[] recipe = AlchemyRecipeRegistry.getRecipeForItemStack(par1ItemStack); - if(recipe!=null) - { - par3List.add("-Press " + EnumChatFormatting.BLUE + "shift" + EnumChatFormatting.GRAY + " for Recipe-"); - } - } - } - - @Override - public ItemStack onItemRightClick(ItemStack par1ItemStack, World par2World, EntityPlayer par3EntityPlayer) - { - EnergyItems.checkAndSetItemOwner(par1ItemStack, par3EntityPlayer); - - if (par3EntityPlayer.isSneaking()) - { - return par1ItemStack; - } - - if (!par2World.isRemote) - { - //World world = MinecraftServer.getServer().worldServers[getDimensionID(par1ItemStack)]; - World world = DimensionManager.getWorld(getDimensionID(par1ItemStack)); - - if (world != null) - { - NBTTagCompound itemTag = par1ItemStack.stackTagCompound; - TileEntity tileEntity = world.getBlockTileEntity(itemTag.getInteger("xCoord"), itemTag.getInteger("yCoord"), itemTag.getInteger("zCoord")); - - if (tileEntity instanceof TESpellParadigmBlock) - { - TESpellParadigmBlock tileParad = (TESpellParadigmBlock) tileEntity; - - tileParad.castSpell(par2World, par3EntityPlayer, par1ItemStack); - } else - { - return par1ItemStack; - } - } else - { - return par1ItemStack; - } - } else - { - return par1ItemStack; - } - - par2World.playSoundAtEntity(par3EntityPlayer, "random.fizz", 0.5F, 0.4F / (itemRand.nextFloat() * 0.4F + 0.8F)); -// if (!par2World.isRemote) -// { -// //par2World.spawnEntityInWorld(new EnergyBlastProjectile(par2World, par3EntityPlayer, damage)); -// par2World.spawnEntityInWorld(new FireProjectile(par2World, par3EntityPlayer, 10)); -// } - return par1ItemStack; - } - - public int getDimensionID(ItemStack itemStack) - { - if (itemStack.stackTagCompound == null) - { - itemStack.setTagCompound(new NBTTagCompound()); - } - - return itemStack.stackTagCompound.getInteger("dimensionId"); - } -} diff --git a/BM_src/WayofTime/alchemicalWizardry/common/items/ItemComponents.java b/BM_src/WayofTime/alchemicalWizardry/common/items/ItemComponents.java deleted file mode 100644 index d81112b8..00000000 --- a/BM_src/WayofTime/alchemicalWizardry/common/items/ItemComponents.java +++ /dev/null @@ -1,110 +0,0 @@ -package WayofTime.alchemicalWizardry.common.items; - -import java.util.List; - -import org.lwjgl.input.Keyboard; - -import net.minecraft.client.renderer.texture.IconRegister; -import net.minecraft.creativetab.CreativeTabs; -import net.minecraft.entity.player.EntityPlayer; -import net.minecraft.item.Item; -import net.minecraft.item.ItemStack; -import net.minecraft.util.EnumChatFormatting; -import net.minecraft.util.Icon; -import net.minecraft.util.MathHelper; -import net.minecraft.world.World; -import WayofTime.alchemicalWizardry.AlchemicalWizardry; -import WayofTime.alchemicalWizardry.api.alchemy.AlchemyRecipeRegistry; -import cpw.mods.fml.relauncher.Side; -import cpw.mods.fml.relauncher.SideOnly; - -public class ItemComponents extends Item -{ - private static final String[] ITEM_NAMES = new String[]{"QuartzRod", "EmptyCore", "MagicalesCable", "WoodBrace", "StoneBrace", "ProjectileCore", "SelfCore","MeleeCore","ParadigmBackPlate","OutputCable","FlameCore","IcyCore","GustCore","EarthenCore","InputCable","CrackedRunicPlate","RunicPlate","ScribedRunicPlate","DefaultCore","OffensiveCore","DefensiveCore","EnvironmentalCore","PowerCore","CostCore","PotencyCore","ObsidianBrace"}; - - @SideOnly(Side.CLIENT) - private Icon[] icons; - - public ItemComponents(int id) - { - super(id); - this.maxStackSize = 64; - this.setCreativeTab(AlchemicalWizardry.tabBloodMagic); - this.hasSubtypes = true; - } - - @Override - @SideOnly(Side.CLIENT) - public void registerIcons(IconRegister iconRegister) - { - icons = new Icon[ITEM_NAMES.length]; - - for (int i = 0; i < ITEM_NAMES.length; ++i) - { - icons[i] = iconRegister.registerIcon("AlchemicalWizardry:" + "baseItem" + ITEM_NAMES[i]); - } - } - - @Override - public void addInformation(ItemStack par1ItemStack, EntityPlayer par2EntityPlayer, List par3List, boolean par4) - { - if (Keyboard.isKeyDown(Keyboard.KEY_RSHIFT) || Keyboard.isKeyDown(Keyboard.KEY_LSHIFT)) - { - ItemStack[] recipe = AlchemyRecipeRegistry.getRecipeForItemStack(par1ItemStack); - - if (recipe != null) - { - par3List.add("Used in alchemy"); - par3List.add(EnumChatFormatting.BLUE + "Recipe:"); - - for (ItemStack item : recipe) - { - if (item != null) - { - par3List.add("" + item.getDisplayName()); - } - } - } - } else - { - ItemStack[] recipe = AlchemyRecipeRegistry.getRecipeForItemStack(par1ItemStack); - if(recipe!=null) - { - par3List.add("Used in alchemy"); - par3List.add("-Press " + EnumChatFormatting.BLUE + "shift" + EnumChatFormatting.GRAY + " for Recipe-"); - } - } - } - - @Override - public ItemStack onItemRightClick(ItemStack par1ItemStack, World par2World, EntityPlayer par3EntityPlayer) - { - return par1ItemStack; - } - - @Override - public String getUnlocalizedName(ItemStack itemStack) - { - //This is what will do all the localisation things on the alchemy components so you dont have to set it :D - int meta = MathHelper.clamp_int(itemStack.getItemDamage(), 0, ITEM_NAMES.length - 1); - return ("" + "item.bloodMagicBaseItem." + ITEM_NAMES[meta]); - } - - @Override - @SideOnly(Side.CLIENT) - public Icon getIconFromDamage(int meta) - { - int j = MathHelper.clamp_int(meta, 0, ITEM_NAMES.length - 1); - return icons[j]; - } - - @Override - @SideOnly(Side.CLIENT) - public void getSubItems(int id, CreativeTabs creativeTab, List list) - { - for (int meta = 0; meta < ITEM_NAMES.length; ++meta) - { - list.add(new ItemStack(id, 1, meta)); - } - } -} diff --git a/BM_src/WayofTime/alchemicalWizardry/common/items/ItemDiabloKey.java b/BM_src/WayofTime/alchemicalWizardry/common/items/ItemDiabloKey.java deleted file mode 100644 index 51ebf841..00000000 --- a/BM_src/WayofTime/alchemicalWizardry/common/items/ItemDiabloKey.java +++ /dev/null @@ -1,129 +0,0 @@ -package WayofTime.alchemicalWizardry.common.items; - -import WayofTime.alchemicalWizardry.AlchemicalWizardry; -import WayofTime.alchemicalWizardry.ModItems; -import WayofTime.alchemicalWizardry.api.items.interfaces.IBindable; -import WayofTime.alchemicalWizardry.common.spell.complex.effect.SpellHelper; -import WayofTime.alchemicalWizardry.common.tileEntity.TEAltar; -import cpw.mods.fml.common.network.PacketDispatcher; -import cpw.mods.fml.relauncher.Side; -import cpw.mods.fml.relauncher.SideOnly; -import net.minecraft.client.renderer.texture.IconRegister; -import net.minecraft.creativetab.CreativeTabs; -import net.minecraft.entity.player.EntityPlayer; -import net.minecraft.entity.player.EntityPlayerMP; -import net.minecraft.item.Item; -import net.minecraft.item.ItemStack; -import net.minecraft.nbt.NBTTagCompound; -import net.minecraft.util.DamageSource; -import net.minecraft.world.World; -import net.minecraftforge.common.FakePlayer; - -import java.util.List; - -public class ItemDiabloKey extends EnergyItems -{ - public ItemDiabloKey(int id) - { - super(id); - DamageSource damageSource = DamageSource.generic; - setMaxStackSize(1); - //setMaxDamage(damage); - setCreativeTab(AlchemicalWizardry.tabBloodMagic); - this.setEnergyUsed(1000); - this.hasSubtypes = true; - } - - @Override - @SideOnly(Side.CLIENT) - public void registerIcons(IconRegister iconRegister) - { - this.itemIcon = iconRegister.registerIcon("AlchemicalWizardry:DiabloKey"); - } - - @Override - public void addInformation(ItemStack par1ItemStack, EntityPlayer par2EntityPlayer, List par3List, boolean par4) - { - par3List.add("Binds other items to the owner's network"); - - //par3List.add("LP: " + (this.getMaxDamage() - this.getDamage(par1ItemStack))); - if (!(par1ItemStack.stackTagCompound == null)) - { - par3List.add("Current owner: " + par1ItemStack.stackTagCompound.getString("ownerName")); - } - - //par3List.add("LP: " + par2EntityPlayer.getEntityData().getInteger("currentEssence")); - } - - public ItemStack onItemRightClick(ItemStack par1ItemStack, World par2World, EntityPlayer par3EntityPlayer) - { - EnergyItems.checkAndSetItemOwner(par1ItemStack, par3EntityPlayer); - World world = par3EntityPlayer.worldObj; - - if(SpellHelper.isFakePlayer(par2World, par3EntityPlayer)) - { - return par1ItemStack; - } - - if (world != null) - { - double posX = par3EntityPlayer.posX; - double posY = par3EntityPlayer.posY; - double posZ = par3EntityPlayer.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); - PacketDispatcher.sendPacketToAllAround(posX, posY, posZ, 20, world.provider.dimensionId, TEAltar.getParticlePacket(posX, posY, posZ, (short) 4)); - } - - if (!par3EntityPlayer.worldObj.isRemote && !(par3EntityPlayer.getClass().equals(EntityPlayerMP.class))) - { - return par1ItemStack; - } - - if (par3EntityPlayer.isSneaking()) - { - return par1ItemStack; - } - - NBTTagCompound itemTag = par1ItemStack.stackTagCompound; - - if (itemTag == null || itemTag.getString("ownerName").equals("")) - { - return par1ItemStack; - } - - String ownerName = itemTag.getString("ownerName"); - ItemStack[] inv = par3EntityPlayer.inventory.mainInventory; - - for (ItemStack itemStack : inv) - { - if (itemStack == null) - { - continue; - } - - Item item = itemStack.getItem(); - - if (item instanceof ItemDiabloKey) - { - continue; - } - - if (item instanceof IBindable) - { - EnergyItems.checkAndSetItemOwner(itemStack, ownerName); - } - } - - return par1ItemStack; - } - - @Override - @SideOnly(Side.CLIENT) - public void getSubItems(int id, CreativeTabs creativeTab, List list) - { - list.add(new ItemStack(ModItems.itemKeyOfDiablo)); - ItemStack boundKey = new ItemStack(ModItems.itemKeyOfDiablo); - EnergyItems.checkAndSetItemOwner(boundKey, "Server-wide Soul Network"); - list.add(boundKey); - } -} diff --git a/BM_src/WayofTime/alchemicalWizardry/common/items/ItemRitualDiviner.java b/BM_src/WayofTime/alchemicalWizardry/common/items/ItemRitualDiviner.java deleted file mode 100644 index e67599a7..00000000 --- a/BM_src/WayofTime/alchemicalWizardry/common/items/ItemRitualDiviner.java +++ /dev/null @@ -1,306 +0,0 @@ -package WayofTime.alchemicalWizardry.common.items; - -import WayofTime.alchemicalWizardry.AlchemicalWizardry; -import WayofTime.alchemicalWizardry.ModBlocks; -import WayofTime.alchemicalWizardry.ModItems; -import WayofTime.alchemicalWizardry.api.rituals.RitualComponent; -import WayofTime.alchemicalWizardry.api.rituals.Rituals; -import WayofTime.alchemicalWizardry.common.spell.complex.effect.SpellHelper; -import WayofTime.alchemicalWizardry.common.tileEntity.TEMasterStone; -import cpw.mods.fml.relauncher.Side; -import cpw.mods.fml.relauncher.SideOnly; -import net.minecraft.client.renderer.texture.IconRegister; -import net.minecraft.creativetab.CreativeTabs; -import net.minecraft.entity.player.EntityPlayer; -import net.minecraft.item.ItemStack; -import net.minecraft.nbt.NBTTagCompound; -import net.minecraft.tileentity.TileEntity; -import net.minecraft.util.ChatMessageComponent; -import net.minecraft.util.EnumChatFormatting; -import net.minecraft.world.World; - -import java.util.List; - -public class ItemRitualDiviner extends EnergyItems -{ - private int maxMetaData; - - public ItemRitualDiviner(int id) - { - super(id); - this.maxStackSize = 1; - setEnergyUsed(100); - this.setCreativeTab(AlchemicalWizardry.tabBloodMagic); - this.maxMetaData = 4; - } - - @Override - @SideOnly(Side.CLIENT) - public void registerIcons(IconRegister iconRegister) - { - this.itemIcon = iconRegister.registerIcon("AlchemicalWizardry:RitualDiviner"); - } - - @Override - public void addInformation(ItemStack par1ItemStack, EntityPlayer par2EntityPlayer, List par3List, boolean par4) - { - par3List.add("Used to explore new types of rituals"); - - if (this.getMaxRuneDisplacement(par1ItemStack) == 1) - { - par3List.add("Can place Dusk runes"); - } else - { - par3List.add("Can not place Dusk runes"); - } - - if (!(par1ItemStack.stackTagCompound == null)) - { - int 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); - int blankStones = 0; - int airStones = 0; - int waterStones = 0; - int fireStones = 0; - int earthStones = 0; - int duskStones = 0; - - for (RitualComponent rc : ritualList) - { - switch (rc.getStoneType()) - { - case RitualComponent.BLANK: - blankStones++; - break; - - case RitualComponent.AIR: - airStones++; - break; - - case RitualComponent.WATER: - waterStones++; - break; - - case RitualComponent.FIRE: - fireStones++; - break; - - case RitualComponent.EARTH: - earthStones++; - break; - - case RitualComponent.DUSK: - duskStones++; - break; - } - } - - par3List.add("Blank stones: " + blankStones); - par3List.add(EnumChatFormatting.AQUA + "Air stones: " + airStones); - par3List.add(EnumChatFormatting.BLUE + "Water stones: " + waterStones); - par3List.add(EnumChatFormatting.RED + "Fire stones: " + fireStones); - par3List.add(EnumChatFormatting.DARK_GREEN + "Earth stones: " + earthStones); - par3List.add(EnumChatFormatting.BOLD + "Dusk stones: " + duskStones); - //par3List.add("Ritual Name: " + Rituals.getNameOfRitual(ritualID)); - } - } - - @Override - public String getItemDisplayName(ItemStack par1ItemStack) - { - if (!(par1ItemStack.stackTagCompound == null)) - { - int ritualID = this.getCurrentRitual(par1ItemStack); - return "Ritual: " + Rituals.getNameOfRitual(ritualID); - //par3List.add("Current owner: " + par1ItemStack.stackTagCompound.getString("ownerName")); - } else - { - return super.getItemStackDisplayName(par1ItemStack); - } - } - - @Override - public boolean onItemUse(ItemStack par1ItemStack, EntityPlayer par2EntityPlayer, World par3World, int par4, int par5, int par6, int par7, float par8, float par9, float par10) - { - EnergyItems.checkAndSetItemOwner(par1ItemStack, par2EntityPlayer); - - if(SpellHelper.isFakePlayer(par2EntityPlayer.worldObj, par2EntityPlayer)) - { - return false; - } - - ItemStack[] playerInventory = par2EntityPlayer.inventory.mainInventory; - TileEntity tileEntity = par3World.getBlockTileEntity(par4, par5, par6); - - if (tileEntity instanceof TEMasterStone) - { - TEMasterStone masterStone = (TEMasterStone) tileEntity; - List ritualList = Rituals.getRitualList(this.getCurrentRitual(par1ItemStack) + 1); - int playerInvRitualStoneLocation = -1; - - for (int i = 0; i < playerInventory.length; i++) - { - if (playerInventory[i] == null) - { - continue; - } - - if (new ItemStack(ModBlocks.ritualStone).isItemEqual(playerInventory[i])) - { - playerInvRitualStoneLocation = i; - break; - } - } - - for (RitualComponent rc : ritualList) - { - if (par3World.isAirBlock(par4 + rc.getX(), par5 + rc.getY(), par6 + rc.getZ())) - { - if (playerInvRitualStoneLocation >= 0) - { - if (rc.getStoneType() > this.maxMetaData + this.getMaxRuneDisplacement(par1ItemStack)) - { - par3World.playAuxSFX(200, par4, par5 + 1, par6, 0); - return true; - } - - if (!par2EntityPlayer.capabilities.isCreativeMode) - { - par2EntityPlayer.inventory.decrStackSize(playerInvRitualStoneLocation, 1); - } - - if(!par3World.isRemote) - par3World.setBlock(par4 + rc.getX(), par5 + rc.getY(), par6 + rc.getZ(), ModBlocks.ritualStone.blockID, rc.getStoneType(), 3); - - if (par3World.isRemote) - { - par3World.playAuxSFX(2005, par4, par5 + 1, par6, 0); - EnergyItems.syphonBatteries(par1ItemStack, par2EntityPlayer, getEnergyUsed()); - return true; - } - - return true; - } - } else - { - int blockID = par3World.getBlockId(par4 + rc.getX(), par5 + rc.getY(), par6 + rc.getZ()); - - if (blockID == ModBlocks.ritualStone.blockID) - { - int metadata = par3World.getBlockMetadata(par4 + rc.getX(), par5 + rc.getY(), par6 + rc.getZ()); - - if (metadata != rc.getStoneType()) - { - if (rc.getStoneType() > this.maxMetaData + this.getMaxRuneDisplacement(par1ItemStack)) - { - par3World.playAuxSFX(200, par4, par5 + 1, par6, 0); - return true; - } - - par3World.setBlockMetadataWithNotify(par4 + rc.getX(), par5 + rc.getY(), par6 + rc.getZ(), rc.getStoneType(), 3); - EnergyItems.syphonBatteries(par1ItemStack, par2EntityPlayer, getEnergyUsed()); - return true; - } - } else - { - par3World.playAuxSFX(0000, par4, par5 + 1, par6, 0); - return true; - } - } - } - -// if (par3World.isRemote) -// { -// par3World.playAuxSFX(2005, par4, par5, par6, 0); -// EnergyItems.syphonBatteries(par1ItemStack, par2EntityPlayer, getEnergyUsed()); -// return true; -// } -// return true; - } - - return false; - } - - @Override - public ItemStack onItemRightClick(ItemStack par1ItemStack, World par2World, EntityPlayer par3EntityPlayer) - { - EnergyItems.checkAndSetItemOwner(par1ItemStack, par3EntityPlayer); - - if (par3EntityPlayer.isSneaking()) - { - int maxRitualID = Rituals.getNumberOfRituals(); - int currentRitualID = this.getCurrentRitual(par1ItemStack); - - if (currentRitualID + 1 >= maxRitualID) - { - this.setCurrentRitual(par1ItemStack, 0); - } else - { - this.setCurrentRitual(par1ItemStack, currentRitualID + 1); - } - - if (par2World.isRemote) - { - ChatMessageComponent chatmessagecomponent = new ChatMessageComponent(); - //chatmessagecomponent.func_111072_b("Current Essence: " + data.currentEssence + "LP"); - chatmessagecomponent.addText("Current Ritual: " + Rituals.getNameOfRitual(this.getCurrentRitual(par1ItemStack))); - par3EntityPlayer.sendChatToPlayer(chatmessagecomponent); - } - } - - return par1ItemStack; - } - - public int getCurrentRitual(ItemStack par1ItemStack) - { - if (par1ItemStack.stackTagCompound == null) - { - par1ItemStack.setTagCompound(new NBTTagCompound()); - } - - return par1ItemStack.stackTagCompound.getInteger("ritualID"); - } - - public void setCurrentRitual(ItemStack par1ItemStack, int ritualID) - { - if (par1ItemStack.stackTagCompound == null) - { - par1ItemStack.setTagCompound(new NBTTagCompound()); - } - - par1ItemStack.stackTagCompound.setInteger("ritualID", ritualID); - } - - public int getMaxRuneDisplacement(ItemStack par1ItemStack) //0 indicates the starting 4 runes, 1 indicates it can use Dusk runes - { - if (par1ItemStack.stackTagCompound == null) - { - par1ItemStack.setTagCompound(new NBTTagCompound()); - } - - return par1ItemStack.stackTagCompound.getInteger("maxRuneDisplacement"); - } - - public void setMaxRuneDisplacement(ItemStack par1ItemStack, int displacement) - { - if (par1ItemStack.stackTagCompound == null) - { - par1ItemStack.setTagCompound(new NBTTagCompound()); - } - - par1ItemStack.stackTagCompound.setInteger("maxRuneDisplacement", displacement); - } - - @Override - @SideOnly(Side.CLIENT) - public void getSubItems(int id, CreativeTabs creativeTab, List list) - { - list.add(new ItemStack(ModItems.itemRitualDiviner)); - ItemStack duskRitualDivinerStack = new ItemStack(ModItems.itemRitualDiviner); - ((ItemRitualDiviner) duskRitualDivinerStack.getItem()).setMaxRuneDisplacement(duskRitualDivinerStack, 1); - list.add(duskRitualDivinerStack); - } -} diff --git a/BM_src/WayofTime/alchemicalWizardry/common/items/ItemSpellEffectBlock.java b/BM_src/WayofTime/alchemicalWizardry/common/items/ItemSpellEffectBlock.java deleted file mode 100644 index 3b2a6bd9..00000000 --- a/BM_src/WayofTime/alchemicalWizardry/common/items/ItemSpellEffectBlock.java +++ /dev/null @@ -1,55 +0,0 @@ -package WayofTime.alchemicalWizardry.common.items; - -import net.minecraft.item.ItemBlock; -import net.minecraft.item.ItemStack; - -public class ItemSpellEffectBlock extends ItemBlock - -{ - public ItemSpellEffectBlock(int par1) - { - super(par1); - setHasSubtypes(true); - this.setUnlocalizedName("itemSpellEffectBlock"); - } - - public String getUnlocalizedName(ItemStack itemstack) - - { - String name = ""; - - switch (itemstack.getItemDamage()) - { - case 0: - { - name = "fire"; - break; - } - - case 1: - { - name = "ice"; - break; - } - - case 2: - name = "wind"; - break; - - case 3: - name = "water"; - break; - - default: - name = "broken"; - } - - return getUnlocalizedName() + "." + name; - } - - public int getMetadata(int par1) - - { - return par1; - } -} diff --git a/BM_src/WayofTime/alchemicalWizardry/common/items/ItemSpellEnhancementBlock.java b/BM_src/WayofTime/alchemicalWizardry/common/items/ItemSpellEnhancementBlock.java deleted file mode 100644 index 873b4163..00000000 --- a/BM_src/WayofTime/alchemicalWizardry/common/items/ItemSpellEnhancementBlock.java +++ /dev/null @@ -1,95 +0,0 @@ -package WayofTime.alchemicalWizardry.common.items; - -import net.minecraft.item.ItemBlock; -import net.minecraft.item.ItemStack; - -public class ItemSpellEnhancementBlock extends ItemBlock - -{ - public ItemSpellEnhancementBlock(int par1) - { - super(par1); - setHasSubtypes(true); - this.setUnlocalizedName("itemSpellEnhancementBlock"); - } - - public String getUnlocalizedName(ItemStack itemstack) - - { - String name = ""; - - switch (itemstack.getItemDamage()) - { - case 0: - name = "power1"; - break; - - case 1: - name = "power2"; - break; - - case 2: - name = "power3"; - break; - - case 3: - name = "power4"; - break; - - case 4: - name = "power5"; - break; - - case 5: - name = "cost1"; - break; - - case 6: - name = "cost2"; - break; - - case 7: - name = "cost3"; - break; - - case 8: - name = "cost4"; - break; - - case 9: - name = "cost5"; - break; - - case 10: - name = "potency1"; - break; - - case 11: - name = "potency2"; - break; - - case 12: - name = "potency3"; - break; - - case 13: - name = "potency4"; - break; - - case 14: - name = "potency5"; - break; - - default: - name = "broken"; - } - - return getUnlocalizedName() + "." + name; - } - - public int getMetadata(int par1) - - { - return par1; - } -} diff --git a/BM_src/WayofTime/alchemicalWizardry/common/items/ItemSpellModifierBlock.java b/BM_src/WayofTime/alchemicalWizardry/common/items/ItemSpellModifierBlock.java deleted file mode 100644 index 71e5e46e..00000000 --- a/BM_src/WayofTime/alchemicalWizardry/common/items/ItemSpellModifierBlock.java +++ /dev/null @@ -1,51 +0,0 @@ -package WayofTime.alchemicalWizardry.common.items; - -import net.minecraft.item.ItemBlock; -import net.minecraft.item.ItemStack; - -public class ItemSpellModifierBlock extends ItemBlock - -{ - public ItemSpellModifierBlock(int par1) - { - super(par1); - setHasSubtypes(true); - this.setUnlocalizedName("itemSpellModifierBlock"); - } - - public String getUnlocalizedName(ItemStack itemstack) - - { - String name = ""; - - switch (itemstack.getItemDamage()) - { - case 0: - { - name = "power"; - break; - } - - case 1: - { - name = "efficiency"; - break; - } - - case 2: - name = "potency"; - break; - - default: - name = "broken"; - } - - return getUnlocalizedName() + "." + name; - } - - public int getMetadata(int par1) - - { - return par1; - } -} diff --git a/BM_src/WayofTime/alchemicalWizardry/common/items/ItemSpellParadigmBlock.java b/BM_src/WayofTime/alchemicalWizardry/common/items/ItemSpellParadigmBlock.java deleted file mode 100644 index 934120d8..00000000 --- a/BM_src/WayofTime/alchemicalWizardry/common/items/ItemSpellParadigmBlock.java +++ /dev/null @@ -1,50 +0,0 @@ -package WayofTime.alchemicalWizardry.common.items; - -import net.minecraft.item.ItemBlock; -import net.minecraft.item.ItemStack; - -public class ItemSpellParadigmBlock extends ItemBlock - -{ - public ItemSpellParadigmBlock(int par1) - { - super(par1); - setHasSubtypes(true); - this.setUnlocalizedName("itemSpellParadigmBlock"); - } - - public String getUnlocalizedName(ItemStack itemstack) - - { - String name = ""; - - switch (itemstack.getItemDamage()) - { - case 0: - { - name = "projectile"; - break; - } - - case 1: - { - name = "self"; - break; - } - - case 2: - name = "melee"; - break; - - default: - name = "broken"; - } - - return getUnlocalizedName() + "." + name; - } - - public int getMetadata(int par1) - { - return par1; - } -} diff --git a/BM_src/WayofTime/alchemicalWizardry/common/items/LavaCrystal.java b/BM_src/WayofTime/alchemicalWizardry/common/items/LavaCrystal.java deleted file mode 100644 index 4d416061..00000000 --- a/BM_src/WayofTime/alchemicalWizardry/common/items/LavaCrystal.java +++ /dev/null @@ -1,114 +0,0 @@ -package WayofTime.alchemicalWizardry.common.items; - -import WayofTime.alchemicalWizardry.AlchemicalWizardry; -import WayofTime.alchemicalWizardry.api.soulNetwork.LifeEssenceNetwork; -import cpw.mods.fml.relauncher.Side; -import cpw.mods.fml.relauncher.SideOnly; -import net.minecraft.client.renderer.texture.IconRegister; -import net.minecraft.entity.player.EntityPlayer; -import net.minecraft.item.ItemStack; -import net.minecraft.server.MinecraftServer; -import net.minecraft.world.World; - -import java.util.List; - -public class LavaCrystal extends EnergyItems -{ - public LavaCrystal(int id) - { - super(id); - //setMaxDamage(1000); - setMaxStackSize(1); - setCreativeTab(AlchemicalWizardry.tabBloodMagic); - setUnlocalizedName("lavaCrystal"); - setEnergyUsed(25); - } - - @Override - @SideOnly(Side.CLIENT) - public void registerIcons(IconRegister iconRegister) - { - this.itemIcon = iconRegister.registerIcon("AlchemicalWizardry:LavaCrystal"); - } - - /* - * Used to have the item contain itself. - */ - @Override - public ItemStack getContainerItemStack(ItemStack itemStack) - { - //if(!syphonBatteries(itemStack, null, 10)) - { - syphonWhileInContainer(itemStack, this.getEnergyUsed()); - ItemStack copiedStack = itemStack.copy(); - copiedStack.setItemDamage(copiedStack.getItemDamage()); - copiedStack.stackSize = 1; - return copiedStack; - } - //return itemStack; - } - - @Override - public boolean hasContainerItem() - { - return true; - } - - public ItemStack onItemRightClick(ItemStack par1ItemStack, World par2World, EntityPlayer par3EntityPlayer) - { - EnergyItems.checkAndSetItemOwner(par1ItemStack, par3EntityPlayer); - int damage = this.getDamage(par1ItemStack); - return par1ItemStack; - } - - @Override - public void addInformation(ItemStack par1ItemStack, EntityPlayer par2EntityPlayer, List par3List, boolean par4) - { - par3List.add("Store life to smelt"); - par3List.add("stuff in the furnace."); - - if (!(par1ItemStack.stackTagCompound == null)) - { - par3List.add("Current owner: " + par1ItemStack.stackTagCompound.getString("ownerName")); - } - } - - public boolean hasEnoughEssence(ItemStack itemStack) - { - if (itemStack.getTagCompound() != null && !(itemStack.getTagCompound().getString("ownerName").equals(""))) - { - String ownerName = itemStack.getTagCompound().getString("ownerName"); - - if (MinecraftServer.getServer() == null) - { - return false; - } - - World world = MinecraftServer.getServer().worldServers[0]; - LifeEssenceNetwork data = (LifeEssenceNetwork) world.loadItemData(LifeEssenceNetwork.class, ownerName); - - if (data == null) - { - data = new LifeEssenceNetwork(ownerName); - world.setItemData(ownerName, data); - } - - if (data.currentEssence >= this.getEnergyUsed()) - { - return true; - } - -// EntityPlayer ownerEntity = MinecraftServer.getServer().getConfigurationManager().getPlayerForUsername(ist.getTagCompound().getString("ownerName")); -// if(ownerEntity==null){return false;} -// NBTTagCompound tag = ownerEntity.getEntityData(); -// int currentEssence = tag.getInteger("currentEssence"); -// if(currentEssence>=damageToBeDone) -// { -// tag.setInteger("currentEssence", currentEssence-damageToBeDone); -// return true; -// } - } - - return false; - } -} diff --git a/BM_src/WayofTime/alchemicalWizardry/common/items/LifeBucket.java b/BM_src/WayofTime/alchemicalWizardry/common/items/LifeBucket.java deleted file mode 100644 index 185e0ffe..00000000 --- a/BM_src/WayofTime/alchemicalWizardry/common/items/LifeBucket.java +++ /dev/null @@ -1,22 +0,0 @@ -package WayofTime.alchemicalWizardry.common.items; - -import cpw.mods.fml.relauncher.Side; -import cpw.mods.fml.relauncher.SideOnly; -import net.minecraft.client.renderer.texture.IconRegister; -import net.minecraft.item.ItemBucket; - -public class LifeBucket extends ItemBucket -{ - public LifeBucket(int par1, int par2) - { - super(par1, par2); - // TODO Auto-generated constructor stub - } - - @Override - @SideOnly(Side.CLIENT) - public void registerIcons(IconRegister iconRegister) - { - this.itemIcon = iconRegister.registerIcon("AlchemicalWizardry:LifeBucket"); - } -} diff --git a/BM_src/WayofTime/alchemicalWizardry/common/items/MagicianBloodOrb.java b/BM_src/WayofTime/alchemicalWizardry/common/items/MagicianBloodOrb.java deleted file mode 100644 index 7d119762..00000000 --- a/BM_src/WayofTime/alchemicalWizardry/common/items/MagicianBloodOrb.java +++ /dev/null @@ -1,21 +0,0 @@ -package WayofTime.alchemicalWizardry.common.items; - -import cpw.mods.fml.relauncher.Side; -import cpw.mods.fml.relauncher.SideOnly; -import net.minecraft.client.renderer.texture.IconRegister; - -public class MagicianBloodOrb extends EnergyBattery -{ - public MagicianBloodOrb(int id, int damage) - { - super(id, damage); - orbLevel = 3; - } - - @Override - @SideOnly(Side.CLIENT) - public void registerIcons(IconRegister iconRegister) - { - this.itemIcon = iconRegister.registerIcon("AlchemicalWizardry:MagicianBloodOrb"); - } -} diff --git a/BM_src/WayofTime/alchemicalWizardry/common/items/MasterBloodOrb.java b/BM_src/WayofTime/alchemicalWizardry/common/items/MasterBloodOrb.java deleted file mode 100644 index 7b21d110..00000000 --- a/BM_src/WayofTime/alchemicalWizardry/common/items/MasterBloodOrb.java +++ /dev/null @@ -1,21 +0,0 @@ -package WayofTime.alchemicalWizardry.common.items; - -import cpw.mods.fml.relauncher.Side; -import cpw.mods.fml.relauncher.SideOnly; -import net.minecraft.client.renderer.texture.IconRegister; - -public class MasterBloodOrb extends EnergyBattery -{ - public MasterBloodOrb(int id, int damage) - { - super(id, damage); - orbLevel = 4; - } - - @Override - @SideOnly(Side.CLIENT) - public void registerIcons(IconRegister iconRegister) - { - this.itemIcon = iconRegister.registerIcon("AlchemicalWizardry:MasterBloodOrb"); - } -} diff --git a/BM_src/WayofTime/alchemicalWizardry/common/items/OrbOfTesting.java b/BM_src/WayofTime/alchemicalWizardry/common/items/OrbOfTesting.java deleted file mode 100644 index 748bf06e..00000000 --- a/BM_src/WayofTime/alchemicalWizardry/common/items/OrbOfTesting.java +++ /dev/null @@ -1,47 +0,0 @@ -package WayofTime.alchemicalWizardry.common.items; - -import cpw.mods.fml.relauncher.Side; -import cpw.mods.fml.relauncher.SideOnly; -import net.minecraft.client.renderer.texture.IconRegister; -import net.minecraft.creativetab.CreativeTabs; -import net.minecraft.entity.player.EntityPlayer; -import net.minecraft.item.ItemStack; -import net.minecraft.world.World; - -public class OrbOfTesting extends EnergyItems -{ - public OrbOfTesting(int id) - { - super(id); - setMaxStackSize(1); - setCreativeTab(CreativeTabs.tabMisc); - setUnlocalizedName("orbOfTesting"); - setMaxDamage(100); - setFull3D(); - this.setEnergyUsed(100); - } - - @Override - @SideOnly(Side.CLIENT) - public void registerIcons(IconRegister iconRegister) - { - this.itemIcon = iconRegister.registerIcon("AlchemicalWizardry:Untitled"); - } - - //Heals the player using the item. If the player is at full health, or if the durability cannot be used any more, - //the item is not used. - public ItemStack onItemRightClick(ItemStack par1ItemStack, World par2World, EntityPlayer par3EntityPlayer) - { - if (!par3EntityPlayer.shouldHeal()) - { - return par1ItemStack; - } - - if (this.syphonBatteries(par1ItemStack, par3EntityPlayer, this.getEnergyUsed())) - { - par3EntityPlayer.heal(1); - } - - return par1ItemStack; - } -} diff --git a/BM_src/WayofTime/alchemicalWizardry/common/items/ReinforcedTelepositionFocus.java b/BM_src/WayofTime/alchemicalWizardry/common/items/ReinforcedTelepositionFocus.java deleted file mode 100644 index cf8fef8b..00000000 --- a/BM_src/WayofTime/alchemicalWizardry/common/items/ReinforcedTelepositionFocus.java +++ /dev/null @@ -1,47 +0,0 @@ -package WayofTime.alchemicalWizardry.common.items; - -import cpw.mods.fml.relauncher.Side; -import cpw.mods.fml.relauncher.SideOnly; -import net.minecraft.client.renderer.texture.IconRegister; -import net.minecraft.entity.player.EntityPlayer; -import net.minecraft.item.ItemStack; -import net.minecraft.nbt.NBTTagCompound; - -import java.util.List; - -public class ReinforcedTelepositionFocus extends TelepositionFocus -{ - public ReinforcedTelepositionFocus(int par1) - { - super(par1, 3); - // TODO Auto-generated constructor stub - } - - @Override - @SideOnly(Side.CLIENT) - public void registerIcons(IconRegister iconRegister) - { - //TODO - this.itemIcon = iconRegister.registerIcon("AlchemicalWizardry:ReinforcedTeleposerFocus"); - } - - @Override - public void addInformation(ItemStack par1ItemStack, EntityPlayer par2EntityPlayer, List par3List, boolean par4) - { - par3List.add("A stronger version of the focus,"); - par3List.add("using a weak shard"); - - if (!(par1ItemStack.stackTagCompound == null)) - { - NBTTagCompound itemTag = par1ItemStack.stackTagCompound; - - if (!par1ItemStack.stackTagCompound.getString("ownerName").equals("")) - { - par3List.add("Current owner: " + par1ItemStack.stackTagCompound.getString("ownerName")); - } - - par3List.add("Coords: " + itemTag.getInteger("xCoord") + ", " + itemTag.getInteger("yCoord") + ", " + itemTag.getInteger("zCoord")); - par3List.add("Bound Dimension: " + getDimensionID(par1ItemStack)); - } - } -} diff --git a/BM_src/WayofTime/alchemicalWizardry/common/items/SacrificialDagger.java b/BM_src/WayofTime/alchemicalWizardry/common/items/SacrificialDagger.java deleted file mode 100644 index cb4b95c7..00000000 --- a/BM_src/WayofTime/alchemicalWizardry/common/items/SacrificialDagger.java +++ /dev/null @@ -1,145 +0,0 @@ -package WayofTime.alchemicalWizardry.common.items; - -import WayofTime.alchemicalWizardry.AlchemicalWizardry; -import WayofTime.alchemicalWizardry.common.spell.complex.effect.SpellHelper; -import WayofTime.alchemicalWizardry.common.tileEntity.TEAltar; -import cpw.mods.fml.relauncher.Side; -import cpw.mods.fml.relauncher.SideOnly; -import net.minecraft.client.renderer.texture.IconRegister; -import net.minecraft.entity.player.EntityPlayer; -import net.minecraft.entity.player.EntityPlayerMP; -import net.minecraft.item.Item; -import net.minecraft.item.ItemStack; -import net.minecraft.tileentity.TileEntity; -import net.minecraft.util.DamageSource; -import net.minecraft.world.World; -import net.minecraftforge.common.FakePlayer; - -import java.util.List; - -public class SacrificialDagger extends Item -{ - public SacrificialDagger(int id) - { - super(id); - this.maxStackSize = 1; - setCreativeTab(AlchemicalWizardry.tabBloodMagic); - setFull3D(); - } - - @Override - @SideOnly(Side.CLIENT) - public void registerIcons(IconRegister iconRegister) - { - if(AlchemicalWizardry.wimpySettings) - { - this.itemIcon = iconRegister.registerIcon("AlchemicalWizardry:SheathedItem"); - }else - { - this.itemIcon = iconRegister.registerIcon("AlchemicalWizardry:SacrificialDagger"); - } - } - - public void addInformation(ItemStack par1ItemStack, EntityPlayer par2EntityPlayer, List par3List, boolean par4) - { - if(AlchemicalWizardry.wimpySettings) - { - par3List.add(">:("); - }else - { - par3List.add("Just a prick of the"); - par3List.add("finger will suffice..."); - } - } - - public ItemStack onItemRightClick(ItemStack par1ItemStack, World par2World, EntityPlayer par3EntityPlayer) - { - if (!par3EntityPlayer.capabilities.isCreativeMode) - { - par3EntityPlayer.setHealth(par3EntityPlayer.getHealth() - 2); - } - - if(SpellHelper.isFakePlayer(par2World, par3EntityPlayer)) - { - return par1ItemStack; - } - - double posX = par3EntityPlayer.posX; - double posY = par3EntityPlayer.posY; - double posZ = par3EntityPlayer.posZ; - par2World.playSoundEffect((double) ((float) posX + 0.5F), (double) ((float) posY + 0.5F), (double) ((float) posZ + 0.5F), "random.fizz", 0.5F, 2.6F + (par2World.rand.nextFloat() - par2World.rand.nextFloat()) * 0.8F); - float f = (float) 1.0F; - float f1 = f * 0.6F + 0.4F; - float f2 = f * f * 0.7F - 0.5F; - float f3 = f * f * 0.6F - 0.7F; - - for (int l = 0; l < 8; ++l) - { - par2World.spawnParticle("reddust", posX + Math.random() - Math.random(), posY + Math.random() - Math.random(), posZ + Math.random() - Math.random(), f1, f2, f3); - } - - findAndFillAltar(par2World, par3EntityPlayer, 200); - - if (par3EntityPlayer.getHealth() <= 0.5f) - { - //par3EntityPlayer.inventory.dropAllItems(); - par3EntityPlayer.onDeath(DamageSource.generic); - } - - return par1ItemStack; - } - - public void findAndFillAltar(World world, EntityPlayer player, int amount) - { - int posX = (int) Math.round(player.posX - 0.5f); - int posY = (int) player.posY; - int posZ = (int) Math.round(player.posZ - 0.5f); - TEAltar altarEntity = getAltar(world, posX, posY, posZ); - - if (altarEntity == null) - { - return; - } - - altarEntity.sacrificialDaggerCall(amount, false); - altarEntity.startCycle(); - } - - public TEAltar getAltar(World world, int x, int y, int z) - { - TileEntity tileEntity = null; - - for (int i = -2; i <= 2; i++) - { - for (int j = -2; j <= 2; j++) - { - for (int k = -2; k <= 1; k++) - { - tileEntity = world.getBlockTileEntity(i + x, k + y, j + z); - - if ((tileEntity instanceof TEAltar)) - { - return (TEAltar) tileEntity; - } - } - - if ((tileEntity instanceof TEAltar)) - { - return (TEAltar) tileEntity; - } - } - - if ((tileEntity instanceof TEAltar)) - { - return (TEAltar) tileEntity; - } - } - - if ((tileEntity instanceof TEAltar)) - { - return (TEAltar) tileEntity; - } - - return null; - } -} \ No newline at end of file diff --git a/BM_src/WayofTime/alchemicalWizardry/common/items/ScribeTool.java b/BM_src/WayofTime/alchemicalWizardry/common/items/ScribeTool.java deleted file mode 100644 index aac29e08..00000000 --- a/BM_src/WayofTime/alchemicalWizardry/common/items/ScribeTool.java +++ /dev/null @@ -1,53 +0,0 @@ -package WayofTime.alchemicalWizardry.common.items; - -import WayofTime.alchemicalWizardry.AlchemicalWizardry; -import net.minecraft.entity.player.EntityPlayer; -import net.minecraft.item.ItemStack; -import net.minecraft.world.World; - -import java.util.List; - -public class ScribeTool extends EnergyItems -{ - private int meta; - - public ScribeTool(int id, int inkType) - { - super(id); - setMaxStackSize(1); - setCreativeTab(AlchemicalWizardry.tabBloodMagic); - setMaxDamage(10); - setEnergyUsed(10); - this.meta = inkType; - } - - @Override - public void addInformation(ItemStack par1ItemStack, EntityPlayer par2EntityPlayer, List par3List, boolean par4) - { - par3List.add("The writing is on the wall..."); - - 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 (par1ItemStack.getItemDamage() > 0) - { - par1ItemStack.setItemDamage(par1ItemStack.getItemDamage() - 1); - syphonBatteries(par1ItemStack, par3EntityPlayer, this.getEnergyUsed()); - } - - return par1ItemStack; - } - - public int getType() - { - return this.meta; - } -} diff --git a/BM_src/WayofTime/alchemicalWizardry/common/items/TelepositionFocus.java b/BM_src/WayofTime/alchemicalWizardry/common/items/TelepositionFocus.java deleted file mode 100644 index 319c9d0c..00000000 --- a/BM_src/WayofTime/alchemicalWizardry/common/items/TelepositionFocus.java +++ /dev/null @@ -1,124 +0,0 @@ -package WayofTime.alchemicalWizardry.common.items; - -import WayofTime.alchemicalWizardry.AlchemicalWizardry; -import cpw.mods.fml.relauncher.Side; -import cpw.mods.fml.relauncher.SideOnly; -import net.minecraft.client.renderer.texture.IconRegister; -import net.minecraft.entity.player.EntityPlayer; -import net.minecraft.item.ItemStack; -import net.minecraft.nbt.NBTTagCompound; -import net.minecraft.world.World; -import net.minecraftforge.common.DimensionManager; - -import java.util.List; - -public class TelepositionFocus extends EnergyItems -{ - private int focusLevel; - - public TelepositionFocus(int par1, int focusLevel) - { - super(par1); - this.setMaxStackSize(1); - setCreativeTab(AlchemicalWizardry.tabBloodMagic); - this.focusLevel = focusLevel; - } - - @Override - @SideOnly(Side.CLIENT) - public void registerIcons(IconRegister iconRegister) - { - //TODO - this.itemIcon = iconRegister.registerIcon("AlchemicalWizardry:TeleposerFocus"); - } - - @Override - public void addInformation(ItemStack par1ItemStack, EntityPlayer par2EntityPlayer, List par3List, boolean par4) - { - par3List.add("An Enderpearl imbued with blood"); - - if (!(par1ItemStack.stackTagCompound == null)) - { - NBTTagCompound itemTag = par1ItemStack.stackTagCompound; - - if (!par1ItemStack.stackTagCompound.getString("ownerName").equals("")) - { - par3List.add("Current owner: " + par1ItemStack.stackTagCompound.getString("ownerName")); - } - - par3List.add("Coords: " + itemTag.getInteger("xCoord") + ", " + itemTag.getInteger("yCoord") + ", " + itemTag.getInteger("zCoord")); - par3List.add("Bound Dimension: " + getDimensionID(par1ItemStack)); - } - } - - @Override - public ItemStack onItemRightClick(ItemStack par1ItemStack, World par2World, EntityPlayer par3EntityPlayer) - { - EnergyItems.checkAndSetItemOwner(par1ItemStack, par3EntityPlayer); - - if (par3EntityPlayer.isSneaking()) - { - return par1ItemStack; - } - -// if (!par2World.isRemote) -// { -// //par2World.spawnEntityInWorld(new EnergyBlastProjectile(par2World, par3EntityPlayer, damage)); -// par2World.spawnEntityInWorld(new FireProjectile(par2World, par3EntityPlayer, 10)); -// } - return par1ItemStack; - } - - public int getDimensionID(ItemStack itemStack) - { - if (itemStack.stackTagCompound == null) - { - itemStack.setTagCompound(new NBTTagCompound()); - } - - return itemStack.stackTagCompound.getInteger("dimensionId"); - } - - public World getWorld(ItemStack itemStack) - { - return DimensionManager.getWorld(getDimensionID(itemStack)); - } - - public int xCoord(ItemStack itemStack) - { - if (!(itemStack.stackTagCompound == null)) - { - return itemStack.stackTagCompound.getInteger("xCoord"); - } else - { - return 0; - } - } - - public int yCoord(ItemStack itemStack) - { - if (!(itemStack.stackTagCompound == null)) - { - return itemStack.stackTagCompound.getInteger("yCoord"); - } else - { - return 0; - } - } - - public int zCoord(ItemStack itemStack) - { - if (!(itemStack.stackTagCompound == null)) - { - return itemStack.stackTagCompound.getInteger("zCoord"); - } else - { - return 0; - } - } - - public int getFocusLevel() - { - return this.focusLevel; - } -} diff --git a/BM_src/WayofTime/alchemicalWizardry/common/items/WaterInk.java b/BM_src/WayofTime/alchemicalWizardry/common/items/WaterInk.java deleted file mode 100644 index 0a7e3c63..00000000 --- a/BM_src/WayofTime/alchemicalWizardry/common/items/WaterInk.java +++ /dev/null @@ -1,24 +0,0 @@ -package WayofTime.alchemicalWizardry.common.items; - -import WayofTime.alchemicalWizardry.AlchemicalWizardry; -import cpw.mods.fml.relauncher.Side; -import cpw.mods.fml.relauncher.SideOnly; -import net.minecraft.client.renderer.texture.IconRegister; -import net.minecraft.item.Item; - -public class WaterInk extends Item -{ - public WaterInk(int id) - { - super(id); - this.maxStackSize = 1; - setCreativeTab(AlchemicalWizardry.tabBloodMagic); - } - - @Override - @SideOnly(Side.CLIENT) - public void registerIcons(IconRegister iconRegister) - { - this.itemIcon = iconRegister.registerIcon("AlchemicalWizardry:ElementalInkWater"); - } -} diff --git a/BM_src/WayofTime/alchemicalWizardry/common/items/WaterScribeTool.java b/BM_src/WayofTime/alchemicalWizardry/common/items/WaterScribeTool.java deleted file mode 100644 index f0274db8..00000000 --- a/BM_src/WayofTime/alchemicalWizardry/common/items/WaterScribeTool.java +++ /dev/null @@ -1,22 +0,0 @@ -package WayofTime.alchemicalWizardry.common.items; - -import WayofTime.alchemicalWizardry.AlchemicalWizardry; -import cpw.mods.fml.relauncher.Side; -import cpw.mods.fml.relauncher.SideOnly; -import net.minecraft.client.renderer.texture.IconRegister; - -public class WaterScribeTool extends ScribeTool -{ - public WaterScribeTool(int id) - { - super(id, 1); - setCreativeTab(AlchemicalWizardry.tabBloodMagic); - } - - @Override - @SideOnly(Side.CLIENT) - public void registerIcons(IconRegister iconRegister) - { - this.itemIcon = iconRegister.registerIcon("AlchemicalWizardry:WaterScribeTool"); - } -} diff --git a/BM_src/WayofTime/alchemicalWizardry/common/items/books/ItemBloodArchives.java b/BM_src/WayofTime/alchemicalWizardry/common/items/books/ItemBloodArchives.java deleted file mode 100644 index 4b8fc121..00000000 --- a/BM_src/WayofTime/alchemicalWizardry/common/items/books/ItemBloodArchives.java +++ /dev/null @@ -1,71 +0,0 @@ -package WayofTime.alchemicalWizardry.common.items.books; - -import net.minecraft.entity.player.EntityPlayer; -import net.minecraft.item.Item; -import net.minecraft.item.ItemEditableBook; -import net.minecraft.item.ItemStack; -import net.minecraft.nbt.NBTTagList; -import net.minecraft.nbt.NBTTagString; -import net.minecraft.world.World; -import WayofTime.alchemicalWizardry.AlchemicalWizardry; -import WayofTime.alchemicalWizardry.client.GuiManual; -import cpw.mods.fml.client.FMLClientHandler; - -public class ItemBloodArchives extends ItemEditableBook -{ - public static ItemStack book1Stack; - - public ItemBloodArchives(int par1) - { - super(par1); - setCreativeTab(AlchemicalWizardry.tabBloodMagic); - } - - public static void initBooks() - { - ItemStack tomeStack = new ItemStack(Item.writableBook); - NBTTagList bookPages = new NBTTagList("pages"); - bookPages.appendTag(new NBTTagString("1", "Insert text here.")); - bookPages.appendTag(new NBTTagString("2", "Insert moar text here.")); - tomeStack.setTagInfo("pages", bookPages); - tomeStack.setTagInfo("author", new NBTTagString("author", "WayofTime")); - tomeStack.setTagInfo("title", new NBTTagString("title", "Blood Book")); - tomeStack.itemID = Item.writtenBook.itemID; - - book1Stack = tomeStack.copy(); - } - - @Override - public ItemStack onItemRightClick (ItemStack stack, World world, EntityPlayer player) - { - player.openGui(AlchemicalWizardry.instance, 2, world, 0, 0, 0); - //FMLClientHandler.instance().displayGuiScreen(player, new GuiManual(stack, getData(stack))); - /*Side side = FMLCommonHandler.instance().getEffectiveSide(); - if (side.isClient()) - FMLClientHandler.instance().displayGuiScreen(player, new GuiManual(player.getCurrentEquippedItem(), getManualFromStack(stack)));*/ - return stack; - } - -// @Override -// @SideOnly(Side.CLIENT) -// public void getSubItems(int id, CreativeTabs creativeTab, List list) -// { -// list.add(book1Stack); -// } - -// private BookData getData (ItemStack stack) -// { -// switch (stack.getItemDamage()) -// { -// case 0: -// return TProxyClient.manualData.beginner; -// case 1: -// return TProxyClient.manualData.toolStation; -// case 2: -// return TProxyClient.manualData.smeltery; -// default: -// return TProxyClient.manualData.diary; -// } -// } - -} diff --git a/BM_src/WayofTime/alchemicalWizardry/common/items/forestry/ItemBloodFrame.java b/BM_src/WayofTime/alchemicalWizardry/common/items/forestry/ItemBloodFrame.java deleted file mode 100644 index 53e5320f..00000000 --- a/BM_src/WayofTime/alchemicalWizardry/common/items/forestry/ItemBloodFrame.java +++ /dev/null @@ -1,155 +0,0 @@ -package WayofTime.alchemicalWizardry.common.items.forestry; - -import WayofTime.alchemicalWizardry.AlchemicalWizardry; -import WayofTime.alchemicalWizardry.api.items.interfaces.ArmourUpgrade; -import WayofTime.alchemicalWizardry.common.items.EnergyItems; -import cpw.mods.fml.relauncher.Side; -import cpw.mods.fml.relauncher.SideOnly; -import net.minecraft.client.renderer.texture.IconRegister; -import net.minecraft.entity.player.EntityPlayer; -import net.minecraft.item.ItemStack; -import net.minecraft.util.Vec3; -import net.minecraft.world.World; - -import java.util.List; - -import forestry.api.apiculture.IBee; -import forestry.api.apiculture.IBeeGenome; -import forestry.api.apiculture.IBeeHousing; -import forestry.api.apiculture.IHiveFrame; - -public class ItemBloodFrame extends EnergyItems implements IHiveFrame -{ - public ItemBloodFrame(int id) - { - super(id); - this.maxStackSize = 1; - this.setMaxDamage(10); - //setMaxDamage(1000); - setEnergyUsed(3000); - setCreativeTab(AlchemicalWizardry.tabBloodMagic); - } - - @Override - public void addInformation(ItemStack par1ItemStack, EntityPlayer par2EntityPlayer, List par3List, boolean par4) - { - par3List.add("Stirs bees into a frenzy."); - - if (!(par1ItemStack.stackTagCompound == null)) - { - par3List.add("Current owner: " + par1ItemStack.stackTagCompound.getString("ownerName")); - } - } - - @Override - @SideOnly(Side.CLIENT) - public void registerIcons(IconRegister iconRegister) - { - this.itemIcon = iconRegister.registerIcon("AlchemicalWizardry:BloodFrame"); - } - - @Override - public ItemStack onItemRightClick(ItemStack par1ItemStack, World par2World, EntityPlayer par3EntityPlayer) - { - EnergyItems.checkAndSetItemOwner(par1ItemStack, par3EntityPlayer); - - if(par1ItemStack.getItemDamage()>0) - { - EnergyItems.syphonBatteries(par1ItemStack, par3EntityPlayer, getEnergyUsed()); - par1ItemStack.setItemDamage(par1ItemStack.getItemDamage()-1); - } - - return par1ItemStack; - } - - @Override - public float getTerritoryModifier(IBeeGenome genome, float currentModifier) - { - // TODO Auto-generated method stub - return 1; - } - - @Override - public float getMutationModifier(IBeeGenome genome, IBeeGenome mate, float currentModifier) - { - // TODO Auto-generated method stub - return 1; - } - - @Override - public float getLifespanModifier(IBeeGenome genome, IBeeGenome mate, float currentModifier) - { - // TODO Auto-generated method stub - return 0.0001f; - } - - @Override - public float getProductionModifier(IBeeGenome genome, float currentModifier) - { - // TODO Auto-generated method stub - return 0; - } - - @Override - public float getFloweringModifier(IBeeGenome genome, float currentModifier) - { - // TODO Auto-generated method stub - return 1; - } - - @Override - public float getGeneticDecay(IBeeGenome genome, float currentModifier) - { - // TODO Auto-generated method stub - return 1; - } - - @Override - public boolean isSealed() - { - // TODO Auto-generated method stub - return false; - } - - @Override - public boolean isSelfLighted() - { - // TODO Auto-generated method stub - return false; - } - - @Override - public boolean isSunlightSimulated() - { - // TODO Auto-generated method stub - return false; - } - - @Override - public boolean isHellish() - { - // TODO Auto-generated method stub - return false; - } - - @Override - public ItemStack frameUsed(IBeeHousing housing, ItemStack frame, IBee queen, int wear) - { - // TODO Auto-generated method stub - if(EnergyItems.canSyphonInContainer(frame, getEnergyUsed()*wear)) - { - EnergyItems.syphonWhileInContainer(frame, getEnergyUsed()*wear); - return frame; - }else - { - frame.setItemDamage(frame.getItemDamage() + wear); - if(frame.getItemDamage()>=frame.getMaxDamage()) - { - return null; - } - return frame; - } - - } - -} diff --git a/BM_src/WayofTime/alchemicalWizardry/common/items/potion/AlchemyFlask.java b/BM_src/WayofTime/alchemicalWizardry/common/items/potion/AlchemyFlask.java deleted file mode 100644 index a9de5b95..00000000 --- a/BM_src/WayofTime/alchemicalWizardry/common/items/potion/AlchemyFlask.java +++ /dev/null @@ -1,434 +0,0 @@ -package WayofTime.alchemicalWizardry.common.items.potion; - -import WayofTime.alchemicalWizardry.AlchemicalWizardry; -import WayofTime.alchemicalWizardry.api.alchemy.AlchemyPotionHelper; - -import com.google.common.collect.HashMultimap; - -import cpw.mods.fml.relauncher.Side; -import cpw.mods.fml.relauncher.SideOnly; -import net.minecraft.client.renderer.texture.IconRegister; -import net.minecraft.entity.EntityLivingBase; -import net.minecraft.entity.ai.attributes.Attribute; -import net.minecraft.entity.ai.attributes.AttributeModifier; -import net.minecraft.entity.player.EntityPlayer; -import net.minecraft.entity.projectile.EntityPotion; -import net.minecraft.item.EnumAction; -import net.minecraft.item.Item; -import net.minecraft.item.ItemStack; -import net.minecraft.nbt.NBTTagCompound; -import net.minecraft.nbt.NBTTagList; -import net.minecraft.potion.Potion; -import net.minecraft.potion.PotionEffect; -import net.minecraft.util.EnumChatFormatting; -import net.minecraft.util.StatCollector; -import net.minecraft.world.World; - -import java.util.ArrayList; -import java.util.Iterator; -import java.util.List; -import java.util.Map; -import java.util.Map.Entry; - -public class AlchemyFlask extends Item -{ - private int maxPotionAmount = 20; - - public AlchemyFlask(int id) - { - super(id); - this.setMaxDamage(8); - this.setMaxStackSize(1); - setNoRepair(); - setCreativeTab(AlchemicalWizardry.tabBloodMagic); - // TODO Auto-generated constructor stub - } - - @Override - @SideOnly(Side.CLIENT) - public void registerIcons(IconRegister iconRegister) - { - this.itemIcon = iconRegister.registerIcon("AlchemicalWizardry:PotionFlask"); - } - - public static ArrayList getEffects(ItemStack par1ItemStack) - { - if (par1ItemStack.hasTagCompound() && par1ItemStack.getTagCompound().hasKey("CustomFlaskEffects")) - { - ArrayList arraylist = new ArrayList(); - NBTTagList nbttaglist = par1ItemStack.getTagCompound().getTagList("CustomFlaskEffects"); - - for (int i = 0; i < nbttaglist.tagCount(); ++i) - { - NBTTagCompound nbttagcompound = (NBTTagCompound) nbttaglist.tagAt(i); - arraylist.add(AlchemyPotionHelper.readEffectFromNBT(nbttagcompound)); - } - - return arraylist; - } else - { - return null; - } - } - - public static ArrayList getPotionEffects(ItemStack par1ItemStack) - { - ArrayList list = AlchemyFlask.getEffects(par1ItemStack); - - if (list != null) - { - ArrayList newList = new ArrayList(); - - for (AlchemyPotionHelper aph : list) - { - newList.add(aph.getPotionEffect()); - } - - return newList; - } else - { - return null; - } - } - - public void setEffects(ItemStack par1ItemStack, ArrayList list) - { - NBTTagCompound itemTag = par1ItemStack.stackTagCompound; - - if (itemTag == null) - { - par1ItemStack.setTagCompound(new NBTTagCompound()); - } - - NBTTagList nbttaglist = new NBTTagList(); - - for (AlchemyPotionHelper aph : list) - { - nbttaglist.appendTag(AlchemyPotionHelper.setEffectToNBT(aph)); - } - - par1ItemStack.stackTagCompound.setTag("CustomFlaskEffects", nbttaglist); - } - - public ItemStack onEaten(ItemStack par1ItemStack, World par2World, EntityPlayer par3EntityPlayer) - { - if (!par3EntityPlayer.capabilities.isCreativeMode) - { - par1ItemStack.setItemDamage(par1ItemStack.getItemDamage() + 1); - } - - if (!par2World.isRemote) - { - ArrayList list = this.getEffects(par1ItemStack); - - if (list != null) - { - for (AlchemyPotionHelper aph : list) - { - PotionEffect pe = aph.getPotionEffect(); - - if (pe != null) - { - //if(pe.get) - par3EntityPlayer.addPotionEffect(pe); - } - } - } - } - - return par1ItemStack; - } - - /** - * How long it takes to use or consume an item - */ - public int getMaxItemUseDuration(ItemStack par1ItemStack) - { - return 32; - } - - /** - * returns the action that specifies what animation to play when the items is being used - */ - public EnumAction getItemUseAction(ItemStack par1ItemStack) - { - if (this.isPotionThrowable(par1ItemStack)) - { - return EnumAction.none; - } - - return EnumAction.drink; - } - - /** - * Called whenever this item is equipped and the right mouse button is pressed. Args: itemStack, world, entityPlayer - */ - public ItemStack onItemRightClick(ItemStack par1ItemStack, World par2World, EntityPlayer par3EntityPlayer) - { -// if(par3EntityPlayer.isSneaking()) -// { -// this.setIsPotionThrowable(true, par1ItemStack); -// return par1ItemStack; -// } - if (par1ItemStack.getItemDamage() < par1ItemStack.getMaxDamage()) - { - if (this.isPotionThrowable(par1ItemStack)) - { - if (!par2World.isRemote) - { - EntityPotion entityPotion = this.getEntityPotion(par1ItemStack, par2World, par3EntityPlayer); - - if (entityPotion != null) - { - float velocityChange = 2.0f; - entityPotion.motionX *= velocityChange; - entityPotion.motionY *= velocityChange; - entityPotion.motionZ *= velocityChange; - par2World.spawnEntityInWorld(entityPotion); - par1ItemStack.setItemDamage(par1ItemStack.getItemDamage() + 1); - } - } - - return par1ItemStack; - } - - par3EntityPlayer.setItemInUse(par1ItemStack, this.getMaxItemUseDuration(par1ItemStack)); - } - - return par1ItemStack; - } - - public void setConcentrationOfPotion(ItemStack par1ItemStack, int potionID, int concentration) - { - ArrayList list = this.getEffects(par1ItemStack); - - if (list != null) - { - for (AlchemyPotionHelper aph : list) - { - if (aph.getPotionID() == potionID) - { - aph.setConcentration(concentration); - break; - } - } - - this.setEffects(par1ItemStack, list); - } - } - - public void setDurationFactorOfPotion(ItemStack par1ItemStack, int potionID, int durationFactor) - { - ArrayList list = this.getEffects(par1ItemStack); - - if (list != null) - { - for (AlchemyPotionHelper aph : list) - { - if (aph.getPotionID() == potionID) - { - aph.setDurationFactor(durationFactor); - break; - } - } - - this.setEffects(par1ItemStack, list); - } - } - - public boolean hasPotionEffect(ItemStack par1ItemStack, int potionID) - { - return false; - } - - public int getNumberOfPotionEffects(ItemStack par1ItemStack) - { - if (getEffects(par1ItemStack) != null) - { - return getEffects(par1ItemStack).size(); - } else - { - return 0; - } - } - - public boolean addPotionEffect(ItemStack par1ItemStack, int potionID, int tickDuration) - { - int i = 0; - ArrayList list = this.getEffects(par1ItemStack); - - if (list != null) - { - for (AlchemyPotionHelper aph : list) - { - if (aph.getPotionID() == potionID) - { - return false; - } - - i++; - } - - //if(i 0) - { - Iterator iterator1 = map.entrySet().iterator(); - - while (iterator1.hasNext()) - { - Entry entry = (Entry) iterator1.next(); - AttributeModifier attributemodifier = (AttributeModifier) entry.getValue(); - AttributeModifier attributemodifier1 = new AttributeModifier(attributemodifier.getName(), potion.func_111183_a(potioneffect.getAmplifier(), attributemodifier), attributemodifier.getOperation()); - hashmultimap.put(((Attribute) entry.getKey()).getAttributeUnlocalizedName(), attributemodifier1); - } - } - - if (potioneffect.getAmplifier() > 0) - { - s = s + " " + StatCollector.translateToLocal("potion.potency." + potioneffect.getAmplifier()).trim(); - } - - if (potioneffect.getDuration() > 20) - { - s = s + " (" + Potion.getDurationString(potioneffect) + ")"; - } - - if (potion.isBadEffect()) - { - par3List.add(EnumChatFormatting.RED + s); - } else - { - par3List.add(EnumChatFormatting.GRAY + s); - } - } - } else - { - String s1 = StatCollector.translateToLocal("potion.empty").trim(); - par3List.add(EnumChatFormatting.GRAY + s1); - } - - if (!hashmultimap.isEmpty()) - { - par3List.add(""); - par3List.add(EnumChatFormatting.DARK_PURPLE + StatCollector.translateToLocal("potion.effects.whenDrank")); - iterator = hashmultimap.entries().iterator(); - - while (iterator.hasNext()) - { - Entry entry1 = (Entry) iterator.next(); - AttributeModifier attributemodifier2 = (AttributeModifier) entry1.getValue(); - double d0 = attributemodifier2.getAmount(); - double d1; - - if (attributemodifier2.getOperation() != 1 && attributemodifier2.getOperation() != 2) - { - d1 = attributemodifier2.getAmount(); - } else - { - d1 = attributemodifier2.getAmount() * 100.0D; - } - - if (d0 > 0.0D) - { - par3List.add(EnumChatFormatting.BLUE + StatCollector.translateToLocalFormatted("attribute.modifier.plus." + attributemodifier2.getOperation(), new Object[]{ItemStack.field_111284_a.format(d1), StatCollector.translateToLocal("attribute.name." + (String) entry1.getKey())})); - } else if (d0 < 0.0D) - { - d1 *= -1.0D; - par3List.add(EnumChatFormatting.RED + StatCollector.translateToLocalFormatted("attribute.modifier.take." + attributemodifier2.getOperation(), new Object[]{ItemStack.field_111284_a.format(d1), StatCollector.translateToLocal("attribute.name." + (String) entry1.getKey())})); - } - } - } - } - - public boolean isPotionThrowable(ItemStack par1ItemStack) - { - if (par1ItemStack.hasTagCompound() && par1ItemStack.getTagCompound().getBoolean("throwable")) - { - return true; - } else - { - return false; - } - - //return false; - } - - public void setIsPotionThrowable(boolean flag, ItemStack par1ItemStack) - { - if (!par1ItemStack.hasTagCompound()) - { - par1ItemStack.setTagCompound(new NBTTagCompound()); - } - - par1ItemStack.stackTagCompound.setBoolean("throwable", flag); - } - - public EntityPotion getEntityPotion(ItemStack par1ItemStack, World worldObj, EntityLivingBase entityLivingBase) - { - ItemStack potionStack = new ItemStack(Item.potion, 1, 0); - potionStack.setTagCompound(new NBTTagCompound()); - ArrayList potionList = this.getPotionEffects(par1ItemStack); - - if (potionList == null) - { - return null; - } - - NBTTagList nbttaglist = new NBTTagList(); - - for (PotionEffect pe : potionList) - { - NBTTagCompound d = new NBTTagCompound(); - d.setByte("Id", (byte) pe.getPotionID()); - d.setByte("Amplifier", (byte) pe.getAmplifier()); - //byte b1 = par0NBTTagCompound.getByte("Amplifier"); - d.setInteger("Duration", pe.getDuration()); - //int i = par0NBTTagCompound.getInteger("Duration"); - d.setBoolean("Ambient", pe.getIsAmbient()); - // boolean flag = par0NBTTagCompound.getBoolean("Ambient"); - nbttaglist.appendTag(d); - } - - potionStack.stackTagCompound.setTag("CustomPotionEffects", nbttaglist); - EntityPotion entityPotion = new EntityPotion(worldObj, entityLivingBase, potionStack); - return entityPotion; - } -} diff --git a/BM_src/WayofTime/alchemicalWizardry/common/items/potion/AlchemyReagent.java b/BM_src/WayofTime/alchemicalWizardry/common/items/potion/AlchemyReagent.java deleted file mode 100644 index eda46fe9..00000000 --- a/BM_src/WayofTime/alchemicalWizardry/common/items/potion/AlchemyReagent.java +++ /dev/null @@ -1,119 +0,0 @@ -package WayofTime.alchemicalWizardry.common.items.potion; - -import WayofTime.alchemicalWizardry.AlchemicalWizardry; -import WayofTime.alchemicalWizardry.ModItems; -import WayofTime.alchemicalWizardry.api.alchemy.AlchemyRecipeRegistry; -import cpw.mods.fml.relauncher.Side; -import cpw.mods.fml.relauncher.SideOnly; -import net.minecraft.client.renderer.texture.IconRegister; -import net.minecraft.entity.player.EntityPlayer; -import net.minecraft.item.Item; -import net.minecraft.item.ItemStack; -import net.minecraft.util.EnumChatFormatting; - -import org.lwjgl.input.Keyboard; - -import java.util.List; - -public class AlchemyReagent extends Item -{ - public AlchemyReagent(int id) - { - super(id); - setCreativeTab(AlchemicalWizardry.tabBloodMagic); - this.setMaxStackSize(64); - // TODO Auto-generated constructor stub - } - - @Override - @SideOnly(Side.CLIENT) - public void registerIcons(IconRegister iconRegister) - { - if (this.itemID == ModItems.incendium.itemID) - { - this.itemIcon = iconRegister.registerIcon("AlchemicalWizardry:Incendium"); - return; - } - - if (this.itemID == ModItems.magicales.itemID) - { - this.itemIcon = iconRegister.registerIcon("AlchemicalWizardry:Magicales"); - return; - } - - if (this.itemID == ModItems.sanctus.itemID) - { - this.itemIcon = iconRegister.registerIcon("AlchemicalWizardry:Sanctus"); - return; - } - - if (this.itemID == ModItems.aether.itemID) - { - this.itemIcon = iconRegister.registerIcon("AlchemicalWizardry:Aether"); - return; - } - - if (this.itemID == ModItems.simpleCatalyst.itemID) - { - this.itemIcon = iconRegister.registerIcon("AlchemicalWizardry:SimpleCatalyst"); - return; - } - - if (this.itemID == ModItems.crepitous.itemID) - { - this.itemIcon = iconRegister.registerIcon("AlchemicalWizardry:Crepitous"); - return; - } - - if (this.itemID == ModItems.crystallos.itemID) - { - this.itemIcon = iconRegister.registerIcon("AlchemicalWizardry:Crystallos"); - return; - } - - if (this.itemID == ModItems.terrae.itemID) - { - this.itemIcon = iconRegister.registerIcon("AlchemicalWizardry:Terrae"); - return; - } - - if (this.itemID == ModItems.aquasalus.itemID) - { - this.itemIcon = iconRegister.registerIcon("AlchemicalWizardry:Aquasalus"); - return; - } - - if (this.itemID == ModItems.tennebrae.itemID) - { - this.itemIcon = iconRegister.registerIcon("AlchemicalWizardry:Tennebrae"); - return; - } - } - - @Override - public void addInformation(ItemStack par1ItemStack, EntityPlayer par2EntityPlayer, List par3List, boolean par4) - { - par3List.add("Used in alchemy"); - - if (Keyboard.isKeyDown(Keyboard.KEY_RSHIFT) || Keyboard.isKeyDown(Keyboard.KEY_LSHIFT)) - { - ItemStack[] recipe = AlchemyRecipeRegistry.getRecipeForItemStack(par1ItemStack); - - if (recipe != null) - { - par3List.add(EnumChatFormatting.BLUE + "Recipe:"); - - for (ItemStack item : recipe) - { - if (item != null) - { - par3List.add("" + item.getDisplayName()); - } - } - } - } else - { - par3List.add("-Press " + EnumChatFormatting.BLUE + "shift" + EnumChatFormatting.GRAY + " for Recipe-"); - } - } -} diff --git a/BM_src/WayofTime/alchemicalWizardry/common/items/potion/AverageLengtheningCatalyst.java b/BM_src/WayofTime/alchemicalWizardry/common/items/potion/AverageLengtheningCatalyst.java deleted file mode 100644 index 7846ae0f..00000000 --- a/BM_src/WayofTime/alchemicalWizardry/common/items/potion/AverageLengtheningCatalyst.java +++ /dev/null @@ -1,20 +0,0 @@ -package WayofTime.alchemicalWizardry.common.items.potion; - -import cpw.mods.fml.relauncher.Side; -import cpw.mods.fml.relauncher.SideOnly; -import net.minecraft.client.renderer.texture.IconRegister; - -public class AverageLengtheningCatalyst extends LengtheningCatalyst -{ - public AverageLengtheningCatalyst(int id) - { - super(id, 2); - } - - @Override - @SideOnly(Side.CLIENT) - public void registerIcons(IconRegister iconRegister) - { - this.itemIcon = iconRegister.registerIcon("AlchemicalWizardry:AverageLengtheningCatalyst"); - } -} \ No newline at end of file diff --git a/BM_src/WayofTime/alchemicalWizardry/common/items/potion/AveragePowerCatalyst.java b/BM_src/WayofTime/alchemicalWizardry/common/items/potion/AveragePowerCatalyst.java deleted file mode 100644 index 7f818798..00000000 --- a/BM_src/WayofTime/alchemicalWizardry/common/items/potion/AveragePowerCatalyst.java +++ /dev/null @@ -1,20 +0,0 @@ -package WayofTime.alchemicalWizardry.common.items.potion; - -import cpw.mods.fml.relauncher.Side; -import cpw.mods.fml.relauncher.SideOnly; -import net.minecraft.client.renderer.texture.IconRegister; - -public class AveragePowerCatalyst extends PowerCatalyst -{ - public AveragePowerCatalyst(int id) - { - super(id, 2); - } - - @Override - @SideOnly(Side.CLIENT) - public void registerIcons(IconRegister iconRegister) - { - this.itemIcon = iconRegister.registerIcon("AlchemicalWizardry:AveragePowerCatalyst"); - } -} \ No newline at end of file diff --git a/BM_src/WayofTime/alchemicalWizardry/common/items/potion/EnhancedFillingAgent.java b/BM_src/WayofTime/alchemicalWizardry/common/items/potion/EnhancedFillingAgent.java deleted file mode 100644 index 340fa792..00000000 --- a/BM_src/WayofTime/alchemicalWizardry/common/items/potion/EnhancedFillingAgent.java +++ /dev/null @@ -1,57 +0,0 @@ -package WayofTime.alchemicalWizardry.common.items.potion; - -import WayofTime.alchemicalWizardry.AlchemicalWizardry; -import cpw.mods.fml.relauncher.Side; -import cpw.mods.fml.relauncher.SideOnly; -import net.minecraft.client.renderer.texture.IconRegister; - -import java.util.Random; - -public class EnhancedFillingAgent extends WeakFillingAgent -{ - public EnhancedFillingAgent(int par1) - { - super(par1); - setCreativeTab(AlchemicalWizardry.tabBloodMagic); - } - - @Override - public int getFilledAmountForPotionNumber(int potionEffects) - { - Random rand = new Random(); - - if (potionEffects == 0) - { - return 8; - } - - //if(potionEffects >=1 && potionEffects<=5) - { - switch (potionEffects) - { - case 1: - return 6; - - case 2: - return 4; - - case 3: - return 3; - - case 4: - return 2; - - case 5: - return 2; - } - } - return 0; - } - - @Override - @SideOnly(Side.CLIENT) - public void registerIcons(IconRegister iconRegister) - { - this.itemIcon = iconRegister.registerIcon("AlchemicalWizardry:EnhancedFillingAgent"); - } -} diff --git a/BM_src/WayofTime/alchemicalWizardry/common/items/potion/EnhancedTelepositionFocus.java b/BM_src/WayofTime/alchemicalWizardry/common/items/potion/EnhancedTelepositionFocus.java deleted file mode 100644 index 9780df0e..00000000 --- a/BM_src/WayofTime/alchemicalWizardry/common/items/potion/EnhancedTelepositionFocus.java +++ /dev/null @@ -1,47 +0,0 @@ -package WayofTime.alchemicalWizardry.common.items.potion; - -import WayofTime.alchemicalWizardry.common.items.TelepositionFocus; -import cpw.mods.fml.relauncher.Side; -import cpw.mods.fml.relauncher.SideOnly; -import net.minecraft.client.renderer.texture.IconRegister; -import net.minecraft.entity.player.EntityPlayer; -import net.minecraft.item.ItemStack; -import net.minecraft.nbt.NBTTagCompound; - -import java.util.List; - -public class EnhancedTelepositionFocus extends TelepositionFocus -{ - public EnhancedTelepositionFocus(int par1) - { - super(par1, 2); - // TODO Auto-generated constructor stub - } - - @Override - @SideOnly(Side.CLIENT) - public void registerIcons(IconRegister iconRegister) - { - //TODO - this.itemIcon = iconRegister.registerIcon("AlchemicalWizardry:EnhancedTeleposerFocus"); - } - - @Override - public void addInformation(ItemStack par1ItemStack, EntityPlayer par2EntityPlayer, List par3List, boolean par4) - { - par3List.add("A focus further enhanced in an altar"); - - if (!(par1ItemStack.stackTagCompound == null)) - { - NBTTagCompound itemTag = par1ItemStack.stackTagCompound; - - if (!par1ItemStack.stackTagCompound.getString("ownerName").equals("")) - { - par3List.add("Current owner: " + par1ItemStack.stackTagCompound.getString("ownerName")); - } - - par3List.add("Coords: " + itemTag.getInteger("xCoord") + ", " + itemTag.getInteger("yCoord") + ", " + itemTag.getInteger("zCoord")); - par3List.add("Bound Dimension: " + getDimensionID(par1ItemStack)); - } - } -} diff --git a/BM_src/WayofTime/alchemicalWizardry/common/items/potion/GreaterLengtheningCatalyst.java b/BM_src/WayofTime/alchemicalWizardry/common/items/potion/GreaterLengtheningCatalyst.java deleted file mode 100644 index 8feefcae..00000000 --- a/BM_src/WayofTime/alchemicalWizardry/common/items/potion/GreaterLengtheningCatalyst.java +++ /dev/null @@ -1,20 +0,0 @@ -package WayofTime.alchemicalWizardry.common.items.potion; - -import cpw.mods.fml.relauncher.Side; -import cpw.mods.fml.relauncher.SideOnly; -import net.minecraft.client.renderer.texture.IconRegister; - -public class GreaterLengtheningCatalyst extends LengtheningCatalyst -{ - public GreaterLengtheningCatalyst(int id) - { - super(id, 3); - } - - @Override - @SideOnly(Side.CLIENT) - public void registerIcons(IconRegister iconRegister) - { - this.itemIcon = iconRegister.registerIcon("AlchemicalWizardry:GreaterLengtheningCatalyst"); - } -} \ No newline at end of file diff --git a/BM_src/WayofTime/alchemicalWizardry/common/items/potion/GreaterPowerCatalyst.java b/BM_src/WayofTime/alchemicalWizardry/common/items/potion/GreaterPowerCatalyst.java deleted file mode 100644 index 476088d6..00000000 --- a/BM_src/WayofTime/alchemicalWizardry/common/items/potion/GreaterPowerCatalyst.java +++ /dev/null @@ -1,20 +0,0 @@ -package WayofTime.alchemicalWizardry.common.items.potion; - -import cpw.mods.fml.relauncher.Side; -import cpw.mods.fml.relauncher.SideOnly; -import net.minecraft.client.renderer.texture.IconRegister; - -public class GreaterPowerCatalyst extends PowerCatalyst -{ - public GreaterPowerCatalyst(int id) - { - super(id, 3); - } - - @Override - @SideOnly(Side.CLIENT) - public void registerIcons(IconRegister iconRegister) - { - this.itemIcon = iconRegister.registerIcon("AlchemicalWizardry:GreaterPowerCatalyst"); - } -} \ No newline at end of file diff --git a/BM_src/WayofTime/alchemicalWizardry/common/items/potion/LengtheningCatalyst.java b/BM_src/WayofTime/alchemicalWizardry/common/items/potion/LengtheningCatalyst.java deleted file mode 100644 index 1f8f37d5..00000000 --- a/BM_src/WayofTime/alchemicalWizardry/common/items/potion/LengtheningCatalyst.java +++ /dev/null @@ -1,64 +0,0 @@ -package WayofTime.alchemicalWizardry.common.items.potion; - -import WayofTime.alchemicalWizardry.AlchemicalWizardry; -import WayofTime.alchemicalWizardry.api.alchemy.AlchemyRecipeRegistry; -import WayofTime.alchemicalWizardry.common.ICatalyst; -import net.minecraft.entity.player.EntityPlayer; -import net.minecraft.item.Item; -import net.minecraft.item.ItemStack; -import net.minecraft.util.EnumChatFormatting; - -import org.lwjgl.input.Keyboard; - -import java.util.List; - -public class LengtheningCatalyst extends Item implements ICatalyst -{ - private int catalystStrength; - - public LengtheningCatalyst(int id, int catalystStrength) - { - super(id); - this.catalystStrength = catalystStrength; - setCreativeTab(AlchemicalWizardry.tabBloodMagic); - } - - @Override - public int getCatalystLevel() - { - return catalystStrength; - } - - @Override - public boolean isConcentration() - { - return false; - } - - @Override - public void addInformation(ItemStack par1ItemStack, EntityPlayer par2EntityPlayer, List par3List, boolean par4) - { - par3List.add("Used in alchemy"); - - if (Keyboard.isKeyDown(Keyboard.KEY_RSHIFT) || Keyboard.isKeyDown(Keyboard.KEY_LSHIFT)) - { - ItemStack[] recipe = AlchemyRecipeRegistry.getRecipeForItemStack(par1ItemStack); - - if (recipe != null) - { - par3List.add(EnumChatFormatting.BLUE + "Recipe:"); - - for (ItemStack item : recipe) - { - if (item != null) - { - par3List.add("" + item.getDisplayName()); - } - } - } - } else - { - par3List.add("-Press " + EnumChatFormatting.BLUE + "shift" + EnumChatFormatting.GRAY + " for Recipe-"); - } - } -} diff --git a/BM_src/WayofTime/alchemicalWizardry/common/items/potion/MundaneLengtheningCatalyst.java b/BM_src/WayofTime/alchemicalWizardry/common/items/potion/MundaneLengtheningCatalyst.java deleted file mode 100644 index 53400242..00000000 --- a/BM_src/WayofTime/alchemicalWizardry/common/items/potion/MundaneLengtheningCatalyst.java +++ /dev/null @@ -1,20 +0,0 @@ -package WayofTime.alchemicalWizardry.common.items.potion; - -import cpw.mods.fml.relauncher.Side; -import cpw.mods.fml.relauncher.SideOnly; -import net.minecraft.client.renderer.texture.IconRegister; - -public class MundaneLengtheningCatalyst extends LengtheningCatalyst -{ - public MundaneLengtheningCatalyst(int id) - { - super(id, 1); - } - - @Override - @SideOnly(Side.CLIENT) - public void registerIcons(IconRegister iconRegister) - { - this.itemIcon = iconRegister.registerIcon("AlchemicalWizardry:MundaneLengtheningCatalyst"); - } -} diff --git a/BM_src/WayofTime/alchemicalWizardry/common/items/potion/MundanePowerCatalyst.java b/BM_src/WayofTime/alchemicalWizardry/common/items/potion/MundanePowerCatalyst.java deleted file mode 100644 index 6bf4e443..00000000 --- a/BM_src/WayofTime/alchemicalWizardry/common/items/potion/MundanePowerCatalyst.java +++ /dev/null @@ -1,20 +0,0 @@ -package WayofTime.alchemicalWizardry.common.items.potion; - -import cpw.mods.fml.relauncher.Side; -import cpw.mods.fml.relauncher.SideOnly; -import net.minecraft.client.renderer.texture.IconRegister; - -public class MundanePowerCatalyst extends PowerCatalyst -{ - public MundanePowerCatalyst(int id) - { - super(id, 1); - } - - @Override - @SideOnly(Side.CLIENT) - public void registerIcons(IconRegister iconRegister) - { - this.itemIcon = iconRegister.registerIcon("AlchemicalWizardry:MundanePowerCatalyst"); - } -} diff --git a/BM_src/WayofTime/alchemicalWizardry/common/items/potion/PowerCatalyst.java b/BM_src/WayofTime/alchemicalWizardry/common/items/potion/PowerCatalyst.java deleted file mode 100644 index 226bd998..00000000 --- a/BM_src/WayofTime/alchemicalWizardry/common/items/potion/PowerCatalyst.java +++ /dev/null @@ -1,64 +0,0 @@ -package WayofTime.alchemicalWizardry.common.items.potion; - -import WayofTime.alchemicalWizardry.AlchemicalWizardry; -import WayofTime.alchemicalWizardry.api.alchemy.AlchemyRecipeRegistry; -import WayofTime.alchemicalWizardry.common.ICatalyst; -import net.minecraft.entity.player.EntityPlayer; -import net.minecraft.item.Item; -import net.minecraft.item.ItemStack; -import net.minecraft.util.EnumChatFormatting; - -import org.lwjgl.input.Keyboard; - -import java.util.List; - -public class PowerCatalyst extends Item implements ICatalyst -{ - private int catalystStrength; - - public PowerCatalyst(int id, int catalystStrength) - { - super(id); - this.catalystStrength = catalystStrength; - setCreativeTab(AlchemicalWizardry.tabBloodMagic); - } - - @Override - public int getCatalystLevel() - { - return catalystStrength; - } - - @Override - public boolean isConcentration() - { - return true; - } - - @Override - public void addInformation(ItemStack par1ItemStack, EntityPlayer par2EntityPlayer, List par3List, boolean par4) - { - par3List.add("Used in alchemy"); - - if (Keyboard.isKeyDown(Keyboard.KEY_RSHIFT) || Keyboard.isKeyDown(Keyboard.KEY_LSHIFT)) - { - ItemStack[] recipe = AlchemyRecipeRegistry.getRecipeForItemStack(par1ItemStack); - - if (recipe != null) - { - par3List.add(EnumChatFormatting.BLUE + "Recipe:"); - - for (ItemStack item : recipe) - { - if (item != null) - { - par3List.add("" + item.getDisplayName()); - } - } - } - } else - { - par3List.add("-Press " + EnumChatFormatting.BLUE + "shift" + EnumChatFormatting.GRAY + " for Recipe-"); - } - } -} diff --git a/BM_src/WayofTime/alchemicalWizardry/common/items/potion/StandardBindingAgent.java b/BM_src/WayofTime/alchemicalWizardry/common/items/potion/StandardBindingAgent.java deleted file mode 100644 index e38e0651..00000000 --- a/BM_src/WayofTime/alchemicalWizardry/common/items/potion/StandardBindingAgent.java +++ /dev/null @@ -1,65 +0,0 @@ -package WayofTime.alchemicalWizardry.common.items.potion; - -import WayofTime.alchemicalWizardry.AlchemicalWizardry; -import WayofTime.alchemicalWizardry.api.alchemy.AlchemyRecipeRegistry; -import WayofTime.alchemicalWizardry.common.IBindingAgent; -import cpw.mods.fml.relauncher.Side; -import cpw.mods.fml.relauncher.SideOnly; -import net.minecraft.client.renderer.texture.IconRegister; -import net.minecraft.entity.player.EntityPlayer; -import net.minecraft.item.Item; -import net.minecraft.item.ItemStack; -import net.minecraft.util.EnumChatFormatting; - -import org.lwjgl.input.Keyboard; - -import java.util.List; - -public class StandardBindingAgent extends Item implements IBindingAgent -{ - public StandardBindingAgent(int id) - { - super(id); - setCreativeTab(AlchemicalWizardry.tabBloodMagic); - } - - @Override - public float getSuccessRateForPotionNumber(int potions) - { - return (float) Math.pow(0.65, potions); - } - - @Override - @SideOnly(Side.CLIENT) - public void registerIcons(IconRegister iconRegister) - { - this.itemIcon = iconRegister.registerIcon("AlchemicalWizardry:StandardBindingAgent"); - } - - @Override - public void addInformation(ItemStack par1ItemStack, EntityPlayer par2EntityPlayer, List par3List, boolean par4) - { - par3List.add("Used in alchemy"); - - if (Keyboard.isKeyDown(Keyboard.KEY_RSHIFT) || Keyboard.isKeyDown(Keyboard.KEY_LSHIFT)) - { - ItemStack[] recipe = AlchemyRecipeRegistry.getRecipeForItemStack(par1ItemStack); - - if (recipe != null) - { - par3List.add(EnumChatFormatting.BLUE + "Recipe:"); - - for (ItemStack item : recipe) - { - if (item != null) - { - par3List.add("" + item.getDisplayName()); - } - } - } - } else - { - par3List.add("-Press " + EnumChatFormatting.BLUE + "shift" + EnumChatFormatting.GRAY + " for Recipe-"); - } - } -} diff --git a/BM_src/WayofTime/alchemicalWizardry/common/items/potion/StandardFillingAgent.java b/BM_src/WayofTime/alchemicalWizardry/common/items/potion/StandardFillingAgent.java deleted file mode 100644 index 563a78d1..00000000 --- a/BM_src/WayofTime/alchemicalWizardry/common/items/potion/StandardFillingAgent.java +++ /dev/null @@ -1,39 +0,0 @@ -package WayofTime.alchemicalWizardry.common.items.potion; - -import WayofTime.alchemicalWizardry.AlchemicalWizardry; -import cpw.mods.fml.relauncher.Side; -import cpw.mods.fml.relauncher.SideOnly; -import net.minecraft.client.renderer.texture.IconRegister; - -public class StandardFillingAgent extends WeakFillingAgent -{ - public StandardFillingAgent(int par1) - { - super(par1); - setCreativeTab(AlchemicalWizardry.tabBloodMagic); - } - - @Override - public int getFilledAmountForPotionNumber(int potionEffects) - { - //Random rand = new Random(); - if (potionEffects == 0) - { - return 8; - } - - if (potionEffects >= 1 && potionEffects <= 3) - { - return (int) (4 * (Math.pow(0.5f, potionEffects - 1) + 0.01f)); - } - - return 0; - } - - @Override - @SideOnly(Side.CLIENT) - public void registerIcons(IconRegister iconRegister) - { - this.itemIcon = iconRegister.registerIcon("AlchemicalWizardry:StandardFillingAgent"); - } -} diff --git a/BM_src/WayofTime/alchemicalWizardry/common/items/potion/WeakBindingAgent.java b/BM_src/WayofTime/alchemicalWizardry/common/items/potion/WeakBindingAgent.java deleted file mode 100644 index af30959f..00000000 --- a/BM_src/WayofTime/alchemicalWizardry/common/items/potion/WeakBindingAgent.java +++ /dev/null @@ -1,27 +0,0 @@ -package WayofTime.alchemicalWizardry.common.items.potion; - -import cpw.mods.fml.relauncher.Side; -import cpw.mods.fml.relauncher.SideOnly; -import net.minecraft.client.renderer.texture.IconRegister; - -public class WeakBindingAgent extends StandardBindingAgent -{ - public WeakBindingAgent(int id) - { - super(id); - // TODO Auto-generated constructor stub - } - - @Override - public float getSuccessRateForPotionNumber(int potions) - { - return (float) Math.pow(0.4, potions); - } - - @Override - @SideOnly(Side.CLIENT) - public void registerIcons(IconRegister iconRegister) - { - this.itemIcon = iconRegister.registerIcon("AlchemicalWizardry:WeakBindingAgent"); - } -} diff --git a/BM_src/WayofTime/alchemicalWizardry/common/items/potion/WeakFillingAgent.java b/BM_src/WayofTime/alchemicalWizardry/common/items/potion/WeakFillingAgent.java deleted file mode 100644 index cc7a74a8..00000000 --- a/BM_src/WayofTime/alchemicalWizardry/common/items/potion/WeakFillingAgent.java +++ /dev/null @@ -1,84 +0,0 @@ -package WayofTime.alchemicalWizardry.common.items.potion; - -import WayofTime.alchemicalWizardry.AlchemicalWizardry; -import WayofTime.alchemicalWizardry.api.alchemy.AlchemyRecipeRegistry; -import WayofTime.alchemicalWizardry.common.IFillingAgent; -import cpw.mods.fml.relauncher.Side; -import cpw.mods.fml.relauncher.SideOnly; -import net.minecraft.client.renderer.texture.IconRegister; -import net.minecraft.entity.player.EntityPlayer; -import net.minecraft.item.Item; -import net.minecraft.item.ItemStack; -import net.minecraft.util.EnumChatFormatting; - -import org.lwjgl.input.Keyboard; - -import java.util.List; -import java.util.Random; - -public class WeakFillingAgent extends Item implements IFillingAgent -{ - public WeakFillingAgent(int par1) - { - super(par1); - setCreativeTab(AlchemicalWizardry.tabBloodMagic); - } - - @Override - public int getFilledAmountForPotionNumber(int potionEffects) - { - Random rand = new Random(); - - if (potionEffects == 0) - { - return 8; - } - - if (potionEffects == 1 || potionEffects == 2) - { - if (rand.nextFloat() > 0.5f) - { - return (4 - potionEffects); - } else - { - return 3 - potionEffects; - } - } - - return 0; - } - - @Override - @SideOnly(Side.CLIENT) - public void registerIcons(IconRegister iconRegister) - { - this.itemIcon = iconRegister.registerIcon("AlchemicalWizardry:WeakFillingAgent"); - } - - @Override - public void addInformation(ItemStack par1ItemStack, EntityPlayer par2EntityPlayer, List par3List, boolean par4) - { - par3List.add("Used in alchemy"); - - if (Keyboard.isKeyDown(Keyboard.KEY_RSHIFT) || Keyboard.isKeyDown(Keyboard.KEY_LSHIFT)) - { - ItemStack[] recipe = AlchemyRecipeRegistry.getRecipeForItemStack(par1ItemStack); - - if (recipe != null) - { - par3List.add(EnumChatFormatting.BLUE + "Recipe:"); - - for (ItemStack item : recipe) - { - if (item != null) - { - par3List.add("" + item.getDisplayName()); - } - } - } - } else - { - par3List.add("-Press " + EnumChatFormatting.BLUE + "shift" + EnumChatFormatting.GRAY + " for Recipe-"); - } - } -} diff --git a/BM_src/WayofTime/alchemicalWizardry/common/items/sigil/AirSigil.java b/BM_src/WayofTime/alchemicalWizardry/common/items/sigil/AirSigil.java deleted file mode 100644 index 57c6d7fb..00000000 --- a/BM_src/WayofTime/alchemicalWizardry/common/items/sigil/AirSigil.java +++ /dev/null @@ -1,112 +0,0 @@ -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 net.minecraft.client.renderer.texture.IconRegister; -import net.minecraft.entity.player.EntityPlayer; -import net.minecraft.item.ItemStack; -import net.minecraft.util.Vec3; -import net.minecraft.world.World; - -import java.util.List; - -public class AirSigil extends EnergyItems implements ArmourUpgrade -{ - private int energyUsed; - - public AirSigil(int id) - { - super(id); - this.maxStackSize = 1; - //setMaxDamage(1000); - setEnergyUsed(50); - setCreativeTab(AlchemicalWizardry.tabBloodMagic); - } - - @Override - public void addInformation(ItemStack par1ItemStack, EntityPlayer par2EntityPlayer, List par3List, boolean par4) - { - par3List.add("I feel lighter already..."); - - if (!(par1ItemStack.stackTagCompound == null)) - { - par3List.add("Current owner: " + par1ItemStack.stackTagCompound.getString("ownerName")); - } - } - - @Override - @SideOnly(Side.CLIENT) - public void registerIcons(IconRegister iconRegister) - { - this.itemIcon = iconRegister.registerIcon("AlchemicalWizardry:AirSigil"); - } - - @Override - public ItemStack onItemRightClick(ItemStack par1ItemStack, World par2World, EntityPlayer par3EntityPlayer) - { - EnergyItems.checkAndSetItemOwner(par1ItemStack, par3EntityPlayer); - - if(SpellHelper.isFakePlayer(par2World, par3EntityPlayer)) - { - return par1ItemStack; - } - - if (par3EntityPlayer.isSneaking()) - { - return par1ItemStack; - } - - Vec3 vec = par3EntityPlayer.getLookVec(); - double wantedVelocity = 1.7; - - if (par3EntityPlayer.isPotionActive(AlchemicalWizardry.customPotionBoost)) - { - int i = par3EntityPlayer.getActivePotionEffect(AlchemicalWizardry.customPotionBoost).getAmplifier(); - wantedVelocity += (1 + i) * (0.35); - } - - par3EntityPlayer.motionX = vec.xCoord * wantedVelocity; - par3EntityPlayer.motionY = vec.yCoord * wantedVelocity; - par3EntityPlayer.motionZ = vec.zCoord * wantedVelocity; - par2World.playSoundEffect((double) ((float) par3EntityPlayer.posX + 0.5F), (double) ((float) par3EntityPlayer.posY + 0.5F), (double) ((float) par3EntityPlayer.posZ + 0.5F), "random.fizz", 0.5F, 2.6F + (par2World.rand.nextFloat() - par2World.rand.nextFloat()) * 0.8F); - par3EntityPlayer.fallDistance = 0; - - if (!par3EntityPlayer.capabilities.isCreativeMode) - { - if (!EnergyItems.syphonBatteries(par1ItemStack, par3EntityPlayer, getEnergyUsed())) - { - } - } else - { - return par1ItemStack; - } - - return par1ItemStack; - } - - @Override - public void onArmourUpdate(World world, EntityPlayer player, - ItemStack thisItemStack) - { - // TODO Auto-generated method stub - player.fallDistance = 0; - } - - @Override - public boolean isUpgrade() - { - // TODO Auto-generated method stub - return true; - } - - @Override - public int getEnergyForTenSeconds() - { - // TODO Auto-generated method stub - return 50; - } -} diff --git a/BM_src/WayofTime/alchemicalWizardry/common/items/sigil/DivinationSigil.java b/BM_src/WayofTime/alchemicalWizardry/common/items/sigil/DivinationSigil.java deleted file mode 100644 index 188375e0..00000000 --- a/BM_src/WayofTime/alchemicalWizardry/common/items/sigil/DivinationSigil.java +++ /dev/null @@ -1,99 +0,0 @@ -package WayofTime.alchemicalWizardry.common.items.sigil; - -import WayofTime.alchemicalWizardry.AlchemicalWizardry; -import WayofTime.alchemicalWizardry.api.items.interfaces.ArmourUpgrade; -import WayofTime.alchemicalWizardry.common.PacketHandler; -import WayofTime.alchemicalWizardry.common.items.EnergyItems; -import WayofTime.alchemicalWizardry.common.spell.complex.effect.SpellHelper; -import cpw.mods.fml.common.network.PacketDispatcher; -import cpw.mods.fml.relauncher.Side; -import cpw.mods.fml.relauncher.SideOnly; -import net.minecraft.client.renderer.texture.IconRegister; -import net.minecraft.entity.player.EntityPlayer; -import net.minecraft.item.Item; -import net.minecraft.item.ItemStack; -import net.minecraft.nbt.NBTTagCompound; -import net.minecraft.potion.Potion; -import net.minecraft.potion.PotionEffect; -import net.minecraft.world.World; - -import java.util.List; - -public class DivinationSigil extends Item implements ArmourUpgrade -{ - public DivinationSigil(int par1) - { - super(par1); - this.maxStackSize = 1; - //setMaxDamage(1000); - setCreativeTab(AlchemicalWizardry.tabBloodMagic); - } - - @Override - @SideOnly(Side.CLIENT) - public void registerIcons(IconRegister iconRegister) - { - this.itemIcon = iconRegister.registerIcon("AlchemicalWizardry:DivinationSigil"); - } - - @Override - public void addInformation(ItemStack par1ItemStack, EntityPlayer par2EntityPlayer, List par3List, boolean par4) - { - par3List.add("Peer into the soul to"); - par3List.add("get the current essence"); - - 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(SpellHelper.isFakePlayer(par2World, par3EntityPlayer)) - { - return par1ItemStack; - } - - if (!par3EntityPlayer.worldObj.isRemote) - { - return par1ItemStack; - } - - NBTTagCompound itemTag = par1ItemStack.stackTagCompound; - - if (itemTag == null || itemTag.getString("ownerName").equals("")) - { - return par1ItemStack; - } - - String ownerName = itemTag.getString("ownerName"); - PacketDispatcher.sendPacketToServer(PacketHandler.getPacket(ownerName)); - return par1ItemStack; - } - - @Override - public void onArmourUpdate(World world, EntityPlayer player, - ItemStack thisItemStack) - { - // TODO Auto-generated method stub - player.addPotionEffect(new PotionEffect(Potion.nightVision.id, 400, 9,true)); - } - - @Override - public boolean isUpgrade() - { - // TODO Auto-generated method stub - return true; - } - - @Override - public int getEnergyForTenSeconds() - { - // TODO Auto-generated method stub - return 25; - } -} diff --git a/BM_src/WayofTime/alchemicalWizardry/common/items/sigil/ItemBloodLightSigil.java b/BM_src/WayofTime/alchemicalWizardry/common/items/sigil/ItemBloodLightSigil.java deleted file mode 100644 index 4d85f018..00000000 --- a/BM_src/WayofTime/alchemicalWizardry/common/items/sigil/ItemBloodLightSigil.java +++ /dev/null @@ -1,151 +0,0 @@ -package WayofTime.alchemicalWizardry.common.items.sigil; - -import WayofTime.alchemicalWizardry.AlchemicalWizardry; -import WayofTime.alchemicalWizardry.ModBlocks; -import WayofTime.alchemicalWizardry.common.entity.projectile.EntityBloodLightProjectile; -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.client.renderer.texture.IconRegister; -import net.minecraft.entity.Entity; -import net.minecraft.entity.player.EntityPlayer; -import net.minecraft.item.ItemStack; -import net.minecraft.nbt.NBTTagCompound; -import net.minecraft.world.World; - -import java.util.List; - -public class ItemBloodLightSigil extends EnergyItems -{ - private int tickDelay = 100; - - public ItemBloodLightSigil(int id) - { - super(id); - this.maxStackSize = 1; - //setMaxDamage(1000); - setEnergyUsed(10); - setCreativeTab(AlchemicalWizardry.tabBloodMagic); - // TODO Auto-generated constructor stub - } - - @Override - public void addInformation(ItemStack par1ItemStack, EntityPlayer par2EntityPlayer, List par3List, boolean par4) - { - par3List.add("I see a light!"); - - if (!(par1ItemStack.stackTagCompound == null)) - { - par3List.add("Current owner: " + par1ItemStack.stackTagCompound.getString("ownerName")); - } - } - - @Override - @SideOnly(Side.CLIENT) - public void registerIcons(IconRegister iconRegister) - { - this.itemIcon = iconRegister.registerIcon("AlchemicalWizardry:BloodLightSigil"); - } - - @Override - public boolean onItemUse(ItemStack par1ItemStack, EntityPlayer par2EntityPlayer, World par3World, int par4, int par5, int par6, int par7, float par8, float par9, float par10) - { - EnergyItems.checkAndSetItemOwner(par1ItemStack, par2EntityPlayer); - - if(SpellHelper.isFakePlayer(par2EntityPlayer.worldObj, par2EntityPlayer)) - { - return false; - } - - EnergyItems.syphonBatteries(par1ItemStack, par2EntityPlayer, getEnergyUsed()); - - if (par3World.isRemote) - { - return true; - } - - if (par7 == 0 && par3World.isAirBlock(par4, par5 - 1, par6)) - { - par3World.setBlock(par4, par5 - 1, par6, ModBlocks.blockBloodLight.blockID); - } - - if (par7 == 1 && par3World.isAirBlock(par4, par5 + 1, par6)) - { - par3World.setBlock(par4, par5 + 1, par6, ModBlocks.blockBloodLight.blockID); - } - - if (par7 == 2 && par3World.isAirBlock(par4, par5, par6 - 1)) - { - par3World.setBlock(par4, par5, par6 - 1, ModBlocks.blockBloodLight.blockID); - } - - if (par7 == 3 && par3World.isAirBlock(par4, par5, par6 + 1)) - { - par3World.setBlock(par4, par5, par6 + 1, ModBlocks.blockBloodLight.blockID); - } - - if (par7 == 4 && par3World.isAirBlock(par4 - 1, par5, par6)) - { - par3World.setBlock(par4 - 1, par5, par6, ModBlocks.blockBloodLight.blockID); - } - - if (par7 == 5 && par3World.isAirBlock(par4 + 1, par5, par6)) - { - par3World.setBlock(par4 + 1, par5, par6, ModBlocks.blockBloodLight.blockID); - } - - return true; - } - - @Override - public ItemStack onItemRightClick(ItemStack par1ItemStack, World par2World, EntityPlayer par3EntityPlayer) - { - EnergyItems.checkAndSetItemOwner(par1ItemStack, par3EntityPlayer); - - if (par3EntityPlayer.isSneaking()) - { - return par1ItemStack; - } - - if (par1ItemStack.stackTagCompound == null) - { - par1ItemStack.setTagCompound(new NBTTagCompound()); - } - - EnergyItems.syphonBatteries(par1ItemStack, par3EntityPlayer, getEnergyUsed() * 5); - - if (!par2World.isRemote) - { - par2World.spawnEntityInWorld(new EntityBloodLightProjectile(par2World, par3EntityPlayer, 1)); - } - - return par1ItemStack; - } - - @Override - public void onUpdate(ItemStack par1ItemStack, World par2World, Entity par3Entity, int par4, boolean par5) - { - if (!(par3Entity instanceof EntityPlayer)) - { - return; - } - - EntityPlayer par3EntityPlayer = (EntityPlayer) par3Entity; - - if (par1ItemStack.stackTagCompound == null) - { - par1ItemStack.setTagCompound(new NBTTagCompound()); - } - - if (par1ItemStack.stackTagCompound.getBoolean("isActive")) - { - if (par2World.getWorldTime() % tickDelay == par1ItemStack.stackTagCompound.getInteger("worldTimeDelay") && par3Entity instanceof EntityPlayer) - { - EnergyItems.syphonBatteries(par1ItemStack, (EntityPlayer) par3Entity, getEnergyUsed()); - } - } - - return; - } -} diff --git a/BM_src/WayofTime/alchemicalWizardry/common/items/sigil/ItemSigilOfSupression.java b/BM_src/WayofTime/alchemicalWizardry/common/items/sigil/ItemSigilOfSupression.java deleted file mode 100644 index 65861834..00000000 --- a/BM_src/WayofTime/alchemicalWizardry/common/items/sigil/ItemSigilOfSupression.java +++ /dev/null @@ -1,270 +0,0 @@ -package WayofTime.alchemicalWizardry.common.items.sigil; - -import java.util.List; - -import net.minecraft.block.Block; -import net.minecraft.client.renderer.texture.IconRegister; -import net.minecraft.entity.Entity; -import net.minecraft.entity.item.EntityItem; -import net.minecraft.entity.player.EntityPlayer; -import net.minecraft.item.ItemStack; -import net.minecraft.nbt.NBTTagCompound; -import net.minecraft.tileentity.TileEntity; -import net.minecraft.util.AxisAlignedBB; -import net.minecraft.util.Icon; -import net.minecraft.util.Vec3; -import net.minecraft.world.World; -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 WayofTime.alchemicalWizardry.common.tileEntity.TESpectralContainer; -import cpw.mods.fml.relauncher.Side; -import cpw.mods.fml.relauncher.SideOnly; - -public class ItemSigilOfSupression extends EnergyItems implements ArmourUpgrade -{ - private static Icon activeIcon; - private static Icon passiveIcon; - private int tickDelay = 200; - private int radius = 5; - private int refresh = 100; - - public ItemSigilOfSupression(int id) - { - super(id); - this.maxStackSize = 1; - setEnergyUsed(400); - setCreativeTab(AlchemicalWizardry.tabBloodMagic); - } - - @Override - public void addInformation(ItemStack par1ItemStack, EntityPlayer par2EntityPlayer, List par3List, boolean par4) - { - par3List.add("Better than telekinesis"); - - if (!(par1ItemStack.stackTagCompound == null)) - { - if (par1ItemStack.stackTagCompound.getBoolean("isActive")) - { - par3List.add("Activated"); - } else - { - par3List.add("Deactivated"); - } - - par3List.add("Current owner: " + par1ItemStack.stackTagCompound.getString("ownerName")); - } - } - - @Override - @SideOnly(Side.CLIENT) - public void registerIcons(IconRegister iconRegister) - { - this.itemIcon = iconRegister.registerIcon("AlchemicalWizardry:SigilOfSupression_deactivated"); - this.activeIcon = iconRegister.registerIcon("AlchemicalWizardry:SigilOfSupression_activated"); - this.passiveIcon = iconRegister.registerIcon("AlchemicalWizardry:SigilOfSupression_deactivated"); - } - - @Override - public Icon getIcon(ItemStack stack, int renderPass, EntityPlayer player, ItemStack usingItem, int useRemaining) - { - if (stack.stackTagCompound == null) - { - stack.setTagCompound(new NBTTagCompound()); - } - - NBTTagCompound tag = stack.stackTagCompound; - - if (tag.getBoolean("isActive")) - { - return this.activeIcon; - } else - { - return this.passiveIcon; - } - } - - @Override - @SideOnly(Side.CLIENT) - public Icon getIconFromDamage(int par1) - { - if (par1 == 1) - { - return this.activeIcon; - } else - { - return this.passiveIcon; - } - } - - @Override - public ItemStack onItemRightClick(ItemStack par1ItemStack, World par2World, EntityPlayer par3EntityPlayer) - { - EnergyItems.checkAndSetItemOwner(par1ItemStack, par3EntityPlayer); - - if(SpellHelper.isFakePlayer(par2World, par3EntityPlayer)) - { - return par1ItemStack; - } - - if (par3EntityPlayer.isSneaking()) - { - return par1ItemStack; - } - - if (par1ItemStack.stackTagCompound == null) - { - par1ItemStack.setTagCompound(new NBTTagCompound()); - } - - NBTTagCompound tag = par1ItemStack.stackTagCompound; - tag.setBoolean("isActive", !(tag.getBoolean("isActive"))); - - if (tag.getBoolean("isActive")) - { - par1ItemStack.setItemDamage(1); - tag.setInteger("worldTimeDelay", (int) (par2World.getWorldTime() - 1) % tickDelay); - - if (!par3EntityPlayer.capabilities.isCreativeMode) - { - EnergyItems.syphonBatteries(par1ItemStack, par3EntityPlayer, getEnergyUsed()); - } - } else - { - par1ItemStack.setItemDamage(par1ItemStack.getMaxDamage()); - } - - return par1ItemStack; - } - - @Override - public void onUpdate(ItemStack par1ItemStack, World par2World, Entity par3Entity, int par4, boolean par5) - { - if (!(par3Entity instanceof EntityPlayer)) - { - return; - } - - if(SpellHelper.isFakePlayer(par2World, (EntityPlayer)par3Entity)) - { - return; - } - - EntityPlayer par3EntityPlayer = (EntityPlayer) par3Entity; - - if (par1ItemStack.stackTagCompound == null) - { - par1ItemStack.setTagCompound(new NBTTagCompound()); - } - - if (par1ItemStack.stackTagCompound.getBoolean("isActive")&&(!par2World.isRemote)) - { - Vec3 blockVec = SpellHelper.getEntityBlockVector(par3EntityPlayer); - int x = (int)blockVec.xCoord; - int y = (int)blockVec.yCoord; - int z = (int)blockVec.zCoord; - - 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; - } - - Block block = Block.blocksList[par2World.getBlockId(x+i, y+j, z+k)]; - - - if(SpellHelper.isBlockFluid(block)) - { - if(par2World.getBlockTileEntity(x+i, y+j, z+k)!=null) - { - par2World.setBlockToAir(x+i, y+j, z+k); - } - TESpectralContainer.createSpectralBlockAtLocation(par2World, x+i, y+j, z+k, refresh); - } - else - { - TileEntity tile = par2World.getBlockTileEntity(x+i, y+j, z+k); - if(tile instanceof TESpectralContainer) - { - ((TESpectralContainer) tile).resetDuration(refresh); - } - } - } - } - } - } - - if (par2World.getWorldTime() % 200 == par1ItemStack.stackTagCompound.getInteger("worldTimeDelay") && par1ItemStack.stackTagCompound.getBoolean("isActive")) - { - //par3EntityPlayer.addPotionEffect(new PotionEffect(Potion.field_76444_x.id, 2400,99)); - if (!par3EntityPlayer.capabilities.isCreativeMode) - { - EnergyItems.syphonBatteries(par1ItemStack, par3EntityPlayer, getEnergyUsed()); - - } - } - - return; - } - - @Override - public void onArmourUpdate(World world, EntityPlayer player, ItemStack thisItemStack) - { - Vec3 blockVec = SpellHelper.getEntityBlockVector(player); - int x = (int)blockVec.xCoord; - int y = (int)blockVec.yCoord; - int z = (int)blockVec.zCoord; - - 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; - } - - Block block = Block.blocksList[world.getBlockId(x+i, y+j, z+k)]; - - - if(SpellHelper.isBlockFluid(block)) - { - if(world.getBlockTileEntity(x+i, y+j, z+k)!=null) - { - world.setBlockToAir(x+i, y+j, z+k); - } - TESpectralContainer.createSpectralBlockAtLocation(world, x+i, y+j, z+k, refresh); - } - else - { - TileEntity tile = world.getBlockTileEntity(x+i, y+j, z+k); - if(tile instanceof TESpectralContainer) - { - ((TESpectralContainer) tile).resetDuration(refresh); - } - } - } - } - } - } - - @Override - public boolean isUpgrade() - { - return true; - } - - @Override - public int getEnergyForTenSeconds() - { - return 200; - } -} diff --git a/BM_src/WayofTime/alchemicalWizardry/common/items/sigil/LavaSigil.java b/BM_src/WayofTime/alchemicalWizardry/common/items/sigil/LavaSigil.java deleted file mode 100644 index 87fada08..00000000 --- a/BM_src/WayofTime/alchemicalWizardry/common/items/sigil/LavaSigil.java +++ /dev/null @@ -1,316 +0,0 @@ -package WayofTime.alchemicalWizardry.common.items.sigil; - -import java.util.List; - -import net.minecraft.block.Block; -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.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 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 -{ - /** - * field for checking if the bucket has been filled. - */ - private int isFull = Block.lavaMoving.blockID; - private int energyUsed; - - public LavaSigil(int par1) - { - super(par1, Block.lavaMoving.blockID); - this.maxStackSize = 1; - //setMaxDamage(2000); - setEnergyUsed(1000); - setCreativeTab(AlchemicalWizardry.tabBloodMagic); - } - - @Override - @SideOnly(Side.CLIENT) - public void registerIcons(IconRegister iconRegister) - { - this.itemIcon = iconRegister.registerIcon("AlchemicalWizardry:LavaSigil"); - } - - @Override - public ItemStack getContainerItemStack(ItemStack itemStack) - { - ItemStack copiedStack = itemStack.copy(); - copiedStack.setItemDamage(copiedStack.getItemDamage() + getEnergyUsed()); - copiedStack.stackSize = 1; - return copiedStack; - } - - @Override - public void addInformation(ItemStack par1ItemStack, EntityPlayer par2EntityPlayer, List par3List, boolean par4) - { - par3List.add("Contact with liquid is"); - par3List.add("highly unrecommended."); - - if (!(par1ItemStack.stackTagCompound == null)) - { - par3List.add("Current owner: " + par1ItemStack.stackTagCompound.getString("ownerName")); - } - } - - /** - * Called whenever this item is equipped and the right mouse button is pressed. Args: itemStack, world, entityPlayer - */ - public ItemStack onItemRightClick(ItemStack par1ItemStack, World par2World, EntityPlayer par3EntityPlayer) - { - EnergyItems.checkAndSetItemOwner(par1ItemStack, par3EntityPlayer); - - if(SpellHelper.isFakePlayer(par2World, par3EntityPlayer)) - { - return par1ItemStack; - } - - if (par3EntityPlayer.isSneaking()) - { - return par1ItemStack; - } - - float f = 1.0F; - double d0 = par3EntityPlayer.prevPosX + (par3EntityPlayer.posX - par3EntityPlayer.prevPosX) * (double) f; - double d1 = par3EntityPlayer.prevPosY + (par3EntityPlayer.posY - par3EntityPlayer.prevPosY) * (double) f + 1.62D - (double) par3EntityPlayer.yOffset; - double d2 = par3EntityPlayer.prevPosZ + (par3EntityPlayer.posZ - par3EntityPlayer.prevPosZ) * (double) f; - boolean flag = this.isFull == 0; - MovingObjectPosition movingobjectposition = this.getMovingObjectPositionFromPlayer(par2World, par3EntityPlayer, flag); - - if (movingobjectposition == null) - { - return par1ItemStack; - } else - { - if (movingobjectposition.typeOfHit == EnumMovingObjectType.TILE) - { - int i = movingobjectposition.blockX; - int j = movingobjectposition.blockY; - int k = movingobjectposition.blockZ; - - if (!par2World.canMineBlock(par3EntityPlayer, i, j, k)) - { - 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 - } else - { - 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 (!par3EntityPlayer.canPlayerEdit(i, j, k, movingobjectposition.sideHit, par1ItemStack)) - { - return par1ItemStack; - } - - if (this.tryPlaceContainedLiquid(par2World, d0, d1, d2, i, j, k) && !par3EntityPlayer.capabilities.isCreativeMode) - { - if (!par3EntityPlayer.capabilities.isCreativeMode) - { - if (!EnergyItems.syphonBatteries(par1ItemStack, par3EntityPlayer, getEnergyUsed())) - { - } - } else - { - return par1ItemStack; - } - } - } - } - - return par1ItemStack; - } - } - - /** - * Attempts to place the liquid contained inside the bucket. - */ - public boolean tryPlaceContainedLiquid(World par1World, double par2, double par4, double par6, int par8, int par9, int par10) - { - if (this.isFull <= 0) - { - return false; - } else if (!par1World.isAirBlock(par8, par9, par10) && par1World.getBlockMaterial(par8, par9, par10).isSolid()) - { - return false; - } else if ((par1World.getBlockId(par8, par9, par10) == Block.lavaMoving.blockID || par1World.getBlockId(par8, par9, par10) == Block.lavaStill.blockID) && par1World.getBlockMetadata(par8, par9, par10) == 0) - { - return false; - } else - { - par1World.setBlock(par8, par9, par10, this.isFull, 0, 3); - return true; - } - } - - protected void setEnergyUsed(int par1int) - { - this.energyUsed = par1int; - } - - protected int getEnergyUsed() - { - return this.energyUsed; - } - //Heals the player using the item. If the player is at full health, or if the durability cannot be used any more, - //the item is not used. - - // 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 void onArmourUpdate(World world, EntityPlayer player, - ItemStack thisItemStack) - { - // TODO Auto-generated method stub - player.addPotionEffect(new PotionEffect(Potion.fireResistance.id, 2, 9,true)); - player.extinguish(); - } - - @Override - public boolean isUpgrade() - { - // TODO Auto-generated method stub - return true; - } - - @Override - public int getEnergyForTenSeconds() - { - // TODO Auto-generated method stub - return 100; - } -} diff --git a/BM_src/WayofTime/alchemicalWizardry/common/items/sigil/SigilOfElementalAffinity.java b/BM_src/WayofTime/alchemicalWizardry/common/items/sigil/SigilOfElementalAffinity.java deleted file mode 100644 index 3b5dd7aa..00000000 --- a/BM_src/WayofTime/alchemicalWizardry/common/items/sigil/SigilOfElementalAffinity.java +++ /dev/null @@ -1,172 +0,0 @@ -package WayofTime.alchemicalWizardry.common.items.sigil; - -import WayofTime.alchemicalWizardry.AlchemicalWizardry; -import WayofTime.alchemicalWizardry.common.items.EnergyItems; -import cpw.mods.fml.relauncher.Side; -import cpw.mods.fml.relauncher.SideOnly; -import net.minecraft.client.renderer.texture.IconRegister; -import net.minecraft.entity.Entity; -import net.minecraft.entity.player.EntityPlayer; -import net.minecraft.item.ItemStack; -import net.minecraft.nbt.NBTTagCompound; -import net.minecraft.potion.Potion; -import net.minecraft.potion.PotionEffect; -import net.minecraft.util.Icon; -import net.minecraft.world.World; - -import java.util.List; - -public class SigilOfElementalAffinity extends EnergyItems -{ - @SideOnly(Side.CLIENT) - private static Icon activeIcon; - @SideOnly(Side.CLIENT) - private static Icon passiveIcon; - - public SigilOfElementalAffinity(int id) - { - super(id); - this.maxStackSize = 1; - setMaxDamage(100); - setEnergyUsed(200); - setCreativeTab(AlchemicalWizardry.tabBloodMagic); - } - - @Override - public void addInformation(ItemStack par1ItemStack, EntityPlayer par2EntityPlayer, List par3List, boolean par4) - { - par3List.add("Perfect for a fire-breathing fish"); - par3List.add("who is afraid of heights!"); - - if (!(par1ItemStack.stackTagCompound == null)) - { - if (par1ItemStack.stackTagCompound.getBoolean("isActive")) - { - par3List.add("Activated"); - } else - { - par3List.add("Deactivated"); - } - - par3List.add("Current owner: " + par1ItemStack.stackTagCompound.getString("ownerName")); - } - } - - @Override - @SideOnly(Side.CLIENT) - public void registerIcons(IconRegister iconRegister) - { - this.itemIcon = iconRegister.registerIcon("AlchemicalWizardry:SigilOfTheFastMiner"); - this.activeIcon = iconRegister.registerIcon("AlchemicalWizardry:ElementalSigil_activated"); - this.passiveIcon = iconRegister.registerIcon("AlchemicalWizardry:ElementalSigil_deactivated"); - } - - @Override - public Icon getIcon(ItemStack stack, int renderPass, EntityPlayer player, ItemStack usingItem, int useRemaining) - { - if (stack.stackTagCompound == null) - { - stack.setTagCompound(new NBTTagCompound()); - } - - NBTTagCompound tag = stack.stackTagCompound; - - if (tag.getBoolean("isActive")) - { - return this.activeIcon; - } else - { - return this.passiveIcon; - } - } - - @Override - @SideOnly(Side.CLIENT) - public Icon getIconFromDamage(int par1) - { - if (par1 == 1) - { - return this.activeIcon; - } else - { - return this.passiveIcon; - } - } - - @Override - public ItemStack onItemRightClick(ItemStack par1ItemStack, World par2World, EntityPlayer par3EntityPlayer) - { - EnergyItems.checkAndSetItemOwner(par1ItemStack, par3EntityPlayer); - - if (par3EntityPlayer.isSneaking()) - { - return par1ItemStack; - } - - if (par1ItemStack.stackTagCompound == null) - { - par1ItemStack.setTagCompound(new NBTTagCompound()); - } - - NBTTagCompound tag = par1ItemStack.stackTagCompound; - tag.setBoolean("isActive", !(tag.getBoolean("isActive"))); - - if (tag.getBoolean("isActive")) - { - par1ItemStack.setItemDamage(1); - tag.setInteger("worldTimeDelay", (int) (par2World.getWorldTime() - 1) % 200); - par3EntityPlayer.addPotionEffect(new PotionEffect(Potion.waterBreathing.id, 2, 0, true)); - par3EntityPlayer.addPotionEffect(new PotionEffect(Potion.fireResistance.id, 2, 0, true)); - - //Test with added health boost - //par3EntityPlayer.addPotionEffect(new PotionEffect(Potion.field_76444_x.id, 2400,99)); - if (!par3EntityPlayer.capabilities.isCreativeMode) - { - if (!EnergyItems.syphonBatteries(par1ItemStack, par3EntityPlayer, getEnergyUsed())) - { - } - } - } else - { - par1ItemStack.setItemDamage(par1ItemStack.getMaxDamage()); - } - - return par1ItemStack; - } - - @Override - public void onUpdate(ItemStack par1ItemStack, World par2World, Entity par3Entity, int par4, boolean par5) - { - if (!(par3Entity instanceof EntityPlayer)) - { - return; - } - - EntityPlayer par3EntityPlayer = (EntityPlayer) par3Entity; - - if (par1ItemStack.stackTagCompound == null) - { - par1ItemStack.setTagCompound(new NBTTagCompound()); - } - - if (par1ItemStack.stackTagCompound.getBoolean("isActive")) - { - par3EntityPlayer.fallDistance = 0; - par3EntityPlayer.addPotionEffect(new PotionEffect(Potion.waterBreathing.id, 2, 0, true)); - par3EntityPlayer.addPotionEffect(new PotionEffect(Potion.fireResistance.id, 2, 0, true)); - } - - if (par2World.getWorldTime() % 200 == par1ItemStack.stackTagCompound.getInteger("worldTimeDelay") && par1ItemStack.stackTagCompound.getBoolean("isActive")) - { - //par3EntityPlayer.addPotionEffect(new PotionEffect(Potion.field_76444_x.id, 2400,99)); - if (!par3EntityPlayer.capabilities.isCreativeMode) - { - if (!EnergyItems.syphonBatteries(par1ItemStack, par3EntityPlayer, getEnergyUsed())) - { - } - } - } - - return; - } -} \ No newline at end of file diff --git a/BM_src/WayofTime/alchemicalWizardry/common/items/sigil/SigilOfGrowth.java b/BM_src/WayofTime/alchemicalWizardry/common/items/sigil/SigilOfGrowth.java deleted file mode 100644 index 5eb38771..00000000 --- a/BM_src/WayofTime/alchemicalWizardry/common/items/sigil/SigilOfGrowth.java +++ /dev/null @@ -1,414 +0,0 @@ -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 net.minecraft.block.*; -import net.minecraft.client.renderer.texture.IconRegister; -import net.minecraft.entity.Entity; -import net.minecraft.entity.player.EntityPlayer; -import net.minecraft.item.ItemStack; -import net.minecraft.nbt.NBTTagCompound; -import net.minecraft.util.Icon; -import net.minecraft.world.World; -import net.minecraftforge.common.ForgeHooks; -import net.minecraftforge.common.IPlantable; -import net.minecraftforge.common.MinecraftForge; -import net.minecraftforge.event.Event.Result; -import net.minecraftforge.event.entity.player.BonemealEvent; - -import java.util.List; - -public class SigilOfGrowth extends EnergyItems implements ArmourUpgrade -{ - private static Icon activeIcon; - private static Icon passiveIcon; - private int tickDelay = 100; - - public SigilOfGrowth(int id) - { - super(id); - this.maxStackSize = 1; - //setMaxDamage(1000); - setEnergyUsed(150); - setCreativeTab(AlchemicalWizardry.tabBloodMagic); - // TODO Auto-generated constructor stub - } - - @Override - public void addInformation(ItemStack par1ItemStack, EntityPlayer par2EntityPlayer, List par3List, boolean par4) - { - par3List.add("Who needs a green thumb when"); - par3List.add("you have a green slate?"); - - if (!(par1ItemStack.stackTagCompound == null)) - { - if (par1ItemStack.stackTagCompound.getBoolean("isActive")) - { - par3List.add("Activated"); - } else - { - par3List.add("Deactivated"); - } - - par3List.add("Current owner: " + par1ItemStack.stackTagCompound.getString("ownerName")); - } - } - - @Override - @SideOnly(Side.CLIENT) - public void registerIcons(IconRegister iconRegister) - { - this.itemIcon = iconRegister.registerIcon("AlchemicalWizardry:GrowthSigil_deactivated"); - this.activeIcon = iconRegister.registerIcon("AlchemicalWizardry:GrowthSigil_activated"); - this.passiveIcon = iconRegister.registerIcon("AlchemicalWizardry:GrowthSigil_deactivated"); - } - - @Override - public Icon getIcon(ItemStack stack, int renderPass, EntityPlayer player, ItemStack usingItem, int useRemaining) - { - if (stack.stackTagCompound == null) - { - stack.setTagCompound(new NBTTagCompound()); - } - - NBTTagCompound tag = stack.stackTagCompound; - - if (tag.getBoolean("isActive")) - { - return this.activeIcon; - } else - { - return this.passiveIcon; - } - } - - @Override - @SideOnly(Side.CLIENT) - public Icon getIconFromDamage(int par1) - { - if (par1 == 1) - { - return this.activeIcon; - } else - { - return this.passiveIcon; - } - } - - @Override - public boolean onItemUse(ItemStack par1ItemStack, EntityPlayer par2EntityPlayer, World par3World, int par4, int par5, int par6, int par7, float par8, float par9, float par10) - { - EnergyItems.checkAndSetItemOwner(par1ItemStack, par2EntityPlayer); - - if(SpellHelper.isFakePlayer(par2EntityPlayer.worldObj, par2EntityPlayer)) - { - return false; - } - - if (applyBonemeal(par1ItemStack, par3World, par4, par5, par6, par2EntityPlayer)) - { - EnergyItems.syphonBatteries(par1ItemStack, par2EntityPlayer, getEnergyUsed()); - - if (par3World.isRemote) - { - par3World.playAuxSFX(2005, par4, par5, par6, 0); - return true; - } - - return true; - } - - return false; - } - - @Override - public ItemStack onItemRightClick(ItemStack par1ItemStack, World par2World, EntityPlayer par3EntityPlayer) - { - EnergyItems.checkAndSetItemOwner(par1ItemStack, par3EntityPlayer); - - if (par3EntityPlayer.isSneaking()) - { - return par1ItemStack; - } - - if (par1ItemStack.stackTagCompound == null) - { - par1ItemStack.setTagCompound(new NBTTagCompound()); - } - - NBTTagCompound tag = par1ItemStack.stackTagCompound; - tag.setBoolean("isActive", !(tag.getBoolean("isActive"))); - - if (tag.getBoolean("isActive")) - { - par1ItemStack.setItemDamage(1); - tag.setInteger("worldTimeDelay", (int) (par2World.getWorldTime() - 1) % tickDelay); - - if (!par3EntityPlayer.capabilities.isCreativeMode) - { - EnergyItems.syphonBatteries(par1ItemStack, par3EntityPlayer, getEnergyUsed()); - } - } else - { - par1ItemStack.setItemDamage(par1ItemStack.getMaxDamage()); - } - - return par1ItemStack; - } - - @Override - public void onUpdate(ItemStack par1ItemStack, World par2World, Entity par3Entity, int par4, boolean par5) - { - if (!(par3Entity instanceof EntityPlayer)) - { - return; - } - - if(SpellHelper.isFakePlayer(par3Entity.worldObj, (EntityPlayer)par3Entity)) - { - return; - } - - EntityPlayer par3EntityPlayer = (EntityPlayer) par3Entity; - - if (par1ItemStack.stackTagCompound == null) - { - par1ItemStack.setTagCompound(new NBTTagCompound()); - } - - if (par1ItemStack.stackTagCompound.getBoolean("isActive")) - { - if (par2World.getWorldTime() % tickDelay == par1ItemStack.stackTagCompound.getInteger("worldTimeDelay") && par3Entity instanceof EntityPlayer) - { - EnergyItems.syphonBatteries(par1ItemStack, (EntityPlayer) par3Entity, getEnergyUsed()); - } - - if(par2World.isRemote) - { - return; - } - - int range = 5; - int verticalRange = 2; - int posX = (int) Math.round(par3Entity.posX - 0.5f); - int posY = (int) par3Entity.posY; - int posZ = (int) Math.round(par3Entity.posZ - 0.5f); - - for (int ix = posX - range; ix <= posX + range; ix++) - { - for (int iz = posZ - range; iz <= posZ + range; iz++) - { - for (int iy = posY - verticalRange; iy <= posY + verticalRange; iy++) - { - int id = par2World.getBlockId(ix, iy, iz); - Block block = Block.blocksList[id]; - - if (block instanceof IPlantable) - { - if (par2World.rand.nextInt(17) == 0) - { - block.updateTick(par2World, ix, iy, iz, par2World.rand); - } - } - } - } - } - } - - return; - } - - public static boolean applyBonemeal(ItemStack par0ItemStack, World par1World, int par2, int par3, int par4, EntityPlayer player) - { - int l = par1World.getBlockId(par2, par3, par4); - BonemealEvent event = new BonemealEvent(player, par1World, l, par2, par3, par4); - - if (MinecraftForge.EVENT_BUS.post(event)) - { - return false; - } - - if (event.getResult() == Result.ALLOW) - { - return true; - } - - if (l == Block.sapling.blockID) - { - if (!par1World.isRemote) - { - if ((double) par1World.rand.nextFloat() < 0.45D) - { - ((BlockSapling) Block.sapling).markOrGrowMarked(par1World, par2, par3, par4, par1World.rand); - } - } - - return true; - } else if (l != Block.mushroomBrown.blockID && l != Block.mushroomRed.blockID) - { - if (l != Block.melonStem.blockID && l != Block.pumpkinStem.blockID) - { - if (l > 0 && Block.blocksList[l] instanceof BlockCrops) - { - if (par1World.getBlockMetadata(par2, par3, par4) == 7) - { - return false; - } else - { - if (!par1World.isRemote) - { - ((BlockCrops) Block.blocksList[l]).fertilize(par1World, par2, par3, par4); - } - - return true; - } - } else - { - int i1; - int j1; - int k1; - - if (l == Block.cocoaPlant.blockID) - { - i1 = par1World.getBlockMetadata(par2, par3, par4); - j1 = BlockDirectional.getDirection(i1); - k1 = BlockCocoa.func_72219_c(i1); - - if (k1 >= 2) - { - return false; - } else - { - if (!par1World.isRemote) - { - ++k1; - par1World.setBlockMetadataWithNotify(par2, par3, par4, k1 << 2 | j1, 2); - } - - return true; - } - } else if (l != Block.grass.blockID) - { - return false; - } else - { - if (!par1World.isRemote) - { - label102: - - for (i1 = 0; i1 < 128; ++i1) - { - j1 = par2; - k1 = par3 + 1; - int l1 = par4; - - for (int i2 = 0; i2 < i1 / 16; ++i2) - { - j1 += itemRand.nextInt(3) - 1; - k1 += (itemRand.nextInt(3) - 1) * itemRand.nextInt(3) / 2; - l1 += itemRand.nextInt(3) - 1; - - if (par1World.getBlockId(j1, k1 - 1, l1) != Block.grass.blockID || par1World.isBlockNormalCube(j1, k1, l1)) - { - continue label102; - } - } - - if (par1World.getBlockId(j1, k1, l1) == 0) - { - if (itemRand.nextInt(10) != 0) - { - if (Block.tallGrass.canBlockStay(par1World, j1, k1, l1)) - { - par1World.setBlock(j1, k1, l1, Block.tallGrass.blockID, 1, 3); - } - } else - { - ForgeHooks.plantGrass(par1World, j1, k1, l1); - } - } - } - } - - return true; - } - } - } else if (par1World.getBlockMetadata(par2, par3, par4) == 7) - { - return false; - } else - { - if (!par1World.isRemote) - { - ((BlockStem) Block.blocksList[l]).fertilizeStem(par1World, par2, par3, par4); - } - - return true; - } - } else - { - if (!par1World.isRemote) - { - if ((double) par1World.rand.nextFloat() < 0.4D) - { - ((BlockMushroom) Block.blocksList[l]).fertilizeMushroom(par1World, par2, par3, par4, par1World.rand); - } - } - - return true; - } - } - - @Override - public void onArmourUpdate(World world, EntityPlayer player, ItemStack thisItemStack) - { - if(world.isRemote) - { - return; - } - - int range = 5; - int verticalRange = 2; - int posX = (int) Math.round(player.posX - 0.5f); - int posY = (int) player.posY; - int posZ = (int) Math.round(player.posZ - 0.5f); - - for (int ix = posX - range; ix <= posX + range; ix++) - { - for (int iz = posZ - range; iz <= posZ + range; iz++) - { - for (int iy = posY - verticalRange; iy <= posY + verticalRange; iy++) - { - int id = world.getBlockId(ix, iy, iz); - Block block = Block.blocksList[id]; - - if (block instanceof IPlantable) - { - if (world.rand.nextInt(10) == 0) - { - block.updateTick(world, ix, iy, iz, world.rand); - } - } - } - } - } - } - - @Override - public boolean isUpgrade() - { - // TODO Auto-generated method stub - return true; - } - - @Override - public int getEnergyForTenSeconds() - { - // TODO Auto-generated method stub - return 50; - } -} diff --git a/BM_src/WayofTime/alchemicalWizardry/common/items/sigil/SigilOfHaste.java b/BM_src/WayofTime/alchemicalWizardry/common/items/sigil/SigilOfHaste.java deleted file mode 100644 index 4811d336..00000000 --- a/BM_src/WayofTime/alchemicalWizardry/common/items/sigil/SigilOfHaste.java +++ /dev/null @@ -1,207 +0,0 @@ -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 net.minecraft.client.renderer.texture.IconRegister; -import net.minecraft.entity.Entity; -import net.minecraft.entity.player.EntityPlayer; -import net.minecraft.item.ItemStack; -import net.minecraft.nbt.NBTTagCompound; -import net.minecraft.potion.PotionEffect; -import net.minecraft.util.Icon; -import net.minecraft.world.World; - -import java.util.List; - -public class SigilOfHaste extends EnergyItems implements ArmourUpgrade -{ - @SideOnly(Side.CLIENT) - private static Icon activeIcon; - @SideOnly(Side.CLIENT) - private static Icon passiveIcon; - - public SigilOfHaste(int id) - { - super(id); - this.maxStackSize = 1; - //setMaxDamage(100); - setEnergyUsed(250); - setCreativeTab(AlchemicalWizardry.tabBloodMagic); - } - - @Override - public void addInformation(ItemStack par1ItemStack, EntityPlayer par2EntityPlayer, List par3List, boolean par4) - { - par3List.add("One dose of caffeine later..."); - - if (!(par1ItemStack.stackTagCompound == null)) - { - if (par1ItemStack.stackTagCompound.getBoolean("isActive")) - { - par3List.add("Activated"); - } else - { - par3List.add("Deactivated"); - } - - par3List.add("Current owner: " + par1ItemStack.stackTagCompound.getString("ownerName")); - } - } - - @Override - @SideOnly(Side.CLIENT) - public void registerIcons(IconRegister iconRegister) - { - this.itemIcon = iconRegister.registerIcon("AlchemicalWizardry:HasteSigil_deactivated"); - this.activeIcon = iconRegister.registerIcon("AlchemicalWizardry:HasteSigil_activated"); - this.passiveIcon = iconRegister.registerIcon("AlchemicalWizardry:HasteSigil_deactivated"); - } - - @Override - public Icon getIcon(ItemStack stack, int renderPass, EntityPlayer player, ItemStack usingItem, int useRemaining) - { - if (stack.stackTagCompound == null) - { - stack.setTagCompound(new NBTTagCompound()); - } - - NBTTagCompound tag = stack.stackTagCompound; - - if (tag.getBoolean("isActive")) - { - return this.activeIcon; - } else - { - return this.passiveIcon; - } - } - - @Override - @SideOnly(Side.CLIENT) - public Icon getIconFromDamage(int par1) - { - if (par1 == 1) - { - return this.activeIcon; - } else - { - return this.passiveIcon; - } - } - - @Override - public ItemStack onItemRightClick(ItemStack par1ItemStack, World par2World, EntityPlayer par3EntityPlayer) - { - EnergyItems.checkAndSetItemOwner(par1ItemStack, par3EntityPlayer); - - if(SpellHelper.isFakePlayer(par2World, par3EntityPlayer)) - { - return par1ItemStack; - } - - if (par3EntityPlayer.isSneaking()) - { - return par1ItemStack; - } - - if (par1ItemStack.stackTagCompound == null) - { - par1ItemStack.setTagCompound(new NBTTagCompound()); - } - - NBTTagCompound tag = par1ItemStack.stackTagCompound; - tag.setBoolean("isActive", !(tag.getBoolean("isActive"))); - - if (tag.getBoolean("isActive")) - { - par1ItemStack.setItemDamage(1); - tag.setInteger("worldTimeDelay", (int) (par2World.getWorldTime() - 1) % 200); - par3EntityPlayer.addPotionEffect(new PotionEffect(AlchemicalWizardry.customPotionBoost.id, 3, 1)); - //par3EntityPlayer.addPotionEffect(new PotionEffect(AlchemicalWizardry.customPotionProjProt.id, 2, 2)); - - //Test with added health boost - //par3EntityPlayer.addPotionEffect(new PotionEffect(Potion.field_76444_x.id, 2400,99)); - if (!par3EntityPlayer.capabilities.isCreativeMode) - { - if (!EnergyItems.syphonBatteries(par1ItemStack, par3EntityPlayer, getEnergyUsed())) - { - } - } - } else - { - par1ItemStack.setItemDamage(par1ItemStack.getMaxDamage()); - } - - return par1ItemStack; - } - - @Override - public void onUpdate(ItemStack par1ItemStack, World par2World, Entity par3Entity, int par4, boolean par5) - { - if (!(par3Entity instanceof EntityPlayer)) - { - return; - } - - if(SpellHelper.isFakePlayer(par2World,(EntityPlayer) par3Entity)) - { - return; - } - - EntityPlayer par3EntityPlayer = (EntityPlayer) par3Entity; - - if (par1ItemStack.stackTagCompound == null) - { - par1ItemStack.setTagCompound(new NBTTagCompound()); - } - - if (par1ItemStack.stackTagCompound.getBoolean("isActive")) - { - par3EntityPlayer.addPotionEffect(new PotionEffect(AlchemicalWizardry.customPotionBoost.id, 3, 1)); - } - - if (par2World.getWorldTime() % 200 == par1ItemStack.stackTagCompound.getInteger("worldTimeDelay") && par1ItemStack.stackTagCompound.getBoolean("isActive")) - { - //par3EntityPlayer.addPotionEffect(new PotionEffect(AlchemicalWizardry.customPotionBoost.id, 205, 1)); - - //par3EntityPlayer.addPotionEffect(new PotionEffect(AlchemicalWizardry.customPotionProjProt.id, 205, 2)); - if (!par3EntityPlayer.capabilities.isCreativeMode) - { - if (!EnergyItems.syphonBatteries(par1ItemStack, par3EntityPlayer, getEnergyUsed())) - { - } - } - } - - return; - } - - @Override - public void onArmourUpdate(World world, EntityPlayer player, ItemStack itemStack) - { - if (itemStack.stackTagCompound == null) - { - itemStack.setTagCompound(new NBTTagCompound()); - } - - player.addPotionEffect(new PotionEffect(AlchemicalWizardry.customPotionBoost.id, 3, 1,true)); - } - - @Override - public boolean isUpgrade() - { - // TODO Auto-generated method stub - return true; - } - - @Override - public int getEnergyForTenSeconds() - { - // TODO Auto-generated method stub - return 150; - } -} \ No newline at end of file diff --git a/BM_src/WayofTime/alchemicalWizardry/common/items/sigil/SigilOfHolding.java b/BM_src/WayofTime/alchemicalWizardry/common/items/sigil/SigilOfHolding.java deleted file mode 100644 index 5ec8951c..00000000 --- a/BM_src/WayofTime/alchemicalWizardry/common/items/sigil/SigilOfHolding.java +++ /dev/null @@ -1,365 +0,0 @@ -package WayofTime.alchemicalWizardry.common.items.sigil; - -import WayofTime.alchemicalWizardry.AlchemicalWizardry; -import WayofTime.alchemicalWizardry.ModItems; -import WayofTime.alchemicalWizardry.common.items.EnergyItems; -import cpw.mods.fml.relauncher.Side; -import cpw.mods.fml.relauncher.SideOnly; -import net.minecraft.client.renderer.texture.IconRegister; -import net.minecraft.entity.Entity; -import net.minecraft.entity.player.EntityPlayer; -import net.minecraft.item.ItemStack; -import net.minecraft.nbt.NBTTagCompound; -import net.minecraft.nbt.NBTTagList; -import net.minecraft.util.Icon; -import net.minecraft.world.World; - -import java.util.ArrayList; -import java.util.List; - -public class SigilOfHolding extends EnergyItems -{ - private int invSize = 4; - - public static List allowedSigils = new ArrayList(); - - public SigilOfHolding(int id) - { - super(id); - this.maxStackSize = 1; - //setEnergyUsed(100); - setCreativeTab(AlchemicalWizardry.tabBloodMagic); - } - - @Override - @SideOnly(Side.CLIENT) - public void registerIcons(IconRegister iconRegister) - { - this.itemIcon = iconRegister.registerIcon("AlchemicalWizardry:SigilOfHolding"); - } - - @Override - public Icon getIcon(ItemStack stack, int renderPass, EntityPlayer player, ItemStack usingItem, int useRemaining) - { - if (!(stack.stackTagCompound == null)) - { - ItemStack[] inv = getInternalInventory(stack); - - if (inv == null) - { - return this.itemIcon; - } - - ItemStack item = inv[stack.stackTagCompound.getInteger("selectedSlot")]; - - if (item != null) - { - return item.getIconIndex(); - } - } - - return this.itemIcon; - } - - @Override - public void addInformation(ItemStack par1ItemStack, EntityPlayer par2EntityPlayer, List par3List, boolean par4) - { - par3List.add("Used to hold several Sigils!"); - - if (!(par1ItemStack.stackTagCompound == null)) - { - par3List.add("Current owner: " + par1ItemStack.stackTagCompound.getString("ownerName")); -// par3List.add("Current slot: " + par1ItemStack.stackTagCompound.getInteger("selectedSlot")); - ItemStack[] inv = getInternalInventory(par1ItemStack); - - if (inv == null) - { - return; - } - - ItemStack item = inv[par1ItemStack.stackTagCompound.getInteger("selectedSlot")]; - - if (item != null) - { - par3List.add("Current item: " + item.getDisplayName()); - } - - for (int i = 0; i < invSize; i++) - { - if (inv[i] != null) - { - par3List.add("Item in slot " + i + ": " + inv[i].getDisplayName()); - } - } - } - } - - @Override - public ItemStack onItemRightClick(ItemStack par1ItemStack, World par2World, EntityPlayer par3EntityPlayer) - { - //TODO Might be a good idea to have this item need to be in the player's first slot - //for it to search and consume sigils on right click. Might avoid confusion? At least - //will avoid the need to add a button just for it... - this.checkAndSetItemOwner(par1ItemStack, par3EntityPlayer); - - if (par3EntityPlayer.isSneaking()) - { - if (this.addSigilToInventory(par1ItemStack, par3EntityPlayer)) - { - return par1ItemStack; - } - - selectNextSlot(par1ItemStack); - return par1ItemStack; - } - - int currentSlot = this.getSelectedSlot(par1ItemStack); - ItemStack[] inv = getInternalInventory(par1ItemStack); - - if (inv == null) - { - return par1ItemStack; - } - - ItemStack itemUsed = inv[currentSlot]; - - if (itemUsed == null) - { - return par1ItemStack; - } - - itemUsed.getItem().onItemRightClick(itemUsed, par2World, par3EntityPlayer); - saveInternalInventory(par1ItemStack, inv); - return par1ItemStack; - } - - @Override - public void onUpdate(ItemStack par1ItemStack, World par2World, Entity par3Entity, int par4, boolean par5) - { - if (!(par1ItemStack.stackTagCompound == null)) - { - this.tickInternalInventory(par1ItemStack, par2World, par3Entity, par4, par5); - } - } - - public ItemStack[] getInternalInventory(ItemStack itemStack) - { - NBTTagCompound itemTag = itemStack.stackTagCompound; - - if (itemTag == null) - { - itemStack.setTagCompound(new NBTTagCompound()); - return null; - } - - ItemStack[] inv = new ItemStack[9]; - NBTTagList tagList = itemTag.getTagList("Inventory"); - - if (tagList == null) - { - return null; - } - - for (int i = 0; i < tagList.tagCount(); i++) - { - NBTTagCompound tag = (NBTTagCompound) tagList.tagAt(i); - int slot = tag.getByte("Slot"); - - if (slot >= 0 && slot < invSize) - { - inv[slot] = ItemStack.loadItemStackFromNBT(tag); - } - } - - return inv; - } - - public void saveInternalInventory(ItemStack itemStack, ItemStack[] inventory) - { - NBTTagCompound itemTag = itemStack.stackTagCompound; - - if (itemTag == null) - { - itemStack.setTagCompound(new NBTTagCompound()); - } - - NBTTagList itemList = new NBTTagList(); - - for (int i = 0; i < invSize; i++) - { - ItemStack stack = inventory[i]; - - if (inventory[i] != null) - { - NBTTagCompound tag = new NBTTagCompound(); - tag.setByte("Slot", (byte) i); - inventory[i].writeToNBT(tag); - itemList.appendTag(tag); - } - } - - itemTag.setTag("Inventory", itemList); - } - - public void tickInternalInventory(ItemStack par1ItemStack, World par2World, Entity par3Entity, int par4, boolean par5) - { - ItemStack[] inv = getInternalInventory(par1ItemStack); - - if (inv == null) - { - return; - } - - for (int i = 0; i < invSize; i++) - { - if (inv[i] == null) - { - continue; - } - - inv[i].getItem().onUpdate(inv[i], par2World, par3Entity, par4, par5); - } - } - - public int getSelectedSlot(ItemStack itemStack) - { - NBTTagCompound itemTag = itemStack.stackTagCompound; - - if (itemTag == null) - { - itemStack.setTagCompound(new NBTTagCompound()); - } - - return itemTag.getInteger("selectedSlot"); - } - - public void selectNextSlot(ItemStack itemStack) - { - ItemStack[] inv = getInternalInventory(itemStack); - int filledSlots = 0; - - for (int i = 0; i < invSize; i++) - { - if (inv[i] != null) - { - filledSlots++; - } else - { - break; - } - } - - NBTTagCompound itemTag = itemStack.stackTagCompound; - - if (itemTag == null) - { - itemStack.setTagCompound(new NBTTagCompound()); - } - - if (getSelectedSlot(itemStack) + 1 < filledSlots) - { - itemTag.setInteger("selectedSlot", itemTag.getInteger("selectedSlot") + 1); - } else - { - itemTag.setInteger("selectedSlot", 0); - } - } - - public boolean hasAddedToInventory(ItemStack sigilItemStack, ItemStack addedItemStack) - { - ItemStack[] inv = getInternalInventory(sigilItemStack); - - if (inv == null) - { - return false; - } - - if (addedItemStack == null) - { - return false; - } - - int itemID = addedItemStack.getItem().itemID; - int candidateSlot = -1; - - for (int i = invSize - 1; i >= 0; i--) - { - ItemStack nextItem = inv[i]; - - if (nextItem == null) - { - candidateSlot = i; - continue; - } - - if (itemID == nextItem.itemID) - { - return false; - } - } - - if (candidateSlot == -1) - { - return false; - } - - for (Integer i : allowedSigils) - { - if (i.intValue() == itemID) - { - inv[candidateSlot] = addedItemStack; - saveInternalInventory(sigilItemStack, inv); - return true; - } - } - - return false; - } - - public boolean addSigilToInventory(ItemStack sigilItemStack, EntityPlayer player) - { - ItemStack[] playerInventory = player.inventory.mainInventory; - - for (int i = 0; i < 36; i++) - { - if (this.hasAddedToInventory(sigilItemStack, playerInventory[i])) - { - player.inventory.consumeInventoryItem(playerInventory[i].itemID); - //playerInventory[i].stackSize--; - return true; - } - } - - return false; - } - - public static void initiateSigilOfHolding() - { - allowedSigils.add(new Integer(ModItems.waterSigil.itemID)); - allowedSigils.add(new Integer(ModItems.lavaSigil.itemID)); - allowedSigils.add(new Integer(ModItems.voidSigil.itemID)); - allowedSigils.add(new Integer(ModItems.airSigil.itemID)); - allowedSigils.add(new Integer(ModItems.sigilOfTheFastMiner.itemID)); - allowedSigils.add(new Integer(ModItems.divinationSigil.itemID)); - allowedSigils.add(new Integer(ModItems.sigilOfElementalAffinity.itemID)); - allowedSigils.add(new Integer(ModItems.growthSigil.itemID)); - allowedSigils.add(new Integer(ModItems.sigilOfHaste.itemID)); - allowedSigils.add(new Integer(ModItems.sigilOfWind.itemID)); - allowedSigils.add(new Integer(ModItems.sigilOfTheBridge.itemID)); - allowedSigils.add(new Integer(ModItems.sigilOfMagnetism.itemID)); - allowedSigils.add(new Integer(ModItems.itemSigilOfSupression.itemID)); - allowedSigils.add(new Integer(ModItems.itemBloodLightSigil.itemID)); - } - - public ItemStack getCurrentItem(ItemStack sigilItemStack) - { - ItemStack[] items = this.getInternalInventory(sigilItemStack); - - if (items == null) - { - return null; - } - - return items[this.getSelectedSlot(sigilItemStack)]; - } -} diff --git a/BM_src/WayofTime/alchemicalWizardry/common/items/sigil/SigilOfMagnetism.java b/BM_src/WayofTime/alchemicalWizardry/common/items/sigil/SigilOfMagnetism.java deleted file mode 100644 index c2756375..00000000 --- a/BM_src/WayofTime/alchemicalWizardry/common/items/sigil/SigilOfMagnetism.java +++ /dev/null @@ -1,233 +0,0 @@ -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 net.minecraft.client.renderer.texture.IconRegister; -import net.minecraft.entity.Entity; -import net.minecraft.entity.item.EntityItem; -import net.minecraft.entity.player.EntityPlayer; -import net.minecraft.item.ItemStack; -import net.minecraft.nbt.NBTTagCompound; -import net.minecraft.util.AxisAlignedBB; -import net.minecraft.util.Icon; -import net.minecraft.world.World; - -import java.util.List; - -public class SigilOfMagnetism extends EnergyItems implements ArmourUpgrade -{ - private static Icon activeIcon; - private static Icon passiveIcon; - private int tickDelay = 300; - - public SigilOfMagnetism(int id) - { - super(id); - this.maxStackSize = 1; - //setMaxDamage(1000); - setEnergyUsed(50); - setCreativeTab(AlchemicalWizardry.tabBloodMagic); - // TODO Auto-generated constructor stub - } - - @Override - public void addInformation(ItemStack par1ItemStack, EntityPlayer par2EntityPlayer, List par3List, boolean par4) - { - par3List.add("I have a very magnetic personality!"); -// par3List.add("you have a green slate?"); - - if (!(par1ItemStack.stackTagCompound == null)) - { - if (par1ItemStack.stackTagCompound.getBoolean("isActive")) - { - par3List.add("Activated"); - } else - { - par3List.add("Deactivated"); - } - - par3List.add("Current owner: " + par1ItemStack.stackTagCompound.getString("ownerName")); - } - } - - @Override - @SideOnly(Side.CLIENT) - public void registerIcons(IconRegister iconRegister) - { - this.itemIcon = iconRegister.registerIcon("AlchemicalWizardry:SigilOfMagnetism_deactivated"); - this.activeIcon = iconRegister.registerIcon("AlchemicalWizardry:SigilOfMagnetism_activated"); - this.passiveIcon = iconRegister.registerIcon("AlchemicalWizardry:SigilOfMagnetism_deactivated"); - } - - @Override - public Icon getIcon(ItemStack stack, int renderPass, EntityPlayer player, ItemStack usingItem, int useRemaining) - { - if (stack.stackTagCompound == null) - { - stack.setTagCompound(new NBTTagCompound()); - } - - NBTTagCompound tag = stack.stackTagCompound; - - if (tag.getBoolean("isActive")) - { - return this.activeIcon; - } else - { - return this.passiveIcon; - } - } - - @Override - @SideOnly(Side.CLIENT) - public Icon getIconFromDamage(int par1) - { - if (par1 == 1) - { - return this.activeIcon; - } else - { - return this.passiveIcon; - } - } - -// @Override -// public boolean onItemUse(ItemStack par1ItemStack, EntityPlayer par2EntityPlayer, World par3World, int par4, int par5, int par6, int par7, float par8, float par9, float par10) -// { -// EnergyItems.checkAndSetItemOwner(par1ItemStack, par2EntityPlayer); -// if(applyBonemeal(par1ItemStack,par3World,par4,par5,par6,par2EntityPlayer)) -// { -// if (par3World.isRemote) -// { -// par3World.playAuxSFX(2005, par4, par5, par6, 0); -// EnergyItems.syphonBatteries(par1ItemStack, par2EntityPlayer, getEnergyUsed()); -// return true; -// } -// return true; -// } -// return false; -// } - - @Override - public ItemStack onItemRightClick(ItemStack par1ItemStack, World par2World, EntityPlayer par3EntityPlayer) - { - EnergyItems.checkAndSetItemOwner(par1ItemStack, par3EntityPlayer); - - if(SpellHelper.isFakePlayer(par2World, par3EntityPlayer)) - { - return par1ItemStack; - } - - if (par3EntityPlayer.isSneaking()) - { - return par1ItemStack; - } - - if (par1ItemStack.stackTagCompound == null) - { - par1ItemStack.setTagCompound(new NBTTagCompound()); - } - - NBTTagCompound tag = par1ItemStack.stackTagCompound; - tag.setBoolean("isActive", !(tag.getBoolean("isActive"))); - - if (tag.getBoolean("isActive")) - { - par1ItemStack.setItemDamage(1); - tag.setInteger("worldTimeDelay", (int) (par2World.getWorldTime() - 1) % tickDelay); - - if (!par3EntityPlayer.capabilities.isCreativeMode) - { - EnergyItems.syphonBatteries(par1ItemStack, par3EntityPlayer, getEnergyUsed()); - } - } else - { - par1ItemStack.setItemDamage(par1ItemStack.getMaxDamage()); - } - - return par1ItemStack; - } - - @Override - public void onUpdate(ItemStack par1ItemStack, World par2World, Entity par3Entity, int par4, boolean par5) - { - if (!(par3Entity instanceof EntityPlayer)) - { - return; - } - - if(SpellHelper.isFakePlayer(par2World, (EntityPlayer)par3Entity)) - { - return; - } - - EntityPlayer par3EntityPlayer = (EntityPlayer) par3Entity; - - if (par1ItemStack.stackTagCompound == null) - { - par1ItemStack.setTagCompound(new NBTTagCompound()); - } - - if (par1ItemStack.stackTagCompound.getBoolean("isActive")) - { - if (par2World.getWorldTime() % tickDelay == par1ItemStack.stackTagCompound.getInteger("worldTimeDelay") && par3Entity instanceof EntityPlayer) - { - EnergyItems.syphonBatteries(par1ItemStack, (EntityPlayer) par3Entity, getEnergyUsed()); - } - - int range = 5; - int verticalRange = 5; - float posX = Math.round(par3Entity.posX); - float posY = (float) (par3Entity.posY - par3Entity.getEyeHeight()); - float posZ = Math.round(par3Entity.posZ); - List entities = par3EntityPlayer.worldObj.getEntitiesWithinAABB(EntityItem.class, AxisAlignedBB.getBoundingBox(posX - 0.5f, posY - 0.5f, posZ - 0.5f, posX + 0.5f, posY + 0.5f, posZ + 0.5f).expand(range, verticalRange, range)); - - for (EntityItem entity : entities) - { - if (entity != null && !par2World.isRemote) - { - entity.onCollideWithPlayer(par3EntityPlayer); - } - } - } - - return; - } - - @Override - public void onArmourUpdate(World world, EntityPlayer player, ItemStack thisItemStack) - { - int range = 5; - int verticalRange = 5; - float posX = Math.round(player.posX); - float posY = (float) (player.posY - player.getEyeHeight()); - float posZ = Math.round(player.posZ); - List entities = player.worldObj.getEntitiesWithinAABB(EntityItem.class, AxisAlignedBB.getBoundingBox(posX - 0.5f, posY - 0.5f, posZ - 0.5f, posX + 0.5f, posY + 0.5f, posZ + 0.5f).expand(range, verticalRange, range)); - - for (EntityItem entity : entities) - { - if (entity != null && !world.isRemote) - { - entity.onCollideWithPlayer(player); - } - } - } - - @Override - public boolean isUpgrade() - { - // TODO Auto-generated method stub - return true; - } - - @Override - public int getEnergyForTenSeconds() - { - // TODO Auto-generated method stub - return 25; - } -} diff --git a/BM_src/WayofTime/alchemicalWizardry/common/items/sigil/SigilOfTheBridge.java b/BM_src/WayofTime/alchemicalWizardry/common/items/sigil/SigilOfTheBridge.java deleted file mode 100644 index a3826f5e..00000000 --- a/BM_src/WayofTime/alchemicalWizardry/common/items/sigil/SigilOfTheBridge.java +++ /dev/null @@ -1,310 +0,0 @@ -package WayofTime.alchemicalWizardry.common.items.sigil; - -import WayofTime.alchemicalWizardry.AlchemicalWizardry; -import WayofTime.alchemicalWizardry.ModBlocks; -import WayofTime.alchemicalWizardry.api.items.interfaces.ArmourUpgrade; -import WayofTime.alchemicalWizardry.common.items.EnergyItems; -import cpw.mods.fml.relauncher.Side; -import cpw.mods.fml.relauncher.SideOnly; -import net.minecraft.block.Block; -import net.minecraft.client.renderer.texture.IconRegister; -import net.minecraft.entity.Entity; -import net.minecraft.entity.player.EntityPlayer; -import net.minecraft.item.ItemStack; -import net.minecraft.nbt.NBTTagCompound; -import net.minecraft.util.Icon; -import net.minecraft.world.World; - -import java.util.List; - -public class SigilOfTheBridge extends EnergyItems implements ArmourUpgrade -{ - private static Icon activeIcon; - private static Icon passiveIcon; - private int tickDelay = 200; - - public SigilOfTheBridge(int id) - { - super(id); - this.maxStackSize = 1; - //setMaxDamage(1000); - setEnergyUsed(100); - setCreativeTab(AlchemicalWizardry.tabBloodMagic); - // TODO Auto-generated constructor stub - } - - @Override - public void addInformation(ItemStack par1ItemStack, EntityPlayer par2EntityPlayer, List par3List, boolean par4) - { - par3List.add("Activate to create a bridge"); - par3List.add("beneath your feet."); - - if (!(par1ItemStack.stackTagCompound == null)) - { - if (par1ItemStack.stackTagCompound.getBoolean("isActive")) - { - par3List.add("Activated"); - } else - { - par3List.add("Deactivated"); - } - - par3List.add("Current owner: " + par1ItemStack.stackTagCompound.getString("ownerName")); - } - } - - @Override - @SideOnly(Side.CLIENT) - public void registerIcons(IconRegister iconRegister) - { - this.itemIcon = iconRegister.registerIcon("AlchemicalWizardry:BridgeSigil_deactivated"); - this.activeIcon = iconRegister.registerIcon("AlchemicalWizardry:BridgeSigil_activated"); - this.passiveIcon = iconRegister.registerIcon("AlchemicalWizardry:BridgeSigil_deactivated"); - } - - @Override - public Icon getIcon(ItemStack stack, int renderPass, EntityPlayer player, ItemStack usingItem, int useRemaining) - { - if (stack.stackTagCompound == null) - { - stack.setTagCompound(new NBTTagCompound()); - } - - NBTTagCompound tag = stack.stackTagCompound; - - if (tag.getBoolean("isActive")) - { - return this.activeIcon; - } else - { - return this.passiveIcon; - } - } - - @Override - @SideOnly(Side.CLIENT) - public Icon getIconFromDamage(int par1) - { - if (par1 == 1) - { - return this.activeIcon; - } else - { - return this.passiveIcon; - } - } - -// @Override -// public boolean onItemUse(ItemStack par1ItemStack, EntityPlayer par2EntityPlayer, World par3World, int par4, int par5, int par6, int par7, float par8, float par9, float par10) -// { -// -// if(applyBonemeal(par1ItemStack,par3World,par4,par5,par6,par2EntityPlayer)) -// { -// if (par3World.isRemote) -// { -// par3World.playAuxSFX(2005, par4, par5, par6, 0); -// EnergyItems.syphonBatteries(par1ItemStack, par2EntityPlayer, getEnergyUsed()); -// return true; -// } -// return true; -// } -// return false; -// } - - @Override - public ItemStack onItemRightClick(ItemStack par1ItemStack, World par2World, EntityPlayer par3EntityPlayer) - { - EnergyItems.checkAndSetItemOwner(par1ItemStack, par3EntityPlayer); - - if (par3EntityPlayer.isSneaking()) - { - return par1ItemStack; - } - - if (par1ItemStack.stackTagCompound == null) - { - par1ItemStack.setTagCompound(new NBTTagCompound()); - } - - NBTTagCompound tag = par1ItemStack.stackTagCompound; - tag.setBoolean("isActive", !(tag.getBoolean("isActive"))); - - if (tag.getBoolean("isActive")) - { - par1ItemStack.setItemDamage(1); - tag.setInteger("worldTimeDelay", (int) (par2World.getWorldTime() - 1) % tickDelay); - - if (!par3EntityPlayer.capabilities.isCreativeMode) - { - EnergyItems.syphonBatteries(par1ItemStack, par3EntityPlayer, getEnergyUsed()); - } - } else - { - par1ItemStack.setItemDamage(par1ItemStack.getMaxDamage()); - } - - return par1ItemStack; - } - - @Override - public void onUpdate(ItemStack par1ItemStack, World par2World, Entity par3Entity, int par4, boolean par5) - { - if (!(par3Entity instanceof EntityPlayer)) - { - return; - } - - EntityPlayer par3EntityPlayer = (EntityPlayer) par3Entity; - - if (par1ItemStack.stackTagCompound == null) - { - par1ItemStack.setTagCompound(new NBTTagCompound()); - } - - if (par1ItemStack.stackTagCompound.getBoolean("isActive")) - { - if (par2World.getWorldTime() % tickDelay == par1ItemStack.stackTagCompound.getInteger("worldTimeDelay") && par3Entity instanceof EntityPlayer) - { - EnergyItems.syphonBatteries(par1ItemStack, (EntityPlayer) par3Entity, this.getLPUsed(par1ItemStack)); - this.setLPUsed(par1ItemStack, 0); - } - -// if(par2World.isRemote) -// { -// return; -// } - if (!par3EntityPlayer.onGround && !par3EntityPlayer.isSneaking()) - { - return; - } - - int range = 2; - int verticalOffset = -1; - - if (par3EntityPlayer.isSneaking()) - { - verticalOffset--; - } - - if (par2World.isRemote) - { - verticalOffset--; - } - - int posX = (int) Math.round(par3Entity.posX - 0.5f); - int posY = (int) par3Entity.posY; - int posZ = (int) Math.round(par3Entity.posZ - 0.5f); - int incremented = 0; - - for (int ix = posX - range; ix <= posX + range; ix++) - { - for (int iz = posZ - range; iz <= posZ + range; iz++) - { - //for(int iy=posY-verticalRange;iy<=posY+verticalRange;iy++) - { - int id = par2World.getBlockId(ix, posY + verticalOffset, iz); - Block block = Block.blocksList[id]; - - if (par2World.isAirBlock(ix, posY + verticalOffset, iz)) - { - par2World.setBlock(ix, posY + verticalOffset, iz, ModBlocks.spectralBlock.blockID, 0, 3); - - if (par2World.rand.nextInt(2) == 0) - { - incremented++; - } - } - } - } - } - - this.incrimentLPUSed(par1ItemStack, incremented); - } - - return; - } - - public int getLPUsed(ItemStack par1ItemStack) - { - if (par1ItemStack.stackTagCompound == null) - { - par1ItemStack.setTagCompound(new NBTTagCompound()); - } - - return par1ItemStack.stackTagCompound.getInteger("LPUsed"); - } - - public void incrimentLPUSed(ItemStack par1ItemStack, int addedLP) - { - if (par1ItemStack.stackTagCompound == null) - { - par1ItemStack.setTagCompound(new NBTTagCompound()); - } - - par1ItemStack.stackTagCompound.setInteger("LPUsed", par1ItemStack.stackTagCompound.getInteger("LPUsed") + addedLP); - } - - public void setLPUsed(ItemStack par1ItemStack, int newLP) - { - if (par1ItemStack.stackTagCompound == null) - { - par1ItemStack.setTagCompound(new NBTTagCompound()); - } - - par1ItemStack.stackTagCompound.setInteger("LPUsed", newLP); - } - - @Override - public void onArmourUpdate(World world, EntityPlayer player, ItemStack thisItemStack) - { - if (!player.onGround && !player.isSneaking()) - { - return; - } - - int range = 2; - int verticalOffset = -1; - - if (player.isSneaking()) - { - verticalOffset--; - } - - int posX = (int) Math.round(player.posX - 0.5f); - int posY = (int) player.posY; - int posZ = (int) Math.round(player.posZ - 0.5f); - - //int incremented = 0; - - for (int ix = posX - range; ix <= posX + range; ix++) - { - for (int iz = posZ - range; iz <= posZ + range; iz++) - { - //for(int iy=posY-verticalRange;iy<=posY+verticalRange;iy++) - { - int id = world.getBlockId(ix, posY + verticalOffset, iz); - Block block = Block.blocksList[id]; - - if (world.isAirBlock(ix, posY + verticalOffset, iz)) - { - world.setBlock(ix, posY + verticalOffset, iz, ModBlocks.spectralBlock.blockID, 0, 3); - } - } - } - } - } - - @Override - public boolean isUpgrade() - { - // TODO Auto-generated method stub - return true; - } - - @Override - public int getEnergyForTenSeconds() - { - // TODO Auto-generated method stub - return 100; - } -} diff --git a/BM_src/WayofTime/alchemicalWizardry/common/items/sigil/SigilOfTheFastMiner.java b/BM_src/WayofTime/alchemicalWizardry/common/items/sigil/SigilOfTheFastMiner.java deleted file mode 100644 index 9202871e..00000000 --- a/BM_src/WayofTime/alchemicalWizardry/common/items/sigil/SigilOfTheFastMiner.java +++ /dev/null @@ -1,194 +0,0 @@ -package WayofTime.alchemicalWizardry.common.items.sigil; - -import WayofTime.alchemicalWizardry.AlchemicalWizardry; -import WayofTime.alchemicalWizardry.api.items.interfaces.ArmourUpgrade; -import WayofTime.alchemicalWizardry.common.items.EnergyItems; -import cpw.mods.fml.relauncher.Side; -import cpw.mods.fml.relauncher.SideOnly; -import net.minecraft.client.renderer.texture.IconRegister; -import net.minecraft.entity.Entity; -import net.minecraft.entity.player.EntityPlayer; -import net.minecraft.item.ItemStack; -import net.minecraft.nbt.NBTTagCompound; -import net.minecraft.potion.Potion; -import net.minecraft.potion.PotionEffect; -import net.minecraft.util.Icon; -import net.minecraft.world.World; - -import java.util.List; - -public class SigilOfTheFastMiner extends EnergyItems implements ArmourUpgrade -{ - @SideOnly(Side.CLIENT) - private static Icon activeIcon; - @SideOnly(Side.CLIENT) - private static Icon passiveIcon; - - public SigilOfTheFastMiner(int id) - { - super(id); - this.maxStackSize = 1; - //setMaxDamage(100); - setEnergyUsed(100); - setCreativeTab(AlchemicalWizardry.tabBloodMagic); - } - - @Override - public void addInformation(ItemStack par1ItemStack, EntityPlayer par2EntityPlayer, List par3List, boolean par4) - { - par3List.add("Keep going and going and going..."); - - if (!(par1ItemStack.stackTagCompound == null)) - { - if (par1ItemStack.stackTagCompound.getBoolean("isActive")) - { - par3List.add("Activated"); - } else - { - par3List.add("Deactivated"); - } - - par3List.add("Current owner: " + par1ItemStack.stackTagCompound.getString("ownerName")); - } - } - - @Override - @SideOnly(Side.CLIENT) - public void registerIcons(IconRegister iconRegister) - { - this.itemIcon = iconRegister.registerIcon("AlchemicalWizardry:SigilOfTheFastMiner"); - this.activeIcon = iconRegister.registerIcon("AlchemicalWizardry:MiningSigil_activated"); - this.passiveIcon = iconRegister.registerIcon("AlchemicalWizardry:MiningSigil_deactivated"); - } - - @Override - public Icon getIcon(ItemStack stack, int renderPass, EntityPlayer player, ItemStack usingItem, int useRemaining) - { - if (stack.stackTagCompound == null) - { - stack.setTagCompound(new NBTTagCompound()); - } - - NBTTagCompound tag = stack.stackTagCompound; - - if (tag.getBoolean("isActive")) - { - return this.activeIcon; - } else - { - return this.passiveIcon; - } - } - - @Override - @SideOnly(Side.CLIENT) - public Icon getIconFromDamage(int par1) - { - if (par1 == 1) - { - return this.activeIcon; - } else - { - return this.passiveIcon; - } - } - - @Override - public ItemStack onItemRightClick(ItemStack par1ItemStack, World par2World, EntityPlayer par3EntityPlayer) - { - EnergyItems.checkAndSetItemOwner(par1ItemStack, par3EntityPlayer); - - if (par3EntityPlayer.isSneaking()) - { - return par1ItemStack; - } - - if (par1ItemStack.stackTagCompound == null) - { - par1ItemStack.setTagCompound(new NBTTagCompound()); - } - - NBTTagCompound tag = par1ItemStack.stackTagCompound; - tag.setBoolean("isActive", !(tag.getBoolean("isActive"))); - - if (tag.getBoolean("isActive")) - { - par1ItemStack.setItemDamage(1); - tag.setInteger("worldTimeDelay", (int) (par2World.getWorldTime() - 1) % 200); - par3EntityPlayer.addPotionEffect(new PotionEffect(Potion.digSpeed.id, 2, 1, true)); - - //Test with added health boost - //par3EntityPlayer.addPotionEffect(new PotionEffect(Potion.field_76444_x.id, 2400,99)); - if (!par3EntityPlayer.capabilities.isCreativeMode) - { - if (!EnergyItems.syphonBatteries(par1ItemStack, par3EntityPlayer, getEnergyUsed())) - { - } - } - } else - { - par1ItemStack.setItemDamage(par1ItemStack.getMaxDamage()); - } - - return par1ItemStack; - } - - @Override - public void onUpdate(ItemStack par1ItemStack, World par2World, Entity par3Entity, int par4, boolean par5) - { - if (!(par3Entity instanceof EntityPlayer)) - { - return; - } - - EntityPlayer par3EntityPlayer = (EntityPlayer) par3Entity; - - if (par1ItemStack.stackTagCompound == null) - { - par1ItemStack.setTagCompound(new NBTTagCompound()); - } - - if (par1ItemStack.stackTagCompound.getBoolean("isActive")) - { - par3EntityPlayer.addPotionEffect(new PotionEffect(Potion.digSpeed.id, 2, 1, true)); - } - - if (par2World.getWorldTime() % 200 == par1ItemStack.stackTagCompound.getInteger("worldTimeDelay") && par1ItemStack.stackTagCompound.getBoolean("isActive")) - { - //par3EntityPlayer.addPotionEffect(new PotionEffect(Potion.field_76444_x.id, 2400,99)); - if (!par3EntityPlayer.capabilities.isCreativeMode) - { - if (!EnergyItems.syphonBatteries(par1ItemStack, par3EntityPlayer, getEnergyUsed())) - { - } - } - } - - return; - } - - @Override - public void onArmourUpdate(World world, EntityPlayer player, ItemStack itemStack) - { - if (itemStack.stackTagCompound == null) - { - itemStack.setTagCompound(new NBTTagCompound()); - } - - player.addPotionEffect(new PotionEffect(Potion.digSpeed.id, 3, 1, true)); - } - - @Override - public boolean isUpgrade() - { - // TODO Auto-generated method stub - return true; - } - - @Override - public int getEnergyForTenSeconds() - { - // TODO Auto-generated method stub - return 50; - } -} diff --git a/BM_src/WayofTime/alchemicalWizardry/common/items/sigil/SigilOfWind.java b/BM_src/WayofTime/alchemicalWizardry/common/items/sigil/SigilOfWind.java deleted file mode 100644 index bc89f98c..00000000 --- a/BM_src/WayofTime/alchemicalWizardry/common/items/sigil/SigilOfWind.java +++ /dev/null @@ -1,196 +0,0 @@ -package WayofTime.alchemicalWizardry.common.items.sigil; - -import WayofTime.alchemicalWizardry.AlchemicalWizardry; -import WayofTime.alchemicalWizardry.api.items.interfaces.ArmourUpgrade; -import WayofTime.alchemicalWizardry.common.items.EnergyItems; -import cpw.mods.fml.relauncher.Side; -import cpw.mods.fml.relauncher.SideOnly; -import net.minecraft.client.renderer.texture.IconRegister; -import net.minecraft.entity.Entity; -import net.minecraft.entity.player.EntityPlayer; -import net.minecraft.item.ItemStack; -import net.minecraft.nbt.NBTTagCompound; -import net.minecraft.potion.PotionEffect; -import net.minecraft.util.Icon; -import net.minecraft.world.World; - -import java.util.List; - -public class SigilOfWind extends EnergyItems implements ArmourUpgrade -{ - @SideOnly(Side.CLIENT) - private static Icon activeIcon; - @SideOnly(Side.CLIENT) - private static Icon passiveIcon; - - public SigilOfWind(int id) - { - super(id); - this.maxStackSize = 1; - //setMaxDamage(100); - setEnergyUsed(250); - setCreativeTab(AlchemicalWizardry.tabBloodMagic); - } - - @Override - public void addInformation(ItemStack par1ItemStack, EntityPlayer par2EntityPlayer, List par3List, boolean par4) - { - par3List.add("Best not to wear a skirt."); - - if (!(par1ItemStack.stackTagCompound == null)) - { - if (par1ItemStack.stackTagCompound.getBoolean("isActive")) - { - par3List.add("Activated"); - } else - { - par3List.add("Deactivated"); - } - - par3List.add("Current owner: " + par1ItemStack.stackTagCompound.getString("ownerName")); - } - } - - @Override - @SideOnly(Side.CLIENT) - public void registerIcons(IconRegister iconRegister) - { - this.itemIcon = iconRegister.registerIcon("AlchemicalWizardry:WindSigil_deactivated"); - this.activeIcon = iconRegister.registerIcon("AlchemicalWizardry:WindSigil_activated"); - this.passiveIcon = iconRegister.registerIcon("AlchemicalWizardry:WindSigil_deactivated"); - } - - @Override - public Icon getIcon(ItemStack stack, int renderPass, EntityPlayer player, ItemStack usingItem, int useRemaining) - { - if (stack.stackTagCompound == null) - { - stack.setTagCompound(new NBTTagCompound()); - } - - NBTTagCompound tag = stack.stackTagCompound; - - if (tag.getBoolean("isActive")) - { - return this.activeIcon; - } else - { - return this.passiveIcon; - } - } - - @Override - @SideOnly(Side.CLIENT) - public Icon getIconFromDamage(int par1) - { - if (par1 == 1) - { - return this.activeIcon; - } else - { - return this.passiveIcon; - } - } - - @Override - public ItemStack onItemRightClick(ItemStack par1ItemStack, World par2World, EntityPlayer par3EntityPlayer) - { - EnergyItems.checkAndSetItemOwner(par1ItemStack, par3EntityPlayer); - - if (par3EntityPlayer.isSneaking()) - { - return par1ItemStack; - } - - if (par1ItemStack.stackTagCompound == null) - { - par1ItemStack.setTagCompound(new NBTTagCompound()); - } - - NBTTagCompound tag = par1ItemStack.stackTagCompound; - tag.setBoolean("isActive", !(tag.getBoolean("isActive"))); - - if (tag.getBoolean("isActive")) - { - par1ItemStack.setItemDamage(1); - tag.setInteger("worldTimeDelay", (int) (par2World.getWorldTime() - 1) % 200); - par3EntityPlayer.addPotionEffect(new PotionEffect(AlchemicalWizardry.customPotionProjProt.id, 2, 1)); - //par3EntityPlayer.addPotionEffect(new PotionEffect(AlchemicalWizardry.customPotionProjProt.id, 2, 2)); - - //Test with added health boost - //par3EntityPlayer.addPotionEffect(new PotionEffect(Potion.field_76444_x.id, 2400,99)); - if (!par3EntityPlayer.capabilities.isCreativeMode) - { - if (!EnergyItems.syphonBatteries(par1ItemStack, par3EntityPlayer, getEnergyUsed())) - { - } - } - } else - { - par1ItemStack.setItemDamage(par1ItemStack.getMaxDamage()); - } - - return par1ItemStack; - } - - @Override - public void onUpdate(ItemStack par1ItemStack, World par2World, Entity par3Entity, int par4, boolean par5) - { - if (!(par3Entity instanceof EntityPlayer)) - { - return; - } - - EntityPlayer par3EntityPlayer = (EntityPlayer) par3Entity; - - if (par1ItemStack.stackTagCompound == null) - { - par1ItemStack.setTagCompound(new NBTTagCompound()); - } - - if (par1ItemStack.stackTagCompound.getBoolean("isActive")) - { - par3EntityPlayer.addPotionEffect(new PotionEffect(AlchemicalWizardry.customPotionProjProt.id, 2, 1)); - } - - if (par2World.getWorldTime() % 200 == par1ItemStack.stackTagCompound.getInteger("worldTimeDelay") && par1ItemStack.stackTagCompound.getBoolean("isActive")) - { - //par3EntityPlayer.addPotionEffect(new PotionEffect(AlchemicalWizardry.customPotionBoost.id, 205, 1)); - - //par3EntityPlayer.addPotionEffect(new PotionEffect(AlchemicalWizardry.customPotionProjProt.id, 205, 2)); - if (!par3EntityPlayer.capabilities.isCreativeMode) - { - if (!EnergyItems.syphonBatteries(par1ItemStack, par3EntityPlayer, getEnergyUsed())) - { - } - } - } - - return; - } - - @Override - public void onArmourUpdate(World world, EntityPlayer player, ItemStack itemStack) - { - if (itemStack.stackTagCompound == null) - { - itemStack.setTagCompound(new NBTTagCompound()); - } - - player.addPotionEffect(new PotionEffect(AlchemicalWizardry.customPotionProjProt.id, 3, 1)); - } - - @Override - public boolean isUpgrade() - { - // TODO Auto-generated method stub - return true; - } - - @Override - public int getEnergyForTenSeconds() - { - // TODO Auto-generated method stub - return 150; - } -} \ No newline at end of file diff --git a/BM_src/WayofTime/alchemicalWizardry/common/items/sigil/VoidSigil.java b/BM_src/WayofTime/alchemicalWizardry/common/items/sigil/VoidSigil.java deleted file mode 100644 index 7188c6d8..00000000 --- a/BM_src/WayofTime/alchemicalWizardry/common/items/sigil/VoidSigil.java +++ /dev/null @@ -1,268 +0,0 @@ -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; -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 VoidSigil extends ItemBucket implements ArmourUpgrade -{ - private int isFull; - private int energyUsed; - - public VoidSigil(int id) - { - super(id, 0); - this.maxStackSize = 1; - //setMaxDamage(1000); - setEnergyUsed(50); - isFull = 0; - setCreativeTab(AlchemicalWizardry.tabBloodMagic); - } - - @Override - @SideOnly(Side.CLIENT) - public void registerIcons(IconRegister iconRegister) - { - this.itemIcon = iconRegister.registerIcon("AlchemicalWizardry:VoidSigil"); - } - - @Override - public void addInformation(ItemStack par1ItemStack, EntityPlayer par2EntityPlayer, List par3List, boolean par4) - { - par3List.add("Better than a Swiffer!"); - - if (!(par1ItemStack.stackTagCompound == null)) - { - par3List.add("Current owner: " + par1ItemStack.stackTagCompound.getString("ownerName")); - } - } - - @Override - public ItemStack getContainerItemStack(ItemStack itemStack) - { - ItemStack copiedStack = itemStack.copy(); - copiedStack.setItemDamage(copiedStack.getItemDamage() + getEnergyUsed()); - copiedStack.stackSize = 1; - return copiedStack; - } - - protected void setEnergyUsed(int par1int) - { - this.energyUsed = par1int; - } - - protected int getEnergyUsed() - { - 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) - { - EnergyItems.checkAndSetItemOwner(par1ItemStack, par3EntityPlayer); - - if(SpellHelper.isFakePlayer(par2World, par3EntityPlayer)) - { - return par1ItemStack; - } - - if (par3EntityPlayer.isSneaking()) - { - return par1ItemStack; - } - - float f = 1.0F; - double d0 = par3EntityPlayer.prevPosX + (par3EntityPlayer.posX - par3EntityPlayer.prevPosX) * (double) f; - double d1 = par3EntityPlayer.prevPosY + (par3EntityPlayer.posY - par3EntityPlayer.prevPosY) * (double) f + 1.62D - (double) par3EntityPlayer.yOffset; - double d2 = par3EntityPlayer.prevPosZ + (par3EntityPlayer.posZ - par3EntityPlayer.prevPosZ) * (double) f; - boolean flag = this.isFull == 0; - MovingObjectPosition movingobjectposition = this.getMovingObjectPositionFromPlayer(par2World, par3EntityPlayer, flag); - - if (movingobjectposition == null) - { - return par1ItemStack; - } else - { - FillBucketEvent event = new FillBucketEvent(par3EntityPlayer, par1ItemStack, par2World, movingobjectposition); - - if (MinecraftForge.EVENT_BUS.post(event)) - { - return par1ItemStack; - } - - if (movingobjectposition.typeOfHit == EnumMovingObjectType.TILE) - { - int i = movingobjectposition.blockX; - int j = movingobjectposition.blockY; - int k = movingobjectposition.blockZ; - - if (!par2World.canMineBlock(par3EntityPlayer, i, j, k)) - { - 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) - { - if (!par3EntityPlayer.canPlayerEdit(i, j, k, movingobjectposition.sideHit, par1ItemStack)) - { - return par1ItemStack; - } - - if (par2World.getBlockMaterial(i, j, k) instanceof MaterialLiquid) - { - par2World.setBlockToAir(i, j, k); - - if (!par3EntityPlayer.capabilities.isCreativeMode) - { - if (!EnergyItems.syphonBatteries(par1ItemStack, par3EntityPlayer, getEnergyUsed())) - { - } - } else - { - return par1ItemStack; - } - } - } - } - - return par1ItemStack; - } - } - - /** - * Attempts to place the liquid contained inside the bucket. - */ - public boolean tryPlaceContainedLiquid(World par1World, double par2, double par4, double par6, int par8, int par9, int par10) - { - return false; - } - - @Override - public void onArmourUpdate(World world, EntityPlayer player, - ItemStack thisItemStack) - { - // TODO Auto-generated method stub - } - - @Override - public boolean isUpgrade() - { - // TODO Auto-generated method stub - return true; - } - - @Override - public int getEnergyForTenSeconds() - { - // TODO Auto-generated method stub - return 25; - } -} diff --git a/BM_src/WayofTime/alchemicalWizardry/common/items/sigil/WaterSigil.java b/BM_src/WayofTime/alchemicalWizardry/common/items/sigil/WaterSigil.java deleted file mode 100644 index 3a5fb129..00000000 --- a/BM_src/WayofTime/alchemicalWizardry/common/items/sigil/WaterSigil.java +++ /dev/null @@ -1,298 +0,0 @@ -package WayofTime.alchemicalWizardry.common.items.sigil; - -import java.util.List; - -import net.minecraft.block.Block; -import net.minecraft.client.renderer.texture.IconRegister; -import net.minecraft.entity.player.EntityPlayer; -import net.minecraft.item.ItemBucket; -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 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 -{ - /** - * field for checking if the bucket has been filled. - */ - private int isFull = Block.waterMoving.blockID; - private int energyUsed; - - public WaterSigil(int par1) - { - super(par1, Block.waterMoving.blockID); - this.maxStackSize = 1; - //setMaxDamage(1000); - setEnergyUsed(100); - setCreativeTab(AlchemicalWizardry.tabBloodMagic); - } - - @Override - public void onCreated(ItemStack par1ItemStack, World par2World, EntityPlayer par3EntityPlayer) - { - if (par1ItemStack.stackTagCompound == null) - { - par1ItemStack.setTagCompound(new NBTTagCompound()); - } - } - - @Override - @SideOnly(Side.CLIENT) - public void registerIcons(IconRegister iconRegister) - { - this.itemIcon = iconRegister.registerIcon("AlchemicalWizardry:WaterSigil"); - } - - @Override - public ItemStack getContainerItemStack(ItemStack itemStack) - { - ItemStack copiedStack = itemStack.copy(); - copiedStack.setItemDamage(copiedStack.getItemDamage() + 1); - copiedStack.stackSize = 1; - return copiedStack; - } - - @Override - public void addInformation(ItemStack par1ItemStack, EntityPlayer par2EntityPlayer, List par3List, boolean par4) - { - par3List.add("Infinite water, anyone?"); - - if (!(par1ItemStack.stackTagCompound == null)) - { - par3List.add("Current owner: " + par1ItemStack.stackTagCompound.getString("ownerName")); - } - } - - /** - * Called whenever this item is equipped and the right mouse button is pressed. Args: itemStack, world, entityPlayer - */ - public ItemStack onItemRightClick(ItemStack par1ItemStack, World par2World, EntityPlayer par3EntityPlayer) - { - EnergyItems.checkAndSetItemOwner(par1ItemStack, par3EntityPlayer); - - if(SpellHelper.isFakePlayer(par2World, par3EntityPlayer)) - { - return par1ItemStack; - } - - if (par3EntityPlayer.isSneaking()) - { - return par1ItemStack; - } - - float f = 1.0F; - double d0 = par3EntityPlayer.prevPosX + (par3EntityPlayer.posX - par3EntityPlayer.prevPosX) * (double) f; - double d1 = par3EntityPlayer.prevPosY + (par3EntityPlayer.posY - par3EntityPlayer.prevPosY) * (double) f + 1.62D - (double) par3EntityPlayer.yOffset; - double d2 = par3EntityPlayer.prevPosZ + (par3EntityPlayer.posZ - par3EntityPlayer.prevPosZ) * (double) f; - boolean flag = this.isFull == 0; - MovingObjectPosition movingobjectposition = this.getMovingObjectPositionFromPlayer(par2World, par3EntityPlayer, flag); - - if (movingobjectposition == null) - { - return par1ItemStack; - } else - { - if (movingobjectposition.typeOfHit == EnumMovingObjectType.TILE) - { - int i = movingobjectposition.blockX; - int j = movingobjectposition.blockY; - int k = movingobjectposition.blockZ; - - if (!par2World.canMineBlock(par3EntityPlayer, i, j, k)) - { - 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) - { - //Empty - } else - { - 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 (!par3EntityPlayer.canPlayerEdit(i, j, k, movingobjectposition.sideHit, par1ItemStack)) - { - return par1ItemStack; - } - - if (this.tryPlaceContainedLiquid(par2World, d0, d1, d2, i, j, k) && !par3EntityPlayer.capabilities.isCreativeMode) - { - if (!par3EntityPlayer.capabilities.isCreativeMode) - { - if (!EnergyItems.syphonBatteries(par1ItemStack, par3EntityPlayer, getEnergyUsed())) - { - } - } else - { - return par1ItemStack; - } - } - } - } - - return par1ItemStack; - } - } - - /** - * Attempts to place the liquid contained inside the bucket. - */ - public boolean tryPlaceContainedLiquid(World par1World, double par2, double par4, double par6, int par8, int par9, int par10) - { - if (this.isFull <= 0) - { - return false; - } else if (!par1World.isAirBlock(par8, par9, par10) && par1World.getBlockMaterial(par8, par9, par10).isSolid()) - { - return false; - } else if ((par1World.getBlockId(par8, par9, par10) == Block.waterMoving.blockID || par1World.getBlockId(par8, par9, par10) == Block.waterStill.blockID) && par1World.getBlockMetadata(par8, par9, par10) == 0) - { - return false; - } else - { - if (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, this.isFull, 0, 3); - } - - return true; - } - } - - protected void setEnergyUsed(int par1int) - { - this.energyUsed = par1int; - } - - protected int getEnergyUsed() - { - return this.energyUsed; - } - //Heals the player using the item. If the player is at full health, or if the durability cannot be used any more, - //the item is not used. - -// 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(); -// } -// } - - @Override - public void onArmourUpdate(World world, EntityPlayer player, - ItemStack thisItemStack) - { - // TODO Auto-generated method stub - //PotionEffect effect = new PotionEffect(Potion.waterBreathing.id, 2,9); - player.addPotionEffect(new PotionEffect(Potion.waterBreathing.id, 2, 9,true)); - } - - @Override - public boolean isUpgrade() - { - // TODO Auto-generated method stub - return true; - } - - @Override - public int getEnergyForTenSeconds() - { - // TODO Auto-generated method stub - return 50; - } -} diff --git a/BM_src/WayofTime/alchemicalWizardry/common/items/thaumcraft/FocusBase.java b/BM_src/WayofTime/alchemicalWizardry/common/items/thaumcraft/FocusBase.java deleted file mode 100644 index daf6abd9..00000000 --- a/BM_src/WayofTime/alchemicalWizardry/common/items/thaumcraft/FocusBase.java +++ /dev/null @@ -1,169 +0,0 @@ -package WayofTime.alchemicalWizardry.common.items.thaumcraft; - -import WayofTime.alchemicalWizardry.common.items.EnergyItems; -import cpw.mods.fml.relauncher.Side; -import cpw.mods.fml.relauncher.SideOnly; -import net.minecraft.client.renderer.texture.IconRegister; -import net.minecraft.entity.player.EntityPlayer; -import net.minecraft.item.EnumRarity; -import net.minecraft.item.ItemStack; -import net.minecraft.util.Icon; -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 thaumcraft.api.wands.IWandFocus; - -import java.util.List; - -public abstract class FocusBase extends EnergyItems implements IWandFocus -{ - protected Icon ornament, depth; - - public FocusBase(int par1) - { - super(par1); - setMaxDamage(1); - setNoRepair(); - setMaxStackSize(1); - } - - boolean hasOrnament() - { - return false; - } - - boolean hasDepth() - { - return false; - } - - @Override - @SideOnly(Side.CLIENT) - public void registerIcons(IconRegister iconRegister) - { - super.registerIcons(iconRegister); -// if(hasOrnament()) -// { -// ornament = iconRegister.registerIcon("AlchemicalWizardry:" + this.getUnlocalizedName() + "Orn"); -// } -// if(hasDepth()) -// { -// depth = iconRegister.registerIcon("AlchemicalWizardry:" + this.getUnlocalizedName() + "Depth"); -// } - } - - @Override - public boolean isItemTool(ItemStack par1ItemStack) - { - return true; - } - - @Override - public void addInformation(ItemStack par1ItemStack, EntityPlayer par2EntityPlayer, List par3List, boolean par4) - { - super.addInformation(par1ItemStack, par2EntityPlayer, par3List, par4); - AspectList cost = getVisCost(); - - if (cost != null && cost.size() > 0) - { - par3List.add(StatCollector.translateToLocal(isVisCostPerTick() ? "item.Focus.cost2" : "item.Focus.cost1")); - - for (Aspect aspect : cost.getAspectsSorted()) - { - float amount = cost.getAmount(aspect) / 100.0F; - par3List.add(" " + '\u00a7' + aspect.getChatcolor() + aspect.getName() + '\u00a7' + "r x " + amount); - } - } - } - - @Override - public int getItemEnchantability() - { - return 5; - } - - @Override - public EnumRarity getRarity(ItemStack itemstack) - { - return EnumRarity.rare; - } - - @Override - public Icon getOrnament() - { - return ornament; - } - - @Override - public Icon getFocusDepthLayerIcon() - { - return depth; - } - - @Override - public WandFocusAnimation getAnimation() - { - return WandFocusAnimation.WAVE; - } - - @Override - public boolean isVisCostPerTick() - { - return false; - } - - public boolean isUseItem() - { - return isVisCostPerTick(); - } - - @Override - public ItemStack onFocusRightClick(ItemStack paramItemStack, World paramWorld, EntityPlayer paramEntityPlayer, MovingObjectPosition paramMovingObjectPosition) - { - if (isUseItem()) - { - paramEntityPlayer.setItemInUse(paramItemStack, Integer.MAX_VALUE); - } - - return paramItemStack; - } - - @Override - public void onUsingFocusTick(ItemStack paramItemStack, EntityPlayer paramEntityPlayer, int paramInt) - { - // NO-OP - } - - @Override - public void onPlayerStoppedUsingFocus(ItemStack paramItemStack, World paramWorld, EntityPlayer paramEntityPlayer, int paramInt) - { - // NO-OP - } - - @Override - public String getSortingHelper(ItemStack paramItemStack) - { - return "00"; - } - - @Override - public boolean onFocusBlockStartBreak(ItemStack paramItemStack, int paramInt1, int paramInt2, int paramInt3, EntityPlayer paramEntityPlayer) - { - return false; - } - - @Override - public boolean acceptsEnchant(int id) - { - if (id == ThaumcraftApi.enchantFrugal || - id == ThaumcraftApi.enchantPotency) - { - return true; - } - - return false; - } -} diff --git a/BM_src/WayofTime/alchemicalWizardry/common/items/thaumcraft/FocusBloodBlast.java b/BM_src/WayofTime/alchemicalWizardry/common/items/thaumcraft/FocusBloodBlast.java deleted file mode 100644 index 6c336f65..00000000 --- a/BM_src/WayofTime/alchemicalWizardry/common/items/thaumcraft/FocusBloodBlast.java +++ /dev/null @@ -1,191 +0,0 @@ -package WayofTime.alchemicalWizardry.common.items.thaumcraft; - -import WayofTime.alchemicalWizardry.AlchemicalWizardry; -import WayofTime.alchemicalWizardry.common.entity.projectile.EnergyBlastProjectile; -import WayofTime.alchemicalWizardry.common.items.EnergyItems; -import cpw.mods.fml.relauncher.Side; -import cpw.mods.fml.relauncher.SideOnly; -import net.minecraft.client.renderer.texture.IconRegister; -import net.minecraft.entity.player.EntityPlayer; -import net.minecraft.item.Item; -import net.minecraft.item.ItemStack; -import net.minecraft.world.World; -import thaumcraft.api.aspects.Aspect; -import thaumcraft.api.aspects.AspectList; - -import java.lang.reflect.InvocationTargetException; -import java.lang.reflect.Method; -import java.util.HashMap; -import java.util.List; -import java.util.Map; - -public class FocusBloodBlast extends FocusBase -{ - private static final AspectList visUsage = new AspectList().add(Aspect.AIR, 15).add(Aspect.ENTROPY, 45); - - private final int maxCooldown = 7; - - public static Map playerCooldown = new HashMap(); - - public FocusBloodBlast(int par1) - { - super(par1); - this.setUnlocalizedName("focusBloodBlast"); - this.setEnergyUsed(100); - } - - @Override - @SideOnly(Side.CLIENT) - public void registerIcons(IconRegister iconRegister) - { - super.registerIcons(iconRegister); - - if (hasOrnament()) - { - ornament = iconRegister.registerIcon("AlchemicalWizardry:" + "focusBloodBlast" + "Orn"); - } - - if (hasDepth()) - { - depth = iconRegister.registerIcon("AlchemicalWizardry:" + "focusBloodBlast" + "Depth"); - } - } - - @Override - public void addInformation(ItemStack par1ItemStack, EntityPlayer par2EntityPlayer, List par3List, boolean par4) - { - //super.addInformation(par1ItemStack, par2EntityPlayer, par3List, par4); - if (!(par1ItemStack.stackTagCompound == null)) - { - if (!par1ItemStack.stackTagCompound.getString("ownerName").equals("")) - { - par3List.add("Current owner: " + par1ItemStack.stackTagCompound.getString("ownerName")); - } - } - } - - @Override - public void onUsingFocusTick(ItemStack stack, EntityPlayer par3EntityPlayer, int ticks) - { - if (AlchemicalWizardry.isThaumcraftLoaded) - { - Item item = stack.getItem(); - Class clazz = item.getClass(); - - while (!clazz.getName().equals("thaumcraft.common.items.wands.ItemWandCasting")) - { - if (clazz == Object.class) - { - return; - } - - clazz = clazz.getSuperclass(); - } - - //Item testItem = item.set - - //Method consumeAllVis = null; - try - { - if (!playerCooldown.containsKey(par3EntityPlayer.username)) - { - playerCooldown.put(par3EntityPlayer.username, 0); - } - - Method getFocusItem = clazz.getMethod("getFocusItem", ItemStack.class); - ItemStack focusStack = (ItemStack) getFocusItem.invoke(item, stack); - //int potency = EnchantmentHelper.getEnchantmentLevel(ThaumcraftApi.enchantPotency, focusStack); - int cooldown = playerCooldown.get(par3EntityPlayer.username) + 1; - playerCooldown.put(par3EntityPlayer.username, cooldown); - - if (cooldown >= this.maxCooldown) - { - Method consumeAllVis = clazz.getMethod("consumeAllVis", ItemStack.class, EntityPlayer.class, AspectList.class, boolean.class); - - if ((Boolean) consumeAllVis.invoke(item, stack, par3EntityPlayer, getVisCost(), true)) - { - playerCooldown.put(par3EntityPlayer.username, 0); - EnergyItems.checkAndSetItemOwner(focusStack, par3EntityPlayer); - World world = par3EntityPlayer.worldObj; - - if (!par3EntityPlayer.capabilities.isCreativeMode) - { - this.syphonBatteries(focusStack, par3EntityPlayer, 100); - } - - //world.playSoundAtEntity(par3EntityPlayer, "random.bow", 0.5F, 0.4F / (itemRand.nextFloat() * 0.4F + 0.8F)); - world.playSoundAtEntity(par3EntityPlayer, "thaumcraft:wand", 0.5F, 1F); - - if (!world.isRemote) - { - //par2World.spawnEntityInWorld(new EnergyBlastProjectile(par2World, par3EntityPlayer, damage)); - world.spawnEntityInWorld(new EnergyBlastProjectile(world, par3EntityPlayer, (int) (5))); - //this.setDelay(par1ItemStack, maxDelay); - } - } - } - } catch (NoSuchMethodException e1) - { - // TODO Auto-generated catch block - e1.printStackTrace(); - } catch (SecurityException e1) - { - // TODO Auto-generated catch block - e1.printStackTrace(); - } catch (IllegalAccessException e) - { - // TODO Auto-generated catch block - e.printStackTrace(); - } catch (IllegalArgumentException e) - { - // TODO Auto-generated catch block - e.printStackTrace(); - } catch (InvocationTargetException e) - { - // TODO Auto-generated catch block - e.printStackTrace(); - } - } - } - - @Override - public void onPlayerStoppedUsingFocus(ItemStack paramItemStack, World paramWorld, EntityPlayer paramEntityPlayer, int paramInt) - { - playerCooldown.put(paramEntityPlayer.username, 0); - } - - @Override - public String getSortingHelper(ItemStack itemstack) - { - return "BLOODBLAST"; - } - - @Override - public int getFocusColor() - { - return 0x8A0707; - } - - @Override - public AspectList getVisCost() - { - return visUsage; - } - - @Override - public boolean isVisCostPerTick() - { - return true; - } - - @Override - public WandFocusAnimation getAnimation() - { - return WandFocusAnimation.WAVE; - } - - boolean hasOrnament() - { - return true; - } -} diff --git a/BM_src/WayofTime/alchemicalWizardry/common/items/thaumcraft/FocusGravityWell.java b/BM_src/WayofTime/alchemicalWizardry/common/items/thaumcraft/FocusGravityWell.java deleted file mode 100644 index 505f97f9..00000000 --- a/BM_src/WayofTime/alchemicalWizardry/common/items/thaumcraft/FocusGravityWell.java +++ /dev/null @@ -1,274 +0,0 @@ -package WayofTime.alchemicalWizardry.common.items.thaumcraft; - -import WayofTime.alchemicalWizardry.AlchemicalWizardry; -import WayofTime.alchemicalWizardry.common.items.EnergyItems; -import cpw.mods.fml.relauncher.Side; -import cpw.mods.fml.relauncher.SideOnly; -import net.minecraft.client.renderer.texture.IconRegister; -import net.minecraft.enchantment.EnchantmentHelper; -import net.minecraft.entity.Entity; -import net.minecraft.entity.player.EntityPlayer; -import net.minecraft.item.Item; -import net.minecraft.item.ItemStack; -import net.minecraft.util.AxisAlignedBB; -import net.minecraft.util.Vec3; -import net.minecraft.world.World; -import thaumcraft.api.ThaumcraftApi; -import thaumcraft.api.aspects.Aspect; -import thaumcraft.api.aspects.AspectList; - -import java.lang.reflect.InvocationTargetException; -import java.lang.reflect.Method; -import java.util.HashMap; -import java.util.List; -import java.util.Map; - -public class FocusGravityWell extends FocusBase -{ - private static final AspectList visUsage = new AspectList().add(Aspect.AIR, 5).add(Aspect.ORDER, 5); - - private final int maxCooldown = 1; - - public static Map playerCooldown = new HashMap(); - - public FocusGravityWell(int par1) - { - super(par1); - this.setUnlocalizedName("focusGravityWell"); - this.setEnergyUsed(100); - } - - @Override - @SideOnly(Side.CLIENT) - public void registerIcons(IconRegister iconRegister) - { - super.registerIcons(iconRegister); - - if (hasOrnament()) - { - ornament = iconRegister.registerIcon("AlchemicalWizardry:" + "focusGravityWell" + "Orn"); - } - - if (hasDepth()) - { - depth = iconRegister.registerIcon("AlchemicalWizardry:" + "focusGravityWell" + "Depth"); - } - } - - @Override - public void addInformation(ItemStack par1ItemStack, EntityPlayer par2EntityPlayer, List par3List, boolean par4) - { - //super.addInformation(par1ItemStack, par2EntityPlayer, par3List, par4); - if (!(par1ItemStack.stackTagCompound == null)) - { - if (!par1ItemStack.stackTagCompound.getString("ownerName").equals("")) - { - par3List.add("Current owner: " + par1ItemStack.stackTagCompound.getString("ownerName")); - } - } - } - - @Override - public void onUsingFocusTick(ItemStack stack, EntityPlayer par3EntityPlayer, int ticks) - { - if (AlchemicalWizardry.isThaumcraftLoaded) - { - Item item = stack.getItem(); - Class clazz = item.getClass(); - - while (!clazz.getName().equals("thaumcraft.common.items.wands.ItemWandCasting")) - { - if (clazz == Object.class) - { - return; - } - - clazz = clazz.getSuperclass(); - } - - //Item testItem = item.set - - //Method consumeAllVis = null; - try - { - if (!playerCooldown.containsKey(par3EntityPlayer.username)) - { - playerCooldown.put(par3EntityPlayer.username, 0); - } - - Method getFocusItem = clazz.getMethod("getFocusItem", ItemStack.class); - ItemStack focusStack = (ItemStack) getFocusItem.invoke(item, stack); - //int potency = EnchantmentHelper.getEnchantmentLevel(ThaumcraftApi.enchantPotency, focusStack); - int cooldown = playerCooldown.get(par3EntityPlayer.username) + 1; - playerCooldown.put(par3EntityPlayer.username, cooldown); - //if(cooldown>=this.maxCooldown) - { - Method consumeAllVis = clazz.getMethod("consumeAllVis", ItemStack.class, EntityPlayer.class, AspectList.class, boolean.class); - - if ((Boolean) consumeAllVis.invoke(item, stack, par3EntityPlayer, getVisCost(), true)) - { - playerCooldown.put(par3EntityPlayer.username, 0); - EnergyItems.checkAndSetItemOwner(focusStack, par3EntityPlayer); - Vec3 vector = par3EntityPlayer.getLookVec(); - float distance = 2; - //if(par3EntityPlayer.worldObj.isRemote) - { - List entities = par3EntityPlayer.worldObj.getEntitiesWithinAABB(Entity.class, AxisAlignedBB.getBoundingBox(par3EntityPlayer.posX + vector.xCoord * distance - 0.5f, par3EntityPlayer.posY + vector.yCoord * distance - 0.5f, par3EntityPlayer.posZ + vector.zCoord * distance - 0.5f, par3EntityPlayer.posX + vector.xCoord * distance + 0.5f, par3EntityPlayer.posY + vector.yCoord * distance + 0.5f, par3EntityPlayer.posZ + vector.zCoord * distance + 0.5f).expand(1, 1, 1)); - - for (Entity entity : entities) - { - if (entity.getEntityName() == par3EntityPlayer.username) - { - continue; - } - - entity.motionX = par3EntityPlayer.posX + vector.xCoord * distance - entity.posX; - entity.motionY = par3EntityPlayer.posY + vector.yCoord * distance - entity.posY; - entity.motionZ = par3EntityPlayer.posZ + vector.zCoord * distance - entity.posZ; - //entity.setVelocity(par3EntityPlayer.posX+vector.xCoord*distance-entity.posX, par3EntityPlayer.posY+vector.yCoord*distance-entity.posY, par3EntityPlayer.posZ+vector.zCoord*distance-entity.posZ); - } - } - World world = par3EntityPlayer.worldObj; - - if (!par3EntityPlayer.capabilities.isCreativeMode) - { - this.syphonBatteriesWithoutParticles(focusStack, par3EntityPlayer, 10, false); - } - } - } - } catch (NoSuchMethodException e1) - { - // TODO Auto-generated catch block - e1.printStackTrace(); - } catch (SecurityException e1) - { - // TODO Auto-generated catch block - e1.printStackTrace(); - } catch (IllegalAccessException e) - { - // TODO Auto-generated catch block - e.printStackTrace(); - } catch (IllegalArgumentException e) - { - // TODO Auto-generated catch block - e.printStackTrace(); - } catch (InvocationTargetException e) - { - // TODO Auto-generated catch block - e.printStackTrace(); - } - } - } - - @Override - public void onPlayerStoppedUsingFocus(ItemStack stack, World paramWorld, EntityPlayer par3EntityPlayer, int paramInt) - { - playerCooldown.put(par3EntityPlayer.username, 0); - - if (AlchemicalWizardry.isThaumcraftLoaded) - { - Item item = stack.getItem(); - Class clazz = item.getClass(); - - while (!clazz.getName().equals("thaumcraft.common.items.wands.ItemWandCasting")) - { - if (clazz == Object.class) - { - return; - } - - clazz = clazz.getSuperclass(); - } - - //Item testItem = item.set - - //Method consumeAllVis = null; - try - { - Method getFocusItem = clazz.getMethod("getFocusItem", ItemStack.class); - ItemStack focusStack = (ItemStack) getFocusItem.invoke(item, stack); - int potency = EnchantmentHelper.getEnchantmentLevel(ThaumcraftApi.enchantPotency, focusStack); - - if (potency > 0) - { - EnergyItems.checkAndSetItemOwner(focusStack, par3EntityPlayer); - Vec3 vector = par3EntityPlayer.getLookVec(); - float distance = 2; - //if(par3EntityPlayer.worldObj.isRemote) - { - List entities = par3EntityPlayer.worldObj.getEntitiesWithinAABB(Entity.class, AxisAlignedBB.getBoundingBox(par3EntityPlayer.posX + vector.xCoord * distance - 0.5f, par3EntityPlayer.posY + vector.yCoord * distance - 0.5f, par3EntityPlayer.posZ + vector.zCoord * distance - 0.5f, par3EntityPlayer.posX + vector.xCoord * distance + 0.5f, par3EntityPlayer.posY + vector.yCoord * distance + 0.5f, par3EntityPlayer.posZ + vector.zCoord * distance + 0.5f).expand(1, 1, 1)); - - for (Entity entity : entities) - { - if (entity.getEntityName() == par3EntityPlayer.username) - { - continue; - } - - float speed = 1.0F * potency; - entity.motionX = vector.xCoord * speed; - entity.motionY = vector.yCoord * speed; - entity.motionZ = vector.zCoord * speed; - //entity.setVelocity(par3EntityPlayer.posX+vector.xCoord*distance-entity.posX, par3EntityPlayer.posY+vector.yCoord*distance-entity.posY, par3EntityPlayer.posZ+vector.zCoord*distance-entity.posZ); - } - } - } - } catch (NoSuchMethodException e1) - { - // TODO Auto-generated catch block - e1.printStackTrace(); - } catch (SecurityException e1) - { - // TODO Auto-generated catch block - e1.printStackTrace(); - } catch (IllegalAccessException e) - { - // TODO Auto-generated catch block - e.printStackTrace(); - } catch (IllegalArgumentException e) - { - // TODO Auto-generated catch block - e.printStackTrace(); - } catch (InvocationTargetException e) - { - // TODO Auto-generated catch block - e.printStackTrace(); - } - } - } - - @Override - public String getSortingHelper(ItemStack itemstack) - { - return "BLOODBLAST"; - } - - @Override - public int getFocusColor() - { - return 0x8A0707; - } - - @Override - public AspectList getVisCost() - { - return visUsage; - } - - @Override - public boolean isVisCostPerTick() - { - return true; - } - - @Override - public WandFocusAnimation getAnimation() - { - return WandFocusAnimation.WAVE; - } - - boolean hasOrnament() - { - return false; - } -} diff --git a/BM_src/WayofTime/alchemicalWizardry/common/items/thaumcraft/ItemSanguineArmour.java b/BM_src/WayofTime/alchemicalWizardry/common/items/thaumcraft/ItemSanguineArmour.java deleted file mode 100644 index 8a5b2a03..00000000 --- a/BM_src/WayofTime/alchemicalWizardry/common/items/thaumcraft/ItemSanguineArmour.java +++ /dev/null @@ -1,96 +0,0 @@ -package WayofTime.alchemicalWizardry.common.items.thaumcraft; - -import java.util.List; - -import net.minecraft.client.renderer.texture.IconRegister; -import net.minecraft.entity.Entity; -import net.minecraft.entity.EntityLivingBase; -import net.minecraft.entity.player.EntityPlayer; -import net.minecraft.item.ItemArmor; -import net.minecraft.item.ItemStack; -import net.minecraft.util.Icon; -import net.minecraft.world.World; -import thaumcraft.api.IGoggles; -import thaumcraft.api.IVisDiscountGear; -import thaumcraft.api.aspects.Aspect; -import thaumcraft.api.nodes.IRevealer; -import WayofTime.alchemicalWizardry.AlchemicalWizardry; -import WayofTime.alchemicalWizardry.ModItems; -import WayofTime.alchemicalWizardry.api.items.interfaces.ArmourUpgrade; -import cpw.mods.fml.relauncher.Side; -import cpw.mods.fml.relauncher.SideOnly; - -public class ItemSanguineArmour extends ItemArmor implements IRevealer, ArmourUpgrade, IGoggles, IVisDiscountGear -{ - private static Icon helmetIcon; - - public ItemSanguineArmour(int par1) - { - super(par1, AlchemicalWizardry.sanguineArmourArmourMaterial, 4, 0); - setCreativeTab(AlchemicalWizardry.tabBloodMagic); - } - - @Override - @SideOnly(Side.CLIENT) - public void registerIcons(IconRegister iconRegister) - { - //this.itemIcon = iconRegister.registerIcon("AlchemicalWizardry:SheathedItem"); - this.itemIcon = iconRegister.registerIcon("AlchemicalWizardry:SanguineHelmet"); - } - - @Override - public String getArmorTexture(ItemStack stack, Entity entity, int slot, int layer) - { - //if(AlchemicalWizardry.isThaumcraftLoaded) - { - if (itemID == ModItems.sanguineHelmet.itemID) - { - return "alchemicalwizardry:models/armor/sanguineArmour_layer_1.png"; - } - } - return null; - } - - @Override - public void addInformation(ItemStack par1ItemStack, EntityPlayer par2EntityPlayer, List par3List, boolean par4) - { - par3List.add("A pair of goggles imbued with power"); - par3List.add("Vis discount: " + 8 + "%"); - } - - @Override - public boolean showNodes(ItemStack itemstack, EntityLivingBase player) - { - return true; - } - - @Override - public void onArmourUpdate(World world, EntityPlayer player, ItemStack thisItemStack) - { - return; - } - - @Override - public boolean isUpgrade() - { - return true; - } - - @Override - public int getEnergyForTenSeconds() - { - return 0; - } - - @Override - public boolean showIngamePopups(ItemStack itemstack, EntityLivingBase player) - { - return true; - } - - @Override - public int getVisDiscount(ItemStack stack, EntityPlayer player, Aspect aspect) - { - return 8; - } -} diff --git a/BM_src/WayofTime/alchemicalWizardry/common/mcmod.info b/BM_src/WayofTime/alchemicalWizardry/common/mcmod.info deleted file mode 100644 index cd89dc4c..00000000 --- a/BM_src/WayofTime/alchemicalWizardry/common/mcmod.info +++ /dev/null @@ -1,22 +0,0 @@ -[ -{ - "modid": "AWWayofTime", - "name": "Blood Magic: Alchemical Wizardry", - "description": "Gruesome? Probably. Worth it? Definately!", - "version": "0.2.1c", - "url": "", - "updateUrl": "", - "logoFile": "", - "mcversion": "1.6.2", - "authorList": [ - "WayofTime" - ], - "credits": "", - "screenshots": [ - ], - "parent": "", - "dependencies": [ - ] -} -] - diff --git a/BM_src/WayofTime/alchemicalWizardry/common/renderer/block/RenderConduit.java b/BM_src/WayofTime/alchemicalWizardry/common/renderer/block/RenderConduit.java deleted file mode 100644 index 6c93e00e..00000000 --- a/BM_src/WayofTime/alchemicalWizardry/common/renderer/block/RenderConduit.java +++ /dev/null @@ -1,43 +0,0 @@ -package WayofTime.alchemicalWizardry.common.renderer.block; - -import WayofTime.alchemicalWizardry.common.renderer.model.ModelConduit; -import WayofTime.alchemicalWizardry.common.tileEntity.TEConduit; -import cpw.mods.fml.client.FMLClientHandler; -import net.minecraft.client.renderer.tileentity.TileEntitySpecialRenderer; -import net.minecraft.entity.Entity; -import net.minecraft.tileentity.TileEntity; -import net.minecraft.util.ResourceLocation; -import org.lwjgl.opengl.GL11; - -public class RenderConduit extends TileEntitySpecialRenderer -{ - private ModelConduit modelConduit = new ModelConduit(); - - @Override - public void renderTileEntityAt(TileEntity tileEntity, double d0, double d1, double d2, float f) - { - if (tileEntity instanceof TEConduit) - { - TEConduit tileConduit = (TEConduit) tileEntity; - GL11.glDisable(GL11.GL_LIGHTING); - GL11.glDisable(GL11.GL_CULL_FACE); - /** - * Render the ghost item inside of the Altar, slowly spinning - */ - GL11.glPushMatrix(); - GL11.glTranslatef((float) d0 + 0.5F, (float) d1 + 1.5F, (float) d2 + 0.5F); - ResourceLocation test = new ResourceLocation("alchemicalwizardry:textures/models/Conduit.png"); - FMLClientHandler.instance().getClient().renderEngine.bindTexture(test); - GL11.glPushMatrix(); - GL11.glRotatef(180F, 0.0F, 0.0F, 1.0F); - //GL11.glRotatef(90F, 0.0F, 0.0F, 1.0F); - //A reference to your Model file. Again, very important. - this.modelConduit.render((Entity) null, 0.0F, 0.0F, 0.0F, 0.0F, 0.0F, 0.0625F, tileConduit.getInputDirection(), tileConduit.getOutputDirection()); - //Tell it to stop rendering for both the PushMatrix's - GL11.glPopMatrix(); - GL11.glPopMatrix(); - GL11.glEnable(GL11.GL_CULL_FACE); - GL11.glEnable(GL11.GL_LIGHTING); - } - } -} \ No newline at end of file diff --git a/BM_src/WayofTime/alchemicalWizardry/common/renderer/block/RenderPedestal.java b/BM_src/WayofTime/alchemicalWizardry/common/renderer/block/RenderPedestal.java deleted file mode 100644 index b5a6bc6f..00000000 --- a/BM_src/WayofTime/alchemicalWizardry/common/renderer/block/RenderPedestal.java +++ /dev/null @@ -1,250 +0,0 @@ -package WayofTime.alchemicalWizardry.common.renderer.block; - -import WayofTime.alchemicalWizardry.common.renderer.model.ModelPedestal; -import WayofTime.alchemicalWizardry.common.tileEntity.TEPedestal; -import cpw.mods.fml.client.FMLClientHandler; -import net.minecraft.client.renderer.entity.RenderItem; -import net.minecraft.client.renderer.entity.RenderManager; -import net.minecraft.client.renderer.tileentity.TileEntitySpecialRenderer; -import net.minecraft.entity.Entity; -import net.minecraft.entity.item.EntityItem; -import net.minecraft.item.ItemBlock; -import net.minecraft.item.ItemStack; -import net.minecraft.tileentity.TileEntity; -import net.minecraft.util.ResourceLocation; -import net.minecraftforge.common.ForgeDirection; -import org.lwjgl.opengl.GL11; - -public class RenderPedestal extends TileEntitySpecialRenderer -{ - private ModelPedestal modelPedestal = new ModelPedestal(); - private final RenderItem customRenderItem; - - public RenderPedestal() - { - customRenderItem = new RenderItem() - { - @Override - public boolean shouldBob() - { - return false; - } - }; - customRenderItem.setRenderManager(RenderManager.instance); - } - - @Override - public void renderTileEntityAt(TileEntity tileEntity, double d0, double d1, double d2, float f) - { - if (tileEntity instanceof TEPedestal) - { - TEPedestal tileAltar = (TEPedestal) tileEntity; - GL11.glDisable(GL11.GL_LIGHTING); - GL11.glDisable(GL11.GL_CULL_FACE); - /** - * Render the ghost item inside of the Altar, slowly spinning - */ - GL11.glPushMatrix(); - GL11.glTranslatef((float) d0 + 0.5F, (float) d1 + 1.5F, (float) d2 + 0.5F); - ResourceLocation test = new ResourceLocation("alchemicalwizardry:textures/models/Pedestal.png"); - FMLClientHandler.instance().getClient().renderEngine.bindTexture(test); - GL11.glPushMatrix(); - GL11.glRotatef(180F, 0.0F, 0.0F, 1.0F); - //A reference to your Model file. Again, very important. - this.modelPedestal.render((Entity) null, 0.0F, 0.0F, -0.1F, 0.0F, 0.0F, 0.0625F); - //Tell it to stop rendering for both the PushMatrix's - GL11.glPopMatrix(); - GL11.glPopMatrix(); - GL11.glPushMatrix(); - - if (tileAltar.getStackInSlot(0) != null) - { - float scaleFactor = getGhostItemScaleFactor(tileAltar.getStackInSlot(0)); - float rotationAngle = (float) (720.0 * (System.currentTimeMillis() & 0x3FFFL) / 0x3FFFL); - EntityItem ghostEntityItem = new EntityItem(tileAltar.worldObj); - ghostEntityItem.hoverStart = 0.0F; - ghostEntityItem.setEntityItemStack(tileAltar.getStackInSlot(0)); - //translateGhostItemByOrientation(ghostEntityItem.getEntityItem(), d0, d1, d2, ForgeDirection.DOWN); - float displacement = 0.2F; - - if (ghostEntityItem.getEntityItem().getItem() instanceof ItemBlock) - { - GL11.glTranslatef((float) d0 + 0.5F, (float) d1 + displacement + 0.7F, (float) d2 + 0.5F); - } else - { - GL11.glTranslatef((float) d0 + 0.5F, (float) d1 + displacement + 0.6F, (float) d2 + 0.5F); - } - - //GL11.glTranslatef((float) tileAltar.xCoord + 0.5F, (float) tileAltar.yCoord + 2.7F, (float) tileAltar.zCoord + 0.5F); - GL11.glScalef(scaleFactor, scaleFactor, scaleFactor); - GL11.glRotatef(rotationAngle, 0.0F, 1.0F, 0.0F); - customRenderItem.doRenderItem(ghostEntityItem, 0, 0, 0, 0, 0); - } - - GL11.glPopMatrix(); - GL11.glEnable(GL11.GL_CULL_FACE); - GL11.glEnable(GL11.GL_LIGHTING); - } - } - - private float getGhostItemScaleFactor(ItemStack itemStack) - { - float scaleFactor = 1.0F; - - if (itemStack != null) - { - if (itemStack.getItem() instanceof ItemBlock) - { - switch (customRenderItem.getMiniBlockCount(itemStack)) - { - case 1: - return 0.90F; - - case 2: - return 0.90F; - - case 3: - return 0.90F; - - case 4: - return 0.90F; - - case 5: - return 0.80F; - - default: - return 0.90F; - } - } else - { - switch (customRenderItem.getMiniItemCount(itemStack)) - { - case 1: - return 0.65F; - - case 2: - return 0.65F; - - case 3: - return 0.65F; - - case 4: - return 0.65F; - - default: - return 0.65F; - } - } - } - - return scaleFactor; - } - - private void translateGhostItemByOrientation(ItemStack ghostItemStack, double x, double y, double z, ForgeDirection forgeDirection) - { - if (ghostItemStack != null) - { - if (ghostItemStack.getItem() instanceof ItemBlock) - { - switch (forgeDirection) - { - case DOWN: - { - GL11.glTranslatef((float) x + 0.5F, (float) y + 2.7F, (float) z + 0.5F); - return; - } - - case UP: - { - GL11.glTranslatef((float) x + 0.5F, (float) y + 0.25F, (float) z + 0.5F); - return; - } - - case NORTH: - { - GL11.glTranslatef((float) x + 0.5F, (float) y + 0.5F, (float) z + 0.7F); - return; - } - - case SOUTH: - { - GL11.glTranslatef((float) x + 0.5F, (float) y + 0.5F, (float) z + 0.3F); - return; - } - - case EAST: - { - GL11.glTranslatef((float) x + 0.3F, (float) y + 0.5F, (float) z + 0.5F); - return; - } - - case WEST: - { - GL11.glTranslatef((float) x + 0.70F, (float) y + 0.5F, (float) z + 0.5F); - return; - } - - case UNKNOWN: - { - return; - } - - default: - { - return; - } - } - } else - { - switch (forgeDirection) - { - case DOWN: - { - GL11.glTranslatef((float) x + 0.5F, (float) y + 0.6F, (float) z + 0.5F); - return; - } - - case UP: - { - GL11.glTranslatef((float) x + 0.5F, (float) y + 0.20F, (float) z + 0.5F); - return; - } - - case NORTH: - { - GL11.glTranslatef((float) x + 0.5F, (float) y + 0.4F, (float) z + 0.7F); - return; - } - - case SOUTH: - { - GL11.glTranslatef((float) x + 0.5F, (float) y + 0.4F, (float) z + 0.3F); - return; - } - - case EAST: - { - GL11.glTranslatef((float) x + 0.3F, (float) y + 0.4F, (float) z + 0.5F); - return; - } - - case WEST: - { - GL11.glTranslatef((float) x + 0.70F, (float) y + 0.4F, (float) z + 0.5F); - return; - } - - case UNKNOWN: - { - return; - } - - default: - { - return; - } - } - } - } - } -} \ No newline at end of file diff --git a/BM_src/WayofTime/alchemicalWizardry/common/renderer/block/RenderPlinth.java b/BM_src/WayofTime/alchemicalWizardry/common/renderer/block/RenderPlinth.java deleted file mode 100644 index 9e11c1fc..00000000 --- a/BM_src/WayofTime/alchemicalWizardry/common/renderer/block/RenderPlinth.java +++ /dev/null @@ -1,254 +0,0 @@ -package WayofTime.alchemicalWizardry.common.renderer.block; - -import WayofTime.alchemicalWizardry.common.renderer.model.ModelPlinth; -import WayofTime.alchemicalWizardry.common.tileEntity.TEPlinth; -import cpw.mods.fml.client.FMLClientHandler; -import net.minecraft.client.renderer.entity.RenderItem; -import net.minecraft.client.renderer.entity.RenderManager; -import net.minecraft.client.renderer.tileentity.TileEntitySpecialRenderer; -import net.minecraft.entity.Entity; -import net.minecraft.entity.item.EntityItem; -import net.minecraft.item.ItemBlock; -import net.minecraft.item.ItemStack; -import net.minecraft.tileentity.TileEntity; -import net.minecraft.util.ResourceLocation; -import net.minecraftforge.common.ForgeDirection; -import org.lwjgl.opengl.GL11; - -public class RenderPlinth extends TileEntitySpecialRenderer -{ - private ModelPlinth modelPlinth = new ModelPlinth(); - private final RenderItem customRenderItem; - - public RenderPlinth() - { - customRenderItem = new RenderItem() - { - @Override - public boolean shouldBob() - { - return false; - } - }; - customRenderItem.setRenderManager(RenderManager.instance); - } - - @Override - public void renderTileEntityAt(TileEntity tileEntity, double d0, double d1, double d2, float f) - { - if (tileEntity instanceof TEPlinth) - { - TEPlinth tileAltar = (TEPlinth) tileEntity; - GL11.glDisable(GL11.GL_LIGHTING); - GL11.glDisable(GL11.GL_CULL_FACE); - /** - * Render the ghost item inside of the Altar, slowly spinning - */ - GL11.glPushMatrix(); - GL11.glTranslatef((float) d0 + 0.5F, (float) d1 + 1.5F, (float) d2 + 0.5F); - ResourceLocation test = new ResourceLocation("alchemicalwizardry:textures/models/Plinth.png"); - FMLClientHandler.instance().getClient().renderEngine.bindTexture(test); - GL11.glPushMatrix(); - GL11.glRotatef(180F, 0.0F, 0.0F, 1.0F); - //A reference to your Model file. Again, very important. - this.modelPlinth.render((Entity) null, 0.0F, 0.0F, -0.1F, 0.0F, 0.0F, 0.0625F); - //Tell it to stop rendering for both the PushMatrix's - GL11.glPopMatrix(); - GL11.glPopMatrix(); - GL11.glPushMatrix(); - - if (tileAltar.getStackInSlot(0) != null) - { - float scaleFactor = getGhostItemScaleFactor(tileAltar.getStackInSlot(0)); - EntityItem ghostEntityItem = new EntityItem(tileAltar.worldObj); - ghostEntityItem.hoverStart = 0.0F; - ghostEntityItem.setEntityItemStack(tileAltar.getStackInSlot(0)); - //translateGhostItemByOrientation(ghostEntityItem.getEntityItem(), d0, d1, d2, ForgeDirection.DOWN); - float displacement = 0.2F; - - if (ghostEntityItem.getEntityItem().getItem() instanceof ItemBlock) - { - GL11.glTranslatef((float) d0 + 0.5F, (float) d1 + displacement + 0.7F, (float) d2 + 0.5F); - } else - { - GL11.glTranslatef((float) d0 + 0.5F, (float) d1 + displacement + 10.4f / 16.0f, (float) d2 + 0.5F - 0.1875f); - } - - //GL11.glTranslatef((float) tileAltar.xCoord + 0.5F, (float) tileAltar.yCoord + 2.7F, (float) tileAltar.zCoord + 0.5F); - GL11.glScalef(scaleFactor, scaleFactor, scaleFactor); - - if (!(ghostEntityItem.getEntityItem().getItem() instanceof ItemBlock)) - { - GL11.glRotatef(90f, 1.0f, 0.0f, 0.0F); - } - - customRenderItem.doRenderItem(ghostEntityItem, 0, 0, 0, 0, 0); - } - - GL11.glPopMatrix(); - GL11.glEnable(GL11.GL_CULL_FACE); - GL11.glEnable(GL11.GL_LIGHTING); - } - } - - private float getGhostItemScaleFactor(ItemStack itemStack) - { - float scaleFactor = 2.0F / 0.9F; - - if (itemStack != null) - { - if (itemStack.getItem() instanceof ItemBlock) - { - switch (customRenderItem.getMiniBlockCount(itemStack)) - { - case 1: - return 0.90F * scaleFactor / 2; - - case 2: - return 0.90F * scaleFactor / 2; - - case 3: - return 0.90F * scaleFactor / 2; - - case 4: - return 0.90F * scaleFactor / 2; - - case 5: - return 0.80F * scaleFactor / 2; - - default: - return 0.90F * scaleFactor / 2; - } - } else - { - switch (customRenderItem.getMiniItemCount(itemStack)) - { - case 1: - return 0.65F * scaleFactor; - - case 2: - return 0.65F * scaleFactor; - - case 3: - return 0.65F * scaleFactor; - - case 4: - return 0.65F * scaleFactor; - - default: - return 0.65F * scaleFactor; - } - } - } - - return scaleFactor; - } - - private void translateGhostItemByOrientation(ItemStack ghostItemStack, double x, double y, double z, ForgeDirection forgeDirection) - { - if (ghostItemStack != null) - { - if (ghostItemStack.getItem() instanceof ItemBlock) - { - switch (forgeDirection) - { - case DOWN: - { - GL11.glTranslatef((float) x + 0.5F, (float) y + 2.7F, (float) z + 0.5F); - return; - } - - case UP: - { - GL11.glTranslatef((float) x + 0.5F, (float) y + 0.25F, (float) z + 0.5F); - return; - } - - case NORTH: - { - GL11.glTranslatef((float) x + 0.5F, (float) y + 0.5F, (float) z + 0.7F); - return; - } - - case SOUTH: - { - GL11.glTranslatef((float) x + 0.5F, (float) y + 0.5F, (float) z + 0.3F); - return; - } - - case EAST: - { - GL11.glTranslatef((float) x + 0.3F, (float) y + 0.5F, (float) z + 0.5F); - return; - } - - case WEST: - { - GL11.glTranslatef((float) x + 0.70F, (float) y + 0.5F, (float) z + 0.5F); - return; - } - - case UNKNOWN: - { - return; - } - - default: - { - return; - } - } - } else - { - switch (forgeDirection) - { - case DOWN: - { - GL11.glTranslatef((float) x + 0.5F, (float) y + 0.6F, (float) z + 0.5F); - return; - } - - case UP: - { - GL11.glTranslatef((float) x + 0.5F, (float) y + 0.20F, (float) z + 0.5F); - return; - } - - case NORTH: - { - GL11.glTranslatef((float) x + 0.5F, (float) y + 0.4F, (float) z + 0.7F); - return; - } - - case SOUTH: - { - GL11.glTranslatef((float) x + 0.5F, (float) y + 0.4F, (float) z + 0.3F); - return; - } - - case EAST: - { - GL11.glTranslatef((float) x + 0.3F, (float) y + 0.4F, (float) z + 0.5F); - return; - } - - case WEST: - { - GL11.glTranslatef((float) x + 0.70F, (float) y + 0.4F, (float) z + 0.5F); - return; - } - - case UNKNOWN: - { - return; - } - - default: - { - return; - } - } - } - } - } -} diff --git a/BM_src/WayofTime/alchemicalWizardry/common/renderer/block/RenderSpellEffectBlock.java b/BM_src/WayofTime/alchemicalWizardry/common/renderer/block/RenderSpellEffectBlock.java deleted file mode 100644 index b750b2a3..00000000 --- a/BM_src/WayofTime/alchemicalWizardry/common/renderer/block/RenderSpellEffectBlock.java +++ /dev/null @@ -1,49 +0,0 @@ -package WayofTime.alchemicalWizardry.common.renderer.block; - -import net.minecraft.client.renderer.tileentity.TileEntitySpecialRenderer; -import net.minecraft.entity.Entity; -import net.minecraft.tileentity.TileEntity; -import net.minecraft.util.ResourceLocation; - -import org.lwjgl.opengl.GL11; - -import WayofTime.alchemicalWizardry.common.renderer.model.ModelSpellEffectBlock; -import WayofTime.alchemicalWizardry.common.tileEntity.TESpellEffectBlock; -import cpw.mods.fml.client.FMLClientHandler; - -public class RenderSpellEffectBlock extends TileEntitySpecialRenderer -{ - private ModelSpellEffectBlock modelSpellEffectBlock = new ModelSpellEffectBlock(); - - @Override - public void renderTileEntityAt(TileEntity tileEntity, double d0, double d1, double d2, float f) - { - if (tileEntity instanceof TESpellEffectBlock) - { - TESpellEffectBlock tileSpellBlock = (TESpellEffectBlock) tileEntity; - GL11.glDisable(GL11.GL_LIGHTING); - GL11.glDisable(GL11.GL_CULL_FACE); - /** - * Render the ghost item inside of the Altar, slowly spinning - */ - GL11.glPushMatrix(); - GL11.glTranslatef((float) d0 + 0.5F, (float) d1 + 1.5F, (float) d2 + 0.5F); - ResourceLocation test = new ResourceLocation("alchemicalwizardry:textures/models/BlockSpellEffect.png"); - int meta = tileEntity.worldObj.getBlockMetadata(tileEntity.xCoord, tileEntity.yCoord, tileEntity.zCoord); - String resource = tileSpellBlock.getResourceLocationForMeta(meta); - test = new ResourceLocation(resource); - - FMLClientHandler.instance().getClient().renderEngine.bindTexture(test); - GL11.glPushMatrix(); - GL11.glRotatef(180F, 0.0F, 0.0F, 1.0F); - //GL11.glRotatef(90F, 0.0F, 0.0F, 1.0F); - //A reference to your Model file. Again, very important. - this.modelSpellEffectBlock.render((Entity) null, 0.0F, 0.0F, 0.0F, 0.0F, 0.0F, 0.0625F, tileSpellBlock.getInputDirection(), tileSpellBlock.getOutputDirection()); - //Tell it to stop rendering for both the PushMatrix's - GL11.glPopMatrix(); - GL11.glPopMatrix(); - GL11.glEnable(GL11.GL_CULL_FACE); - GL11.glEnable(GL11.GL_LIGHTING); - } - } -} \ No newline at end of file diff --git a/BM_src/WayofTime/alchemicalWizardry/common/renderer/block/RenderSpellEnhancementBlock.java b/BM_src/WayofTime/alchemicalWizardry/common/renderer/block/RenderSpellEnhancementBlock.java deleted file mode 100644 index ae2b9f2c..00000000 --- a/BM_src/WayofTime/alchemicalWizardry/common/renderer/block/RenderSpellEnhancementBlock.java +++ /dev/null @@ -1,49 +0,0 @@ -package WayofTime.alchemicalWizardry.common.renderer.block; - -import net.minecraft.client.renderer.tileentity.TileEntitySpecialRenderer; -import net.minecraft.entity.Entity; -import net.minecraft.tileentity.TileEntity; -import net.minecraft.util.ResourceLocation; - -import org.lwjgl.opengl.GL11; - -import WayofTime.alchemicalWizardry.common.renderer.model.ModelSpellEnhancementBlock; -import WayofTime.alchemicalWizardry.common.tileEntity.TESpellEnhancementBlock; -import cpw.mods.fml.client.FMLClientHandler; - -public class RenderSpellEnhancementBlock extends TileEntitySpecialRenderer -{ - private ModelSpellEnhancementBlock modelSpellEnhancementBlock = new ModelSpellEnhancementBlock(); - - @Override - public void renderTileEntityAt(TileEntity tileEntity, double d0, double d1, double d2, float f) - { - if (tileEntity instanceof TESpellEnhancementBlock) - { - TESpellEnhancementBlock tileSpellBlock = (TESpellEnhancementBlock) tileEntity; - GL11.glDisable(GL11.GL_LIGHTING); - GL11.glDisable(GL11.GL_CULL_FACE); - /** - * Render the ghost item inside of the Altar, slowly spinning - */ - GL11.glPushMatrix(); - GL11.glTranslatef((float) d0 + 0.5F, (float) d1 + 1.5F, (float) d2 + 0.5F); - ResourceLocation test = new ResourceLocation("alchemicalwizardry:textures/models/BlockSpellEnhancementPower1.png"); - int meta = tileEntity.getWorldObj().getBlockMetadata(tileEntity.xCoord, tileEntity.yCoord, tileEntity.zCoord); - String resource = tileSpellBlock.getResourceLocationForMeta(meta); - test = new ResourceLocation(resource); - - FMLClientHandler.instance().getClient().renderEngine.bindTexture(test); - GL11.glPushMatrix(); - GL11.glRotatef(180F, 0.0F, 0.0F, 1.0F); - //GL11.glRotatef(90F, 0.0F, 0.0F, 1.0F); - //A reference to your Model file. Again, very important. - this.modelSpellEnhancementBlock.render((Entity) null, 0.0F, 0.0F, 0.0F, 0.0F, 0.0F, 0.0625F, tileSpellBlock.getInputDirection(), tileSpellBlock.getOutputDirection()); - //Tell it to stop rendering for both the PushMatrix's - GL11.glPopMatrix(); - GL11.glPopMatrix(); - GL11.glEnable(GL11.GL_CULL_FACE); - GL11.glEnable(GL11.GL_LIGHTING); - } - } -} \ No newline at end of file diff --git a/BM_src/WayofTime/alchemicalWizardry/common/renderer/block/RenderSpellModifierBlock.java b/BM_src/WayofTime/alchemicalWizardry/common/renderer/block/RenderSpellModifierBlock.java deleted file mode 100644 index a01c0726..00000000 --- a/BM_src/WayofTime/alchemicalWizardry/common/renderer/block/RenderSpellModifierBlock.java +++ /dev/null @@ -1,49 +0,0 @@ -package WayofTime.alchemicalWizardry.common.renderer.block; - -import net.minecraft.client.renderer.tileentity.TileEntitySpecialRenderer; -import net.minecraft.entity.Entity; -import net.minecraft.tileentity.TileEntity; -import net.minecraft.util.ResourceLocation; - -import org.lwjgl.opengl.GL11; - -import WayofTime.alchemicalWizardry.common.renderer.model.ModelSpellModifierBlock; -import WayofTime.alchemicalWizardry.common.tileEntity.TESpellModifierBlock; -import cpw.mods.fml.client.FMLClientHandler; - -public class RenderSpellModifierBlock extends TileEntitySpecialRenderer -{ - private ModelSpellModifierBlock modelSpellModifierBlock = new ModelSpellModifierBlock(); - - @Override - public void renderTileEntityAt(TileEntity tileEntity, double d0, double d1, double d2, float f) - { - if (tileEntity instanceof TESpellModifierBlock) - { - TESpellModifierBlock tileSpellBlock = (TESpellModifierBlock) tileEntity; - GL11.glDisable(GL11.GL_LIGHTING); - GL11.glDisable(GL11.GL_CULL_FACE); - /** - * Render the ghost item inside of the Altar, slowly spinning - */ - GL11.glPushMatrix(); - GL11.glTranslatef((float) d0 + 0.5F, (float) d1 + 1.5F, (float) d2 + 0.5F); - ResourceLocation test = new ResourceLocation("alchemicalwizardry:textures/models/BlockSpellModifier.png"); - int meta = tileEntity.getWorldObj().getBlockMetadata(tileEntity.xCoord, tileEntity.yCoord, tileEntity.zCoord); - String resource = tileSpellBlock.getResourceLocationForMeta(meta); - test = new ResourceLocation(resource); - - FMLClientHandler.instance().getClient().renderEngine.bindTexture(test); - GL11.glPushMatrix(); - GL11.glRotatef(180F, 0.0F, 0.0F, 1.0F); - //GL11.glRotatef(90F, 0.0F, 0.0F, 1.0F); - //A reference to your Model file. Again, very important. - this.modelSpellModifierBlock.render((Entity) null, 0.0F, 0.0F, 0.0F, 0.0F, 0.0F, 0.0625F, tileSpellBlock.getInputDirection(), tileSpellBlock.getOutputDirection()); - //Tell it to stop rendering for both the PushMatrix's - GL11.glPopMatrix(); - GL11.glPopMatrix(); - GL11.glEnable(GL11.GL_CULL_FACE); - GL11.glEnable(GL11.GL_LIGHTING); - } - } -} \ No newline at end of file diff --git a/BM_src/WayofTime/alchemicalWizardry/common/renderer/block/RenderSpellParadigmBlock.java b/BM_src/WayofTime/alchemicalWizardry/common/renderer/block/RenderSpellParadigmBlock.java deleted file mode 100644 index 47a5b271..00000000 --- a/BM_src/WayofTime/alchemicalWizardry/common/renderer/block/RenderSpellParadigmBlock.java +++ /dev/null @@ -1,49 +0,0 @@ -package WayofTime.alchemicalWizardry.common.renderer.block; - -import net.minecraft.client.renderer.tileentity.TileEntitySpecialRenderer; -import net.minecraft.entity.Entity; -import net.minecraft.tileentity.TileEntity; -import net.minecraft.util.ResourceLocation; - -import org.lwjgl.opengl.GL11; - -import WayofTime.alchemicalWizardry.common.renderer.model.ModelSpellParadigmBlock; -import WayofTime.alchemicalWizardry.common.tileEntity.TESpellParadigmBlock; -import cpw.mods.fml.client.FMLClientHandler; - -public class RenderSpellParadigmBlock extends TileEntitySpecialRenderer -{ - private ModelSpellParadigmBlock modelSpellParadigmBlock = new ModelSpellParadigmBlock(); - - @Override - public void renderTileEntityAt(TileEntity tileEntity, double d0, double d1, double d2, float f) - { - if (tileEntity instanceof TESpellParadigmBlock) - { - TESpellParadigmBlock tileSpellBlock = (TESpellParadigmBlock) tileEntity; - GL11.glDisable(GL11.GL_LIGHTING); - GL11.glDisable(GL11.GL_CULL_FACE); - /** - * Render the ghost item inside of the Altar, slowly spinning - */ - GL11.glPushMatrix(); - GL11.glTranslatef((float) d0 + 0.5F, (float) d1 + 1.5F, (float) d2 + 0.5F); - ResourceLocation test = new ResourceLocation("alchemicalwizardry:textures/models/BlockSpellParadigm.png"); - int meta = tileEntity.getWorldObj().getBlockMetadata(tileEntity.xCoord, tileEntity.yCoord, tileEntity.zCoord); - String resource = tileSpellBlock.getResourceLocationForMeta(meta); - test = new ResourceLocation(resource); - - FMLClientHandler.instance().getClient().renderEngine.bindTexture(test); - GL11.glPushMatrix(); - GL11.glRotatef(180F, 0.0F, 0.0F, 1.0F); - //GL11.glRotatef(90F, 0.0F, 0.0F, 1.0F); - //A reference to your Model file. Again, very important. - this.modelSpellParadigmBlock.render((Entity) null, 0.0F, 0.0F, 0.0F, 0.0F, 0.0F, 0.0625F, tileSpellBlock.getInputDirection(), tileSpellBlock.getOutputDirection()); - //Tell it to stop rendering for both the PushMatrix's - GL11.glPopMatrix(); - GL11.glPopMatrix(); - GL11.glEnable(GL11.GL_CULL_FACE); - GL11.glEnable(GL11.GL_LIGHTING); - } - } -} \ No newline at end of file diff --git a/BM_src/WayofTime/alchemicalWizardry/common/renderer/block/RenderWritingTable.java b/BM_src/WayofTime/alchemicalWizardry/common/renderer/block/RenderWritingTable.java deleted file mode 100644 index a179d09f..00000000 --- a/BM_src/WayofTime/alchemicalWizardry/common/renderer/block/RenderWritingTable.java +++ /dev/null @@ -1,331 +0,0 @@ -package WayofTime.alchemicalWizardry.common.renderer.block; - -import WayofTime.alchemicalWizardry.common.renderer.model.ModelWritingTable; -import WayofTime.alchemicalWizardry.common.tileEntity.TEWritingTable; -import cpw.mods.fml.client.FMLClientHandler; -import net.minecraft.client.renderer.entity.RenderItem; -import net.minecraft.client.renderer.entity.RenderManager; -import net.minecraft.client.renderer.tileentity.TileEntitySpecialRenderer; -import net.minecraft.entity.Entity; -import net.minecraft.entity.item.EntityItem; -import net.minecraft.item.ItemBlock; -import net.minecraft.item.ItemStack; -import net.minecraft.tileentity.TileEntity; -import net.minecraft.util.ResourceLocation; -import net.minecraftforge.common.ForgeDirection; -import org.lwjgl.opengl.GL11; - -public class RenderWritingTable extends TileEntitySpecialRenderer -{ - private ModelWritingTable modelWritingTable = new ModelWritingTable(); - private final RenderItem customRenderItem; -// private final RenderItem customRenderItem1; -// private final RenderItem customRenderItem2; -// private final RenderItem customRenderItem3; -// private final RenderItem customRenderItem4; -// private final RenderItem customRenderItem5; - - public RenderWritingTable() - { - customRenderItem = new RenderItem() - { - @Override - public boolean shouldBob() - { - return false; - } - }; - customRenderItem.setRenderManager(RenderManager.instance); - } - - @Override - public void renderTileEntityAt(TileEntity tileEntity, double d0, double d1, double d2, float f) - { - if (tileEntity instanceof TEWritingTable) - { - TEWritingTable tileAltar = (TEWritingTable) tileEntity; - GL11.glDisable(GL11.GL_LIGHTING); - GL11.glDisable(GL11.GL_CULL_FACE); - GL11.glPushMatrix(); - GL11.glTranslatef((float) d0 + 0.5F, (float) d1 + 1.5F, (float) d2 + 0.5F); - ResourceLocation test = new ResourceLocation("alchemicalwizardry:textures/models/WritingTable.png"); - FMLClientHandler.instance().getClient().renderEngine.bindTexture(test); - GL11.glPushMatrix(); - GL11.glRotatef(180F, 0.0F, 0.0F, 1.0F); - //A reference to your Model file. Again, very important. - this.modelWritingTable.render((Entity) null, 0.0F, 0.0F, -0.1F, 0.0F, 0.0F, 0.0625F); - //Tell it to stop rendering for both the PushMatrix's - GL11.glPopMatrix(); - GL11.glPopMatrix(); - - for (int i = 1; i <= 6; i++) - { - GL11.glPushMatrix(); - - if (tileAltar.getStackInSlot(i) != null) - { - float scaleFactor = getGhostItemScaleFactor(tileAltar.getStackInSlot(i)); - float rotationAngle = (float) (720.0 * (System.currentTimeMillis() & 0x3FFFL) / 0x3FFFL); - EntityItem ghostEntityItem = new EntityItem(tileAltar.worldObj); - ghostEntityItem.hoverStart = 0.0F; - ghostEntityItem.setEntityItemStack(tileAltar.getStackInSlot(i)); - //translateGhostItemByOrientation(ghostEntityItem.getEntityItem(), d0, d1, d2, ForgeDirection.DOWN); - float displacementX = getXDisplacementForSlot(i); - float displacementY = getYDisplacementForSlot(i); - float displacementZ = getZDisplacementForSlot(i); - - if (ghostEntityItem.getEntityItem().getItem() instanceof ItemBlock) - { - GL11.glTranslatef((float) d0 + 0.5F + displacementX, (float) d1 + displacementY + 0.7F, (float) d2 + 0.5F + displacementZ); - } else - { - GL11.glTranslatef((float) d0 + 0.5F + displacementX, (float) d1 + displacementY + 0.6F, (float) d2 + 0.5F + displacementZ); - } - - //GL11.glTranslatef((float) tileAltar.xCoord + 0.5F, (float) tileAltar.yCoord + 2.7F, (float) tileAltar.zCoord + 0.5F); - GL11.glScalef(scaleFactor, scaleFactor, scaleFactor); - GL11.glRotatef(rotationAngle, 0.0F, 1.0F, 0.0F); - customRenderItem.doRenderItem(ghostEntityItem, 0, 0, 0, 0, 0); - } - - GL11.glPopMatrix(); - } - - GL11.glEnable(GL11.GL_CULL_FACE); - GL11.glEnable(GL11.GL_LIGHTING); - } - } - - private float getGhostItemScaleFactor(ItemStack itemStack) - { - float scaleFactor = 0.8F; - - if (itemStack != null) - { - if (itemStack.getItem() instanceof ItemBlock) - { - switch (customRenderItem.getMiniBlockCount(itemStack)) - { - case 1: - return 0.90F * scaleFactor; - - case 2: - return 0.90F * scaleFactor; - - case 3: - return 0.90F * scaleFactor; - - case 4: - return 0.90F * scaleFactor; - - case 5: - return 0.80F * scaleFactor; - - default: - return 0.90F * scaleFactor; - } - } else - { - switch (customRenderItem.getMiniItemCount(itemStack)) - { - case 1: - return 0.65F * scaleFactor; - - case 2: - return 0.65F * scaleFactor; - - case 3: - return 0.65F * scaleFactor; - - case 4: - return 0.65F * scaleFactor; - - default: - return 0.65F * scaleFactor; - } - } - } - - return scaleFactor; - } - - private float getXDisplacementForSlot(int slot) - { - switch (slot) - { - case 0: - return 0.0f; - - case 1: - return -0.375f; - - case 2: - return -0.125f; - - case 3: - return 0.3125f; - - case 4: - return 0.3125f; - - case 5: - return -0.125f; - - default: - return 0.0f; - } - } - - private float getYDisplacementForSlot(int slot) - { - switch (slot) - { - case 0: - return 0.4f; - - case 1: - return -0.35f; - - case 6: - return 0.4f; - - default: - return -0.35f; - } - } - - private float getZDisplacementForSlot(int slot) - { - switch (slot) - { - case 0: - return 0.0f; - - case 1: - return 0.0f; - - case 2: - return 0.375f; - - case 3: - return 0.25f; - - case 4: - return -0.25f; - - case 5: - return -0.375f; - - default: - return 0.0f; - } - } - - private void translateGhostItemByOrientation(ItemStack ghostItemStack, double x, double y, double z, ForgeDirection forgeDirection) - { - if (ghostItemStack != null) - { - if (ghostItemStack.getItem() instanceof ItemBlock) - { - switch (forgeDirection) - { - case DOWN: - { - GL11.glTranslatef((float) x + 0.5F, (float) y + 2.7F, (float) z + 0.5F); - return; - } - - case UP: - { - GL11.glTranslatef((float) x + 0.5F, (float) y + 0.25F, (float) z + 0.5F); - return; - } - - case NORTH: - { - GL11.glTranslatef((float) x + 0.5F, (float) y + 0.5F, (float) z + 0.7F); - return; - } - - case SOUTH: - { - GL11.glTranslatef((float) x + 0.5F, (float) y + 0.5F, (float) z + 0.3F); - return; - } - - case EAST: - { - GL11.glTranslatef((float) x + 0.3F, (float) y + 0.5F, (float) z + 0.5F); - return; - } - - case WEST: - { - GL11.glTranslatef((float) x + 0.70F, (float) y + 0.5F, (float) z + 0.5F); - return; - } - - case UNKNOWN: - { - return; - } - - default: - { - return; - } - } - } else - { - switch (forgeDirection) - { - case DOWN: - { - GL11.glTranslatef((float) x + 0.5F, (float) y + 0.6F, (float) z + 0.5F); - return; - } - - case UP: - { - GL11.glTranslatef((float) x + 0.5F, (float) y + 0.20F, (float) z + 0.5F); - return; - } - - case NORTH: - { - GL11.glTranslatef((float) x + 0.5F, (float) y + 0.4F, (float) z + 0.7F); - return; - } - - case SOUTH: - { - GL11.glTranslatef((float) x + 0.5F, (float) y + 0.4F, (float) z + 0.3F); - return; - } - - case EAST: - { - GL11.glTranslatef((float) x + 0.3F, (float) y + 0.4F, (float) z + 0.5F); - return; - } - - case WEST: - { - GL11.glTranslatef((float) x + 0.70F, (float) y + 0.4F, (float) z + 0.5F); - return; - } - - case UNKNOWN: - { - return; - } - - default: - { - return; - } - } - } - } - } -} \ No newline at end of file diff --git a/BM_src/WayofTime/alchemicalWizardry/common/renderer/block/TEAltarRenderer.java b/BM_src/WayofTime/alchemicalWizardry/common/renderer/block/TEAltarRenderer.java deleted file mode 100644 index c1ba9231..00000000 --- a/BM_src/WayofTime/alchemicalWizardry/common/renderer/block/TEAltarRenderer.java +++ /dev/null @@ -1,239 +0,0 @@ -package WayofTime.alchemicalWizardry.common.renderer.block; - -import WayofTime.alchemicalWizardry.common.renderer.model.ModelBloodAltar; -import WayofTime.alchemicalWizardry.common.tileEntity.TEAltar; -import net.minecraft.client.renderer.entity.RenderItem; -import net.minecraft.client.renderer.entity.RenderManager; -import net.minecraft.client.renderer.tileentity.TileEntitySpecialRenderer; -import net.minecraft.entity.item.EntityItem; -import net.minecraft.item.ItemBlock; -import net.minecraft.item.ItemStack; -import net.minecraft.tileentity.TileEntity; -import net.minecraftforge.common.ForgeDirection; -import org.lwjgl.opengl.GL11; - -public class TEAltarRenderer extends TileEntitySpecialRenderer -{ - private ModelBloodAltar modelBloodAltar = new ModelBloodAltar(); - private final RenderItem customRenderItem; - - public TEAltarRenderer() - { - customRenderItem = new RenderItem() - { - @Override - public boolean shouldBob() - { - return false; - } - }; - customRenderItem.setRenderManager(RenderManager.instance); - } - - @Override - public void renderTileEntityAt(TileEntity tileEntity, double d0, double d1, double d2, float f) - { - modelBloodAltar.renderBloodAltar((TEAltar) tileEntity, d0, d1, d2); - modelBloodAltar.renderBloodLevel((TEAltar) tileEntity, d0, d1, d2); - - if (tileEntity instanceof TEAltar) - { - TEAltar tileAltar = (TEAltar) tileEntity; - GL11.glDisable(GL11.GL_LIGHTING); - GL11.glDisable(GL11.GL_CULL_FACE); - /** - * Render the ghost item inside of the Altar, slowly spinning - */ - GL11.glPushMatrix(); - - if (tileAltar.getStackInSlot(0) != null) - { - float scaleFactor = getGhostItemScaleFactor(tileAltar.getStackInSlot(0)); - float rotationAngle = (float) (720.0 * (System.currentTimeMillis() & 0x3FFFL) / 0x3FFFL); - EntityItem ghostEntityItem = new EntityItem(tileAltar.worldObj); - ghostEntityItem.hoverStart = 0.0F; - ghostEntityItem.setEntityItemStack(tileAltar.getStackInSlot(0)); - //translateGhostItemByOrientation(ghostEntityItem.getEntityItem(), d0, d1, d2, ForgeDirection.DOWN); - float displacement = 0.2F; - - if (ghostEntityItem.getEntityItem().getItem() instanceof ItemBlock) - { - GL11.glTranslatef((float) d0 + 0.5F, (float) d1 + displacement + 0.7F, (float) d2 + 0.5F); - } else - { - GL11.glTranslatef((float) d0 + 0.5F, (float) d1 + displacement + 0.6F, (float) d2 + 0.5F); - } - - //GL11.glTranslatef((float) tileAltar.xCoord + 0.5F, (float) tileAltar.yCoord + 2.7F, (float) tileAltar.zCoord + 0.5F); - GL11.glScalef(scaleFactor, scaleFactor, scaleFactor); - GL11.glRotatef(rotationAngle, 0.0F, 1.0F, 0.0F); - customRenderItem.doRenderItem(ghostEntityItem, 0, 0, 0, 0, 0); - } - - GL11.glPopMatrix(); - GL11.glEnable(GL11.GL_CULL_FACE); - GL11.glEnable(GL11.GL_LIGHTING); - } - } - - private float getGhostItemScaleFactor(ItemStack itemStack) - { - float scaleFactor = 1.0F; - - if (itemStack != null) - { - if (itemStack.getItem() instanceof ItemBlock) - { - switch (customRenderItem.getMiniBlockCount(itemStack)) - { - case 1: - return 0.90F; - - case 2: - return 0.90F; - - case 3: - return 0.90F; - - case 4: - return 0.90F; - - case 5: - return 0.80F; - - default: - return 0.90F; - } - } else - { - switch (customRenderItem.getMiniItemCount(itemStack)) - { - case 1: - return 0.65F; - - case 2: - return 0.65F; - - case 3: - return 0.65F; - - case 4: - return 0.65F; - - default: - return 0.65F; - } - } - } - - return scaleFactor; - } - - private void translateGhostItemByOrientation(ItemStack ghostItemStack, double x, double y, double z, ForgeDirection forgeDirection) - { - if (ghostItemStack != null) - { - if (ghostItemStack.getItem() instanceof ItemBlock) - { - switch (forgeDirection) - { - case DOWN: - { - GL11.glTranslatef((float) x + 0.5F, (float) y + 2.7F, (float) z + 0.5F); - return; - } - - case UP: - { - GL11.glTranslatef((float) x + 0.5F, (float) y + 0.25F, (float) z + 0.5F); - return; - } - - case NORTH: - { - GL11.glTranslatef((float) x + 0.5F, (float) y + 0.5F, (float) z + 0.7F); - return; - } - - case SOUTH: - { - GL11.glTranslatef((float) x + 0.5F, (float) y + 0.5F, (float) z + 0.3F); - return; - } - - case EAST: - { - GL11.glTranslatef((float) x + 0.3F, (float) y + 0.5F, (float) z + 0.5F); - return; - } - - case WEST: - { - GL11.glTranslatef((float) x + 0.70F, (float) y + 0.5F, (float) z + 0.5F); - return; - } - - case UNKNOWN: - { - return; - } - - default: - { - return; - } - } - } else - { - switch (forgeDirection) - { - case DOWN: - { - GL11.glTranslatef((float) x + 0.5F, (float) y + 0.6F, (float) z + 0.5F); - return; - } - - case UP: - { - GL11.glTranslatef((float) x + 0.5F, (float) y + 0.20F, (float) z + 0.5F); - return; - } - - case NORTH: - { - GL11.glTranslatef((float) x + 0.5F, (float) y + 0.4F, (float) z + 0.7F); - return; - } - - case SOUTH: - { - GL11.glTranslatef((float) x + 0.5F, (float) y + 0.4F, (float) z + 0.3F); - return; - } - - case EAST: - { - GL11.glTranslatef((float) x + 0.3F, (float) y + 0.4F, (float) z + 0.5F); - return; - } - - case WEST: - { - GL11.glTranslatef((float) x + 0.70F, (float) y + 0.4F, (float) z + 0.5F); - return; - } - - case UNKNOWN: - { - return; - } - - default: - { - return; - } - } - } - } - } -} diff --git a/BM_src/WayofTime/alchemicalWizardry/common/renderer/block/itemRender/TEAltarItemRenderer.java b/BM_src/WayofTime/alchemicalWizardry/common/renderer/block/itemRender/TEAltarItemRenderer.java deleted file mode 100644 index 70cc34f7..00000000 --- a/BM_src/WayofTime/alchemicalWizardry/common/renderer/block/itemRender/TEAltarItemRenderer.java +++ /dev/null @@ -1,81 +0,0 @@ -package WayofTime.alchemicalWizardry.common.renderer.block.itemRender; - -import WayofTime.alchemicalWizardry.common.renderer.model.ModelBloodAltar; -import cpw.mods.fml.client.FMLClientHandler; -import net.minecraft.item.ItemStack; -import net.minecraft.util.ResourceLocation; -import net.minecraftforge.client.IItemRenderer; -import org.lwjgl.opengl.GL11; - -public class TEAltarItemRenderer implements IItemRenderer -{ - private ModelBloodAltar modelBloodAltar; - - public TEAltarItemRenderer() - { - modelBloodAltar = new ModelBloodAltar(); - } - - @Override - public boolean handleRenderType(ItemStack item, ItemRenderType type) - { - // TODO Auto-generated method stub - return true; - } - - @Override - public boolean shouldUseRenderHelper(ItemRenderType type, ItemStack item, ItemRendererHelper helper) - { - // TODO Auto-generated method stub - return true; - } - - @Override - public void renderItem(ItemRenderType type, ItemStack item, Object... data) - { - float scale = 0.08f; - - // TODO Auto-generated method stub - switch (type) - { - case ENTITY: - { - renderBloodAltar(0f, 0f, 0f, scale); - return; - } - - case EQUIPPED: - { - renderBloodAltar(0f, 0f, 0f, scale); - return; - } - - case INVENTORY: - { - renderBloodAltar(0f, -0.25f, 0f, scale); - return; - } - - default: - return; - } - } - - private void renderBloodAltar(float x, float y, float z, float scale) - { - GL11.glPushMatrix(); - // Disable Lighting Calculations - GL11.glDisable(GL11.GL_LIGHTING); - GL11.glTranslatef(x, y, z); - GL11.glScalef(scale, scale, scale); - GL11.glRotatef(180f, 0f, 1f, 0f); - //FMLClientHandler.instance().getClient().renderEngine.bindTexture("/mods/OBJTutorial/textures/models/TutBox.png"); - ResourceLocation test = new ResourceLocation("alchemicalwizardry:textures/models/altar.png"); - //FMLClientHandler.instance().getClient().renderEngine.bindTexture("/mods/alchemicalwizardry/textures/models/altar.png"); - FMLClientHandler.instance().getClient().renderEngine.bindTexture(test); - modelBloodAltar.renderBloodAltar(); - // Re-enable Lighting Calculations - GL11.glEnable(GL11.GL_LIGHTING); - GL11.glPopMatrix(); - } -} diff --git a/BM_src/WayofTime/alchemicalWizardry/common/renderer/block/itemRender/TEConduitItemRenderer.java b/BM_src/WayofTime/alchemicalWizardry/common/renderer/block/itemRender/TEConduitItemRenderer.java deleted file mode 100644 index d35ab929..00000000 --- a/BM_src/WayofTime/alchemicalWizardry/common/renderer/block/itemRender/TEConduitItemRenderer.java +++ /dev/null @@ -1,98 +0,0 @@ -package WayofTime.alchemicalWizardry.common.renderer.block.itemRender; - -import net.minecraft.block.Block; -import net.minecraft.client.Minecraft; -import net.minecraft.client.renderer.RenderBlocks; -import net.minecraft.client.renderer.Tessellator; -import net.minecraft.client.renderer.texture.TextureMap; -import net.minecraft.entity.Entity; -import net.minecraft.item.ItemStack; -import net.minecraft.util.Icon; -import net.minecraft.util.ResourceLocation; -import net.minecraftforge.client.IItemRenderer; -import net.minecraftforge.common.ForgeDirection; - -import org.lwjgl.opengl.GL11; - -import cpw.mods.fml.client.FMLClientHandler; -import WayofTime.alchemicalWizardry.ModBlocks; -import WayofTime.alchemicalWizardry.common.renderer.model.ModelConduit; - -public class TEConduitItemRenderer implements IItemRenderer -{ - private ModelConduit modelConduit = new ModelConduit(); - - private void renderConduitItem(RenderBlocks render, ItemStack item, float translateX, float translateY, float translateZ) - { - Tessellator tessellator = Tessellator.instance; - - Block block = ModBlocks.blockConduit; - Icon icon = item.getItem().getIconFromDamage(0); - - GL11.glDisable(GL11.GL_LIGHTING); - GL11.glDisable(GL11.GL_CULL_FACE); - /** - * Render the ghost item inside of the Altar, slowly spinning - */ - GL11.glPushMatrix(); - GL11.glTranslatef((float) translateX + 0.5F, (float) translateY + 1.5F, (float) translateZ + 0.5F); - ResourceLocation test = new ResourceLocation("alchemicalwizardry:textures/models/Conduit.png"); - FMLClientHandler.instance().getClient().renderEngine.bindTexture(test); - GL11.glPushMatrix(); - GL11.glRotatef(180F, 0.0F, 0.0F, 1.0F); - //GL11.glRotatef(90F, 0.0F, 0.0F, 1.0F); - //A reference to your Model file. Again, very important. - this.modelConduit.render((Entity) null, 0.0F, 0.0F, 0.0F, 0.0F, 0.0F, 0.0625F, ForgeDirection.DOWN, ForgeDirection.UP); - //Tell it to stop rendering for both the PushMatrix's - GL11.glPopMatrix(); - GL11.glPopMatrix(); - GL11.glEnable(GL11.GL_CULL_FACE); - GL11.glEnable(GL11.GL_LIGHTING); - } - - - /** - * IItemRenderer implementation * - */ - @Override - public boolean handleRenderType(ItemStack item, ItemRenderType type) { - switch (type) { - case ENTITY: - return true; - case EQUIPPED: - return true; - case EQUIPPED_FIRST_PERSON: - return true; - case INVENTORY: - return true; - default: - return false; - } - } - - - @Override - public boolean shouldUseRenderHelper(ItemRenderType type, ItemStack item, ItemRendererHelper helper) { - return true; - } - - - @Override - public void renderItem(ItemRenderType type, ItemStack item, Object... data) { - switch (type) { - case ENTITY: - renderConduitItem((RenderBlocks) data[0], item, -0.5f, -0.5f, -0.5f); - break; - case EQUIPPED: - renderConduitItem((RenderBlocks) data[0], item, -0.4f, 0.50f, 0.35f); - break; - case EQUIPPED_FIRST_PERSON: - renderConduitItem((RenderBlocks) data[0], item, -0.4f, 0.50f, 0.35f); - break; - case INVENTORY: - renderConduitItem((RenderBlocks) data[0], item, -0.5f, -0.5f, -0.5f); - break; - default: - } - } -} diff --git a/BM_src/WayofTime/alchemicalWizardry/common/renderer/block/itemRender/TESpellEffectBlockItemRenderer.java b/BM_src/WayofTime/alchemicalWizardry/common/renderer/block/itemRender/TESpellEffectBlockItemRenderer.java deleted file mode 100644 index b400c142..00000000 --- a/BM_src/WayofTime/alchemicalWizardry/common/renderer/block/itemRender/TESpellEffectBlockItemRenderer.java +++ /dev/null @@ -1,109 +0,0 @@ -package WayofTime.alchemicalWizardry.common.renderer.block.itemRender; - -import net.minecraft.block.Block; -import net.minecraft.client.renderer.RenderBlocks; -import net.minecraft.client.renderer.Tessellator; -import net.minecraft.entity.Entity; -import net.minecraft.item.ItemStack; -import net.minecraft.util.Icon; -import net.minecraft.util.ResourceLocation; -import net.minecraftforge.client.IItemRenderer; -import net.minecraftforge.common.ForgeDirection; - -import org.lwjgl.opengl.GL11; - -import WayofTime.alchemicalWizardry.ModBlocks; -import WayofTime.alchemicalWizardry.common.renderer.model.ModelSpellEffectBlock; -import cpw.mods.fml.client.FMLClientHandler; - -public class TESpellEffectBlockItemRenderer implements IItemRenderer -{ - private ModelSpellEffectBlock modelSpellBlock = new ModelSpellEffectBlock(); - - private void renderConduitItem(RenderBlocks render, ItemStack item, float translateX, float translateY, float translateZ) - { - Tessellator tessellator = Tessellator.instance; - - Block block = ModBlocks.blockSpellEffect; - //Icon icon = item.getItem().getIconFromDamage(0); - - GL11.glDisable(GL11.GL_LIGHTING); - GL11.glDisable(GL11.GL_CULL_FACE); - /** - * Render the ghost item inside of the Altar, slowly spinning - */ - GL11.glPushMatrix(); - GL11.glTranslatef((float) translateX + 0.5F, (float) translateY + 1.5F, (float) translateZ + 0.5F); - ResourceLocation test = new ResourceLocation(this.getResourceLocationForMeta(item.getItemDamage())); - - FMLClientHandler.instance().getClient().renderEngine.bindTexture(test); - GL11.glPushMatrix(); - GL11.glRotatef(180F, 0.0F, 0.0F, 1.0F); - //GL11.glRotatef(90F, 0.0F, 0.0F, 1.0F); - //A reference to your Model file. Again, very important. - this.modelSpellBlock.render((Entity) null, 0.0F, 0.0F, 0.0F, 0.0F, 0.0F, 0.0625F, ForgeDirection.DOWN, ForgeDirection.UP); - //Tell it to stop rendering for both the PushMatrix's - GL11.glPopMatrix(); - GL11.glPopMatrix(); - GL11.glEnable(GL11.GL_CULL_FACE); - GL11.glEnable(GL11.GL_LIGHTING); - } - - - /** - * IItemRenderer implementation * - */ - @Override - public boolean handleRenderType(ItemStack item, ItemRenderType type) { - switch (type) { - case ENTITY: - return true; - case EQUIPPED: - return true; - case EQUIPPED_FIRST_PERSON: - return true; - case INVENTORY: - return true; - default: - return false; - } - } - - - @Override - public boolean shouldUseRenderHelper(ItemRenderType type, ItemStack item, ItemRendererHelper helper) { - return true; - } - - - @Override - public void renderItem(ItemRenderType type, ItemStack item, Object... data) { - switch (type) { - case ENTITY: - renderConduitItem((RenderBlocks) data[0], item, -0.5f, -0.5f, -0.5f); - break; - case EQUIPPED: - renderConduitItem((RenderBlocks) data[0], item, -0.4f, 0.50f, 0.35f); - break; - case EQUIPPED_FIRST_PERSON: - renderConduitItem((RenderBlocks) data[0], item, -0.4f, 0.50f, 0.35f); - break; - case INVENTORY: - renderConduitItem((RenderBlocks) data[0], item, -0.5f, -0.5f, -0.5f); - break; - default: - } - } - - public String getResourceLocationForMeta(int meta) - { - switch(meta) - { - case 0: return "alchemicalwizardry:textures/models/SpellEffectFire.png"; - case 1: return "alchemicalwizardry:textures/models/SpellEffectIce.png"; - case 2: return "alchemicalwizardry:textures/models/SpellEffectWind.png"; - case 3: return "alchemicalwizardry:textures/models/SpellEffectEarth.png"; - } - return ""; - } -} diff --git a/BM_src/WayofTime/alchemicalWizardry/common/renderer/block/itemRender/TESpellEnhancementBlockItemRenderer.java b/BM_src/WayofTime/alchemicalWizardry/common/renderer/block/itemRender/TESpellEnhancementBlockItemRenderer.java deleted file mode 100644 index 3a885ec0..00000000 --- a/BM_src/WayofTime/alchemicalWizardry/common/renderer/block/itemRender/TESpellEnhancementBlockItemRenderer.java +++ /dev/null @@ -1,114 +0,0 @@ -package WayofTime.alchemicalWizardry.common.renderer.block.itemRender; - -import net.minecraft.block.Block; -import net.minecraft.client.renderer.RenderBlocks; -import net.minecraft.client.renderer.Tessellator; -import net.minecraft.entity.Entity; -import net.minecraft.item.ItemStack; -import net.minecraft.util.ResourceLocation; -import net.minecraftforge.client.IItemRenderer; -import net.minecraftforge.common.ForgeDirection; - -import org.lwjgl.opengl.GL11; - -import WayofTime.alchemicalWizardry.ModBlocks; -import WayofTime.alchemicalWizardry.common.renderer.model.ModelSpellEnhancementBlock; -import cpw.mods.fml.client.FMLClientHandler; - -public class TESpellEnhancementBlockItemRenderer implements IItemRenderer -{ - private ModelSpellEnhancementBlock modelSpellBlock = new ModelSpellEnhancementBlock(); - - private void renderConduitItem(RenderBlocks render, ItemStack item, float translateX, float translateY, float translateZ) - { - Tessellator tessellator = Tessellator.instance; - - Block block = ModBlocks.blockSpellEffect; - //Icon icon = item.getItem().getIconFromDamage(0); - - GL11.glDisable(GL11.GL_LIGHTING); - GL11.glDisable(GL11.GL_CULL_FACE); - /** - * Render the ghost item inside of the Altar, slowly spinning - */ - GL11.glPushMatrix(); - GL11.glTranslatef((float) translateX + 0.5F, (float) translateY + 1.5F, (float) translateZ + 0.5F); - ResourceLocation test = new ResourceLocation(this.getResourceLocationForMeta(item.getItemDamage())); - - FMLClientHandler.instance().getClient().renderEngine.bindTexture(test); - GL11.glPushMatrix(); - GL11.glRotatef(180F, 0.0F, 0.0F, 1.0F); - //GL11.glRotatef(90F, 0.0F, 0.0F, 1.0F); - //A reference to your Model file. Again, very important. - this.modelSpellBlock.render((Entity) null, 0.0F, 0.0F, 0.0F, 0.0F, 0.0F, 0.0625F, ForgeDirection.DOWN, ForgeDirection.UP); - //Tell it to stop rendering for both the PushMatrix's - GL11.glPopMatrix(); - GL11.glPopMatrix(); - GL11.glEnable(GL11.GL_CULL_FACE); - GL11.glEnable(GL11.GL_LIGHTING); - } - - - /** - * IItemRenderer implementation * - */ - @Override - public boolean handleRenderType(ItemStack item, ItemRenderType type) { - switch (type) { - case ENTITY: - return true; - case EQUIPPED: - return true; - case EQUIPPED_FIRST_PERSON: - return true; - case INVENTORY: - return true; - default: - return false; - } - } - - - @Override - public boolean shouldUseRenderHelper(ItemRenderType type, ItemStack item, ItemRendererHelper helper) { - return true; - } - - - @Override - public void renderItem(ItemRenderType type, ItemStack item, Object... data) { - switch (type) { - case ENTITY: - renderConduitItem((RenderBlocks) data[0], item, -0.5f, -0.5f, -0.5f); - break; - case EQUIPPED: - renderConduitItem((RenderBlocks) data[0], item, -0.4f, 0.50f, 0.35f); - break; - case EQUIPPED_FIRST_PERSON: - renderConduitItem((RenderBlocks) data[0], item, -0.4f, 0.50f, 0.35f); - break; - case INVENTORY: - renderConduitItem((RenderBlocks) data[0], item, -0.5f, -0.5f, -0.5f); - break; - default: - } - } - - public String getResourceLocationForMeta(int meta) - { - switch(meta) - { - case 0: return "alchemicalwizardry:textures/models/SpellEnhancementPower1.png"; - case 1: return "alchemicalwizardry:textures/models/SpellEnhancementPower2.png"; - case 2: return "alchemicalwizardry:textures/models/SpellEnhancementPower3.png"; - case 5: return "alchemicalwizardry:textures/models/SpellEnhancementCost1.png"; - case 6: return "alchemicalwizardry:textures/models/SpellEnhancementCost2.png"; - case 7: return "alchemicalwizardry:textures/models/SpellEnhancementCost3.png"; - case 10: return "alchemicalwizardry:textures/models/SpellEnhancementPotency1.png"; - case 11: return "alchemicalwizardry:textures/models/SpellEnhancementPotency2.png"; - case 12: return "alchemicalwizardry:textures/models/SpellEnhancementPotency3.png"; - - } - return "alchemicalwizardry:textures/models/SpellEnhancementPower1.png"; - } -} diff --git a/BM_src/WayofTime/alchemicalWizardry/common/renderer/block/itemRender/TESpellModifierBlockItemRenderer.java b/BM_src/WayofTime/alchemicalWizardry/common/renderer/block/itemRender/TESpellModifierBlockItemRenderer.java deleted file mode 100644 index 53dd4ca6..00000000 --- a/BM_src/WayofTime/alchemicalWizardry/common/renderer/block/itemRender/TESpellModifierBlockItemRenderer.java +++ /dev/null @@ -1,108 +0,0 @@ -package WayofTime.alchemicalWizardry.common.renderer.block.itemRender; - -import net.minecraft.block.Block; -import net.minecraft.client.renderer.RenderBlocks; -import net.minecraft.client.renderer.Tessellator; -import net.minecraft.entity.Entity; -import net.minecraft.item.ItemStack; -import net.minecraft.util.ResourceLocation; -import net.minecraftforge.client.IItemRenderer; -import net.minecraftforge.common.ForgeDirection; - -import org.lwjgl.opengl.GL11; - -import WayofTime.alchemicalWizardry.ModBlocks; -import WayofTime.alchemicalWizardry.common.renderer.model.ModelSpellModifierBlock; -import cpw.mods.fml.client.FMLClientHandler; - -public class TESpellModifierBlockItemRenderer implements IItemRenderer -{ - private ModelSpellModifierBlock modelSpellBlock = new ModelSpellModifierBlock(); - - private void renderConduitItem(RenderBlocks render, ItemStack item, float translateX, float translateY, float translateZ) - { - Tessellator tessellator = Tessellator.instance; - - Block block = ModBlocks.blockSpellEffect; - //Icon icon = item.getItem().getIconFromDamage(0); - - GL11.glDisable(GL11.GL_LIGHTING); - GL11.glDisable(GL11.GL_CULL_FACE); - /** - * Render the ghost item inside of the Altar, slowly spinning - */ - GL11.glPushMatrix(); - GL11.glTranslatef((float) translateX + 0.5F, (float) translateY + 1.5F, (float) translateZ + 0.5F); - ResourceLocation test = new ResourceLocation(this.getResourceLocationForMeta(item.getItemDamage())); - - FMLClientHandler.instance().getClient().renderEngine.bindTexture(test); - GL11.glPushMatrix(); - GL11.glRotatef(180F, 0.0F, 0.0F, 1.0F); - //GL11.glRotatef(90F, 0.0F, 0.0F, 1.0F); - //A reference to your Model file. Again, very important. - this.modelSpellBlock.render((Entity) null, 0.0F, 0.0F, 0.0F, 0.0F, 0.0F, 0.0625F, ForgeDirection.DOWN, ForgeDirection.UP); - //Tell it to stop rendering for both the PushMatrix's - GL11.glPopMatrix(); - GL11.glPopMatrix(); - GL11.glEnable(GL11.GL_CULL_FACE); - GL11.glEnable(GL11.GL_LIGHTING); - } - - - /** - * IItemRenderer implementation * - */ - @Override - public boolean handleRenderType(ItemStack item, ItemRenderType type) { - switch (type) { - case ENTITY: - return true; - case EQUIPPED: - return true; - case EQUIPPED_FIRST_PERSON: - return true; - case INVENTORY: - return true; - default: - return false; - } - } - - - @Override - public boolean shouldUseRenderHelper(ItemRenderType type, ItemStack item, ItemRendererHelper helper) { - return true; - } - - - @Override - public void renderItem(ItemRenderType type, ItemStack item, Object... data) { - switch (type) { - case ENTITY: - renderConduitItem((RenderBlocks) data[0], item, -0.5f, -0.5f, -0.5f); - break; - case EQUIPPED: - renderConduitItem((RenderBlocks) data[0], item, -0.4f, 0.50f, 0.35f); - break; - case EQUIPPED_FIRST_PERSON: - renderConduitItem((RenderBlocks) data[0], item, -0.4f, 0.50f, 0.35f); - break; - case INVENTORY: - renderConduitItem((RenderBlocks) data[0], item, -0.5f, -0.5f, -0.5f); - break; - default: - } - } - - public String getResourceLocationForMeta(int meta) - { - switch(meta) - { - case 0: return "alchemicalwizardry:textures/models/SpellModifierDefault.png"; - case 1: return "alchemicalwizardry:textures/models/SpellModifierOffensive.png"; - case 2: return "alchemicalwizardry:textures/models/SpellModifierDefensive.png"; - case 3: return "alchemicalwizardry:textures/models/SpellModifierEnvironmental.png"; - } - return "alchemicalwizardry:textures/models/SpellModifierDefault.png"; - } -} diff --git a/BM_src/WayofTime/alchemicalWizardry/common/renderer/block/itemRender/TESpellParadigmBlockItemRenderer.java b/BM_src/WayofTime/alchemicalWizardry/common/renderer/block/itemRender/TESpellParadigmBlockItemRenderer.java deleted file mode 100644 index 131e4212..00000000 --- a/BM_src/WayofTime/alchemicalWizardry/common/renderer/block/itemRender/TESpellParadigmBlockItemRenderer.java +++ /dev/null @@ -1,107 +0,0 @@ -package WayofTime.alchemicalWizardry.common.renderer.block.itemRender; - -import net.minecraft.block.Block; -import net.minecraft.client.renderer.RenderBlocks; -import net.minecraft.client.renderer.Tessellator; -import net.minecraft.entity.Entity; -import net.minecraft.item.ItemStack; -import net.minecraft.util.ResourceLocation; -import net.minecraftforge.client.IItemRenderer; -import net.minecraftforge.common.ForgeDirection; - -import org.lwjgl.opengl.GL11; - -import WayofTime.alchemicalWizardry.ModBlocks; -import WayofTime.alchemicalWizardry.common.renderer.model.ModelSpellParadigmBlock; -import cpw.mods.fml.client.FMLClientHandler; - -public class TESpellParadigmBlockItemRenderer implements IItemRenderer -{ - private ModelSpellParadigmBlock modelSpellBlock = new ModelSpellParadigmBlock(); - - private void renderConduitItem(RenderBlocks render, ItemStack item, float translateX, float translateY, float translateZ) - { - Tessellator tessellator = Tessellator.instance; - - Block block = ModBlocks.blockSpellEffect; - //Icon icon = item.getItem().getIconFromDamage(0); - - GL11.glDisable(GL11.GL_LIGHTING); - GL11.glDisable(GL11.GL_CULL_FACE); - /** - * Render the ghost item inside of the Altar, slowly spinning - */ - GL11.glPushMatrix(); - GL11.glTranslatef((float) translateX + 0.5F, (float) translateY + 1.5F, (float) translateZ + 0.5F); - ResourceLocation test = new ResourceLocation(this.getResourceLocationForMeta(item.getItemDamage())); - - FMLClientHandler.instance().getClient().renderEngine.bindTexture(test); - GL11.glPushMatrix(); - GL11.glRotatef(180F, 0.0F, 0.0F, 1.0F); - //GL11.glRotatef(90F, 0.0F, 0.0F, 1.0F); - //A reference to your Model file. Again, very important. - this.modelSpellBlock.render((Entity) null, 0.0F, 0.0F, 0.0F, 0.0F, 0.0F, 0.0625F, ForgeDirection.DOWN, ForgeDirection.UP); - //Tell it to stop rendering for both the PushMatrix's - GL11.glPopMatrix(); - GL11.glPopMatrix(); - GL11.glEnable(GL11.GL_CULL_FACE); - GL11.glEnable(GL11.GL_LIGHTING); - } - - - /** - * IItemRenderer implementation * - */ - @Override - public boolean handleRenderType(ItemStack item, ItemRenderType type) { - switch (type) { - case ENTITY: - return true; - case EQUIPPED: - return true; - case EQUIPPED_FIRST_PERSON: - return true; - case INVENTORY: - return true; - default: - return false; - } - } - - - @Override - public boolean shouldUseRenderHelper(ItemRenderType type, ItemStack item, ItemRendererHelper helper) { - return true; - } - - - @Override - public void renderItem(ItemRenderType type, ItemStack item, Object... data) { - switch (type) { - case ENTITY: - renderConduitItem((RenderBlocks) data[0], item, -0.5f, -0.5f, -0.5f); - break; - case EQUIPPED: - renderConduitItem((RenderBlocks) data[0], item, -0.4f, 0.50f, 0.35f); - break; - case EQUIPPED_FIRST_PERSON: - renderConduitItem((RenderBlocks) data[0], item, -0.4f, 0.50f, 0.35f); - break; - case INVENTORY: - renderConduitItem((RenderBlocks) data[0], item, -0.5f, -0.5f, -0.5f); - break; - default: - } - } - - public String getResourceLocationForMeta(int meta) - { - switch(meta) - { - case 0: return "alchemicalwizardry:textures/models/SpellParadigmProjectile.png"; - case 1: return "alchemicalwizardry:textures/models/SpellParadigmSelf.png"; - case 2: return "alchemicalwizardry:textures/models/SpellParadigmMelee.png"; - } - return "alchemicalwizardry:textures/models/SpellParadigmProjectile.png"; - } -} diff --git a/BM_src/WayofTime/alchemicalWizardry/common/renderer/block/itemRender/TEWritingTableItemRenderer.java b/BM_src/WayofTime/alchemicalWizardry/common/renderer/block/itemRender/TEWritingTableItemRenderer.java deleted file mode 100644 index 9705879c..00000000 --- a/BM_src/WayofTime/alchemicalWizardry/common/renderer/block/itemRender/TEWritingTableItemRenderer.java +++ /dev/null @@ -1,82 +0,0 @@ -package WayofTime.alchemicalWizardry.common.renderer.block.itemRender; - -import WayofTime.alchemicalWizardry.common.renderer.model.ModelWritingTable; -import cpw.mods.fml.client.FMLClientHandler; -import net.minecraft.entity.Entity; -import net.minecraft.item.ItemStack; -import net.minecraft.util.ResourceLocation; -import net.minecraftforge.client.IItemRenderer; -import org.lwjgl.opengl.GL11; - -public class TEWritingTableItemRenderer implements IItemRenderer -{ - private ModelWritingTable modelBloodAltar; - - public TEWritingTableItemRenderer() - { - modelBloodAltar = new ModelWritingTable(); - } - - @Override - public boolean handleRenderType(ItemStack item, ItemRenderType type) - { - // TODO Auto-generated method stub - return true; - } - - @Override - public boolean shouldUseRenderHelper(ItemRenderType type, ItemStack item, ItemRendererHelper helper) - { - // TODO Auto-generated method stub - return true; - } - - @Override - public void renderItem(ItemRenderType type, ItemStack item, Object... data) - { - float scale = 0.08f; - - // TODO Auto-generated method stub - switch (type) - { - case ENTITY: - { - renderBloodAltar(0f, 0f, 0f, scale); - return; - } - - case EQUIPPED: - { - renderBloodAltar(0f, 0f, 0f, scale); - return; - } - - case INVENTORY: - { - renderBloodAltar(0f, -0.25f, 0f, scale); - return; - } - - default: - return; - } - } - - private void renderBloodAltar(float x, float y, float z, float scale) - { - GL11.glPushMatrix(); - // Disable Lighting Calculations - GL11.glDisable(GL11.GL_LIGHTING); - GL11.glTranslatef(x, y, z); - GL11.glScalef(scale, scale, scale); - GL11.glRotatef(180f, 0f, 1f, 0f); - //FMLClientHandler.instance().getClient().renderEngine.bindTexture("/mods/OBJTutorial/textures/models/TutBox.png"); - ResourceLocation test = new ResourceLocation("alchemicalwizardry:textures/models/WritingTable.png"); - //FMLClientHandler.instance().getClient().renderEngine.bindTexture("/mods/alchemicalwizardry/textures/models/altar.png"); - FMLClientHandler.instance().getClient().renderEngine.bindTexture(test); - modelBloodAltar.render((Entity) null, 0, 0, 0, 0, 0, 0); - // Re-enable Lighting Calculations - GL11.glEnable(GL11.GL_LIGHTING); - GL11.glPopMatrix(); - } -} \ No newline at end of file diff --git a/BM_src/WayofTime/alchemicalWizardry/common/renderer/mob/RenderBileDemon.java b/BM_src/WayofTime/alchemicalWizardry/common/renderer/mob/RenderBileDemon.java deleted file mode 100644 index b09c6ca7..00000000 --- a/BM_src/WayofTime/alchemicalWizardry/common/renderer/mob/RenderBileDemon.java +++ /dev/null @@ -1,27 +0,0 @@ -package WayofTime.alchemicalWizardry.common.renderer.mob; - -import WayofTime.alchemicalWizardry.common.entity.mob.EntityBileDemon; -import net.minecraft.client.model.ModelBase; -import net.minecraft.client.renderer.entity.RenderLiving; -import net.minecraft.entity.Entity; -import net.minecraft.util.ResourceLocation; - -public class RenderBileDemon extends RenderLiving -{ - private static final ResourceLocation field_110833_a = new ResourceLocation("alchemicalwizardry", "textures/models/BileDemon.png"); //refers to:YourMod/modelsTextureFile/optionalFile/yourTexture.png - - public RenderBileDemon(ModelBase par1ModelBase, float par2) - { - super(par1ModelBase, par2); - } - - public ResourceLocation func_110832_a(EntityBileDemon par1EntityBileDemon) - { - return field_110833_a; - } - - public ResourceLocation getEntityTexture(Entity par1Entity) - { - return this.func_110832_a((EntityBileDemon) par1Entity); - } -} \ No newline at end of file diff --git a/BM_src/WayofTime/alchemicalWizardry/common/renderer/mob/RenderBoulderFist.java b/BM_src/WayofTime/alchemicalWizardry/common/renderer/mob/RenderBoulderFist.java deleted file mode 100644 index 6db35edd..00000000 --- a/BM_src/WayofTime/alchemicalWizardry/common/renderer/mob/RenderBoulderFist.java +++ /dev/null @@ -1,27 +0,0 @@ -package WayofTime.alchemicalWizardry.common.renderer.mob; - -import WayofTime.alchemicalWizardry.common.entity.mob.EntityBoulderFist; -import net.minecraft.client.model.ModelBase; -import net.minecraft.client.renderer.entity.RenderLiving; -import net.minecraft.entity.Entity; -import net.minecraft.util.ResourceLocation; - -public class RenderBoulderFist extends RenderLiving -{ - private static final ResourceLocation field_110833_a = new ResourceLocation("alchemicalwizardry", "textures/models/BoulderFist.png"); //refers to:YourMod/modelsTextureFile/optionalFile/yourTexture.png - - public RenderBoulderFist(ModelBase par1ModelBase, float par2) - { - super(par1ModelBase, par2); - } - - public ResourceLocation func_110832_a(EntityBoulderFist par1EntityBoulderFist) - { - return field_110833_a; - } - - public ResourceLocation getEntityTexture(Entity par1Entity) - { - return this.func_110832_a((EntityBoulderFist) par1Entity); - } -} diff --git a/BM_src/WayofTime/alchemicalWizardry/common/renderer/mob/RenderElemental.java b/BM_src/WayofTime/alchemicalWizardry/common/renderer/mob/RenderElemental.java deleted file mode 100644 index 485adc3a..00000000 --- a/BM_src/WayofTime/alchemicalWizardry/common/renderer/mob/RenderElemental.java +++ /dev/null @@ -1,63 +0,0 @@ -package WayofTime.alchemicalWizardry.common.renderer.mob; - -import WayofTime.alchemicalWizardry.common.EntityAirElemental; -import WayofTime.alchemicalWizardry.common.entity.mob.*; -import net.minecraft.client.model.ModelBase; -import net.minecraft.client.renderer.entity.RenderLiving; -import net.minecraft.entity.Entity; -import net.minecraft.util.ResourceLocation; - -public class RenderElemental extends RenderLiving -{ - private static final ResourceLocation airBeacon = new ResourceLocation("alchemicalwizardry", "textures/models/AirFloatingBeacon.png"); //refers to:YourMod/modelsTextureFile/optionalFile/yourTexture.png - private static final ResourceLocation waterBeacon = new ResourceLocation("alchemicalwizardry", "textures/models/WaterFloatingBeacon.png"); - private static final ResourceLocation earthBeacon = new ResourceLocation("alchemicalwizardry", "textures/models/EarthFloatingBeacon.png"); - private static final ResourceLocation fireBeacon = new ResourceLocation("alchemicalwizardry", "textures/models/FireFloatingBeacon.png"); - private static final ResourceLocation shadeBeacon = new ResourceLocation("alchemicalwizardry", "textures/models/DarkFloatingBeacon.png"); - private static final ResourceLocation holyBeacon = new ResourceLocation("alchemicalwizardry", "textures/models/HolyFloatingBeacon.png"); - - public RenderElemental(ModelBase par1ModelBase, float par2) - { - super(par1ModelBase, par2); - } - - public ResourceLocation func_110832_a(EntityElemental par1EntityElemental) - { - if (par1EntityElemental instanceof EntityAirElemental) - { - return airBeacon; - } - - if (par1EntityElemental instanceof EntityWaterElemental) - { - return waterBeacon; - } - - if (par1EntityElemental instanceof EntityEarthElemental) - { - return earthBeacon; - } - - if (par1EntityElemental instanceof EntityFireElemental) - { - return fireBeacon; - } - - if (par1EntityElemental instanceof EntityShadeElemental) - { - return shadeBeacon; - } - - if (par1EntityElemental instanceof EntityHolyElemental) - { - return holyBeacon; - } - - return airBeacon; - } - - public ResourceLocation getEntityTexture(Entity par1Entity) - { - return this.func_110832_a((EntityElemental) par1Entity); - } -} \ No newline at end of file diff --git a/BM_src/WayofTime/alchemicalWizardry/common/renderer/mob/RenderFallenAngel.java b/BM_src/WayofTime/alchemicalWizardry/common/renderer/mob/RenderFallenAngel.java deleted file mode 100644 index 02f038fc..00000000 --- a/BM_src/WayofTime/alchemicalWizardry/common/renderer/mob/RenderFallenAngel.java +++ /dev/null @@ -1,30 +0,0 @@ -package WayofTime.alchemicalWizardry.common.renderer.mob; - -import WayofTime.alchemicalWizardry.common.entity.mob.EntityFallenAngel; -import cpw.mods.fml.relauncher.Side; -import cpw.mods.fml.relauncher.SideOnly; -import net.minecraft.client.model.ModelBase; -import net.minecraft.client.renderer.entity.RenderLiving; -import net.minecraft.entity.Entity; -import net.minecraft.util.ResourceLocation; - -@SideOnly(Side.CLIENT) -public class RenderFallenAngel extends RenderLiving -{ - private static final ResourceLocation field_110833_a = new ResourceLocation("alchemicalwizardry", "textures/models/WingedAngel.png"); //refers to:YourMod/modelsTextureFile/optionalFile/yourTexture.png - - public RenderFallenAngel(ModelBase par1ModelBase, float par2) - { - super(par1ModelBase, par2); - } - - public ResourceLocation func_110832_a(Entity par1EntityFallenAngel) - { - return field_110833_a; - } - - public ResourceLocation getEntityTexture(Entity par1Entity) - { - return this.func_110832_a(par1Entity); - } -} diff --git a/BM_src/WayofTime/alchemicalWizardry/common/renderer/mob/RenderIceDemon.java b/BM_src/WayofTime/alchemicalWizardry/common/renderer/mob/RenderIceDemon.java deleted file mode 100644 index e7dd7219..00000000 --- a/BM_src/WayofTime/alchemicalWizardry/common/renderer/mob/RenderIceDemon.java +++ /dev/null @@ -1,27 +0,0 @@ -package WayofTime.alchemicalWizardry.common.renderer.mob; - -import WayofTime.alchemicalWizardry.common.entity.mob.EntityIceDemon; -import net.minecraft.client.model.ModelBase; -import net.minecraft.client.renderer.entity.RenderLiving; -import net.minecraft.entity.Entity; -import net.minecraft.util.ResourceLocation; - -public class RenderIceDemon extends RenderLiving -{ - private static final ResourceLocation field_110833_a = new ResourceLocation("alchemicalwizardry", "textures/models/IceDemon.png"); //refers to:YourMod/modelsTextureFile/optionalFile/yourTexture.png - - public RenderIceDemon(ModelBase par1ModelBase, float par2) - { - super(par1ModelBase, par2); - } - - public ResourceLocation func_110832_a(EntityIceDemon par1EntityIceDemon) - { - return field_110833_a; - } - - public ResourceLocation getEntityTexture(Entity par1Entity) - { - return this.func_110832_a((EntityIceDemon) par1Entity); - } -} diff --git a/BM_src/WayofTime/alchemicalWizardry/common/renderer/mob/RenderLowerGuardian.java b/BM_src/WayofTime/alchemicalWizardry/common/renderer/mob/RenderLowerGuardian.java deleted file mode 100644 index 4eeaa4d3..00000000 --- a/BM_src/WayofTime/alchemicalWizardry/common/renderer/mob/RenderLowerGuardian.java +++ /dev/null @@ -1,27 +0,0 @@ -package WayofTime.alchemicalWizardry.common.renderer.mob; - -import WayofTime.alchemicalWizardry.common.entity.mob.EntityLowerGuardian; -import net.minecraft.client.model.ModelBase; -import net.minecraft.client.renderer.entity.RenderLiving; -import net.minecraft.entity.Entity; -import net.minecraft.util.ResourceLocation; - -public class RenderLowerGuardian extends RenderLiving -{ - private static final ResourceLocation field_110833_a = new ResourceLocation("alchemicalwizardry", "textures/models/LowerGuardian.png"); //refers to:YourMod/modelsTextureFile/optionalFile/yourTexture.png - - public RenderLowerGuardian(ModelBase par1ModelBase, float par2) - { - super(par1ModelBase, par2); - } - - public ResourceLocation func_110832_a(EntityLowerGuardian par1EntityLowerGuardian) - { - return field_110833_a; - } - - public ResourceLocation getEntityTexture(Entity par1Entity) - { - return this.func_110832_a((EntityLowerGuardian) par1Entity); - } -} diff --git a/BM_src/WayofTime/alchemicalWizardry/common/renderer/mob/RenderShade.java b/BM_src/WayofTime/alchemicalWizardry/common/renderer/mob/RenderShade.java deleted file mode 100644 index 38868202..00000000 --- a/BM_src/WayofTime/alchemicalWizardry/common/renderer/mob/RenderShade.java +++ /dev/null @@ -1,27 +0,0 @@ -package WayofTime.alchemicalWizardry.common.renderer.mob; - -import WayofTime.alchemicalWizardry.common.entity.mob.EntityShade; -import net.minecraft.client.model.ModelBase; -import net.minecraft.client.renderer.entity.RenderLiving; -import net.minecraft.entity.Entity; -import net.minecraft.util.ResourceLocation; - -public class RenderShade extends RenderLiving -{ - private static final ResourceLocation field_110833_a = new ResourceLocation("alchemicalwizardry", "textures/models/ShadeMob.png"); //refers to:YourMod/modelsTextureFile/optionalFile/yourTexture.png - - public RenderShade(ModelBase par1ModelBase, float par2) - { - super(par1ModelBase, par2); - } - - public ResourceLocation func_110832_a(EntityShade par1EntityShade) - { - return field_110833_a; - } - - public ResourceLocation getEntityTexture(Entity par1Entity) - { - return this.func_110832_a((EntityShade) par1Entity); - } -} \ No newline at end of file diff --git a/BM_src/WayofTime/alchemicalWizardry/common/renderer/mob/RenderSmallEarthGolem.java b/BM_src/WayofTime/alchemicalWizardry/common/renderer/mob/RenderSmallEarthGolem.java deleted file mode 100644 index 16772df4..00000000 --- a/BM_src/WayofTime/alchemicalWizardry/common/renderer/mob/RenderSmallEarthGolem.java +++ /dev/null @@ -1,27 +0,0 @@ -package WayofTime.alchemicalWizardry.common.renderer.mob; - -import WayofTime.alchemicalWizardry.common.entity.mob.EntitySmallEarthGolem; -import net.minecraft.client.model.ModelBase; -import net.minecraft.client.renderer.entity.RenderLiving; -import net.minecraft.entity.Entity; -import net.minecraft.util.ResourceLocation; - -public class RenderSmallEarthGolem extends RenderLiving -{ - private static final ResourceLocation field_110833_a = new ResourceLocation("alchemicalwizardry", "textures/models/SmallEarthGolem.png"); //refers to:YourMod/modelsTextureFile/optionalFile/yourTexture.png - - public RenderSmallEarthGolem(ModelBase par1ModelBase, float par2) - { - super(par1ModelBase, par2); - } - - public ResourceLocation func_110832_a(EntitySmallEarthGolem par1EntitySmallEarthGolem) - { - return field_110833_a; - } - - public ResourceLocation getEntityTexture(Entity par1Entity) - { - return this.func_110832_a((EntitySmallEarthGolem) par1Entity); - } -} diff --git a/BM_src/WayofTime/alchemicalWizardry/common/renderer/mob/RenderWingedFireDemon.java b/BM_src/WayofTime/alchemicalWizardry/common/renderer/mob/RenderWingedFireDemon.java deleted file mode 100644 index 826f7832..00000000 --- a/BM_src/WayofTime/alchemicalWizardry/common/renderer/mob/RenderWingedFireDemon.java +++ /dev/null @@ -1,27 +0,0 @@ -package WayofTime.alchemicalWizardry.common.renderer.mob; - -import WayofTime.alchemicalWizardry.common.entity.mob.EntityWingedFireDemon; -import net.minecraft.client.model.ModelBase; -import net.minecraft.client.renderer.entity.RenderLiving; -import net.minecraft.entity.Entity; -import net.minecraft.util.ResourceLocation; - -public class RenderWingedFireDemon extends RenderLiving -{ - private static final ResourceLocation field_110833_a = new ResourceLocation("alchemicalwizardry", "textures/models/WingedFireDemon.png"); //refers to:YourMod/modelsTextureFile/optionalFile/yourTexture.png - - public RenderWingedFireDemon(ModelBase par1ModelBase, float par2) - { - super(par1ModelBase, par2); - } - - public ResourceLocation func_110832_a(EntityWingedFireDemon par1EntityWingedFireDemon) - { - return field_110833_a; - } - - public ResourceLocation getEntityTexture(Entity par1Entity) - { - return this.func_110832_a((EntityWingedFireDemon) par1Entity); - } -} diff --git a/BM_src/WayofTime/alchemicalWizardry/common/renderer/model/ModelBileDemon.java b/BM_src/WayofTime/alchemicalWizardry/common/renderer/model/ModelBileDemon.java deleted file mode 100644 index e09db58e..00000000 --- a/BM_src/WayofTime/alchemicalWizardry/common/renderer/model/ModelBileDemon.java +++ /dev/null @@ -1,181 +0,0 @@ -package WayofTime.alchemicalWizardry.common.renderer.model; - -import net.minecraft.client.model.ModelBase; -import net.minecraft.client.model.ModelRenderer; -import net.minecraft.entity.Entity; -import net.minecraft.util.MathHelper; -import org.lwjgl.opengl.GL11; - -public class ModelBileDemon extends ModelBase -{ - //fields - ModelRenderer belly; - ModelRenderer chest; - ModelRenderer head; - ModelRenderer nose; - ModelRenderer leftHorn; - ModelRenderer leftArmSpacer; - ModelRenderer leftArm; - ModelRenderer leftChain; - ModelRenderer leftBall; - ModelRenderer rightHorn; - ModelRenderer rightChain; - ModelRenderer rightBall; - ModelRenderer rightArmSpacer; - ModelRenderer rightArm; - - public ModelBileDemon() - { - textureWidth = 128; - textureHeight = 64; - belly = new ModelRenderer(this, 0, 31); - belly.addBox(-8F, -1F, -10F, 16, 15, 18); - belly.setRotationPoint(0F, 10F, 0F); - belly.setTextureSize(128, 64); - belly.mirror = true; - setRotation(belly, 0F, 0F, 0F); - chest = new ModelRenderer(this, 70, 46); - chest.addBox(-7F, -4F, -6F, 14, 4, 14); - chest.setRotationPoint(0F, 10F, 0F); - chest.setTextureSize(128, 64); - chest.mirror = true; - setRotation(chest, -0.1115358F, 0F, 0F); - head = new ModelRenderer(this, 0, 0); - head.addBox(-4F, -8F, -4F, 8, 8, 8); - head.setRotationPoint(0F, 6F, 3F); - head.setTextureSize(128, 64); - head.mirror = true; - setRotation(head, 0F, 0F, 0F); - nose = new ModelRenderer(this, 0, 0); - nose.addBox(-1F, -4F, -5F, 2, 1, 1); - nose.setRotationPoint(0F, 6F, 3F); - nose.setTextureSize(128, 64); - nose.mirror = true; - setRotation(nose, 0F, 0F, 0F); - leftHorn = new ModelRenderer(this, 93, 1); - leftHorn.addBox(4F, -7F, 0F, 16, 1, 1); - leftHorn.setRotationPoint(0F, 6F, 3F); - leftHorn.setTextureSize(128, 64); - leftHorn.mirror = true; - setRotation(leftHorn, 0F, 0F, 0F); - leftArmSpacer = new ModelRenderer(this, 80, 1); - leftArmSpacer.addBox(0F, -2F, -2F, 1, 4, 4); - leftArmSpacer.setRotationPoint(7F, 8F, 3F); - leftArmSpacer.setTextureSize(128, 64); - leftArmSpacer.mirror = true; - setRotation(leftArmSpacer, 0F, 0F, 0F); - leftArm = new ModelRenderer(this, 62, 1); - leftArm.addBox(1F, -2F, -2F, 4, 18, 4); - leftArm.setRotationPoint(7F, 8F, 3F); - leftArm.setTextureSize(128, 64); - leftArm.mirror = true; - setRotation(leftArm, 0F, 0F, 0F); - leftChain = new ModelRenderer(this, 95, 5); - leftChain.addBox(17F, -6F, 0F, 1, 6, 1); - leftChain.setRotationPoint(0F, 6F, 3F); - leftChain.setTextureSize(128, 64); - leftChain.mirror = true; - setRotation(leftChain, 0F, 0F, 0F); - leftBall = new ModelRenderer(this, 107, 4); - leftBall.addBox(15F, 0F, -2F, 5, 5, 5); - leftBall.setRotationPoint(0F, 6F, 3F); - leftBall.setTextureSize(128, 64); - leftBall.mirror = true; - setRotation(leftBall, 0F, 0F, 0F); - rightHorn = new ModelRenderer(this, 93, 1); - rightHorn.mirror = true; - rightHorn.addBox(-20F, -7F, 0F, 16, 1, 1); - rightHorn.setRotationPoint(0F, 6F, 3F); - rightHorn.setTextureSize(128, 64); - rightHorn.mirror = true; - setRotation(rightHorn, 0F, 0F, 0F); - rightHorn.mirror = false; - rightChain = new ModelRenderer(this, 95, 5); - rightChain.mirror = true; - rightChain.addBox(-18F, -6F, 0F, 1, 6, 1); - rightChain.setRotationPoint(0F, 6F, 3F); - rightChain.setTextureSize(128, 64); - rightChain.mirror = true; - setRotation(rightChain, 0F, 0F, 0F); - rightChain.mirror = false; - rightBall = new ModelRenderer(this, 107, 4); - rightBall.mirror = true; - rightBall.addBox(-20F, 0F, -2F, 5, 5, 5); - rightBall.setRotationPoint(0F, 6F, 3F); - rightBall.setTextureSize(128, 64); - rightBall.mirror = true; - setRotation(rightBall, 0F, 0F, 0F); - rightBall.mirror = false; - rightArmSpacer = new ModelRenderer(this, 80, 1); - rightArmSpacer.mirror = true; - rightArmSpacer.addBox(-1F, -2F, -2F, 1, 4, 4); - rightArmSpacer.setRotationPoint(-7F, 8F, 3F); - rightArmSpacer.setTextureSize(128, 64); - rightArmSpacer.mirror = true; - setRotation(rightArmSpacer, 0F, 0F, 0F); - rightArmSpacer.mirror = false; - rightArm = new ModelRenderer(this, 62, 1); - rightArm.mirror = true; - rightArm.addBox(-5F, -2F, -2F, 4, 18, 4); - rightArm.setRotationPoint(-7F, 8F, 3F); - rightArm.setTextureSize(128, 64); - rightArm.mirror = true; - setRotation(rightArm, 0F, 0F, 0F); - rightArm.mirror = false; - } - - public void render(Entity entity, float f, float f1, float f2, float f3, float f4, float f5) - { - super.render(entity, f, f1, f2, f3, f4, f5); - setRotationAngles(f, f1, f2, f3, f4, f5, entity); - float scale = 1.3f; - GL11.glScalef(scale, scale, scale); - GL11.glTranslatef(0.0f, -(6.0f / 16.0f), 0.0f); - belly.render(f5); - chest.render(f5); - head.render(f5); - nose.render(f5); - leftHorn.render(f5); - leftArmSpacer.render(f5); - leftArm.render(f5); - leftChain.render(f5); - leftBall.render(f5); - rightHorn.render(f5); - rightChain.render(f5); - rightBall.render(f5); - rightArmSpacer.render(f5); - rightArm.render(f5); - } - - private void setRotation(ModelRenderer model, float x, float y, float z) - { - model.rotateAngleX = x; - model.rotateAngleY = y; - model.rotateAngleZ = z; - } - - public void setRotationAngles(float f, float f1, float f2, float f3, float f4, float f5, Entity entity) - { - super.setRotationAngles(f, f1, f2, f3, f4, f5, entity); - this.head.rotateAngleX = f4 / (180F / (float) Math.PI); - this.head.rotateAngleY = f3 / (180F / (float) Math.PI); - this.rightArm.rotateAngleX = MathHelper.cos(f * 0.3662F + (float) Math.PI) * 1.0F * f1; - this.leftArm.rotateAngleX = MathHelper.cos(f * 0.3662F) * 1.0F * f1; - this.rightArmSpacer.rotateAngleX = MathHelper.cos(f * 0.3662F + (float) Math.PI) * 1.0F * f1; - this.leftArmSpacer.rotateAngleX = MathHelper.cos(f * 0.3662F) * 1.0F * f1; - this.leftBall.rotateAngleX = this.head.rotateAngleX; - this.leftBall.rotateAngleY = this.head.rotateAngleY; - this.rightBall.rotateAngleX = this.head.rotateAngleX; - this.rightBall.rotateAngleY = this.head.rotateAngleY; - this.leftChain.rotateAngleX = this.head.rotateAngleX; - this.leftChain.rotateAngleY = this.head.rotateAngleY; - this.rightChain.rotateAngleX = this.head.rotateAngleX; - this.rightChain.rotateAngleY = this.head.rotateAngleY; - this.leftHorn.rotateAngleX = this.head.rotateAngleX; - this.leftHorn.rotateAngleY = this.head.rotateAngleY; - this.rightHorn.rotateAngleX = this.head.rotateAngleX; - this.rightHorn.rotateAngleY = this.head.rotateAngleY; - this.nose.rotateAngleX = this.head.rotateAngleX; - this.nose.rotateAngleY = this.head.rotateAngleY; - } -} \ No newline at end of file diff --git a/BM_src/WayofTime/alchemicalWizardry/common/renderer/model/ModelBloodAltar.java b/BM_src/WayofTime/alchemicalWizardry/common/renderer/model/ModelBloodAltar.java deleted file mode 100644 index 33de85cc..00000000 --- a/BM_src/WayofTime/alchemicalWizardry/common/renderer/model/ModelBloodAltar.java +++ /dev/null @@ -1,70 +0,0 @@ -package WayofTime.alchemicalWizardry.common.renderer.model; - -import WayofTime.alchemicalWizardry.common.tileEntity.TEAltar; -import cpw.mods.fml.client.FMLClientHandler; -import net.minecraft.client.model.ModelBase; -import net.minecraft.util.ResourceLocation; -import net.minecraftforge.client.model.AdvancedModelLoader; -import net.minecraftforge.client.model.IModelCustom; -import org.lwjgl.opengl.GL11; - -public class ModelBloodAltar extends ModelBase -{ - private IModelCustom modelBloodAltar; - private IModelCustom modelBloodLevel; //TODO - - public ModelBloodAltar() - { - modelBloodAltar = AdvancedModelLoader.loadModel("/assets/alchemicalwizardry/models/bloodaltar-fixeUV.obj"); - modelBloodLevel = AdvancedModelLoader.loadModel("/assets/alchemicalwizardry/models/bloodlevel.obj"); - } - - public void renderBloodAltar() - { - modelBloodAltar.renderAll(); - } - - public void renderBloodLevel() - { - modelBloodLevel.renderAll(); - } - - public void renderBloodAltar(TEAltar altar, double x, double y, double z) - { - float scale = 0.1f; - // Push a blank matrix onto the stack - GL11.glPushMatrix(); - // Move the object into the correct position on the block (because the OBJ's origin is the center of the object) - GL11.glTranslatef((float) x + 0.5f, (float) y, (float) z + 0.5f); - // Scale our object to about half-size in all directions (the OBJ file is a little large) - GL11.glScalef(scale, scale, scale); - // Bind the texture, so that OpenGL properly textures our block. - ResourceLocation test = new ResourceLocation("alchemicalwizardry:textures/models/altar.png"); - //FMLClientHandler.instance().getClient().renderEngine.bindTexture("/mods/alchemicalwizardry/textures/models/altar.png"); - FMLClientHandler.instance().getClient().renderEngine.bindTexture(test); - // Render the object, using modelTutBox.renderAll(); - this.renderBloodAltar(); - // Pop this matrix from the stack. - GL11.glPopMatrix(); - } - - public void renderBloodLevel(TEAltar altar, double x, double y, double z) - { - float scale = 0.1f; - // Push a blank matrix onto the stack - GL11.glPushMatrix(); - float level = altar.getFluidAmount(); - // Move the object into the correct position on the block (because the OBJ's origin is the center of the object) - GL11.glTranslatef((float) x + 0.5f, (float) y + 0.6499f + 0.12f * (level / altar.getCapacity()), (float) z + 0.5f); - // Scale our object to about half-size in all directions (the OBJ file is a little large) - GL11.glScalef(scale, scale, scale); - // Bind the texture, so that OpenGL properly textures our block. - ResourceLocation test = new ResourceLocation("alchemicalwizardry:textures/models/blood.png"); - //FMLClientHandler.instance().getClient().renderEngine.bindTexture("/mods/alchemicalwizardry/textures/models/altar.png"); - FMLClientHandler.instance().getClient().renderEngine.bindTexture(test); - // Render the object, using modelTutBox.renderAll(); - this.renderBloodLevel(); - // Pop this matrix from the stack. - GL11.glPopMatrix(); - } -} diff --git a/BM_src/WayofTime/alchemicalWizardry/common/renderer/model/ModelBoulderFist.java b/BM_src/WayofTime/alchemicalWizardry/common/renderer/model/ModelBoulderFist.java deleted file mode 100644 index a2cebd46..00000000 --- a/BM_src/WayofTime/alchemicalWizardry/common/renderer/model/ModelBoulderFist.java +++ /dev/null @@ -1,153 +0,0 @@ -package WayofTime.alchemicalWizardry.common.renderer.model; - -import net.minecraft.client.model.ModelBase; -import net.minecraft.client.model.ModelRenderer; -import net.minecraft.entity.Entity; -import net.minecraft.util.MathHelper; - -public class ModelBoulderFist extends ModelBase -{ - //fields - ModelRenderer leftFist; - ModelRenderer leftArm; - ModelRenderer body; - ModelRenderer leftLeg1; - ModelRenderer leftLeg2; - ModelRenderer leftFoot; - ModelRenderer rightFist; - ModelRenderer rightArm; - ModelRenderer rightLeg1; - ModelRenderer rightLeg2; - ModelRenderer rightFoot; - ModelRenderer head; - - public ModelBoulderFist() - { - textureWidth = 64; - textureHeight = 64; - leftFist = new ModelRenderer(this, 33, 52); - leftFist.addBox(-1F, 12F, -3F, 6, 6, 6); - leftFist.setRotationPoint(5F, 6F, -6F); - leftFist.setTextureSize(64, 64); - leftFist.mirror = true; - setRotation(leftFist, 0F, 0F, 0F); - leftArm = new ModelRenderer(this, 48, 33); - leftArm.addBox(0F, -2F, -2F, 4, 14, 4); - leftArm.setRotationPoint(5F, 6F, -6F); - leftArm.setTextureSize(64, 64); - leftArm.mirror = true; - setRotation(leftArm, 0F, 0F, 0F); - body = new ModelRenderer(this, 0, 40); - body.addBox(-5F, -2F, -3F, 10, 18, 6); - body.setRotationPoint(0F, 6F, -6F); - body.setTextureSize(64, 64); - body.mirror = true; - setRotation(body, 1.22173F, 0F, 0F); - leftLeg1 = new ModelRenderer(this, 0, 25); - leftLeg1.addBox(0F, -1F, -1F, 4, 6, 2); - leftLeg1.setRotationPoint(5F, 11F, 7F); - leftLeg1.setTextureSize(64, 64); - leftLeg1.mirror = true; - setRotation(leftLeg1, -((float) Math.PI / 4F), 0F, 0F); - leftLeg2 = new ModelRenderer(this, 1, 25); - leftLeg2.addBox(0F, 5F, -1F, 4, 2, 12); - leftLeg2.setRotationPoint(5F, 11F, 7F); - leftLeg2.setTextureSize(64, 64); - leftLeg2.mirror = true; - setRotation(leftLeg2, -((float) Math.PI / 4F), 0F, 0F); - leftFoot = new ModelRenderer(this, 22, 25); - leftFoot.addBox(0F, 11F, -1F, 4, 2, 5); - leftFoot.setRotationPoint(5F, 11F, 7F); - leftFoot.setTextureSize(64, 64); - leftFoot.mirror = true; - setRotation(leftFoot, 0F, 0F, 0F); - rightFist = new ModelRenderer(this, 33, 52); - rightFist.mirror = true; - rightFist.addBox(-5F, 12F, -3F, 6, 6, 6); - rightFist.setRotationPoint(-5F, 6F, -6F); - rightFist.setTextureSize(64, 64); - rightFist.mirror = true; - setRotation(rightFist, 0F, 0F, 0F); - rightFist.mirror = false; - rightArm = new ModelRenderer(this, 48, 33); - rightArm.mirror = true; - rightArm.addBox(-4F, -2F, -2F, 4, 14, 4); - rightArm.setRotationPoint(-5F, 6F, -6F); - rightArm.setTextureSize(64, 64); - rightArm.mirror = true; - setRotation(rightArm, 0F, 0F, 0F); - rightArm.mirror = false; - rightLeg1 = new ModelRenderer(this, 0, 25); - rightLeg1.mirror = true; - rightLeg1.addBox(-4F, -1F, -1F, 4, 6, 2); - rightLeg1.setRotationPoint(-5F, 11F, 7F); - rightLeg1.setTextureSize(64, 64); - rightLeg1.mirror = true; - setRotation(rightLeg1, -((float) Math.PI / 4F), 0F, 0F); - rightLeg1.mirror = false; - rightLeg2 = new ModelRenderer(this, 1, 25); - rightLeg2.mirror = true; - rightLeg2.addBox(-4F, 5F, -1F, 4, 2, 12); - rightLeg2.setRotationPoint(-5F, 11F, 7F); - rightLeg2.setTextureSize(64, 64); - rightLeg2.mirror = true; - setRotation(rightLeg2, -((float) Math.PI / 4F), 0F, 0F); - rightLeg2.mirror = false; - rightFoot = new ModelRenderer(this, 22, 25); - rightFoot.mirror = true; - rightFoot.addBox(-4F, 11F, -1F, 4, 2, 5); - rightFoot.setRotationPoint(-5F, 11F, 7F); - rightFoot.setTextureSize(64, 64); - rightFoot.mirror = true; - setRotation(rightFoot, 0F, 0F, 0F); - rightFoot.mirror = false; - head = new ModelRenderer(this, 0, 0); - head.addBox(-3F, -5F, -5F, 6, 6, 6); - head.setRotationPoint(0F, 5F, -7F); - head.setTextureSize(64, 64); - head.mirror = true; - setRotation(head, 0F, 0F, 0F); - } - - public void render(Entity entity, float f, float f1, float f2, float f3, float f4, float f5) - { - super.render(entity, f, f1, f2, f3, f4, f5); - setRotationAngles(f, f1, f2, f3, f4, f5, entity); - leftFist.render(f5); - leftArm.render(f5); - body.render(f5); - leftLeg1.render(f5); - leftLeg2.render(f5); - leftFoot.render(f5); - rightFist.render(f5); - rightArm.render(f5); - rightLeg1.render(f5); - rightLeg2.render(f5); - rightFoot.render(f5); - head.render(f5); - } - - private void setRotation(ModelRenderer model, float x, float y, float z) - { - model.rotateAngleX = x; - model.rotateAngleY = y; - model.rotateAngleZ = z; - } - - public void setRotationAngles(float f, float f1, float f2, float f3, float f4, float f5, Entity entity) - { - super.setRotationAngles(f, f1, f2, f3, f4, f5, entity); - this.head.rotateAngleX = f4 / (180F / (float) Math.PI); - this.head.rotateAngleY = f3 / (180F / (float) Math.PI); - this.leftFoot.rotateAngleX = MathHelper.cos(f * 0.6662F) * 0.8F * f1; - this.rightFoot.rotateAngleX = MathHelper.cos(f * 0.6662F + (float) Math.PI) * 0.8F * f1; - this.leftLeg1.rotateAngleX = leftFoot.rotateAngleX - ((float) Math.PI / 4F); - this.rightLeg1.rotateAngleX = rightFoot.rotateAngleX - ((float) Math.PI / 4F); - this.leftLeg2.rotateAngleX = leftFoot.rotateAngleX - ((float) Math.PI / 4F); - this.rightLeg2.rotateAngleX = rightFoot.rotateAngleX - ((float) Math.PI / 4F); - this.rightArm.rotateAngleX = MathHelper.cos(f * 0.6662F + (float) Math.PI) * 0.9f * f1; - this.leftArm.rotateAngleX = MathHelper.cos(f * 0.6662F) * 0.9f * f1; - this.leftFist.rotateAngleX = leftArm.rotateAngleX; - this.rightFist.rotateAngleX = rightArm.rotateAngleX; - } -} \ No newline at end of file diff --git a/BM_src/WayofTime/alchemicalWizardry/common/renderer/model/ModelConduit.java b/BM_src/WayofTime/alchemicalWizardry/common/renderer/model/ModelConduit.java deleted file mode 100644 index bff5c62b..00000000 --- a/BM_src/WayofTime/alchemicalWizardry/common/renderer/model/ModelConduit.java +++ /dev/null @@ -1,287 +0,0 @@ -package WayofTime.alchemicalWizardry.common.renderer.model; - -//Date: 11/26/2013 1:57:16 PM -//Template version 1.1 -//Java generated by Techne -//Keep in mind that you still need to fill in some blanks -//- ZeuX - -import net.minecraft.client.model.ModelBase; -import net.minecraft.client.model.ModelRenderer; -import net.minecraft.entity.Entity; -import net.minecraftforge.common.ForgeDirection; - -public class ModelConduit extends ModelBase -{ - //fields - ModelRenderer curvedInput; - ModelRenderer curvedOutput; - ModelRenderer straightBar1; - ModelRenderer curvedBar1; - ModelRenderer spacer1; - ModelRenderer straightBar2; - ModelRenderer curvedBar2; - ModelRenderer spacer2; - ModelRenderer straightBar3; - ModelRenderer curvedBar3; - ModelRenderer straightBar4; - ModelRenderer curvedBar4; - ModelRenderer spacer3; - ModelRenderer spacer4; - ModelRenderer spacer5; - ModelRenderer spacer6; - ModelRenderer spacer7; - ModelRenderer spacer8; - - public ModelConduit() - { - textureWidth = 64; - textureHeight = 32; - curvedInput = new ModelRenderer(this, 0, 0); - curvedInput.addBox(-2F, -2F, -8F, 4, 4, 10); - curvedInput.setRotationPoint(0F, 16F, 0F); - curvedInput.setTextureSize(64, 32); - curvedInput.mirror = true; - setRotation(curvedInput, 0F, 0F, 0F); - curvedOutput = new ModelRenderer(this, 18, 0); - curvedOutput.addBox(2F, -2F, -2F, 6, 4, 4); - curvedOutput.setRotationPoint(0F, 16F, 0F); - curvedOutput.setTextureSize(64, 32); - curvedOutput.mirror = true; - setRotation(curvedOutput, 0F, 0F, 0F); - straightBar1 = new ModelRenderer(this, 0, 17); - straightBar1.addBox(-5F, 3F, -8F, 2, 2, 13); - straightBar1.setRotationPoint(0F, 16F, 0F); - straightBar1.setTextureSize(64, 32); - straightBar1.mirror = true; - setRotation(straightBar1, 0F, 0F, 0F); - curvedBar1 = new ModelRenderer(this, 29, 10); - curvedBar1.addBox(-5F, 3F, 3F, 13, 2, 2); - curvedBar1.setRotationPoint(0F, 16F, 0F); - curvedBar1.setTextureSize(64, 32); - curvedBar1.mirror = true; - setRotation(curvedBar1, 0F, 0F, 0F); - spacer1 = new ModelRenderer(this, 40, 0); - spacer1.addBox(-5.5F, 2.5F, 2.5F, 3, 3, 3); - spacer1.setRotationPoint(0F, 16F, 0F); - spacer1.setTextureSize(64, 32); - spacer1.mirror = true; - setRotation(spacer1, 0F, 0F, 0F); - straightBar2 = new ModelRenderer(this, 0, 17); - straightBar2.addBox(-5F, -5F, -8F, 2, 2, 13); - straightBar2.setRotationPoint(0F, 16F, 0F); - straightBar2.setTextureSize(64, 32); - straightBar2.mirror = true; - setRotation(straightBar2, 0F, 0F, 0F); - curvedBar2 = new ModelRenderer(this, 29, 10); - curvedBar2.addBox(-5F, -5F, 3F, 13, 2, 2); - curvedBar2.setRotationPoint(0F, 16F, 0F); - curvedBar2.setTextureSize(64, 32); - curvedBar2.mirror = true; - setRotation(curvedBar2, 0F, 0F, 0F); - spacer2 = new ModelRenderer(this, 40, 0); - spacer2.addBox(-5.5F, -5.5F, 2.5F, 3, 3, 3); - spacer2.setRotationPoint(0F, 16F, 0F); - spacer2.setTextureSize(64, 32); - spacer2.mirror = true; - setRotation(spacer2, 0F, 0F, 0F); - straightBar3 = new ModelRenderer(this, 0, 17); - straightBar3.addBox(3F, 3F, -8F, 2, 2, 13); - straightBar3.setRotationPoint(0F, 16F, 0F); - straightBar3.setTextureSize(64, 32); - straightBar3.mirror = true; - setRotation(straightBar3, 0F, 0F, 0F); - curvedBar3 = new ModelRenderer(this, 29, 10); - curvedBar3.addBox(-5F, 3F, -5F, 13, 2, 2); - curvedBar3.setRotationPoint(0F, 16F, 0F); - curvedBar3.setTextureSize(64, 32); - curvedBar3.mirror = true; - setRotation(curvedBar3, 0F, 0F, 0F); - straightBar4 = new ModelRenderer(this, 0, 17); - straightBar4.addBox(3F, -5F, -8F, 2, 2, 13); - straightBar4.setRotationPoint(0F, 16F, 0F); - straightBar4.setTextureSize(64, 32); - straightBar4.mirror = true; - setRotation(straightBar4, 0F, 0F, 0F); - curvedBar4 = new ModelRenderer(this, 29, 10); - curvedBar4.addBox(-5F, -5F, -5F, 13, 2, 2); - curvedBar4.setRotationPoint(0F, 16F, 0F); - curvedBar4.setTextureSize(64, 32); - curvedBar4.mirror = true; - setRotation(curvedBar4, 0F, 0F, 0F); - spacer3 = new ModelRenderer(this, 40, 0); - spacer3.addBox(2.5F, 2.5F, 2.5F, 3, 3, 3); - spacer3.setRotationPoint(0F, 16F, 0F); - spacer3.setTextureSize(64, 32); - spacer3.mirror = true; - setRotation(spacer3, 0F, 0F, 0F); - spacer4 = new ModelRenderer(this, 40, 0); - spacer4.addBox(2.5F, 2.5F, -5.5F, 3, 3, 3); - spacer4.setRotationPoint(0F, 16F, 0F); - spacer4.setTextureSize(64, 32); - spacer4.mirror = true; - setRotation(spacer4, 0F, 0F, 0F); - spacer5 = new ModelRenderer(this, 40, 0); - spacer5.addBox(-5.5F, 2.5F, -5.484F, 3, 3, 3); - spacer5.setRotationPoint(0F, 16F, 0F); - spacer5.setTextureSize(64, 32); - spacer5.mirror = true; - setRotation(spacer5, 0F, 0F, 0F); - spacer6 = new ModelRenderer(this, 40, 0); - spacer6.addBox(2.5F, -5.5F, 2.5F, 3, 3, 3); - spacer6.setRotationPoint(0F, 16F, 0F); - spacer6.setTextureSize(64, 32); - spacer6.mirror = true; - setRotation(spacer6, 0F, 0F, 0F); - spacer7 = new ModelRenderer(this, 40, 0); - spacer7.addBox(2.5F, -5.5F, -5.5F, 3, 3, 3); - spacer7.setRotationPoint(0F, 16F, 0F); - spacer7.setTextureSize(64, 32); - spacer7.mirror = true; - setRotation(spacer7, 0F, 0F, 0F); - spacer8 = new ModelRenderer(this, 40, 0); - spacer8.addBox(-5.5F, -5.5F, -5.5F, 3, 3, 3); - spacer8.setRotationPoint(0F, 16F, 0F); - spacer8.setTextureSize(64, 32); - spacer8.mirror = true; - setRotation(spacer8, 0F, 0F, 0F); - } - - public void render(Entity entity, float f, float f1, float f2, float f3, float f4, float f5, ForgeDirection input, ForgeDirection output) - { - super.render(entity, f, f1, f2, f3, f4, f5); - setRotationAngles(f, f1, f2, f3, f4, f5, entity); - float xInputRot = 0.0f; - float yInputRot = 0.0f; - float zInputRot = 0.0f; - float xOutputRot = 0.0f; - float yOutputRot = 0.0f; - float zOutputRot = 0.0f; - - switch (input) - { - case NORTH: - xInputRot = 0.0f; - yInputRot = 0.0f; - zInputRot = 0.0f; - break; - - case EAST: - xInputRot = 0.0f; - yInputRot = (float) (0.5f * Math.PI); - zInputRot = 0.0f; - break; - - case SOUTH: - xInputRot = 0.0f; - yInputRot = (float) (1.0f * Math.PI); - zInputRot = 0.0f; - break; - - case WEST: - xInputRot = 0.0f; - yInputRot = (float) (-0.5f * Math.PI); - zInputRot = 0.0f; - break; - - case UP: - xInputRot = (float) (-0.5f * Math.PI); - yInputRot = 0.0f; - zInputRot = 0.0f; - break; - - case DOWN: - xInputRot = (float) (0.5f * Math.PI); - yInputRot = 0.0f; - zInputRot = 0.0f; - break; - - default: - break; - } - - switch (output) - { - case NORTH: - xOutputRot = 0.0f; - yOutputRot = (float) (0.5f * Math.PI); - zOutputRot = 0.0f; - break; - - case EAST: - xOutputRot = 0.0f; - yOutputRot = (float) (1.0f * Math.PI); - zOutputRot = 0.0f; - break; - - case SOUTH: - xOutputRot = 0.0f; - yOutputRot = (float) (-0.5f * Math.PI); - zOutputRot = 0.0f; - break; - - case WEST: - xOutputRot = 0.0f; - yOutputRot = 0.0f; - zOutputRot = 0.0f; - break; - - case UP: - xOutputRot = 0.0f; - yOutputRot = 0.0f; - zOutputRot = (float) (-0.5f * Math.PI); - break; - - case DOWN: - xOutputRot = 0.0f; - yOutputRot = 0.0f; - zOutputRot = (float) (0.5f * Math.PI); - break; - - default: - break; - } - - this.setRotation(curvedInput, xInputRot, yInputRot, zInputRot); - this.setRotation(curvedOutput, xOutputRot, yOutputRot, zOutputRot); - this.setRotation(straightBar1, xInputRot, yInputRot, zInputRot); - this.setRotation(curvedBar1, xOutputRot, yOutputRot, zOutputRot); - this.setRotation(straightBar2, xInputRot, yInputRot, zInputRot); - this.setRotation(curvedBar2, xOutputRot, yOutputRot, zOutputRot); - this.setRotation(straightBar3, xInputRot, yInputRot, zInputRot); - this.setRotation(curvedBar3, xOutputRot, yOutputRot, zOutputRot); - this.setRotation(straightBar4, xInputRot, yInputRot, zInputRot); - this.setRotation(curvedBar4, xOutputRot, yOutputRot, zOutputRot); - curvedInput.render(f5); - curvedOutput.render(f5); - //setRotation(curvedOutput,0F,-(float)(Math.PI/2),0F); - straightBar1.render(f5); - curvedBar1.render(f5); - spacer1.render(f5); - straightBar2.render(f5); - curvedBar2.render(f5); - spacer2.render(f5); - straightBar3.render(f5); - curvedBar3.render(f5); - straightBar4.render(f5); - curvedBar4.render(f5); - spacer3.render(f5); - spacer4.render(f5); - spacer5.render(f5); - spacer6.render(f5); - spacer7.render(f5); - spacer8.render(f5); - } - - private void setRotation(ModelRenderer model, float x, float y, float z) - { - model.rotateAngleX = x; - model.rotateAngleY = y; - model.rotateAngleZ = z; - } - - public void setRotationAngles(float f, float f1, float f2, float f3, float f4, float f5, Entity entity) - { - super.setRotationAngles(f, f1, f2, f3, f4, f5, entity); - } -} diff --git a/BM_src/WayofTime/alchemicalWizardry/common/renderer/model/ModelElemental.java b/BM_src/WayofTime/alchemicalWizardry/common/renderer/model/ModelElemental.java deleted file mode 100644 index 25cb2814..00000000 --- a/BM_src/WayofTime/alchemicalWizardry/common/renderer/model/ModelElemental.java +++ /dev/null @@ -1,81 +0,0 @@ -package WayofTime.alchemicalWizardry.common.renderer.model; - -import net.minecraft.client.model.ModelBase; -import net.minecraft.client.model.ModelRenderer; -import net.minecraft.entity.Entity; -import net.minecraft.entity.monster.EntityBlaze; -import net.minecraft.world.World; - -public class ModelElemental extends ModelBase -{ - //fields - ModelRenderer body; - ModelRenderer Shape2; - ModelRenderer Shape1; - ModelRenderer Shape3; - - public ModelElemental() - { - textureWidth = 64; - textureHeight = 32; - body = new ModelRenderer(this, 33, 0); - body.addBox(-3F, -3F, -3F, 6, 6, 6); - body.setRotationPoint(0F, 14F, 0F); - body.setTextureSize(64, 32); - body.mirror = true; - setRotation(body, 0F, 0F, 0F); - Shape2 = new ModelRenderer(this, 0, 0); - Shape2.addBox(-4F, -4F, -4F, 8, 8, 8); - Shape2.setRotationPoint(0F, 14F, 0F); - Shape2.setTextureSize(64, 32); - Shape2.mirror = true; - setRotation(Shape2, ((float) Math.PI / 4F), ((float) Math.PI / 4F), 0F); - Shape1 = new ModelRenderer(this, 0, 0); - Shape1.addBox(-4F, -4F, -4F, 8, 8, 8); - Shape1.setRotationPoint(0F, 14F, 0F); - Shape1.setTextureSize(64, 32); - Shape1.mirror = true; - setRotation(Shape1, 0F, ((float) Math.PI / 4F), ((float) Math.PI / 4F)); - Shape3 = new ModelRenderer(this, 0, 0); - Shape3.addBox(-4F, -4F, -4F, 8, 8, 8); - Shape3.setRotationPoint(0F, 14F, 0F); - Shape3.setTextureSize(64, 32); - Shape3.mirror = true; - setRotation(Shape3, ((float) Math.PI / 4F), 0F, ((float) Math.PI / 4F)); - } - - public void render(Entity entity, float f, float f1, float f2, float f3, float f4, float f5) - { - super.render(entity, f, f1, f2, f3, f4, f5); - setRotationAngles(f, f1, f2, f3, f4, f5, entity); - body.render(f5); - Shape2.render(f5); - Shape1.render(f5); - Shape3.render(f5); - } - - private void setRotation(ModelRenderer model, float x, float y, float z) - { - model.rotateAngleX = x; - model.rotateAngleY = y; - model.rotateAngleZ = z; - } - - public void setRotationAngles(float f, float f1, float f2, float f3, float f4, float f5, Entity entity) - { - super.setRotationAngles(f, f1, f2, f3, f4, f5, entity); - World world = entity.worldObj; - - if (world == null) - { - return; - } - - int ratio = 20; - float rot = (entity.worldObj.getWorldTime() % ratio) / ratio; - Shape1.rotateAngleX = f / 5; - Shape2.rotateAngleZ = f / 5; - Shape3.rotateAngleY = f / 5; - EntityBlaze d; - } -} diff --git a/BM_src/WayofTime/alchemicalWizardry/common/renderer/model/ModelEnergyBazookaMainProjectile.java b/BM_src/WayofTime/alchemicalWizardry/common/renderer/model/ModelEnergyBazookaMainProjectile.java deleted file mode 100644 index de8e7e6b..00000000 --- a/BM_src/WayofTime/alchemicalWizardry/common/renderer/model/ModelEnergyBazookaMainProjectile.java +++ /dev/null @@ -1,122 +0,0 @@ -package WayofTime.alchemicalWizardry.common.renderer.model; - -import net.minecraft.client.model.ModelBase; -import net.minecraft.client.model.ModelRenderer; -import net.minecraft.entity.Entity; - -public class ModelEnergyBazookaMainProjectile extends ModelBase -{ - //fields - ModelRenderer thirdWarHead; - ModelRenderer firstWarHead; - ModelRenderer secondWarHead; - ModelRenderer support1; - ModelRenderer mainBody; - ModelRenderer support2; - ModelRenderer support3; - ModelRenderer support4; - ModelRenderer base1; - ModelRenderer base2; - ModelRenderer base3; - - public ModelEnergyBazookaMainProjectile() - { - textureWidth = 64; - textureHeight = 32; - thirdWarHead = new ModelRenderer(this, 43, 0); - thirdWarHead.addBox(-1F, -1F, -9F, 2, 2, 1); - thirdWarHead.setRotationPoint(0F, 0F, 0F); - thirdWarHead.setTextureSize(64, 32); - thirdWarHead.mirror = true; - setRotation(thirdWarHead, 0F, 0F, 0F); - firstWarHead = new ModelRenderer(this, 52, 0); - firstWarHead.addBox(-2F, -2F, -8F, 4, 4, 2); - firstWarHead.setRotationPoint(0F, 0F, 0F); - firstWarHead.setTextureSize(64, 32); - firstWarHead.mirror = true; - setRotation(firstWarHead, 0F, 0F, 0F); - secondWarHead = new ModelRenderer(this, 48, 8); - secondWarHead.addBox(-3F, -3F, -6F, 6, 6, 2); - secondWarHead.setRotationPoint(0F, 0F, 0F); - secondWarHead.setTextureSize(64, 32); - secondWarHead.mirror = true; - setRotation(secondWarHead, 0F, 0F, 0F); - support1 = new ModelRenderer(this, 0, 0); - support1.addBox(2F, 2F, -4F, 1, 1, 9); - support1.setRotationPoint(0F, 0F, 0F); - support1.setTextureSize(64, 32); - support1.mirror = true; - setRotation(support1, 0F, 0F, 0F); - mainBody = new ModelRenderer(this, 0, 19); - mainBody.addBox(-2F, -2F, -4F, 4, 4, 9); - mainBody.setRotationPoint(0F, 0F, 0F); - mainBody.setTextureSize(64, 32); - mainBody.mirror = true; - setRotation(mainBody, 0F, 0F, 0F); - support2 = new ModelRenderer(this, 0, 0); - support2.addBox(-3F, 2F, -4F, 1, 1, 9); - support2.setRotationPoint(0F, 0F, 0F); - support2.setTextureSize(64, 32); - support2.mirror = true; - setRotation(support2, 0F, 0F, 0F); - support3 = new ModelRenderer(this, 0, 0); - support3.addBox(-3F, -3F, -4F, 1, 1, 9); - support3.setRotationPoint(0F, 0F, 0F); - support3.setTextureSize(64, 32); - support3.mirror = true; - setRotation(support3, 0F, 0F, 0F); - support4 = new ModelRenderer(this, 0, 0); - support4.addBox(2F, -3F, -4F, 1, 1, 9); - support4.setRotationPoint(0F, 0F, 0F); - support4.setTextureSize(64, 32); - support4.mirror = true; - setRotation(support4, 0F, 0F, 0F); - base1 = new ModelRenderer(this, 28, 0); - base1.addBox(-3F, -3F, 5F, 6, 6, 1); - base1.setRotationPoint(0F, 0F, 0F); - base1.setTextureSize(64, 32); - base1.mirror = true; - setRotation(base1, 0F, 0F, 0F); - base2 = new ModelRenderer(this, 28, 9); - base2.addBox(-2F, -2F, 6F, 4, 4, 1); - base2.setRotationPoint(0F, 0F, 0F); - base2.setTextureSize(64, 32); - base2.mirror = true; - setRotation(base2, 0F, 0F, 0F); - base3 = new ModelRenderer(this, 28, 15); - base3.addBox(-3F, -3F, 7F, 6, 6, 1); - base3.setRotationPoint(0F, 0F, 0F); - base3.setTextureSize(64, 32); - base3.mirror = true; - setRotation(base3, 0F, 0F, 0F); - } - - public void render(Entity entity, float f, float f1, float f2, float f3, float f4, float f5) - { - super.render(entity, f, f1, f2, f3, f4, f5); - setRotationAngles(f, f1, f2, f3, f4, f5, entity); - thirdWarHead.render(f5); - firstWarHead.render(f5); - secondWarHead.render(f5); - support1.render(f5); - mainBody.render(f5); - support2.render(f5); - support3.render(f5); - support4.render(f5); - base1.render(f5); - base2.render(f5); - base3.render(f5); - } - - private void setRotation(ModelRenderer model, float x, float y, float z) - { - model.rotateAngleX = x; - model.rotateAngleY = y; - model.rotateAngleZ = z; - } - - public void setRotationAngles(float f, float f1, float f2, float f3, float f4, float f5, Entity entity) - { - super.setRotationAngles(f, f1, f2, f3, f4, f5, entity); - } -} \ No newline at end of file diff --git a/BM_src/WayofTime/alchemicalWizardry/common/renderer/model/ModelFallenAngel.java b/BM_src/WayofTime/alchemicalWizardry/common/renderer/model/ModelFallenAngel.java deleted file mode 100644 index aacef80d..00000000 --- a/BM_src/WayofTime/alchemicalWizardry/common/renderer/model/ModelFallenAngel.java +++ /dev/null @@ -1,113 +0,0 @@ -package WayofTime.alchemicalWizardry.common.renderer.model; - -import net.minecraft.client.model.ModelBase; -import net.minecraft.client.model.ModelRenderer; -import net.minecraft.entity.Entity; -import net.minecraft.util.MathHelper; - -public class ModelFallenAngel extends ModelBase -{ - //fields - ModelRenderer leftWing; - ModelRenderer rightWing; - ModelRenderer head; - ModelRenderer body; - ModelRenderer rightarm; - ModelRenderer leftarm; - ModelRenderer rightleg; - ModelRenderer leftleg; - - public ModelFallenAngel() - { - textureWidth = 64; - textureHeight = 32; - leftWing = new ModelRenderer(this, 33, 8); - leftWing.mirror = true; - leftWing.addBox(0F, 0F, 0F, 10, 7, 0); - leftWing.setRotationPoint(0F, 1F, 2F); - leftWing.setTextureSize(64, 32); - leftWing.mirror = true; - setRotation(leftWing, 0F, 0F, 0F); - rightWing = new ModelRenderer(this, 33, 8); - rightWing.addBox(-10F, 0F, 0F, 10, 7, 0); - rightWing.setRotationPoint(0F, 1F, 2F); - rightWing.setTextureSize(64, 32); - rightWing.mirror = true; - setRotation(rightWing, 0F, 0F, 0F); - rightWing.mirror = false; - head = new ModelRenderer(this, 0, 0); - head.addBox(-4F, -8F, -4F, 8, 8, 8); - head.setRotationPoint(0F, 0F, 0F); - head.setTextureSize(64, 32); - head.mirror = true; - setRotation(head, 0F, 0F, 0F); - body = new ModelRenderer(this, 16, 16); - body.addBox(-4F, 0F, -2F, 8, 12, 4); - body.setRotationPoint(0F, 0F, 0F); - body.setTextureSize(64, 32); - body.mirror = true; - setRotation(body, 0F, 0F, 0F); - rightarm = new ModelRenderer(this, 40, 16); - rightarm.addBox(-3F, -2F, -2F, 4, 12, 4); - rightarm.setRotationPoint(-5F, 2F, 0F); - rightarm.setTextureSize(64, 32); - rightarm.mirror = true; - setRotation(rightarm, 0F, 0F, 0F); - rightarm.mirror = false; - leftarm = new ModelRenderer(this, 40, 16); - leftarm.mirror = true; - leftarm.addBox(-1F, -2F, -2F, 4, 12, 4); - leftarm.setRotationPoint(5F, 2F, 0F); - leftarm.setTextureSize(64, 32); - leftarm.mirror = true; - setRotation(leftarm, 0F, 0F, 0F); - rightleg = new ModelRenderer(this, 0, 16); - rightleg.addBox(-2F, 0F, -2F, 4, 12, 4); - rightleg.setRotationPoint(-2F, 12F, 0F); - rightleg.setTextureSize(64, 32); - rightleg.mirror = true; - setRotation(rightleg, 0F, 0F, 0F); - rightleg.mirror = false; - leftleg = new ModelRenderer(this, 0, 16); - leftleg.mirror = true; - leftleg.addBox(-2F, 0F, -2F, 4, 12, 4); - leftleg.setRotationPoint(2F, 12F, 0F); - leftleg.setTextureSize(64, 32); - leftleg.mirror = true; - setRotation(leftleg, 0F, 0F, 0F); - } - - public void render(Entity entity, float f, float f1, float f2, float f3, float f4, float f5) - { - super.render(entity, f, f1, f2, f3, f4, f5); - setRotationAngles(f, f1, f2, f3, f4, f5, entity); - leftWing.render(f5); - rightWing.render(f5); - head.render(f5); - body.render(f5); - rightarm.render(f5); - leftarm.render(f5); - rightleg.render(f5); - leftleg.render(f5); - } - - private void setRotation(ModelRenderer model, float x, float y, float z) - { - model.rotateAngleX = x; - model.rotateAngleY = y; - model.rotateAngleZ = z; - } - - public void setRotationAngles(float f, float f1, float f2, float f3, float f4, float f5, Entity entity) - { - super.setRotationAngles(f, f1, f2, f3, f4, f5, entity); - this.head.rotateAngleX = f4 / (180F / (float) Math.PI); - this.head.rotateAngleY = f3 / (180F / (float) Math.PI); - this.leftleg.rotateAngleX = MathHelper.cos(f * 0.6662F) * 1.4F * f1; - this.rightleg.rotateAngleX = MathHelper.cos(f * 0.6662F + (float) Math.PI) * 1.4F * f1; - this.rightarm.rotateAngleX = MathHelper.cos(f * 0.6662F + (float) Math.PI) * 1.4F * f1; - this.leftarm.rotateAngleX = MathHelper.cos(f * 0.6662F) * 1.4F * f1; - this.rightWing.rotateAngleY = MathHelper.cos(0.1662F); - this.leftWing.rotateAngleY = MathHelper.cos(0.1662F + (float) Math.PI); - } -} diff --git a/BM_src/WayofTime/alchemicalWizardry/common/renderer/model/ModelIceDemon.java b/BM_src/WayofTime/alchemicalWizardry/common/renderer/model/ModelIceDemon.java deleted file mode 100644 index 9c6d3c32..00000000 --- a/BM_src/WayofTime/alchemicalWizardry/common/renderer/model/ModelIceDemon.java +++ /dev/null @@ -1,197 +0,0 @@ -package WayofTime.alchemicalWizardry.common.renderer.model; - -import net.minecraft.client.model.ModelBase; -import net.minecraft.client.model.ModelRenderer; -import net.minecraft.entity.Entity; -import net.minecraft.util.MathHelper; - -public class ModelIceDemon extends ModelBase -{ - //fields - ModelRenderer head; - ModelRenderer leftHorn; - ModelRenderer rightHorn; - ModelRenderer body; - ModelRenderer leftArm; - ModelRenderer leftWrist; - ModelRenderer leftIcicle1; - ModelRenderer leftIcicle2; - ModelRenderer leftIcicle3; - ModelRenderer leftLeg; - ModelRenderer rightArm; - ModelRenderer rightWrist; - ModelRenderer rightIcicle1; - ModelRenderer rightIcicle2; - ModelRenderer rightIcicle3; - ModelRenderer rightLeg; - ModelRenderer Shape1; - - public ModelIceDemon() - { - textureWidth = 64; - textureHeight = 64; - head = new ModelRenderer(this, 40, 0); - head.addBox(-3F, -8F, -3F, 6, 8, 6); - head.setRotationPoint(0F, -3F, 0F); - head.setTextureSize(64, 64); - head.mirror = true; - setRotation(head, 0F, 0F, 0F); - leftHorn = new ModelRenderer(this, 0, 0); - leftHorn.addBox(3F, -7F, 2F, 1, 1, 10); - leftHorn.setRotationPoint(0F, -3F, 0F); - leftHorn.setTextureSize(64, 64); - leftHorn.mirror = true; - setRotation(leftHorn, 0.4363323F, 0F, 0F); - rightHorn = new ModelRenderer(this, 0, 0); - rightHorn.mirror = true; - rightHorn.addBox(-4F, -7F, 2F, 1, 1, 10); - rightHorn.setRotationPoint(0F, -3F, 0F); - rightHorn.setTextureSize(64, 64); - rightHorn.mirror = true; - setRotation(rightHorn, 0.4363323F, 0F, 0F); - rightHorn.mirror = false; - body = new ModelRenderer(this, 40, 15); - body.addBox(-4F, 0F, -2F, 8, 13, 4); - body.setRotationPoint(0F, -3F, 0F); - body.setTextureSize(64, 64); - body.mirror = true; - setRotation(body, 0F, 0F, 0F); - leftArm = new ModelRenderer(this, 0, 48); - leftArm.addBox(0F, -2F, -2F, 4, 12, 4); - leftArm.setRotationPoint(4F, -1F, 0F); - leftArm.setTextureSize(64, 64); - leftArm.mirror = true; - setRotation(leftArm, 0F, 0F, 0F); - leftWrist = new ModelRenderer(this, 32, 57); - leftWrist.addBox(0F, 6F, -2.5F, 5, 2, 5); - leftWrist.setRotationPoint(4F, -1F, 0F); - leftWrist.setTextureSize(64, 64); - leftWrist.mirror = true; - setRotation(leftWrist, 0F, 0F, 0F); - leftIcicle1 = new ModelRenderer(this, 0, 0); - leftIcicle1.addBox(4.9F, 0F, -0.5F, 1, 6, 1); - leftIcicle1.setRotationPoint(4F, -1F, 0F); - leftIcicle1.setTextureSize(64, 64); - leftIcicle1.mirror = true; - setRotation(leftIcicle1, 0F, 0F, 0.1396263F); - leftIcicle2 = new ModelRenderer(this, 0, 0); - leftIcicle2.addBox(5F, 0F, 0F, 1, 6, 1); - leftIcicle2.setRotationPoint(4F, -1F, 0F); - leftIcicle2.setTextureSize(64, 64); - leftIcicle2.mirror = true; - setRotation(leftIcicle2, 0F, 0.5585054F, 0.1919862F); - leftIcicle3 = new ModelRenderer(this, 0, 0); - leftIcicle3.addBox(5F, 0F, -1F, 1, 6, 1); - leftIcicle3.setRotationPoint(4F, -1F, 0F); - leftIcicle3.setTextureSize(64, 64); - leftIcicle3.mirror = true; - setRotation(leftIcicle3, 0F, -0.5585054F, 0.1919862F); - leftLeg = new ModelRenderer(this, 16, 46); - leftLeg.addBox(-2F, 0F, -2F, 4, 14, 4); - leftLeg.setRotationPoint(2F, 10F, 0F); - leftLeg.setTextureSize(64, 64); - leftLeg.mirror = true; - setRotation(leftLeg, 0F, 0F, 0F); - rightArm = new ModelRenderer(this, 0, 48); - rightArm.mirror = true; - rightArm.addBox(-4F, -2F, -2F, 4, 12, 4); - rightArm.setRotationPoint(-4F, -1F, 0F); - rightArm.setTextureSize(64, 64); - rightArm.mirror = true; - setRotation(rightArm, 0F, 0F, 0F); - rightArm.mirror = false; - rightWrist = new ModelRenderer(this, 32, 57); - rightWrist.mirror = true; - rightWrist.addBox(-5F, 6F, -2.5F, 5, 2, 5); - rightWrist.setRotationPoint(-4F, -1F, 0F); - rightWrist.setTextureSize(64, 64); - rightWrist.mirror = true; - setRotation(rightWrist, 0F, 0F, 0F); - rightWrist.mirror = false; - rightIcicle1 = new ModelRenderer(this, 0, 0); - rightIcicle1.addBox(-5.9F, 0F, -0.5F, 1, 6, 1); - rightIcicle1.setRotationPoint(-4F, -1F, 0F); - rightIcicle1.setTextureSize(64, 64); - rightIcicle1.mirror = true; - setRotation(rightIcicle1, 0F, 0F, -0.1396263F); - rightIcicle2 = new ModelRenderer(this, 0, 0); - rightIcicle2.addBox(-6F, 0F, 0F, 1, 6, 1); - rightIcicle2.setRotationPoint(-4F, -1F, 0F); - rightIcicle2.setTextureSize(64, 64); - rightIcicle2.mirror = true; - setRotation(rightIcicle2, 0F, -0.5585054F, -0.1919862F); - rightIcicle3 = new ModelRenderer(this, 0, 0); - rightIcicle3.addBox(-6F, 0F, -1F, 1, 6, 1); - rightIcicle3.setRotationPoint(-4F, -1F, 0F); - rightIcicle3.setTextureSize(64, 64); - rightIcicle3.mirror = true; - setRotation(rightIcicle3, 0F, 0.5585054F, -0.1919862F); - rightLeg = new ModelRenderer(this, 16, 46); - rightLeg.mirror = true; - rightLeg.addBox(-2F, 0F, -2F, 4, 14, 4); - rightLeg.setRotationPoint(-2F, 10F, 0F); - rightLeg.setTextureSize(64, 64); - rightLeg.mirror = true; - setRotation(rightLeg, 0F, 0F, 0F); - rightLeg.mirror = false; - Shape1 = new ModelRenderer(this, 0, 12); - Shape1.addBox(-0.5F, 0F, -0.5F, 1, 10, 1); - Shape1.setRotationPoint(0F, 8F, 1.5F); - Shape1.setTextureSize(64, 64); - Shape1.mirror = true; - setRotation(Shape1, 0.5948578F, 0F, 0F); - } - - public void render(Entity entity, float f, float f1, float f2, float f3, float f4, float f5) - { - super.render(entity, f, f1, f2, f3, f4, f5); - setRotationAngles(f, f1, f2, f3, f4, f5, entity); - head.render(f5); - leftHorn.render(f5); - rightHorn.render(f5); - body.render(f5); - leftArm.render(f5); - leftWrist.render(f5); - leftIcicle1.render(f5); - leftIcicle2.render(f5); - leftIcicle3.render(f5); - leftLeg.render(f5); - rightArm.render(f5); - rightWrist.render(f5); - rightIcicle1.render(f5); - rightIcicle2.render(f5); - rightIcicle3.render(f5); - rightLeg.render(f5); - Shape1.render(f5); - } - - private void setRotation(ModelRenderer model, float x, float y, float z) - { - model.rotateAngleX = x; - model.rotateAngleY = y; - model.rotateAngleZ = z; - } - - public void setRotationAngles(float f, float f1, float f2, float f3, float f4, float f5, Entity entity) - { - super.setRotationAngles(f, f1, f2, f3, f4, f5, entity); - this.head.rotateAngleX = f4 / (180F / (float) Math.PI); - this.head.rotateAngleY = f3 / (180F / (float) Math.PI); - this.leftLeg.rotateAngleX = MathHelper.cos(f * 0.6662F) * 1.4F * f1; - this.rightLeg.rotateAngleX = MathHelper.cos(f * 0.6662F + (float) Math.PI) * 1.4F * f1; - this.rightArm.rotateAngleX = MathHelper.cos(f * 0.6662F + (float) Math.PI) * 1.4F * f1; - this.leftArm.rotateAngleX = MathHelper.cos(f * 0.6662F) * 1.4F * f1; - this.leftHorn.rotateAngleX = head.rotateAngleX + 0.4363323F; - this.leftHorn.rotateAngleY = head.rotateAngleY; - this.rightHorn.rotateAngleX = head.rotateAngleX + 0.4363323F; - this.rightHorn.rotateAngleY = head.rotateAngleY; - this.rightIcicle1.rotateAngleX = rightArm.rotateAngleX; - this.rightIcicle2.rotateAngleX = rightArm.rotateAngleX; - this.rightIcicle3.rotateAngleX = rightArm.rotateAngleX; - this.leftIcicle1.rotateAngleX = leftArm.rotateAngleX; - this.leftIcicle2.rotateAngleX = leftArm.rotateAngleX; - this.leftIcicle3.rotateAngleX = leftArm.rotateAngleX; - this.rightWrist.rotateAngleX = rightArm.rotateAngleX; - this.leftWrist.rotateAngleX = leftArm.rotateAngleX; - } -} diff --git a/BM_src/WayofTime/alchemicalWizardry/common/renderer/model/ModelLowerGuardian.java b/BM_src/WayofTime/alchemicalWizardry/common/renderer/model/ModelLowerGuardian.java deleted file mode 100644 index 61d7b85d..00000000 --- a/BM_src/WayofTime/alchemicalWizardry/common/renderer/model/ModelLowerGuardian.java +++ /dev/null @@ -1,207 +0,0 @@ -package WayofTime.alchemicalWizardry.common.renderer.model; - -import WayofTime.alchemicalWizardry.common.entity.mob.EntityLowerGuardian; -import net.minecraft.client.model.ModelBase; -import net.minecraft.client.model.ModelRenderer; -import net.minecraft.entity.Entity; -import net.minecraft.entity.EntityLivingBase; -import net.minecraft.util.MathHelper; - -public class ModelLowerGuardian extends ModelBase -{ - //fields - ModelRenderer Body; - ModelRenderer Torso; - ModelRenderer Head; - ModelRenderer leftArm; - ModelRenderer rightArm; - ModelRenderer leftLeg; - ModelRenderer leftFoot; - ModelRenderer rightLeg; - ModelRenderer rightFoot; - ModelRenderer leftHorn; - ModelRenderer hornAppendage1; - ModelRenderer hornAppendage2; - ModelRenderer rightHorn; - ModelRenderer hornAppendage3; - ModelRenderer hornAppendage4; - - public ModelLowerGuardian() - { - textureWidth = 64; - textureHeight = 64; - Body = new ModelRenderer(this, 0, 0); - Body.addBox(-8F, -7F, -4F, 16, 14, 8); - Body.setRotationPoint(0F, -3F, 0F); - Body.setTextureSize(64, 64); - Body.mirror = true; - setRotation(Body, 0F, 0F, 0F); - Torso = new ModelRenderer(this, 0, 25); - Torso.addBox(-4F, 0F, -3F, 8, 4, 6); - Torso.setRotationPoint(0F, 4F, 0F); - Torso.setTextureSize(64, 64); - Torso.mirror = true; - setRotation(Torso, 0F, 0F, 0F); - Head = new ModelRenderer(this, 29, 25); - Head.addBox(-4F, -8F, -4F, 8, 8, 8); - Head.setRotationPoint(0F, -10F, 0F); - Head.setTextureSize(64, 64); - Head.mirror = true; - setRotation(Head, 0F, 0F, 0F); - leftArm = new ModelRenderer(this, 17, 42); - leftArm.addBox(0F, -2F, -2F, 4, 18, 4); - leftArm.setRotationPoint(8F, -8F, 0F); - leftArm.setTextureSize(64, 64); - leftArm.mirror = true; - setRotation(leftArm, 0F, 0F, 0F); - rightArm = new ModelRenderer(this, 17, 42); - rightArm.mirror = true; - rightArm.addBox(-4F, -2F, -2F, 4, 18, 4); - rightArm.setRotationPoint(-8F, -8F, 0F); - rightArm.setTextureSize(64, 64); - rightArm.mirror = true; - setRotation(rightArm, 0F, 0F, 0F); - rightArm.mirror = false; - leftLeg = new ModelRenderer(this, 0, 42); - leftLeg.addBox(0F, -2F, -2F, 4, 17, 4); - leftLeg.setRotationPoint(4F, 6F, 0F); - leftLeg.setTextureSize(64, 64); - leftLeg.mirror = true; - setRotation(leftLeg, 0F, 0F, 0F); - leftFoot = new ModelRenderer(this, 34, 42); - leftFoot.addBox(0F, 15F, -6F, 4, 3, 8); - leftFoot.setRotationPoint(4F, 6F, 0F); - leftFoot.setTextureSize(64, 64); - leftFoot.mirror = true; - setRotation(leftFoot, 0F, 0F, 0F); - rightLeg = new ModelRenderer(this, 0, 42); - rightLeg.mirror = true; - rightLeg.addBox(-4F, -2F, -2F, 4, 17, 4); - rightLeg.setRotationPoint(-4F, 6F, 0F); - rightLeg.setTextureSize(64, 64); - rightLeg.mirror = true; - setRotation(rightLeg, 0F, 0F, 0F); - rightLeg.mirror = false; - rightFoot = new ModelRenderer(this, 34, 42); - rightFoot.mirror = true; - rightFoot.addBox(-4F, 15F, -6F, 4, 3, 8); - rightFoot.setRotationPoint(-4F, 6F, 0F); - rightFoot.setTextureSize(64, 64); - rightFoot.mirror = true; - setRotation(rightFoot, 0F, 0F, 0F); - rightFoot.mirror = false; - leftHorn = new ModelRenderer(this, 0, 0); - leftHorn.addBox(4F, -11F, 0F, 1, 6, 1); - leftHorn.setRotationPoint(0F, -10F, 0F); - leftHorn.setTextureSize(64, 64); - leftHorn.mirror = true; - setRotation(leftHorn, 0F, 0F, 0F); - hornAppendage1 = new ModelRenderer(this, 0, 0); - hornAppendage1.addBox(4F, -7F, -1F, 1, 1, 1); - hornAppendage1.setRotationPoint(0F, -10F, 0F); - hornAppendage1.setTextureSize(64, 64); - hornAppendage1.mirror = true; - setRotation(hornAppendage1, 0F, 0F, 0F); - hornAppendage2 = new ModelRenderer(this, 0, 0); - hornAppendage2.addBox(4F, -6F, 1F, 1, 1, 1); - hornAppendage2.setRotationPoint(0F, -10F, 0F); - hornAppendage2.setTextureSize(64, 64); - hornAppendage2.mirror = true; - setRotation(hornAppendage2, 0F, 0F, 0F); - rightHorn = new ModelRenderer(this, 0, 0); - rightHorn.mirror = true; - rightHorn.addBox(-5F, -11F, 0F, 1, 6, 1); - rightHorn.setRotationPoint(0F, -10F, 0F); - rightHorn.setTextureSize(64, 64); - rightHorn.mirror = true; - setRotation(rightHorn, 0F, 0F, 0F); - rightHorn.mirror = false; - hornAppendage3 = new ModelRenderer(this, 0, 0); - hornAppendage3.mirror = true; - hornAppendage3.addBox(-5F, -7F, -1F, 1, 1, 1); - hornAppendage3.setRotationPoint(0F, -10F, 0F); - hornAppendage3.setTextureSize(64, 64); - hornAppendage3.mirror = true; - setRotation(hornAppendage3, 0F, 0F, 0F); - hornAppendage3.mirror = false; - hornAppendage4 = new ModelRenderer(this, 0, 0); - hornAppendage4.mirror = true; - hornAppendage4.addBox(-5F, -6F, 1F, 1, 1, 1); - hornAppendage4.setRotationPoint(0F, -10F, 0F); - hornAppendage4.setTextureSize(64, 64); - hornAppendage4.mirror = true; - setRotation(hornAppendage4, 0F, 0F, 0F); - hornAppendage4.mirror = false; - } - - public void render(Entity entity, float f, float f1, float f2, float f3, float f4, float f5) - { - super.render(entity, f, f1, f2, f3, f4, f5); - setRotationAngles(f, f1, f2, f3, f4, f5, entity); - Body.render(f5); - Torso.render(f5); - Head.render(f5); - leftArm.render(f5); - rightArm.render(f5); - leftLeg.render(f5); - leftFoot.render(f5); - rightLeg.render(f5); - rightFoot.render(f5); - leftHorn.render(f5); - hornAppendage1.render(f5); - hornAppendage2.render(f5); - rightHorn.render(f5); - hornAppendage3.render(f5); - hornAppendage4.render(f5); - } - - private void setRotation(ModelRenderer model, float x, float y, float z) - { - model.rotateAngleX = x; - model.rotateAngleY = y; - model.rotateAngleZ = z; - } - - public void setLivingAnimations(EntityLivingBase par1EntityLivingBase, float par2, float par3, float par4) - { - EntityLowerGuardian entityLowerGuardian = (EntityLowerGuardian) par1EntityLivingBase; - int i = entityLowerGuardian.getAttackTimer(); - - if (i > 0) - { - this.rightLeg.rotateAngleX = -2.0F + 1.5F * this.func_78172_a((float) i - par4, 10.0F); - this.rightFoot.rotateAngleX = -2.0F + 1.5F * this.func_78172_a((float) i - par4, 10.0F); - //this.ironGolemLeftArm.rotateAngleX = -2.0F + 1.5F * this.func_78172_a((float)i - par4, 10.0F); - } - } - - private float func_78172_a(float par1, float par2) - { - return (Math.abs(par1 % par2 - par2 * 0.5F) - par2 * 0.25F) / (par2 * 0.25F); - } - - public void setRotationAngles(float f, float f1, float f2, float f3, float f4, float f5, Entity entity) - { - super.setRotationAngles(f, f1, f2, f3, f4, f5, entity); - this.Head.rotateAngleX = f4 / (180F / (float) Math.PI); - this.Head.rotateAngleY = f3 / (180F / (float) Math.PI); - this.leftLeg.rotateAngleX = MathHelper.cos(f * 0.3662F) * 1.0F * f1; - this.rightLeg.rotateAngleX = MathHelper.cos(f * 0.3662F + (float) Math.PI) * 1.0F * f1; - this.leftFoot.rotateAngleX = MathHelper.cos(f * 0.3662F) * 1.0F * f1; - this.rightFoot.rotateAngleX = MathHelper.cos(f * 0.3662F + (float) Math.PI) * 1.0F * f1; - this.rightArm.rotateAngleX = MathHelper.cos(f * 0.3662F + (float) Math.PI) * 1.0F * f1; - this.leftArm.rotateAngleX = MathHelper.cos(f * 0.3662F) * 1.0F * f1; - this.hornAppendage1.rotateAngleX = this.Head.rotateAngleX; - this.hornAppendage1.rotateAngleY = this.Head.rotateAngleY; - this.hornAppendage2.rotateAngleX = this.Head.rotateAngleX; - this.hornAppendage2.rotateAngleY = this.Head.rotateAngleY; - this.hornAppendage3.rotateAngleX = this.Head.rotateAngleX; - this.hornAppendage3.rotateAngleY = this.Head.rotateAngleY; - this.hornAppendage4.rotateAngleX = this.Head.rotateAngleX; - this.hornAppendage4.rotateAngleY = this.Head.rotateAngleY; - this.leftHorn.rotateAngleX = this.Head.rotateAngleX; - this.leftHorn.rotateAngleY = this.Head.rotateAngleY; - this.rightHorn.rotateAngleX = this.Head.rotateAngleX; - this.rightHorn.rotateAngleY = this.Head.rotateAngleY; - } -} diff --git a/BM_src/WayofTime/alchemicalWizardry/common/renderer/model/ModelMeteor.java b/BM_src/WayofTime/alchemicalWizardry/common/renderer/model/ModelMeteor.java deleted file mode 100644 index 26a94989..00000000 --- a/BM_src/WayofTime/alchemicalWizardry/common/renderer/model/ModelMeteor.java +++ /dev/null @@ -1,90 +0,0 @@ -package WayofTime.alchemicalWizardry.common.renderer.model; - -import net.minecraft.client.model.ModelBase; -import net.minecraft.client.model.ModelRenderer; -import net.minecraft.entity.Entity; - -public class ModelMeteor extends ModelBase -{ - //fields - ModelRenderer Shape1; - ModelRenderer Shape2; - ModelRenderer Shape3; - ModelRenderer Shape4; - ModelRenderer Shape5; - ModelRenderer Shape6; - ModelRenderer Shape7; - - public ModelMeteor() - { - textureWidth = 64; - textureHeight = 64; - Shape1 = new ModelRenderer(this, 0, 0); - Shape1.addBox(-8F, -8F, -8F, 16, 16, 16); - Shape1.setRotationPoint(0F, 0F, 0F); - Shape1.setTextureSize(64, 64); - Shape1.mirror = true; - setRotation(Shape1, 0F, 0F, 0F); - Shape2 = new ModelRenderer(this, 0, 32); - Shape2.addBox(3F, -10F, -1F, 12, 12, 12); - Shape2.setRotationPoint(0F, 0F, 0F); - Shape2.setTextureSize(64, 64); - Shape2.mirror = true; - setRotation(Shape2, 0F, 0F, 0F); - Shape3 = new ModelRenderer(this, 0, 32); - Shape3.addBox(0F, 0F, -10F, 12, 12, 12); - Shape3.setRotationPoint(0F, 0F, 0F); - Shape3.setTextureSize(64, 64); - Shape3.mirror = true; - setRotation(Shape3, 0F, 0F, 0F); - Shape4 = new ModelRenderer(this, 0, 32); - Shape4.addBox(1F, 2F, 2F, 12, 12, 12); - Shape4.setRotationPoint(0F, 0F, 0F); - Shape4.setTextureSize(64, 64); - Shape4.mirror = true; - setRotation(Shape4, 0F, 0F, 0F); - Shape5 = new ModelRenderer(this, 0, 32); - Shape5.addBox(-12F, -5F, 0F, 12, 12, 12); - Shape5.setRotationPoint(0F, 0F, 0F); - Shape5.setTextureSize(64, 64); - Shape5.mirror = true; - setRotation(Shape5, 0F, 0F, 0F); - Shape6 = new ModelRenderer(this, 0, 32); - Shape6.addBox(-13F, -2F, -11F, 12, 12, 12); - Shape6.setRotationPoint(0F, 0F, 0F); - Shape6.setTextureSize(64, 64); - Shape6.mirror = true; - setRotation(Shape6, 0F, 0F, 0F); - Shape7 = new ModelRenderer(this, 0, 32); - Shape7.addBox(-6F, -14F, -9F, 12, 12, 12); - Shape7.setRotationPoint(0F, 0F, 0F); - Shape7.setTextureSize(64, 64); - Shape7.mirror = true; - setRotation(Shape7, 0F, 0F, 0F); - } - - public void render(Entity entity, float f, float f1, float f2, float f3, float f4, float f5) - { - super.render(entity, f, f1, f2, f3, f4, f5); - setRotationAngles(f, f1, f2, f3, f4, f5, entity); - Shape1.render(f5); - Shape2.render(f5); - Shape3.render(f5); - Shape4.render(f5); - Shape5.render(f5); - Shape6.render(f5); - Shape7.render(f5); - } - - private void setRotation(ModelRenderer model, float x, float y, float z) - { - model.rotateAngleX = x; - model.rotateAngleY = y; - model.rotateAngleZ = z; - } - - public void setRotationAngles(float f, float f1, float f2, float f3, float f4, float f5, Entity entity) - { - super.setRotationAngles(f, f1, f2, f3, f4, f5, entity); - } -} diff --git a/BM_src/WayofTime/alchemicalWizardry/common/renderer/model/ModelPedestal.java b/BM_src/WayofTime/alchemicalWizardry/common/renderer/model/ModelPedestal.java deleted file mode 100644 index 753df6a5..00000000 --- a/BM_src/WayofTime/alchemicalWizardry/common/renderer/model/ModelPedestal.java +++ /dev/null @@ -1,58 +0,0 @@ -package WayofTime.alchemicalWizardry.common.renderer.model; - -import net.minecraft.client.model.ModelBase; -import net.minecraft.client.model.ModelRenderer; -import net.minecraft.entity.Entity; - -public class ModelPedestal extends ModelBase -{ - //fields - ModelRenderer base; - ModelRenderer top; - ModelRenderer middle; - - public ModelPedestal() - { - textureWidth = 64; - textureHeight = 32; - base = new ModelRenderer(this, 0, 0); - base.addBox(0F, 0F, 0F, 10, 1, 10); - base.setRotationPoint(-5F, 23F, -5F); - base.setTextureSize(64, 32); - base.mirror = true; - setRotation(base, 0F, 0F, 0F); - top = new ModelRenderer(this, 0, 19); - top.addBox(0F, 0F, 0F, 6, 1, 6); - top.setRotationPoint(-3F, 14F, -3F); - top.setTextureSize(64, 32); - top.mirror = true; - setRotation(top, 0F, 0F, 0F); - middle = new ModelRenderer(this, 50, 0); - middle.addBox(0F, 0F, 0F, 2, 8, 2); - middle.setRotationPoint(-1F, 15F, -1F); - middle.setTextureSize(64, 32); - middle.mirror = true; - setRotation(middle, 0F, 0F, 0F); - } - - public void render(Entity entity, float f, float f1, float f2, float f3, float f4, float f5) - { - super.render(entity, f, f1, f2, f3, f4, f5); - setRotationAngles(f, f1, f2, f3, f4, f5, entity); - base.render(f5); - top.render(f5); - middle.render(f5); - } - - private void setRotation(ModelRenderer model, float x, float y, float z) - { - model.rotateAngleX = x; - model.rotateAngleY = y; - model.rotateAngleZ = z; - } - - public void setRotationAngles(float f, float f1, float f2, float f3, float f4, float f5, Entity entity) - { - super.setRotationAngles(f, f1, f2, f3, f4, f5, entity); - } -} diff --git a/BM_src/WayofTime/alchemicalWizardry/common/renderer/model/ModelPlinth.java b/BM_src/WayofTime/alchemicalWizardry/common/renderer/model/ModelPlinth.java deleted file mode 100644 index f4190b5d..00000000 --- a/BM_src/WayofTime/alchemicalWizardry/common/renderer/model/ModelPlinth.java +++ /dev/null @@ -1,90 +0,0 @@ -package WayofTime.alchemicalWizardry.common.renderer.model; - -import net.minecraft.client.model.ModelBase; -import net.minecraft.client.model.ModelRenderer; -import net.minecraft.entity.Entity; - -public class ModelPlinth extends ModelBase -{ - //fields - ModelRenderer base; - ModelRenderer table; - ModelRenderer pillar; - ModelRenderer edge1; - ModelRenderer edge2; - ModelRenderer edge3; - ModelRenderer edge4; - - public ModelPlinth() - { - textureWidth = 64; - textureHeight = 64; - base = new ModelRenderer(this, 0, 16); - base.addBox(0F, 0F, 0F, 10, 2, 10); - base.setRotationPoint(-5F, 22F, -5F); - base.setTextureSize(64, 64); - base.mirror = true; - setRotation(base, 0F, 0F, 0F); - table = new ModelRenderer(this, 0, 0); - table.addBox(0F, 0F, 0F, 14, 1, 14); - table.setRotationPoint(-7F, 11F, -7F); - table.setTextureSize(64, 64); - table.mirror = true; - setRotation(table, 0F, 0F, 0F); - pillar = new ModelRenderer(this, 0, 32); - pillar.addBox(0F, 0F, 0F, 6, 10, 6); - pillar.setRotationPoint(-3F, 12F, -3F); - pillar.setTextureSize(64, 64); - pillar.mirror = true; - setRotation(pillar, 0F, 0F, 0F); - edge1 = new ModelRenderer(this, 0, 29); - edge1.addBox(0F, 0F, 0F, 14, 1, 1); - edge1.setRotationPoint(-7F, 10F, 6F); - edge1.setTextureSize(64, 64); - edge1.mirror = true; - setRotation(edge1, 0F, 0F, 0F); - edge2 = new ModelRenderer(this, 0, 29); - edge2.addBox(0F, 0F, 0F, 14, 1, 1); - edge2.setRotationPoint(-7F, 10F, -7F); - edge2.setTextureSize(64, 64); - edge2.mirror = true; - setRotation(edge2, 0F, 0F, 0F); - edge3 = new ModelRenderer(this, 25, 32); - edge3.addBox(0F, 0F, 0F, 1, 1, 12); - edge3.setRotationPoint(-7F, 10F, -6F); - edge3.setTextureSize(64, 64); - edge3.mirror = true; - setRotation(edge3, 0F, 0F, 0F); - edge4 = new ModelRenderer(this, 25, 32); - edge4.addBox(0F, 0F, 0F, 1, 1, 12); - edge4.setRotationPoint(6F, 10F, -6F); - edge4.setTextureSize(64, 64); - edge4.mirror = true; - setRotation(edge4, 0F, 0F, 0F); - } - - public void render(Entity entity, float f, float f1, float f2, float f3, float f4, float f5) - { - super.render(entity, f, f1, f2, f3, f4, f5); - setRotationAngles(f, f1, f2, f3, f4, f5, entity); - base.render(f5); - table.render(f5); - pillar.render(f5); - edge1.render(f5); - edge2.render(f5); - edge3.render(f5); - edge4.render(f5); - } - - private void setRotation(ModelRenderer model, float x, float y, float z) - { - model.rotateAngleX = x; - model.rotateAngleY = y; - model.rotateAngleZ = z; - } - - public void setRotationAngles(float f, float f1, float f2, float f3, float f4, float f5, Entity entity) - { - super.setRotationAngles(f, f1, f2, f3, f4, f5, entity); - } -} diff --git a/BM_src/WayofTime/alchemicalWizardry/common/renderer/model/ModelShade.java b/BM_src/WayofTime/alchemicalWizardry/common/renderer/model/ModelShade.java deleted file mode 100644 index 8a7f2632..00000000 --- a/BM_src/WayofTime/alchemicalWizardry/common/renderer/model/ModelShade.java +++ /dev/null @@ -1,86 +0,0 @@ -package WayofTime.alchemicalWizardry.common.renderer.model; - -import net.minecraft.client.model.ModelBase; -import net.minecraft.client.model.ModelRenderer; -import net.minecraft.entity.Entity; - -public class ModelShade extends ModelBase -{ - //fields - ModelRenderer body; - ModelRenderer tail1; - ModelRenderer leftArm; - ModelRenderer rightArm; - ModelRenderer tail2; - ModelRenderer head; - - public ModelShade() - { - textureWidth = 64; - textureHeight = 64; - body = new ModelRenderer(this, 0, 45); - body.addBox(-6F, 0F, -3F, 12, 12, 6); - body.setRotationPoint(0F, -4F, 0F); - body.setTextureSize(64, 64); - body.mirror = true; - setRotation(body, 0F, 0F, 0F); - tail1 = new ModelRenderer(this, 37, 43); - tail1.addBox(-2F, 1F, -2F, 4, 6, 4); - tail1.setRotationPoint(0F, 8F, 0F); - tail1.setTextureSize(64, 64); - tail1.mirror = true; - setRotation(tail1, 0.122173F, 0F, 0F); - leftArm = new ModelRenderer(this, 0, 0); - leftArm.addBox(0F, -4F, -2F, 4, 20, 4); - leftArm.setRotationPoint(6F, -2F, 0F); - leftArm.setTextureSize(64, 64); - leftArm.mirror = true; - setRotation(leftArm, 0F, 0F, 0F); - rightArm = new ModelRenderer(this, 0, 0); - rightArm.mirror = true; - rightArm.addBox(-4F, -4F, -2F, 4, 20, 4); - rightArm.setRotationPoint(-6F, -2F, 0F); - rightArm.setTextureSize(64, 64); - rightArm.mirror = true; - setRotation(rightArm, 0F, 0F, 0F); - rightArm.mirror = false; - tail2 = new ModelRenderer(this, 37, 54); - tail2.addBox(-1.5F, 6F, -3F, 3, 6, 3); - tail2.setRotationPoint(0F, 8F, 0F); - tail2.setTextureSize(64, 64); - tail2.mirror = true; - setRotation(tail2, 0.4363323F, 0F, 0F); - head = new ModelRenderer(this, 17, 0); - head.addBox(-4F, -8F, -4F, 8, 8, 8); - head.setRotationPoint(0F, -4F, -1F); - head.setTextureSize(64, 64); - head.mirror = true; - setRotation(head, 0F, 0F, 0F); - } - - public void render(Entity entity, float f, float f1, float f2, float f3, float f4, float f5) - { - super.render(entity, f, f1, f2, f3, f4, f5); - setRotationAngles(f, f1, f2, f3, f4, f5, entity); - body.render(f5); - tail1.render(f5); - leftArm.render(f5); - rightArm.render(f5); - tail2.render(f5); - head.render(f5); - } - - private void setRotation(ModelRenderer model, float x, float y, float z) - { - model.rotateAngleX = x; - model.rotateAngleY = y; - model.rotateAngleZ = z; - } - - public void setRotationAngles(float f, float f1, float f2, float f3, float f4, float f5, Entity entity) - { - super.setRotationAngles(f, f1, f2, f3, f4, f5, entity); - this.head.rotateAngleX = f4 / (180F / (float) Math.PI); - this.head.rotateAngleY = f3 / (180F / (float) Math.PI); - } -} diff --git a/BM_src/WayofTime/alchemicalWizardry/common/renderer/model/ModelSmallEarthGolem.java b/BM_src/WayofTime/alchemicalWizardry/common/renderer/model/ModelSmallEarthGolem.java deleted file mode 100644 index 45a232de..00000000 --- a/BM_src/WayofTime/alchemicalWizardry/common/renderer/model/ModelSmallEarthGolem.java +++ /dev/null @@ -1,127 +0,0 @@ -package WayofTime.alchemicalWizardry.common.renderer.model; - -import net.minecraft.client.model.ModelBase; -import net.minecraft.client.model.ModelRenderer; -import net.minecraft.entity.Entity; -import net.minecraft.util.MathHelper; - -public class ModelSmallEarthGolem extends ModelBase -{ - //fields - ModelRenderer leftLeg; - ModelRenderer rightLeg; - ModelRenderer body; - ModelRenderer head; - ModelRenderer chest1; - ModelRenderer chest2; - ModelRenderer chest3; - ModelRenderer leftArm; - ModelRenderer rightArm; - ModelRenderer back1; - - public ModelSmallEarthGolem() - { - textureWidth = 32; - textureHeight = 32; - leftLeg = new ModelRenderer(this, 13, 0); - leftLeg.addBox(-1F, 0F, -1F, 2, 5, 2); - leftLeg.setRotationPoint(1F, 19F, 0F); - leftLeg.setTextureSize(32, 32); - leftLeg.mirror = true; - setRotation(leftLeg, 0F, 0F, 0F); - rightLeg = new ModelRenderer(this, 13, 0); - rightLeg.mirror = true; - rightLeg.addBox(-1F, 0F, -1F, 2, 5, 2); - rightLeg.setRotationPoint(-1F, 19F, 0F); - rightLeg.setTextureSize(32, 32); - rightLeg.mirror = true; - setRotation(rightLeg, 0F, 0F, 0F); - rightLeg.mirror = false; - body = new ModelRenderer(this, 0, 7); - body.addBox(-2F, 0F, -1F, 4, 5, 2); - body.setRotationPoint(0F, 14F, 0F); - body.setTextureSize(32, 32); - body.mirror = true; - setRotation(body, 0F, 0F, 0F); - head = new ModelRenderer(this, 0, 0); - head.addBox(-1.5F, -3F, -2F, 3, 3, 3); - head.setRotationPoint(0F, 14F, 0F); - head.setTextureSize(32, 32); - head.mirror = true; - setRotation(head, 0F, 0F, 0F); - chest1 = new ModelRenderer(this, 22, 0); - chest1.addBox(-1F, 0.5F, -2F, 2, 3, 1); - chest1.setRotationPoint(0F, 14F, 0F); - chest1.setTextureSize(32, 32); - chest1.mirror = true; - setRotation(chest1, 0F, 0F, 0F); - chest2 = new ModelRenderer(this, 22, 5); - chest2.addBox(1F, 1.5F, -2F, 1, 1, 1); - chest2.setRotationPoint(0F, 14F, 0F); - chest2.setTextureSize(32, 32); - chest2.mirror = true; - setRotation(chest2, 0F, 0F, 0F); - chest3 = new ModelRenderer(this, 22, 5); - chest3.mirror = true; - chest3.addBox(-2F, 1.5F, -2F, 1, 1, 1); - chest3.setRotationPoint(0F, 14F, 0F); - chest3.setTextureSize(32, 32); - chest3.mirror = true; - setRotation(chest3, 0F, 0F, 0F); - chest3.mirror = false; - leftArm = new ModelRenderer(this, 13, 7); - leftArm.addBox(0F, -1F, -1F, 2, 5, 2); - leftArm.setRotationPoint(2F, 15F, 0F); - leftArm.setTextureSize(32, 32); - leftArm.mirror = true; - setRotation(leftArm, 0F, 0F, 0F); - rightArm = new ModelRenderer(this, 13, 7); - rightArm.mirror = true; - rightArm.addBox(-2F, -1F, -1F, 2, 5, 2); - rightArm.setRotationPoint(-2F, 15F, 0F); - rightArm.setTextureSize(32, 32); - rightArm.mirror = true; - setRotation(rightArm, 0F, 0F, 0F); - rightArm.mirror = false; - back1 = new ModelRenderer(this, 22, 8); - back1.addBox(-1.5F, 1.5F, 1F, 3, 1, 1); - back1.setRotationPoint(0F, 14F, 0F); - back1.setTextureSize(32, 32); - back1.mirror = true; - setRotation(back1, 0F, 0F, 0F); - } - - public void render(Entity entity, float f, float f1, float f2, float f3, float f4, float f5) - { - super.render(entity, f, f1, f2, f3, f4, f5); - setRotationAngles(f, f1, f2, f3, f4, f5, entity); - leftLeg.render(f5); - rightLeg.render(f5); - body.render(f5); - head.render(f5); - chest1.render(f5); - chest2.render(f5); - chest3.render(f5); - leftArm.render(f5); - rightArm.render(f5); - back1.render(f5); - } - - private void setRotation(ModelRenderer model, float x, float y, float z) - { - model.rotateAngleX = x; - model.rotateAngleY = y; - model.rotateAngleZ = z; - } - - public void setRotationAngles(float f, float f1, float f2, float f3, float f4, float f5, Entity entity) - { - super.setRotationAngles(f, f1, f2, f3, f4, f5, entity); - this.head.rotateAngleX = f4 / (180F / (float) Math.PI); - this.head.rotateAngleY = f3 / (180F / (float) Math.PI); - this.leftLeg.rotateAngleX = MathHelper.cos(f * 0.6662F) * 1.4F * f1; - this.rightLeg.rotateAngleX = MathHelper.cos(f * 0.6662F + (float) Math.PI) * 1.4F * f1; - this.rightArm.rotateAngleX = MathHelper.cos(f * 0.6662F + (float) Math.PI) * 1.4F * f1; - this.leftArm.rotateAngleX = MathHelper.cos(f * 0.6662F) * 1.4F * f1; - } -} \ No newline at end of file diff --git a/BM_src/WayofTime/alchemicalWizardry/common/renderer/model/ModelSpellEffectBlock.java b/BM_src/WayofTime/alchemicalWizardry/common/renderer/model/ModelSpellEffectBlock.java deleted file mode 100644 index 75621bca..00000000 --- a/BM_src/WayofTime/alchemicalWizardry/common/renderer/model/ModelSpellEffectBlock.java +++ /dev/null @@ -1,332 +0,0 @@ -package WayofTime.alchemicalWizardry.common.renderer.model; - -import net.minecraft.client.model.ModelBase; -import net.minecraft.client.model.ModelRenderer; -import net.minecraft.entity.Entity; -import net.minecraftforge.common.ForgeDirection; - -public class ModelSpellEffectBlock extends ModelBase -{ - //fields - ModelRenderer core; - ModelRenderer frame1; - ModelRenderer frame2; - ModelRenderer frame3; - ModelRenderer frame4; - ModelRenderer frame5; - ModelRenderer frame6; - ModelRenderer frame7; - ModelRenderer frame8; - ModelRenderer frame9; - ModelRenderer frame10; - ModelRenderer frame11; - ModelRenderer frame12; - ModelRenderer inputSpacer1; - ModelRenderer inputFace; - ModelRenderer inputSpacer2; - ModelRenderer inputSpacer3; - ModelRenderer inputSpacer4; - ModelRenderer outputFace; - ModelRenderer outputPlug; - ModelRenderer outputSpacer1; - ModelRenderer outputSpacer2; - ModelRenderer outputSpacer3; - ModelRenderer outputSpacer4; - - public ModelSpellEffectBlock() - { - textureWidth = 64; - textureHeight = 64; - - core = new ModelRenderer(this, 0, 0); - core.addBox(-3F, -3F, -3F, 6, 6, 6); - core.setRotationPoint(0F, 16F, 0F); - core.setTextureSize(64, 64); - core.mirror = true; - setRotation(core, 0F, 0F, 0F); - frame1 = new ModelRenderer(this, 16, 18); - frame1.addBox(3F, -3F, -5F, 2, 6, 2); - frame1.setRotationPoint(0F, 16F, 0F); - frame1.setTextureSize(64, 64); - frame1.mirror = true; - setRotation(frame1, 0F, 0F, 0F); - frame2 = new ModelRenderer(this, 0, 18); - frame2.addBox(-5F, -3F, -5F, 2, 6, 2); - frame2.setRotationPoint(0F, 16F, 0F); - frame2.setTextureSize(64, 64); - frame2.mirror = true; - setRotation(frame2, 0F, 0F, 0F); - frame3 = new ModelRenderer(this, 0, 13); - frame3.addBox(-5F, -5F, -5F, 10, 2, 2); - frame3.setRotationPoint(0F, 16F, 0F); - frame3.setTextureSize(64, 64); - frame3.mirror = true; - setRotation(frame3, 0F, 0F, 0F); - frame4 = new ModelRenderer(this, 0, 27); - frame4.addBox(-5F, 3F, -5F, 10, 2, 2); - frame4.setRotationPoint(0F, 16F, 0F); - frame4.setTextureSize(64, 64); - frame4.mirror = true; - setRotation(frame4, 0F, 0F, 0F); - frame5 = new ModelRenderer(this, 0, 34); - frame5.addBox(-5F, -5F, 3F, 10, 2, 2); - frame5.setRotationPoint(0F, 16F, 0F); - frame5.setTextureSize(64, 64); - frame5.mirror = true; - setRotation(frame5, 0F, 0F, 0F); - frame6 = new ModelRenderer(this, 0, 48); - frame6.addBox(-5F, 3F, 3F, 10, 2, 2); - frame6.setRotationPoint(0F, 16F, 0F); - frame6.setTextureSize(64, 64); - frame6.mirror = true; - setRotation(frame6, 0F, 0F, 0F); - frame7 = new ModelRenderer(this, 16, 39); - frame7.addBox(-5F, -3F, 3F, 2, 6, 2); - frame7.setRotationPoint(0F, 16F, 0F); - frame7.setTextureSize(64, 64); - frame7.mirror = true; - setRotation(frame7, 0F, 0F, 0F); - frame8 = new ModelRenderer(this, 0, 39); - frame8.addBox(3F, -3F, 3F, 2, 6, 2); - frame8.setRotationPoint(0F, 16F, 0F); - frame8.setTextureSize(64, 64); - frame8.mirror = true; - setRotation(frame8, 0F, 0F, 0F); - frame9 = new ModelRenderer(this, 25, 9); - frame9.addBox(-5F, 3F, -3F, 2, 2, 6); - frame9.setRotationPoint(0F, 16F, 0F); - frame9.setTextureSize(64, 64); - frame9.mirror = true; - setRotation(frame9, 0F, 0F, 0F); - frame10 = new ModelRenderer(this, 25, 0); - frame10.addBox(-5F, -5F, -3F, 2, 2, 6); - frame10.setRotationPoint(0F, 16F, 0F); - frame10.setTextureSize(64, 64); - frame10.mirror = true; - setRotation(frame10, 0F, 0F, 0F); - frame11 = new ModelRenderer(this, 42, 0); - frame11.addBox(3F, -5F, -3F, 2, 2, 6); - frame11.setRotationPoint(0F, 16F, 0F); - frame11.setTextureSize(64, 64); - frame11.mirror = true; - setRotation(frame11, 0F, 0F, 0F); - frame12 = new ModelRenderer(this, 42, 9); - frame12.addBox(3F, 3F, -3F, 2, 2, 6); - frame12.setRotationPoint(0F, 16F, 0F); - frame12.setTextureSize(64, 64); - frame12.mirror = true; - setRotation(frame12, 0F, 0F, 0F); - inputSpacer1 = new ModelRenderer(this, 25, 27); - inputSpacer1.addBox(3F, -5F, -8F, 2, 2, 3); - inputSpacer1.setRotationPoint(0F, 16F, 0F); - inputSpacer1.setTextureSize(64, 64); - inputSpacer1.mirror = true; - setRotation(inputSpacer1, 0F, 0F, 0F); - inputFace = new ModelRenderer(this, 38, 27); - inputFace.addBox(-2F, -2F, -8F, 4, 4, 5); - inputFace.setRotationPoint(0F, 16F, 0F); - inputFace.setTextureSize(64, 64); - inputFace.mirror = true; - setRotation(inputFace, 0F, 0F, 0F); - inputSpacer2 = new ModelRenderer(this, 25, 27); - inputSpacer2.addBox(-5F, -5F, -8F, 2, 2, 3); - inputSpacer2.setRotationPoint(0F, 16F, 0F); - inputSpacer2.setTextureSize(64, 64); - inputSpacer2.mirror = true; - setRotation(inputSpacer2, 0F, 0F, 0F); - inputSpacer3 = new ModelRenderer(this, 25, 27); - inputSpacer3.addBox(3F, 3F, -8F, 2, 2, 3); - inputSpacer3.setRotationPoint(0F, 16F, 0F); - inputSpacer3.setTextureSize(64, 64); - inputSpacer3.mirror = true; - setRotation(inputSpacer3, 0F, 0F, 0F); - inputSpacer4 = new ModelRenderer(this, 25, 27); - inputSpacer4.addBox(-5F, 3F, -8F, 2, 2, 3); - inputSpacer4.setRotationPoint(0F, 16F, 0F); - inputSpacer4.setTextureSize(64, 64); - inputSpacer4.mirror = true; - setRotation(inputSpacer4, 0F, 0F, 0F); - outputFace = new ModelRenderer(this, 38, 37); - outputFace.addBox(6F, -2F, -2F, 2, 4, 4); - outputFace.setRotationPoint(0F, 16F, 0F); - outputFace.setTextureSize(64, 64); - outputFace.mirror = true; - setRotation(outputFace, 0F, 0F, 0F); - outputPlug = new ModelRenderer(this, 36, 48); - outputPlug.addBox(3F, -3F, -3F, 2, 6, 6); - outputPlug.setRotationPoint(0F, 16F, 0F); - outputPlug.setTextureSize(64, 64); - outputPlug.mirror = true; - setRotation(outputPlug, 0F, 0F, 0F); - outputSpacer1 = new ModelRenderer(this, 25, 48); - outputSpacer1.addBox(5F, -5F, -5F, 3, 2, 2); - outputSpacer1.setRotationPoint(0F, 16F, 0F); - outputSpacer1.setTextureSize(64, 64); - outputSpacer1.mirror = true; - setRotation(outputSpacer1, 0F, 0F, 0F); - outputSpacer2 = new ModelRenderer(this, 25, 48); - outputSpacer2.addBox(5F, -5F, 3F, 3, 2, 2); - outputSpacer2.setRotationPoint(0F, 16F, 0F); - outputSpacer2.setTextureSize(64, 64); - outputSpacer2.mirror = true; - setRotation(outputSpacer2, 0F, 0F, 0F); - outputSpacer3 = new ModelRenderer(this, 25, 48); - outputSpacer3.addBox(5F, 3F, -5F, 3, 2, 2); - outputSpacer3.setRotationPoint(0F, 16F, 0F); - outputSpacer3.setTextureSize(64, 64); - outputSpacer3.mirror = true; - setRotation(outputSpacer3, 0F, 0F, 0F); - outputSpacer4 = new ModelRenderer(this, 25, 48); - outputSpacer4.addBox(5F, 3F, 3F, 3, 2, 2); - outputSpacer4.setRotationPoint(0F, 16F, 0F); - outputSpacer4.setTextureSize(64, 64); - outputSpacer4.mirror = true; - setRotation(outputSpacer4, 0F, 0F, 0F); - } - - public void render(Entity entity, float f, float f1, float f2, float f3, float f4, float f5, ForgeDirection input, ForgeDirection output) - { - super.render(entity, f, f1, f2, f3, f4, f5); - setRotationAngles(f, f1, f2, f3, f4, f5, entity); - float xInputRot = 0.0f; - float yInputRot = 0.0f; - float zInputRot = 0.0f; - float xOutputRot = 0.0f; - float yOutputRot = 0.0f; - float zOutputRot = 0.0f; - - switch (input) - { - case NORTH: - xInputRot = 0.0f; - yInputRot = 0.0f; - zInputRot = 0.0f; - break; - - case EAST: - xInputRot = 0.0f; - yInputRot = (float) (0.5f * Math.PI); - zInputRot = 0.0f; - break; - - case SOUTH: - xInputRot = 0.0f; - yInputRot = (float) (1.0f * Math.PI); - zInputRot = 0.0f; - break; - - case WEST: - xInputRot = 0.0f; - yInputRot = (float) (-0.5f * Math.PI); - zInputRot = 0.0f; - break; - - case UP: - xInputRot = (float) (-0.5f * Math.PI); - yInputRot = 0.0f; - zInputRot = 0.0f; - break; - - case DOWN: - xInputRot = (float) (0.5f * Math.PI); - yInputRot = 0.0f; - zInputRot = 0.0f; - break; - - default: - break; - } - - switch (output) - { - case NORTH: - xOutputRot = 0.0f; - yOutputRot = (float) (0.5f * Math.PI); - zOutputRot = 0.0f; - break; - - case EAST: - xOutputRot = 0.0f; - yOutputRot = (float) (1.0f * Math.PI); - zOutputRot = 0.0f; - break; - - case SOUTH: - xOutputRot = 0.0f; - yOutputRot = (float) (-0.5f * Math.PI); - zOutputRot = 0.0f; - break; - - case WEST: - xOutputRot = 0.0f; - yOutputRot = 0.0f; - zOutputRot = 0.0f; - break; - - case UP: - xOutputRot = 0.0f; - yOutputRot = 0.0f; - zOutputRot = (float) (-0.5f * Math.PI); - break; - - case DOWN: - xOutputRot = 0.0f; - yOutputRot = 0.0f; - zOutputRot = (float) (0.5f * Math.PI); - break; - - default: - break; - } - - this.setRotation(inputFace, xInputRot, yInputRot, zInputRot); - this.setRotation(outputFace, xOutputRot, yOutputRot, zOutputRot); - this.setRotation(inputSpacer1, xInputRot, yInputRot, zInputRot); - this.setRotation(inputSpacer2, xInputRot, yInputRot, zInputRot); - this.setRotation(inputSpacer3, xInputRot, yInputRot, zInputRot); - this.setRotation(inputSpacer4, xInputRot, yInputRot, zInputRot); - this.setRotation(outputPlug, xOutputRot, yOutputRot, zOutputRot); - this.setRotation(outputSpacer1, xOutputRot, yOutputRot, zOutputRot); - this.setRotation(outputSpacer2, xOutputRot, yOutputRot, zOutputRot); - this.setRotation(outputSpacer3, xOutputRot, yOutputRot, zOutputRot); - this.setRotation(outputSpacer4, xOutputRot, yOutputRot, zOutputRot); - - core.render(f5); - frame1.render(f5); - frame2.render(f5); - frame3.render(f5); - frame4.render(f5); - frame5.render(f5); - frame6.render(f5); - frame7.render(f5); - frame8.render(f5); - frame9.render(f5); - frame10.render(f5); - frame11.render(f5); - frame12.render(f5); - inputSpacer1.render(f5); - inputFace.render(f5); - inputSpacer2.render(f5); - inputSpacer3.render(f5); - inputSpacer4.render(f5); - outputFace.render(f5); - outputPlug.render(f5); - outputSpacer1.render(f5); - outputSpacer2.render(f5); - outputSpacer3.render(f5); - outputSpacer4.render(f5); - } - - private void setRotation(ModelRenderer model, float x, float y, float z) - { - model.rotateAngleX = x; - model.rotateAngleY = y; - model.rotateAngleZ = z; - } - - public void setRotationAngles(float f, float f1, float f2, float f3, float f4, float f5, Entity entity) - { - super.setRotationAngles(f, f1, f2, f3, f4, f5, entity); - } - -} diff --git a/BM_src/WayofTime/alchemicalWizardry/common/renderer/model/ModelSpellEnhancementBlock.java b/BM_src/WayofTime/alchemicalWizardry/common/renderer/model/ModelSpellEnhancementBlock.java deleted file mode 100644 index 7283c01c..00000000 --- a/BM_src/WayofTime/alchemicalWizardry/common/renderer/model/ModelSpellEnhancementBlock.java +++ /dev/null @@ -1,334 +0,0 @@ -package WayofTime.alchemicalWizardry.common.renderer.model; - -import net.minecraft.client.model.ModelBase; -import net.minecraft.client.model.ModelRenderer; -import net.minecraft.entity.Entity; -import net.minecraftforge.common.ForgeDirection; - - -public class ModelSpellEnhancementBlock extends ModelBase -{ - //fields - ModelRenderer core; - ModelRenderer frame1; - ModelRenderer frame2; - ModelRenderer frame3; - ModelRenderer frame4; - ModelRenderer frame5; - ModelRenderer frame6; - ModelRenderer frame7; - ModelRenderer frame8; - ModelRenderer frame9; - ModelRenderer frame10; - ModelRenderer frame11; - ModelRenderer frame12; - ModelRenderer outputMain; - ModelRenderer inputMain; - ModelRenderer output1; - ModelRenderer output2; - ModelRenderer output3; - ModelRenderer output4; - ModelRenderer input1; - ModelRenderer input2; - ModelRenderer input3; - ModelRenderer input4; - ModelRenderer outputSecond; - - public ModelSpellEnhancementBlock() - { - textureWidth = 128; - textureHeight = 64; - - core = new ModelRenderer(this, 0, 0); - core.addBox(-3F, -3F, -3F, 6, 6, 6); - core.setRotationPoint(0F, 16F, 0F); - core.setTextureSize(128, 64); - core.mirror = true; - setRotation(core, 0F, 0F, 0F); - frame1 = new ModelRenderer(this, 0, 32); - frame1.addBox(-7F, 5F, -7F, 14, 2, 2); - frame1.setRotationPoint(0F, 16F, 0F); - frame1.setTextureSize(128, 64); - frame1.mirror = true; - setRotation(frame1, 0F, 0F, 0F); - frame2 = new ModelRenderer(this, 24, 19); - frame2.addBox(5F, -5F, -7F, 2, 10, 2); - frame2.setRotationPoint(0F, 16F, 0F); - frame2.setTextureSize(128, 64); - frame2.mirror = true; - setRotation(frame2, 0F, 0F, 0F); - frame3 = new ModelRenderer(this, 0, 19); - frame3.addBox(-7F, -5F, -7F, 2, 10, 2); - frame3.setRotationPoint(0F, 16F, 0F); - frame3.setTextureSize(128, 64); - frame3.mirror = true; - setRotation(frame3, 0F, 0F, 0F); - frame4 = new ModelRenderer(this, 0, 14); - frame4.addBox(-7F, -7F, -7F, 14, 2, 2); - frame4.setRotationPoint(0F, 16F, 0F); - frame4.setTextureSize(128, 64); - frame4.mirror = true; - setRotation(frame4, 0F, 0F, 0F); - frame5 = new ModelRenderer(this, 0, 57); - frame5.addBox(-7F, 5F, 5F, 14, 2, 2); - frame5.setRotationPoint(0F, 16F, 0F); - frame5.setTextureSize(128, 64); - frame5.mirror = true; - setRotation(frame5, 0F, 0F, 0F); - frame6 = new ModelRenderer(this, 0, 44); - frame6.addBox(5F, -5F, 5F, 2, 10, 2); - frame6.setRotationPoint(0F, 16F, 0F); - frame6.setTextureSize(128, 64); - frame6.mirror = true; - setRotation(frame6, 0F, 0F, 0F); - frame7 = new ModelRenderer(this, 24, 44); - frame7.addBox(-7F, -5F, 5F, 2, 10, 2); - frame7.setRotationPoint(0F, 16F, 0F); - frame7.setTextureSize(128, 64); - frame7.mirror = true; - setRotation(frame7, 0F, 0F, 0F); - frame8 = new ModelRenderer(this, 0, 39); - frame8.addBox(-7F, -7F, 5F, 14, 2, 2); - frame8.setRotationPoint(0F, 16F, 0F); - frame8.setTextureSize(128, 64); - frame8.mirror = true; - setRotation(frame8, 0F, 0F, 0F); - frame9 = new ModelRenderer(this, 66, 14); - frame9.addBox(5F, 5F, -5F, 2, 2, 10); - frame9.setRotationPoint(0F, 16F, 0F); - frame9.setTextureSize(128, 64); - frame9.mirror = true; - setRotation(frame9, 0F, 0F, 0F); - frame10 = new ModelRenderer(this, 40, 14); - frame10.addBox(-7F, 5F, -5F, 2, 2, 10); - frame10.setRotationPoint(0F, 16F, 0F); - frame10.setTextureSize(128, 64); - frame10.mirror = true; - setRotation(frame10, 0F, 0F, 0F); - frame11 = new ModelRenderer(this, 66, 0); - frame11.addBox(5F, -7F, -5F, 2, 2, 10); - frame11.setRotationPoint(0F, 16F, 0F); - frame11.setTextureSize(128, 64); - frame11.mirror = true; - setRotation(frame11, 0F, 0F, 0F); - frame12 = new ModelRenderer(this, 40, 0); - frame12.addBox(-7F, -7F, -5F, 2, 2, 10); - frame12.setRotationPoint(0F, 16F, 0F); - frame12.setTextureSize(128, 64); - frame12.mirror = true; - setRotation(frame12, 0F, 0F, 0F); - outputMain = new ModelRenderer(this, 78, 36); - outputMain.addBox(6F, -2F, -2F, 2, 4, 4); - outputMain.setRotationPoint(0F, 16F, 0F); - outputMain.setTextureSize(128, 64); - outputMain.mirror = true; - setRotation(outputMain, 0F, 0F, 0F); - inputMain = new ModelRenderer(this, 40, 36); - inputMain.addBox(-2F, -2F, -8F, 4, 4, 5); - inputMain.setRotationPoint(0F, 16F, 0F); - inputMain.setTextureSize(128, 64); - inputMain.mirror = true; - setRotation(inputMain, 0F, 0F, 0F); - output1 = new ModelRenderer(this, 80, 30); - output1.addBox(5F, -5F, -5F, 3, 2, 2); - output1.setRotationPoint(0F, 16F, 0F); - output1.setTextureSize(128, 64); - output1.mirror = true; - setRotation(output1, 0F, 0F, 0F); - output2 = new ModelRenderer(this, 80, 30); - output2.addBox(5F, -5F, 3F, 3, 2, 2); - output2.setRotationPoint(0F, 16F, 0F); - output2.setTextureSize(128, 64); - output2.mirror = true; - setRotation(output2, 0F, 0F, 0F); - output3 = new ModelRenderer(this, 80, 30); - output3.addBox(5F, 3F, -5F, 3, 2, 2); - output3.setRotationPoint(0F, 16F, 0F); - output3.setTextureSize(128, 64); - output3.mirror = true; - setRotation(output3, 0F, 0F, 0F); - output4 = new ModelRenderer(this, 80, 30); - output4.addBox(5F, 3F, 3F, 3, 2, 2); - output4.setRotationPoint(0F, 16F, 0F); - output4.setTextureSize(128, 64); - output4.mirror = true; - setRotation(output4, 0F, 0F, 0F); - input1 = new ModelRenderer(this, 40, 27); - input1.addBox(3F, -5F, -8F, 2, 2, 5); - input1.setRotationPoint(0F, 16F, 0F); - input1.setTextureSize(128, 64); - input1.mirror = true; - setRotation(input1, 0F, 0F, 0F); - input2 = new ModelRenderer(this, 40, 27); - input2.addBox(-5F, -5F, -8F, 2, 2, 5); - input2.setRotationPoint(0F, 16F, 0F); - input2.setTextureSize(128, 64); - input2.mirror = true; - setRotation(input2, 0F, 0F, 0F); - input3 = new ModelRenderer(this, 40, 27); - input3.addBox(3F, 3F, -8F, 2, 2, 5); - input3.setRotationPoint(0F, 16F, 0F); - input3.setTextureSize(128, 64); - input3.mirror = true; - setRotation(input3, 0F, 0F, 0F); - input4 = new ModelRenderer(this, 40, 27); - input4.addBox(-5F, 3F, -8F, 2, 2, 5); - input4.setRotationPoint(0F, 16F, 0F); - input4.setTextureSize(128, 64); - input4.mirror = true; - setRotation(input4, 0F, 0F, 0F); - outputSecond = new ModelRenderer(this, 78, 47); - outputSecond.addBox(4F, -3F, -3F, 1, 6, 6); - outputSecond.setRotationPoint(0F, 16F, 0F); - outputSecond.setTextureSize(128, 64); - outputSecond.mirror = true; - setRotation(outputSecond, 0F, 0F, 0F); - } - - public void render(Entity entity, float f, float f1, float f2, float f3, float f4, float f5, ForgeDirection input, ForgeDirection output) - { - super.render(entity, f, f1, f2, f3, f4, f5); - setRotationAngles(f, f1, f2, f3, f4, f5, entity); - - float xInputRot = 0.0f; - float yInputRot = 0.0f; - float zInputRot = 0.0f; - float xOutputRot = 0.0f; - float yOutputRot = 0.0f; - float zOutputRot = 0.0f; - - switch (input) - { - case NORTH: - xInputRot = 0.0f; - yInputRot = 0.0f; - zInputRot = 0.0f; - break; - - case EAST: - xInputRot = 0.0f; - yInputRot = (float) (0.5f * Math.PI); - zInputRot = 0.0f; - break; - - case SOUTH: - xInputRot = 0.0f; - yInputRot = (float) (1.0f * Math.PI); - zInputRot = 0.0f; - break; - - case WEST: - xInputRot = 0.0f; - yInputRot = (float) (-0.5f * Math.PI); - zInputRot = 0.0f; - break; - - case UP: - xInputRot = (float) (-0.5f * Math.PI); - yInputRot = 0.0f; - zInputRot = 0.0f; - break; - - case DOWN: - xInputRot = (float) (0.5f * Math.PI); - yInputRot = 0.0f; - zInputRot = 0.0f; - break; - - default: - break; - } - - switch (output) - { - case NORTH: - xOutputRot = 0.0f; - yOutputRot = (float) (0.5f * Math.PI); - zOutputRot = 0.0f; - break; - - case EAST: - xOutputRot = 0.0f; - yOutputRot = (float) (1.0f * Math.PI); - zOutputRot = 0.0f; - break; - - case SOUTH: - xOutputRot = 0.0f; - yOutputRot = (float) (-0.5f * Math.PI); - zOutputRot = 0.0f; - break; - - case WEST: - xOutputRot = 0.0f; - yOutputRot = 0.0f; - zOutputRot = 0.0f; - break; - - case UP: - xOutputRot = 0.0f; - yOutputRot = 0.0f; - zOutputRot = (float) (-0.5f * Math.PI); - break; - - case DOWN: - xOutputRot = 0.0f; - yOutputRot = 0.0f; - zOutputRot = (float) (0.5f * Math.PI); - break; - - default: - break; - } - - this.setRotation(inputMain, xInputRot, yInputRot, zInputRot); - this.setRotation(outputMain, xOutputRot, yOutputRot, zOutputRot); - this.setRotation(input1, xInputRot, yInputRot, zInputRot); - this.setRotation(input2, xInputRot, yInputRot, zInputRot); - this.setRotation(input3, xInputRot, yInputRot, zInputRot); - this.setRotation(input4, xInputRot, yInputRot, zInputRot); - this.setRotation(outputSecond, xOutputRot, yOutputRot, zOutputRot); - this.setRotation(output1, xOutputRot, yOutputRot, zOutputRot); - this.setRotation(output2, xOutputRot, yOutputRot, zOutputRot); - this.setRotation(output3, xOutputRot, yOutputRot, zOutputRot); - this.setRotation(output4, xOutputRot, yOutputRot, zOutputRot); - - core.render(f5); - frame1.render(f5); - frame2.render(f5); - frame3.render(f5); - frame4.render(f5); - frame5.render(f5); - frame6.render(f5); - frame7.render(f5); - frame8.render(f5); - frame9.render(f5); - frame10.render(f5); - frame11.render(f5); - frame12.render(f5); - outputMain.render(f5); - inputMain.render(f5); - output1.render(f5); - output2.render(f5); - output3.render(f5); - output4.render(f5); - input1.render(f5); - input2.render(f5); - input3.render(f5); - input4.render(f5); - outputSecond.render(f5); - } - - private void setRotation(ModelRenderer model, float x, float y, float z) - { - model.rotateAngleX = x; - model.rotateAngleY = y; - model.rotateAngleZ = z; - } - - public void setRotationAngles(float f, float f1, float f2, float f3, float f4, float f5, Entity entity) - { - super.setRotationAngles(f, f1, f2, f3, f4, f5, entity); - } - -} diff --git a/BM_src/WayofTime/alchemicalWizardry/common/renderer/model/ModelSpellModifierBlock.java b/BM_src/WayofTime/alchemicalWizardry/common/renderer/model/ModelSpellModifierBlock.java deleted file mode 100644 index a17f229c..00000000 --- a/BM_src/WayofTime/alchemicalWizardry/common/renderer/model/ModelSpellModifierBlock.java +++ /dev/null @@ -1,303 +0,0 @@ -package WayofTime.alchemicalWizardry.common.renderer.model; - -import net.minecraft.client.model.ModelBase; -import net.minecraft.client.model.ModelRenderer; -import net.minecraft.entity.Entity; -import net.minecraftforge.common.ForgeDirection; - -public class ModelSpellModifierBlock extends ModelBase -{ - //fields - ModelRenderer core; - ModelRenderer inputMain; - ModelRenderer Shape2; - ModelRenderer Shape3; - ModelRenderer Shape4; - ModelRenderer Shape5; - ModelRenderer Shape6; - ModelRenderer Shape7; - ModelRenderer Shape8; - ModelRenderer Shape9; - ModelRenderer outputMain; - ModelRenderer Shape11; - ModelRenderer Shape12; - ModelRenderer Shape13; - ModelRenderer Shape14; - ModelRenderer output1; - ModelRenderer output2; - ModelRenderer output3; - ModelRenderer output4; - - public ModelSpellModifierBlock() - { - textureWidth = 64; - textureHeight = 64; - - core = new ModelRenderer(this, 0, 0); - core.addBox(-3F, -3F, -3F, 6, 6, 6); - core.setRotationPoint(0F, 16F, 0F); - core.setTextureSize(64, 64); - core.mirror = true; - setRotation(core, 0F, 0F, 0F); - inputMain = new ModelRenderer(this, 25, 18); - inputMain.addBox(-2F, -2F, -8F, 4, 4, 1); - inputMain.setRotationPoint(0F, 16F, 0F); - inputMain.setTextureSize(64, 64); - inputMain.mirror = true; - setRotation(inputMain, 0F, 0F, 0F); - Shape2 = new ModelRenderer(this, 0, 13); - Shape2.addBox(-5F, -5F, -8F, 10, 2, 2); - Shape2.setRotationPoint(0F, 16F, 0F); - Shape2.setTextureSize(64, 64); - Shape2.mirror = true; - setRotation(Shape2, 0F, 0F, 0F); - Shape3 = new ModelRenderer(this, 0, 27); - Shape3.addBox(-5F, 3F, -8F, 10, 2, 2); - Shape3.setRotationPoint(0F, 16F, 0F); - Shape3.setTextureSize(64, 64); - Shape3.mirror = true; - setRotation(Shape3, 0F, 0F, 0F); - Shape4 = new ModelRenderer(this, 16, 18); - Shape4.addBox(3F, -3F, -8F, 2, 6, 2); - Shape4.setRotationPoint(0F, 16F, 0F); - Shape4.setTextureSize(64, 64); - Shape4.mirror = true; - setRotation(Shape4, 0F, 0F, 0F); - Shape5 = new ModelRenderer(this, 0, 18); - Shape5.addBox(-5F, -3F, -8F, 2, 6, 2); - Shape5.setRotationPoint(0F, 16F, 0F); - Shape5.setTextureSize(64, 64); - Shape5.mirror = true; - setRotation(Shape5, 0F, 0F, 0F); - Shape6 = new ModelRenderer(this, 0, 32); - Shape6.addBox(-1F, -6F, -7F, 2, 1, 5); - Shape6.setRotationPoint(0F, 16F, 0F); - Shape6.setTextureSize(64, 64); - Shape6.mirror = true; - setRotation(Shape6, 0F, 0F, 0F); - Shape7 = new ModelRenderer(this, 15, 32); - Shape7.addBox(-2F, -6F, -2F, 4, 1, 4); - Shape7.setRotationPoint(0F, 16F, 0F); - Shape7.setTextureSize(64, 64); - Shape7.mirror = true; - setRotation(Shape7, 0F, 0F, 0F); - Shape8 = new ModelRenderer(this, 15, 39); - Shape8.addBox(-2F, 5F, -2F, 4, 1, 4); - Shape8.setRotationPoint(0F, 16F, 0F); - Shape8.setTextureSize(64, 64); - Shape8.mirror = true; - setRotation(Shape8, 0F, 0F, 0F); - Shape9 = new ModelRenderer(this, 0, 39); - Shape9.addBox(-1F, 5F, -7F, 2, 1, 5); - Shape9.setRotationPoint(0F, 16F, 0F); - Shape9.setTextureSize(64, 64); - Shape9.mirror = true; - setRotation(Shape9, 0F, 0F, 0F); - outputMain = new ModelRenderer(this, 51, 23); - outputMain.addBox(7F, -2F, -2F, 1, 4, 4); - outputMain.setRotationPoint(0F, 16F, 0F); - outputMain.setTextureSize(64, 64); - outputMain.mirror = true; - setRotation(outputMain, 0F, 0F, 0F); - Shape11 = new ModelRenderer(this, 13, 46); - Shape11.addBox(5F, -2F, -2F, 1, 4, 4); - Shape11.setRotationPoint(0F, 16F, 0F); - Shape11.setTextureSize(64, 64); - Shape11.mirror = true; - setRotation(Shape11, 0F, 0F, 0F); - Shape12 = new ModelRenderer(this, 0, 46); - Shape12.addBox(5F, -1F, -7F, 1, 2, 5); - Shape12.setRotationPoint(0F, 16F, 0F); - Shape12.setTextureSize(64, 64); - Shape12.mirror = true; - setRotation(Shape12, 0F, 0F, 0F); - Shape13 = new ModelRenderer(this, 0, 56); - Shape13.addBox(-6F, -1F, -7F, 1, 2, 5); - Shape13.setRotationPoint(0F, 16F, 0F); - Shape13.setTextureSize(64, 64); - Shape13.mirror = true; - setRotation(Shape13, 0F, 0F, 0F); - Shape14 = new ModelRenderer(this, 13, 56); - Shape14.addBox(-6F, -2F, -2F, 1, 4, 4); - Shape14.setRotationPoint(0F, 16F, 0F); - Shape14.setTextureSize(64, 64); - Shape14.mirror = true; - setRotation(Shape14, 0F, 0F, 0F); - output1 = new ModelRenderer(this, 51, 18); - output1.addBox(5F, -5F, -5F, 3, 2, 2); - output1.setRotationPoint(0F, 16F, 0F); - output1.setTextureSize(64, 64); - output1.mirror = true; - setRotation(output1, 0F, 0F, 0F); - output2 = new ModelRenderer(this, 51, 18); - output2.addBox(5F, -5F, 3F, 3, 2, 2); - output2.setRotationPoint(0F, 16F, 0F); - output2.setTextureSize(64, 64); - output2.mirror = true; - setRotation(output2, 0F, 0F, 0F); - output3 = new ModelRenderer(this, 51, 18); - output3.addBox(5F, 3F, -5F, 3, 2, 2); - output3.setRotationPoint(0F, 16F, 0F); - output3.setTextureSize(64, 64); - output3.mirror = true; - setRotation(output3, 0F, 0F, 0F); - output4 = new ModelRenderer(this, 51, 18); - output4.addBox(5F, 3F, 3F, 3, 2, 2); - output4.setRotationPoint(0F, 16F, 0F); - output4.setTextureSize(64, 64); - output4.mirror = true; - setRotation(output4, 0F, 0F, 0F); - } - - public void render(Entity entity, float f, float f1, float f2, float f3, float f4, float f5, ForgeDirection input, ForgeDirection output) - { - super.render(entity, f, f1, f2, f3, f4, f5); - setRotationAngles(f, f1, f2, f3, f4, f5, entity); - - float xInputRot = 0.0f; - float yInputRot = 0.0f; - float zInputRot = 0.0f; - float xOutputRot = 0.0f; - float yOutputRot = 0.0f; - float zOutputRot = 0.0f; - - switch (input) - { - case NORTH: - xInputRot = 0.0f; - yInputRot = 0.0f; - zInputRot = 0.0f; - break; - - case EAST: - xInputRot = 0.0f; - yInputRot = (float) (0.5f * Math.PI); - zInputRot = 0.0f; - break; - - case SOUTH: - xInputRot = 0.0f; - yInputRot = (float) (1.0f * Math.PI); - zInputRot = 0.0f; - break; - - case WEST: - xInputRot = 0.0f; - yInputRot = (float) (-0.5f * Math.PI); - zInputRot = 0.0f; - break; - - case UP: - xInputRot = (float) (-0.5f * Math.PI); - yInputRot = 0.0f; - zInputRot = 0.0f; - break; - - case DOWN: - xInputRot = (float) (0.5f * Math.PI); - yInputRot = 0.0f; - zInputRot = 0.0f; - break; - - default: - break; - } - - switch (output) - { - case NORTH: - xOutputRot = 0.0f; - yOutputRot = (float) (0.5f * Math.PI); - zOutputRot = 0.0f; - break; - - case EAST: - xOutputRot = 0.0f; - yOutputRot = (float) (1.0f * Math.PI); - zOutputRot = 0.0f; - break; - - case SOUTH: - xOutputRot = 0.0f; - yOutputRot = (float) (-0.5f * Math.PI); - zOutputRot = 0.0f; - break; - - case WEST: - xOutputRot = 0.0f; - yOutputRot = 0.0f; - zOutputRot = 0.0f; - break; - - case UP: - xOutputRot = 0.0f; - yOutputRot = 0.0f; - zOutputRot = (float) (-0.5f * Math.PI); - break; - - case DOWN: - xOutputRot = 0.0f; - yOutputRot = 0.0f; - zOutputRot = (float) (0.5f * Math.PI); - break; - - default: - break; - } - - this.setRotation(inputMain, xInputRot, yInputRot, zInputRot); - this.setRotation(Shape2, xInputRot, yInputRot, zInputRot); - this.setRotation(Shape3, xInputRot, yInputRot, zInputRot); - this.setRotation(Shape4, xInputRot, yInputRot, zInputRot); - this.setRotation(Shape5, xInputRot, yInputRot, zInputRot); - this.setRotation(Shape6, xInputRot, yInputRot, zInputRot); - this.setRotation(Shape7, xInputRot, yInputRot, zInputRot); - this.setRotation(Shape8, xInputRot, yInputRot, zInputRot); - this.setRotation(Shape9, xInputRot, yInputRot, zInputRot); - this.setRotation(Shape12, xInputRot, yInputRot, zInputRot); - this.setRotation(Shape11, xInputRot, yInputRot, zInputRot); - this.setRotation(Shape13, xInputRot, yInputRot, zInputRot); - this.setRotation(Shape14, xInputRot, yInputRot, zInputRot); - - this.setRotation(outputMain, xOutputRot, yOutputRot, zOutputRot); - this.setRotation(output1, xOutputRot, yOutputRot, zOutputRot); - this.setRotation(output2, xOutputRot, yOutputRot, zOutputRot); - this.setRotation(output3, xOutputRot, yOutputRot, zOutputRot); - this.setRotation(output4, xOutputRot, yOutputRot, zOutputRot); - - - core.render(f5); - inputMain.render(f5); - Shape2.render(f5); - Shape3.render(f5); - Shape4.render(f5); - Shape5.render(f5); - Shape6.render(f5); - Shape7.render(f5); - Shape8.render(f5); - Shape9.render(f5); - outputMain.render(f5); - Shape11.render(f5); - Shape12.render(f5); - Shape13.render(f5); - Shape14.render(f5); - output1.render(f5); - output2.render(f5); - output3.render(f5); - output4.render(f5); - } - - private void setRotation(ModelRenderer model, float x, float y, float z) - { - model.rotateAngleX = x; - model.rotateAngleY = y; - model.rotateAngleZ = z; - } - - public void setRotationAngles(float f, float f1, float f2, float f3, float f4, float f5, Entity entity) - { - super.setRotationAngles(f, f1, f2, f3, f4, f5, entity); - } - -} - diff --git a/BM_src/WayofTime/alchemicalWizardry/common/renderer/model/ModelSpellParadigmBlock.java b/BM_src/WayofTime/alchemicalWizardry/common/renderer/model/ModelSpellParadigmBlock.java deleted file mode 100644 index c86c18a4..00000000 --- a/BM_src/WayofTime/alchemicalWizardry/common/renderer/model/ModelSpellParadigmBlock.java +++ /dev/null @@ -1,234 +0,0 @@ -package WayofTime.alchemicalWizardry.common.renderer.model; - -//Date: 07/03/2014 9:30:25 PM -//Template version 1.1 -//Java generated by Techne -//Keep in mind that you still need to fill in some blanks -//- ZeuX - - - -import net.minecraft.client.model.ModelBase; -import net.minecraft.client.model.ModelRenderer; -import net.minecraft.entity.Entity; -import net.minecraftforge.common.ForgeDirection; - -public class ModelSpellParadigmBlock extends ModelBase -{ -//fields - ModelRenderer core; - ModelRenderer outputMain; - ModelRenderer output1; - ModelRenderer output2; - ModelRenderer output3; - ModelRenderer output4; - ModelRenderer Shape1; - ModelRenderer Shape2; - ModelRenderer Shape3; - ModelRenderer Shape4; - ModelRenderer Shape5; - -public ModelSpellParadigmBlock() -{ - textureWidth = 64; - textureHeight = 64; - - core = new ModelRenderer(this, 0, 0); - core.addBox(-3F, -3F, -3F, 6, 6, 6); - core.setRotationPoint(0F, 16F, 0F); - core.setTextureSize(64, 64); - core.mirror = true; - setRotation(core, 0F, 0F, 0F); - outputMain = new ModelRenderer(this, 0, 13); - outputMain.addBox(6F, -2F, -2F, 2, 4, 4); - outputMain.setRotationPoint(0F, 16F, 0F); - outputMain.setTextureSize(64, 64); - outputMain.mirror = true; - setRotation(outputMain, 0F, 0F, 0F); - output1 = new ModelRenderer(this, 0, 22); - output1.addBox(5F, -5F, -5F, 3, 2, 2); - output1.setRotationPoint(0F, 16F, 0F); - output1.setTextureSize(64, 64); - output1.mirror = true; - setRotation(output1, 0F, 0F, 0F); - output2 = new ModelRenderer(this, 0, 22); - output2.addBox(5F, -5F, 3F, 3, 2, 2); - output2.setRotationPoint(0F, 16F, 0F); - output2.setTextureSize(64, 64); - output2.mirror = true; - setRotation(output2, 0F, 0F, 0F); - output3 = new ModelRenderer(this, 0, 22); - output3.addBox(5F, 3F, -5F, 3, 2, 2); - output3.setRotationPoint(0F, 16F, 0F); - output3.setTextureSize(64, 64); - output3.mirror = true; - setRotation(output3, 0F, 0F, 0F); - output4 = new ModelRenderer(this, 0, 22); - output4.addBox(5F, 3F, 3F, 3, 2, 2); - output4.setRotationPoint(0F, 16F, 0F); - output4.setTextureSize(64, 64); - output4.mirror = true; - setRotation(output4, 0F, 0F, 0F); - Shape1 = new ModelRenderer(this, 0, 28); - Shape1.addBox(-5F, -5F, -1F, 10, 1, 2); - Shape1.setRotationPoint(0F, 16F, 0F); - Shape1.setTextureSize(64, 64); - Shape1.mirror = true; - setRotation(Shape1, 0F, 0F, 0F); - Shape2 = new ModelRenderer(this, 25, 28); - Shape2.addBox(-5F, -4F, -4F, 1, 8, 8); - Shape2.setRotationPoint(0F, 16F, 0F); - Shape2.setTextureSize(64, 64); - Shape2.mirror = true; - setRotation(Shape2, 0F, 0F, 0F); - Shape3 = new ModelRenderer(this, 0, 33); - Shape3.addBox(-5F, 4F, -1F, 10, 1, 2); - Shape3.setRotationPoint(0F, 16F, 0F); - Shape3.setTextureSize(64, 64); - Shape3.mirror = true; - setRotation(Shape3, 0F, 0F, 0F); - Shape4 = new ModelRenderer(this, 0, 38); - Shape4.addBox(-5F, -1F, -5F, 10, 2, 1); - Shape4.setRotationPoint(0F, 16F, 0F); - Shape4.setTextureSize(64, 64); - Shape4.mirror = true; - setRotation(Shape4, 0F, 0F, 0F); - Shape5 = new ModelRenderer(this, 0, 43); - Shape5.addBox(-5F, -1F, 4F, 10, 2, 1); - Shape5.setRotationPoint(0F, 16F, 0F); - Shape5.setTextureSize(64, 64); - Shape5.mirror = true; - setRotation(Shape5, 0F, 0F, 0F); -} - -public void render(Entity entity, float f, float f1, float f2, float f3, float f4, float f5, ForgeDirection input, ForgeDirection output) -{ - super.render(entity, f, f1, f2, f3, f4, f5); - setRotationAngles(f, f1, f2, f3, f4, f5, entity); - float xInputRot = 0.0f; - float yInputRot = 0.0f; - float zInputRot = 0.0f; - float xOutputRot = 0.0f; - float yOutputRot = 0.0f; - float zOutputRot = 0.0f; - - switch (input) - { - case NORTH: - xInputRot = 0.0f; - yInputRot = 0.0f; - zInputRot = 0.0f; - break; - - case EAST: - xInputRot = 0.0f; - yInputRot = (float) (0.5f * Math.PI); - zInputRot = 0.0f; - break; - - case SOUTH: - xInputRot = 0.0f; - yInputRot = (float) (1.0f * Math.PI); - zInputRot = 0.0f; - break; - - case WEST: - xInputRot = 0.0f; - yInputRot = (float) (-0.5f * Math.PI); - zInputRot = 0.0f; - break; - - case UP: - xInputRot = (float) (-0.5f * Math.PI); - yInputRot = 0.0f; - zInputRot = 0.0f; - break; - - case DOWN: - xInputRot = (float) (0.5f * Math.PI); - yInputRot = 0.0f; - zInputRot = 0.0f; - break; - - default: - break; - } - - switch (output) - { - case NORTH: - xOutputRot = 0.0f; - yOutputRot = (float) (0.5f * Math.PI); - zOutputRot = 0.0f; - break; - - case EAST: - xOutputRot = 0.0f; - yOutputRot = (float) (1.0f * Math.PI); - zOutputRot = 0.0f; - break; - - case SOUTH: - xOutputRot = 0.0f; - yOutputRot = (float) (-0.5f * Math.PI); - zOutputRot = 0.0f; - break; - - case WEST: - xOutputRot = 0.0f; - yOutputRot = 0.0f; - zOutputRot = 0.0f; - break; - - case UP: - xOutputRot = 0.0f; - yOutputRot = 0.0f; - zOutputRot = (float) (-0.5f * Math.PI); - break; - - case DOWN: - xOutputRot = 0.0f; - yOutputRot = 0.0f; - zOutputRot = (float) (0.5f * Math.PI); - break; - - default: - break; - } - - this.setRotation(outputMain, xOutputRot, yOutputRot, zOutputRot); - this.setRotation(output1, xOutputRot, yOutputRot, zOutputRot); - this.setRotation(output2, xOutputRot, yOutputRot, zOutputRot); - this.setRotation(output3, xOutputRot, yOutputRot, zOutputRot); - this.setRotation(output4, xOutputRot, yOutputRot, zOutputRot); - this.setRotation(Shape1, xOutputRot, yOutputRot, zOutputRot); - this.setRotation(Shape2, xOutputRot, yOutputRot, zOutputRot); - this.setRotation(Shape3, xOutputRot, yOutputRot, zOutputRot); - this.setRotation(Shape4, xOutputRot, yOutputRot, zOutputRot); - this.setRotation(Shape5, xOutputRot, yOutputRot, zOutputRot); - core.render(f5); - outputMain.render(f5); - output1.render(f5); - output2.render(f5); - output3.render(f5); - output4.render(f5); - Shape1.render(f5); - Shape2.render(f5); - Shape3.render(f5); - Shape4.render(f5); - Shape5.render(f5); -} - -private void setRotation(ModelRenderer model, float x, float y, float z) -{ - model.rotateAngleX = x; - model.rotateAngleY = y; - model.rotateAngleZ = z; -} - -public void setRotationAngles(float f, float f1, float f2, float f3, float f4, float f5, Entity entity) -{ - super.setRotationAngles(f, f1, f2, f3, f4, f5, entity); -} - -} diff --git a/BM_src/WayofTime/alchemicalWizardry/common/renderer/model/ModelWingedFireDemon.java b/BM_src/WayofTime/alchemicalWizardry/common/renderer/model/ModelWingedFireDemon.java deleted file mode 100644 index 07164ffd..00000000 --- a/BM_src/WayofTime/alchemicalWizardry/common/renderer/model/ModelWingedFireDemon.java +++ /dev/null @@ -1,203 +0,0 @@ -package WayofTime.alchemicalWizardry.common.renderer.model; - -import net.minecraft.client.model.ModelBase; -import net.minecraft.client.model.ModelRenderer; -import net.minecraft.entity.Entity; -import net.minecraft.util.MathHelper; - -public class ModelWingedFireDemon extends ModelBase -{ - //fields - ModelRenderer leftLegPlate; - ModelRenderer leftLeg; - ModelRenderer codPiece; - ModelRenderer rightLegPlate; - ModelRenderer rightLeg; - ModelRenderer body; - ModelRenderer leftShoulder; - ModelRenderer leftArm; - ModelRenderer head; - ModelRenderer rightShoulder; - ModelRenderer rightArm; - ModelRenderer leftWing; - ModelRenderer rightWing; - ModelRenderer leftHorn1; - ModelRenderer rightHorn1; - ModelRenderer leftHorn2; - ModelRenderer rightHorn2; - - public ModelWingedFireDemon() - { - textureWidth = 64; - textureHeight = 64; - leftLegPlate = new ModelRenderer(this, 40, 36); - leftLegPlate.addBox(0F, -3F, -3F, 6, 6, 6); - leftLegPlate.setRotationPoint(2F, 5F, 0F); - leftLegPlate.setTextureSize(64, 64); - leftLegPlate.mirror = true; - setRotation(leftLegPlate, 0F, 0F, 0F); - leftLeg = new ModelRenderer(this, 48, 16); - leftLeg.addBox(1F, 3F, -2F, 4, 16, 4); - leftLeg.setRotationPoint(2F, 5F, 0F); - leftLeg.setTextureSize(64, 64); - leftLeg.mirror = true; - setRotation(leftLeg, 0F, 0F, 0F); - codPiece = new ModelRenderer(this, 48, 0); - codPiece.addBox(-2F, 0F, -2F, 4, 6, 4); - codPiece.setRotationPoint(0F, 1F, 0F); - codPiece.setTextureSize(64, 64); - codPiece.mirror = true; - setRotation(codPiece, 0F, 0F, 0F); - rightLegPlate = new ModelRenderer(this, 40, 36); - rightLegPlate.mirror = true; - rightLegPlate.addBox(-6F, -3F, -3F, 6, 6, 6); - rightLegPlate.setRotationPoint(-2F, 5F, 0F); - rightLegPlate.setTextureSize(64, 64); - rightLegPlate.mirror = true; - setRotation(rightLegPlate, 0F, 0F, 0F); - rightLegPlate.mirror = false; - rightLeg = new ModelRenderer(this, 48, 16); - rightLeg.mirror = true; - rightLeg.addBox(-5F, 3F, -2F, 4, 16, 4); - rightLeg.setRotationPoint(-2F, 5F, 0F); - rightLeg.setTextureSize(64, 64); - rightLeg.mirror = true; - setRotation(rightLeg, 0F, 0F, 0F); - rightLeg.mirror = false; - body = new ModelRenderer(this, 0, 44); - body.addBox(-5F, -14F, -3F, 10, 14, 6); - body.setRotationPoint(0F, 1F, 0F); - body.setTextureSize(64, 64); - body.mirror = true; - setRotation(body, 0F, 0F, 0F); - leftShoulder = new ModelRenderer(this, 0, 29); - leftShoulder.addBox(0F, -5F, -4F, 8, 7, 8); - leftShoulder.setRotationPoint(5F, -10F, 0F); - leftShoulder.setTextureSize(64, 64); - leftShoulder.mirror = true; - setRotation(leftShoulder, 0F, 0F, 0F); - leftArm = new ModelRenderer(this, 32, 0); - leftArm.addBox(3F, 2F, -2F, 4, 12, 4); - leftArm.setRotationPoint(5F, -10F, 0F); - leftArm.setTextureSize(64, 64); - leftArm.mirror = true; - setRotation(leftArm, 0F, 0F, 0F); - head = new ModelRenderer(this, 32, 48); - head.addBox(-4F, -7F, -4F, 8, 8, 8); - head.setRotationPoint(0F, -14F, -1F); - head.setTextureSize(64, 64); - head.mirror = true; - setRotation(head, 0F, 0F, 0F); - rightShoulder = new ModelRenderer(this, 0, 29); - rightShoulder.mirror = true; - rightShoulder.mirror = true; - rightShoulder.addBox(-8F, -5F, -4F, 8, 7, 8); - rightShoulder.setRotationPoint(-5F, -10F, 0F); - rightShoulder.setTextureSize(64, 64); - rightShoulder.mirror = true; - setRotation(rightShoulder, 0F, 0F, 0F); - rightShoulder.mirror = false; - rightArm = new ModelRenderer(this, 32, 0); - rightArm.mirror = true; - rightArm.mirror = true; - rightArm.addBox(-7F, 2F, -2F, 4, 12, 4); - rightArm.setRotationPoint(-5F, -10F, 0F); - rightArm.setTextureSize(64, 64); - rightArm.mirror = true; - setRotation(rightArm, 0F, 0F, 0F); - rightArm.mirror = false; - leftWing = new ModelRenderer(this, 0, 0); - leftWing.addBox(0F, -2F, 0F, 16, 12, 0); - leftWing.setRotationPoint(0F, -11F, 3F); - leftWing.setTextureSize(64, 64); - leftWing.mirror = true; - setRotation(leftWing, 0F, -0.5061455F, 0F); - rightWing = new ModelRenderer(this, 0, 0); - rightWing.mirror = true; - rightWing.addBox(-16F, -2F, 0F, 16, 12, 0); - rightWing.setRotationPoint(0F, -11F, 3F); - rightWing.setTextureSize(64, 64); - rightWing.mirror = true; - setRotation(rightWing, 0F, 0.5061455F, 0F); - rightWing.mirror = false; - leftHorn1 = new ModelRenderer(this, 0, 12); - leftHorn1.addBox(4F, -9F, -1F, 1, 5, 1); - leftHorn1.setRotationPoint(0F, -14F, -1F); - leftHorn1.setTextureSize(64, 64); - leftHorn1.mirror = true; - setRotation(leftHorn1, 0F, 0F, 0F); - rightHorn1 = new ModelRenderer(this, 0, 12); - rightHorn1.mirror = true; - rightHorn1.addBox(-5F, -9F, -1F, 1, 5, 1); - rightHorn1.setRotationPoint(0F, -14F, -1F); - rightHorn1.setTextureSize(64, 64); - rightHorn1.mirror = true; - setRotation(rightHorn1, 0F, 0F, 0F); - rightHorn1.mirror = false; - leftHorn2 = new ModelRenderer(this, 4, 12); - leftHorn2.addBox(4F, -10F, 0F, 1, 5, 1); - leftHorn2.setRotationPoint(0F, -14F, -1F); - leftHorn2.setTextureSize(64, 64); - leftHorn2.mirror = true; - setRotation(leftHorn2, 0F, 0F, 0F); - rightHorn2 = new ModelRenderer(this, 4, 12); - rightHorn2.mirror = true; - rightHorn2.addBox(-5F, -10F, 0F, 1, 5, 1); - rightHorn2.setRotationPoint(0F, -14F, -1F); - rightHorn2.setTextureSize(64, 64); - rightHorn2.mirror = true; - setRotation(rightHorn2, 0F, 0F, 0F); - rightHorn2.mirror = false; - } - - public void render(Entity entity, float f, float f1, float f2, float f3, float f4, float f5) - { - super.render(entity, f, f1, f2, f3, f4, f5); - setRotationAngles(f, f1, f2, f3, f4, f5, entity); - leftLegPlate.render(f5); - leftLeg.render(f5); - codPiece.render(f5); - rightLegPlate.render(f5); - rightLeg.render(f5); - body.render(f5); - leftShoulder.render(f5); - leftArm.render(f5); - head.render(f5); - rightShoulder.render(f5); - rightArm.render(f5); - leftWing.render(f5); - rightWing.render(f5); - leftHorn1.render(f5); - rightHorn1.render(f5); - leftHorn2.render(f5); - rightHorn2.render(f5); - } - - private void setRotation(ModelRenderer model, float x, float y, float z) - { - model.rotateAngleX = x; - model.rotateAngleY = y; - model.rotateAngleZ = z; - } - - public void setRotationAngles(float f, float f1, float f2, float f3, float f4, float f5, Entity entity) - { - super.setRotationAngles(f, f1, f2, f3, f4, f5, entity); - this.head.rotateAngleX = f4 / (180F / (float) Math.PI); - this.head.rotateAngleY = f3 / (180F / (float) Math.PI); - this.leftHorn1.rotateAngleX = head.rotateAngleX; - this.leftHorn1.rotateAngleY = head.rotateAngleY; - this.leftHorn2.rotateAngleX = head.rotateAngleX; - this.leftHorn2.rotateAngleY = head.rotateAngleY; - this.rightHorn1.rotateAngleX = head.rotateAngleX; - this.rightHorn1.rotateAngleY = head.rotateAngleY; - this.rightHorn2.rotateAngleX = head.rotateAngleX; - this.rightHorn2.rotateAngleY = head.rotateAngleY; - this.leftLeg.rotateAngleX = MathHelper.cos(f * 0.6662F) * 1.4F * f1; - this.rightLeg.rotateAngleX = MathHelper.cos(f * 0.6662F + (float) Math.PI) * 1.0F * f1; - this.rightArm.rotateAngleX = MathHelper.cos(f * 0.6662F + (float) Math.PI) * 1.0F * f1; - this.leftArm.rotateAngleX = MathHelper.cos(f * 0.6662F) * 1.4F * f1; - this.leftShoulder.rotateAngleX = this.leftArm.rotateAngleX; - this.rightShoulder.rotateAngleX = this.rightArm.rotateAngleX; - } -} \ No newline at end of file diff --git a/BM_src/WayofTime/alchemicalWizardry/common/renderer/model/ModelWritingTable.java b/BM_src/WayofTime/alchemicalWizardry/common/renderer/model/ModelWritingTable.java deleted file mode 100644 index 15dede34..00000000 --- a/BM_src/WayofTime/alchemicalWizardry/common/renderer/model/ModelWritingTable.java +++ /dev/null @@ -1,138 +0,0 @@ -package WayofTime.alchemicalWizardry.common.renderer.model; - -import net.minecraft.client.model.ModelBase; -import net.minecraft.client.model.ModelRenderer; -import net.minecraft.entity.Entity; - -public class ModelWritingTable extends ModelBase -{ - //fields - ModelRenderer base; - ModelRenderer support; - ModelRenderer appendage1; - ModelRenderer appendage2; - ModelRenderer appendage3; - ModelRenderer appendage4; - ModelRenderer appendage5; - ModelRenderer outputPad; - ModelRenderer input1; - ModelRenderer input5; - ModelRenderer input4; - ModelRenderer input3; - ModelRenderer Shape1; - - public ModelWritingTable() - { - textureWidth = 64; - textureHeight = 64; - base = new ModelRenderer(this, 0, 0); - base.addBox(0F, 0F, 0F, 16, 2, 16); - base.setRotationPoint(-8F, 22F, -8F); - base.setTextureSize(64, 32); - base.mirror = true; - setRotation(base, 0F, 0F, 0F); - support = new ModelRenderer(this, 0, 0); - support.addBox(0F, 0F, 0F, 2, 12, 2); - support.setRotationPoint(-1F, 10F, -1F); - support.setTextureSize(64, 32); - support.mirror = true; - setRotation(support, 0F, 0F, 0F); - appendage1 = new ModelRenderer(this, 48, 0); - appendage1.addBox(1F, 0F, 0F, 7, 11, 0); - appendage1.setRotationPoint(0F, 10F, 0F); - appendage1.setTextureSize(64, 32); - appendage1.mirror = true; - setRotation(appendage1, 0F, 0F, 0F); - appendage2 = new ModelRenderer(this, 48, 0); - appendage2.addBox(1F, 0F, 0F, 7, 11, 0); - appendage2.setRotationPoint(0F, 10F, 0F); - appendage2.setTextureSize(64, 32); - appendage2.mirror = true; - setRotation(appendage2, 0F, ((float) Math.PI * 2F / 5F), 0F); - appendage3 = new ModelRenderer(this, 48, 0); - appendage3.addBox(1F, 0F, 0F, 7, 11, 0); - appendage3.setRotationPoint(0F, 10F, 0F); - appendage3.setTextureSize(64, 32); - appendage3.mirror = true; - setRotation(appendage3, 0F, 2.513274F, 0F); - appendage4 = new ModelRenderer(this, 48, 0); - appendage4.addBox(1F, 0F, 0F, 7, 11, 0); - appendage4.setRotationPoint(0F, 10F, 0F); - appendage4.setTextureSize(64, 32); - appendage4.mirror = true; - setRotation(appendage4, 0F, -2.513274F, 0F); - appendage5 = new ModelRenderer(this, 48, 0); - appendage5.addBox(1F, 0F, 0F, 7, 11, 0); - appendage5.setRotationPoint(0F, 10F, 0F); - appendage5.setTextureSize(64, 32); - appendage5.mirror = true; - setRotation(appendage5, 0F, -((float) Math.PI * 2F / 5F), 0F); - outputPad = new ModelRenderer(this, 0, 20); - outputPad.addBox(0F, 0F, 0F, 4, 1, 4); - outputPad.setRotationPoint(-2F, 9F, -2F); - outputPad.setTextureSize(64, 64); - outputPad.mirror = true; - setRotation(outputPad, 0F, 0F, 0F); - input1 = new ModelRenderer(this, 0, 20); - input1.addBox(4F, 0F, -2F, 4, 1, 4); - input1.setRotationPoint(0F, 21F, 0F); - input1.setTextureSize(64, 64); - input1.mirror = true; - setRotation(input1, 0F, 0F, 0F); - input5 = new ModelRenderer(this, 0, 20); - input5.addBox(0F, 0F, 0F, 4, 1, 4); - input5.setRotationPoint(0F, 21F, -8F); - input5.setTextureSize(64, 64); - input5.mirror = true; - setRotation(input5, 0F, 0F, 0F); - input4 = new ModelRenderer(this, 0, 20); - input4.addBox(-7F, 0F, -6F, 4, 1, 4); - input4.setRotationPoint(0F, 21F, 0F); - input4.setTextureSize(64, 64); - input4.mirror = true; - setRotation(input4, 0F, 0F, 0F); - input3 = new ModelRenderer(this, 0, 20); - input3.addBox(-7F, 0F, 2F, 4, 1, 4); - input3.setRotationPoint(0F, 21F, 0F); - input3.setTextureSize(64, 64); - input3.mirror = true; - setRotation(input3, 0F, 0F, 0F); - Shape1 = new ModelRenderer(this, 0, 20); - Shape1.addBox(0F, 0F, 4F, 4, 1, 4); - Shape1.setRotationPoint(0F, 21F, 0F); - Shape1.setTextureSize(64, 64); - Shape1.mirror = true; - setRotation(Shape1, 0F, 0F, 0F); - } - - public void render(Entity entity, float f, float f1, float f2, float f3, float f4, float f5) - { - super.render(entity, f, f1, f2, f3, f4, f5); - setRotationAngles(f, f1, f2, f3, f4, f5, entity); - base.render(f5); - support.render(f5); - appendage1.render(f5); - appendage2.render(f5); - appendage3.render(f5); - appendage4.render(f5); - appendage5.render(f5); - outputPad.render(f5); - input1.render(f5); - input5.render(f5); - input4.render(f5); - input3.render(f5); - Shape1.render(f5); - } - - private void setRotation(ModelRenderer model, float x, float y, float z) - { - model.rotateAngleX = x; - model.rotateAngleY = y; - model.rotateAngleZ = z; - } - - public void setRotationAngles(float f, float f1, float f2, float f3, float f4, float f5, Entity entity) - { - super.setRotationAngles(f, f1, f2, f3, f4, f5, entity); - } -} diff --git a/BM_src/WayofTime/alchemicalWizardry/common/renderer/projectile/RenderEnergyBazookaMainProjectile.java b/BM_src/WayofTime/alchemicalWizardry/common/renderer/projectile/RenderEnergyBazookaMainProjectile.java deleted file mode 100644 index 57df9912..00000000 --- a/BM_src/WayofTime/alchemicalWizardry/common/renderer/projectile/RenderEnergyBazookaMainProjectile.java +++ /dev/null @@ -1,39 +0,0 @@ -package WayofTime.alchemicalWizardry.common.renderer.projectile; - -import WayofTime.alchemicalWizardry.common.renderer.model.ModelEnergyBazookaMainProjectile; -import net.minecraft.client.model.ModelBase; -import net.minecraft.client.renderer.entity.Render; -import net.minecraft.entity.Entity; -import net.minecraft.util.ResourceLocation; -import org.lwjgl.opengl.GL11; -import org.lwjgl.opengl.GL12; - -public class RenderEnergyBazookaMainProjectile extends Render -{ - public ModelBase model = new ModelEnergyBazookaMainProjectile(); - private static final ResourceLocation field_110833_a = new ResourceLocation("alchemicalwizardry", "textures/models/EnergyBazookaMainProjectile.png"); //refers to:YourMod/modelsTextureFile/optionalFile/yourTexture.png - private float scale = 1.0f; - - @Override - public void doRender(Entity entity, double d0, double d1, double d2, float f, float f1) - { - GL11.glPushMatrix(); - GL11.glTranslatef((float) d0, (float) d1, (float) d2); - GL11.glEnable(GL12.GL_RESCALE_NORMAL); - GL11.glScalef(scale, scale, scale); - this.bindTexture(this.getEntityTexture(entity)); - GL11.glRotatef(entity.prevRotationYaw + (entity.rotationYaw - entity.prevRotationYaw) * f1, 0.0F, 1.0F, 0.0F); - GL11.glRotatef(180.0f - entity.prevRotationPitch + (entity.rotationPitch - entity.prevRotationPitch) * f1, 1.0F, 0.0F, 0.0f); - model.render(entity, 0, (float) d0, (float) d1, (float) d2, f, f1); - //GL11.glRotatef(entity.getRotationYawHead(), 0.0F, 1.0F, 0.0F); - GL11.glDisable(GL12.GL_RESCALE_NORMAL); - GL11.glPopMatrix(); - } - - @Override - protected ResourceLocation getEntityTexture(Entity entity) - { - // TODO Auto-generated method stub - return field_110833_a; - } -} diff --git a/BM_src/WayofTime/alchemicalWizardry/common/renderer/projectile/RenderEnergyBlastProjectile.java b/BM_src/WayofTime/alchemicalWizardry/common/renderer/projectile/RenderEnergyBlastProjectile.java deleted file mode 100644 index 787ec4ad..00000000 --- a/BM_src/WayofTime/alchemicalWizardry/common/renderer/projectile/RenderEnergyBlastProjectile.java +++ /dev/null @@ -1,91 +0,0 @@ -package WayofTime.alchemicalWizardry.common.renderer.projectile; - -import WayofTime.alchemicalWizardry.common.entity.projectile.*; -import cpw.mods.fml.relauncher.Side; -import cpw.mods.fml.relauncher.SideOnly; -import net.minecraft.client.renderer.Tessellator; -import net.minecraft.client.renderer.entity.Render; -import net.minecraft.entity.Entity; -import net.minecraft.util.ResourceLocation; -import org.lwjgl.opengl.GL11; -import org.lwjgl.opengl.GL12; - -@SideOnly(Side.CLIENT) -public class RenderEnergyBlastProjectile extends Render -{ - public void doRenderEnergyBlastProjectile(EnergyBlastProjectile entityShot, double par2, double par4, double par6, float par8, float par9) - { - GL11.glPushMatrix(); - GL11.glTranslatef((float) par2, (float) par4, (float) par6); - GL11.glEnable(GL12.GL_RESCALE_NORMAL); - GL11.glScalef(0.1F, 0.1F, 0.1F); - this.bindTexture(this.getEntityTexture(entityShot)); - Tessellator var12 = Tessellator.instance; - GL11.glRotatef(180.0F - renderManager.playerViewY, 0.0F, 1.0F, 0.0F); - GL11.glRotatef(-renderManager.playerViewX, 1.0F, 0.0F, 0.0F); - var12.startDrawingQuads(); - var12.setNormal(0.0F, 1.0F, 0.0F); - var12.addVertexWithUV(-0.5F, -0.25F, 0.0D, 0, 1); - var12.addVertexWithUV(0.5F, -0.25F, 0.0D, 1, 1); - var12.addVertexWithUV(0.5F, 0.75F, 0.0D, 1, 0); - var12.addVertexWithUV(-0.5F, 0.75F, 0.0D, 0, 0); - var12.draw(); - GL11.glDisable(GL12.GL_RESCALE_NORMAL); - GL11.glPopMatrix(); - } - - @Override - public void doRender(Entity par1Entity, double par2, double par4, double par6, float par8, float par9) - { - if (par1Entity instanceof EnergyBlastProjectile) - { - this.doRenderEnergyBlastProjectile((EnergyBlastProjectile) par1Entity, par2, par4, par6, par8, par9); - } - } - - @Override - protected ResourceLocation getEntityTexture(Entity entity) - { - if (entity instanceof IceProjectile) - { - return new ResourceLocation("alchemicalwizardry", "textures/entities/iceProjectile.png"); - } - - if (entity instanceof FireProjectile) - { - return new ResourceLocation("alchemicalwizardry", "textures/entities/fireProjectile.png"); - } - - if (entity instanceof ExplosionProjectile) - { - return new ResourceLocation("alchemicalwizardry", "textures/entities/explosionProjectile.png"); - } - - if (entity instanceof HolyProjectile) - { - return new ResourceLocation("alchemicalwizardry", "textures/entities/holyProjectile.png"); - } - - if (entity instanceof WindGustProjectile) - { - return new ResourceLocation("alchemicalwizardry", "textures/entities/windGustProjectile.png"); - } - - if (entity instanceof LightningBoltProjectile) - { - return new ResourceLocation("alchemicalwizardry", "textures/entities/lightningProjectile.png"); - } - - if (entity instanceof WaterProjectile) - { - return new ResourceLocation("alchemicalwizardry", "textures/entities/waterProjectile.png"); - } - - if (entity instanceof MudProjectile) - { - return new ResourceLocation("alchemicalwizardry", "textures/entities/mudProjectile.png"); - } - - return new ResourceLocation("alchemicalwizardry", "textures/entities/energyBlastProjectile.png"); - } -} diff --git a/BM_src/WayofTime/alchemicalWizardry/common/renderer/projectile/RenderFireProjectile.java b/BM_src/WayofTime/alchemicalWizardry/common/renderer/projectile/RenderFireProjectile.java deleted file mode 100644 index cda739fe..00000000 --- a/BM_src/WayofTime/alchemicalWizardry/common/renderer/projectile/RenderFireProjectile.java +++ /dev/null @@ -1,41 +0,0 @@ -package WayofTime.alchemicalWizardry.common.renderer.projectile; - -import cpw.mods.fml.relauncher.Side; -import cpw.mods.fml.relauncher.SideOnly; - -@SideOnly(Side.CLIENT) -public class RenderFireProjectile -{ -// public void doRenderProjectile(FireProjectile entityShot, double par2, double par4, double par6, float par8, float par9) -// { -// GL11.glPushMatrix(); -// GL11.glTranslatef((float)par2, (float)par4, (float)par6); -// GL11.glEnable(GL12.GL_RESCALE_NORMAL); -// GL11.glScalef(0.1F, 0.1F, 0.1F); -// this.func_110776_a(this.func_110775_a(entityShot)); -// Tessellator var12 = Tessellator.instance; -// GL11.glRotatef(180.0F - renderManager.playerViewY, 0.0F, 1.0F, 0.0F); -// GL11.glRotatef(-renderManager.playerViewX, 1.0F, 0.0F, 0.0F); -// var12.startDrawingQuads(); -// var12.setNormal(0.0F, 1.0F, 0.0F); -// var12.addVertexWithUV(-0.5F, -0.25F, 0.0D, 0, 1); -// var12.addVertexWithUV(0.5F, -0.25F, 0.0D, 1, 1); -// var12.addVertexWithUV(0.5F, 0.75F, 0.0D, 1, 0); -// var12.addVertexWithUV(-0.5F, 0.75F, 0.0D, 0, 0); -// var12.draw(); -// GL11.glDisable(GL12.GL_RESCALE_NORMAL); -// GL11.glPopMatrix(); -// } -// -// @Override -// public void doRender(Entity par1Entity, double par2, double par4, double par6, float par8, float par9) -// { -// this.doRenderProjectile((FireProjectile)par1Entity, par2, par4, par6, par8, par9); -// } -// -// @Override -// protected ResourceLocation func_110775_a(Entity entity) -// { -// return new ResourceLocation("alchemicalwizardry:/textures/entities/fireProjectile.png"); -// } -} diff --git a/BM_src/WayofTime/alchemicalWizardry/common/renderer/projectile/RenderMeteor.java b/BM_src/WayofTime/alchemicalWizardry/common/renderer/projectile/RenderMeteor.java deleted file mode 100644 index c39dcb11..00000000 --- a/BM_src/WayofTime/alchemicalWizardry/common/renderer/projectile/RenderMeteor.java +++ /dev/null @@ -1,39 +0,0 @@ -package WayofTime.alchemicalWizardry.common.renderer.projectile; - -import WayofTime.alchemicalWizardry.common.renderer.model.ModelMeteor; -import net.minecraft.client.model.ModelBase; -import net.minecraft.client.renderer.entity.Render; -import net.minecraft.entity.Entity; -import net.minecraft.util.ResourceLocation; -import org.lwjgl.opengl.GL11; -import org.lwjgl.opengl.GL12; - -public class RenderMeteor extends Render -{ - public ModelBase model = new ModelMeteor(); - private static final ResourceLocation field_110833_a = new ResourceLocation("alchemicalwizardry", "textures/models/Meteor.png"); //refers to:YourMod/modelsTextureFile/optionalFile/yourTexture.png - private float scale = 1.0f; - - @Override - public void doRender(Entity entity, double d0, double d1, double d2, float f, float f1) - { - GL11.glPushMatrix(); - GL11.glTranslatef((float) d0, (float) d1, (float) d2); - GL11.glEnable(GL12.GL_RESCALE_NORMAL); - GL11.glScalef(scale, scale, scale); - this.bindTexture(this.getEntityTexture(entity)); - GL11.glRotatef(entity.prevRotationYaw + (entity.rotationYaw - entity.prevRotationYaw) * f1, 0.0F, 1.0F, 0.0F); - GL11.glRotatef(180.0f - entity.prevRotationPitch + (entity.rotationPitch - entity.prevRotationPitch) * f1, 1.0F, 0.0F, 0.0f); - model.render(entity, 0, (float) d0, (float) d1, (float) d2, f, f1); - //GL11.glRotatef(entity.getRotationYawHead(), 0.0F, 1.0F, 0.0F); - GL11.glDisable(GL12.GL_RESCALE_NORMAL); - GL11.glPopMatrix(); - } - - @Override - protected ResourceLocation getEntityTexture(Entity entity) - { - // TODO Auto-generated method stub - return field_110833_a; - } -} diff --git a/BM_src/WayofTime/alchemicalWizardry/common/rituals/RitualEffectAnimalGrowth.java b/BM_src/WayofTime/alchemicalWizardry/common/rituals/RitualEffectAnimalGrowth.java deleted file mode 100644 index 46da31f0..00000000 --- a/BM_src/WayofTime/alchemicalWizardry/common/rituals/RitualEffectAnimalGrowth.java +++ /dev/null @@ -1,125 +0,0 @@ -package WayofTime.alchemicalWizardry.common.rituals; - -import java.util.ArrayList; -import java.util.Iterator; -import java.util.List; - -import net.minecraft.entity.EntityAgeable; -import net.minecraft.entity.player.EntityPlayer; -import net.minecraft.potion.Potion; -import net.minecraft.potion.PotionEffect; -import net.minecraft.server.MinecraftServer; -import net.minecraft.tileentity.TileEntity; -import net.minecraft.util.AxisAlignedBB; -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; - -public class RitualEffectAnimalGrowth extends RitualEffect -{ - @Override - public void performEffect(IMasterRitualStone ritualStone) - { - if(ritualStone instanceof TileEntity) - { - - } - - 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(); - - if (world.getWorldTime() % 20 != 0) - { - return; - } - - int d0 = 2; - AxisAlignedBB axisalignedbb = AxisAlignedBB.getAABBPool().getAABB((double) x, (double) y + 1, (double) z, (double) (x + 1), (double) (y + 3), (double) (z + 1)).expand(d0, 0, d0); - List list = world.getEntitiesWithinAABB(EntityAgeable.class, axisalignedbb); - Iterator iterator1 = list.iterator(); - EntityAgeable entity; - int entityCount = 0; - boolean flag = false; - - while (iterator1.hasNext()) - { - entity = (EntityAgeable) iterator1.next(); - entityCount++; - } - - if (currentEssence < this.getCostPerRefresh() * entityCount) - { - EntityPlayer entityOwner = MinecraftServer.getServer().getConfigurationManager().getPlayerForUsername(owner); - - if (entityOwner == null) - { - return; - } - - entityOwner.addPotionEffect(new PotionEffect(Potion.confusion.id, 80)); - } else - { - Iterator iterator2 = list.iterator(); - entityCount = 0; - - while (iterator2.hasNext()) - { - entity = (EntityAgeable) iterator2.next(); - - if (entity.getGrowingAge() < 0) - { - entity.addGrowth(5); - entityCount++; - } - } - - data.currentEssence = currentEssence - this.getCostPerRefresh() * entityCount; - data.markDirty(); - } - } - - @Override - public int getCostPerRefresh() - { - // TODO Auto-generated method stub - return 2; - } - - @Override - public List getRitualComponentList() - { - ArrayList animalGrowthRitual = new ArrayList(); - animalGrowthRitual.add(new RitualComponent(0, 0, 2, RitualComponent.DUSK)); - animalGrowthRitual.add(new RitualComponent(2, 0, 0, RitualComponent.DUSK)); - animalGrowthRitual.add(new RitualComponent(0, 0, -2, RitualComponent.DUSK)); - animalGrowthRitual.add(new RitualComponent(-2, 0, 0, RitualComponent.DUSK)); - animalGrowthRitual.add(new RitualComponent(0, 0, 1, RitualComponent.WATER)); - animalGrowthRitual.add(new RitualComponent(1, 0, 0, RitualComponent.WATER)); - animalGrowthRitual.add(new RitualComponent(0, 0, -1, RitualComponent.WATER)); - animalGrowthRitual.add(new RitualComponent(-1, 0, 0, RitualComponent.WATER)); - animalGrowthRitual.add(new RitualComponent(1, 0, 2, RitualComponent.EARTH)); - animalGrowthRitual.add(new RitualComponent(-1, 0, 2, RitualComponent.EARTH)); - animalGrowthRitual.add(new RitualComponent(1, 0, -2, RitualComponent.EARTH)); - animalGrowthRitual.add(new RitualComponent(-1, 0, -2, RitualComponent.EARTH)); - animalGrowthRitual.add(new RitualComponent(2, 0, 1, RitualComponent.AIR)); - animalGrowthRitual.add(new RitualComponent(2, 0, -1, RitualComponent.AIR)); - animalGrowthRitual.add(new RitualComponent(-2, 0, 1, RitualComponent.AIR)); - animalGrowthRitual.add(new RitualComponent(-2, 0, -1, RitualComponent.AIR)); - return animalGrowthRitual; - } -} diff --git a/BM_src/WayofTime/alchemicalWizardry/common/rituals/RitualEffectApiaryOverclock.java b/BM_src/WayofTime/alchemicalWizardry/common/rituals/RitualEffectApiaryOverclock.java deleted file mode 100644 index 59065e9a..00000000 --- a/BM_src/WayofTime/alchemicalWizardry/common/rituals/RitualEffectApiaryOverclock.java +++ /dev/null @@ -1,103 +0,0 @@ -package WayofTime.alchemicalWizardry.common.rituals; - -import java.util.ArrayList; -import java.util.List; - -import net.minecraft.entity.player.EntityPlayer; -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.tileEntity.TEAltar; -import cpw.mods.fml.common.network.PacketDispatcher; -import forestry.api.apiculture.IBeeHousing; - -public class RitualEffectApiaryOverclock 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(); - - - if (currentEssence < this.getCostPerRefresh()) - { - EntityPlayer entityOwner = MinecraftServer.getServer().getConfigurationManager().getPlayerForUsername(owner); - - if (entityOwner == null) - { - return; - } - - entityOwner.addPotionEffect(new PotionEffect(Potion.confusion.id, 80)); - } else - { - TileEntity tile = world.getBlockTileEntity(x, y+1, z); - - try{ - if(tile instanceof IBeeHousing && tile.getClass().getName().contains("Apiary")) - { - for (int i = 0; i < 10; i++) - { - PacketDispatcher.sendPacketToAllPlayers(TEAltar.getParticlePacket(x, y+1, z, (short) 3)); - } - - for(int i=0; i<9; i++) - { - tile.updateEntity(); - } - - data.currentEssence = currentEssence - this.getCostPerRefresh(); - data.markDirty(); - } - }catch (Exception e) - { - - } - - - } - - } - - @Override - public int getCostPerRefresh() - { - // TODO Auto-generated method stub - return 10; - } - - @Override - public List getRitualComponentList() - { - ArrayList apiaryRitual = new ArrayList(); - apiaryRitual.add(new RitualComponent(1,0,0, RitualComponent.DUSK)); - apiaryRitual.add(new RitualComponent(1,0,1, RitualComponent.DUSK)); - apiaryRitual.add(new RitualComponent(1,0,-1, RitualComponent.DUSK)); - apiaryRitual.add(new RitualComponent(-1,0,-1, RitualComponent.DUSK)); - apiaryRitual.add(new RitualComponent(-1,0,1, RitualComponent.DUSK)); - apiaryRitual.add(new RitualComponent(-1,0,0, RitualComponent.DUSK)); - apiaryRitual.add(new RitualComponent(0,0,-1, RitualComponent.DUSK)); - apiaryRitual.add(new RitualComponent(0,0,1, RitualComponent.DUSK)); - return apiaryRitual; - } -} diff --git a/BM_src/WayofTime/alchemicalWizardry/common/rituals/RitualEffectAutoAlchemy.java b/BM_src/WayofTime/alchemicalWizardry/common/rituals/RitualEffectAutoAlchemy.java deleted file mode 100644 index e82e90f1..00000000 --- a/BM_src/WayofTime/alchemicalWizardry/common/rituals/RitualEffectAutoAlchemy.java +++ /dev/null @@ -1,430 +0,0 @@ -package WayofTime.alchemicalWizardry.common.rituals; - -import java.util.ArrayList; -import java.util.List; - -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 net.minecraftforge.oredict.OreDictionary; -import WayofTime.alchemicalWizardry.api.alchemy.AlchemyRecipeRegistry; -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.tileEntity.TEAltar; -import WayofTime.alchemicalWizardry.common.tileEntity.TEWritingTable; - -public class RitualEffectAutoAlchemy 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(); - - if (currentEssence < this.getCostPerRefresh()*6) - { - EntityPlayer entityOwner = MinecraftServer.getServer().getConfigurationManager().getPlayerForUsername(owner); - - if (entityOwner == null) - { - return; - } - - entityOwner.addPotionEffect(new PotionEffect(Potion.confusion.id, 80)); - } else - { - int flag = 0; - - TileEntity topEntity = world.getBlockTileEntity(x, y+1, z); - if(!(topEntity instanceof TEAltar)) - { - return; - } - - TEAltar tileAltar = (TEAltar)topEntity; - ItemStack targetStack = tileAltar.getStackInSlot(0); - if(targetStack == null) - { - return; - } - - ItemStack[] recipe = AlchemyRecipeRegistry.getRecipeForItemStack(targetStack); - if(recipe!=null) - { - TEWritingTable alchemyEntity; - IInventory outputInv = null; - IInventory inputInv1 = null; - IInventory inputInv2 = null; - - TileEntity northEntity = world.getBlockTileEntity(x,y,z-1); - TileEntity southEntity = world.getBlockTileEntity(x,y,z+1); - TileEntity eastEntity = world.getBlockTileEntity(x+1,y,z); - TileEntity westEntity = world.getBlockTileEntity(x-1,y,z); - - if(northEntity instanceof TEWritingTable) - { - alchemyEntity = (TEWritingTable)northEntity; - if(southEntity instanceof IInventory && !(southEntity instanceof TEWritingTable)) - { - outputInv = (IInventory)southEntity; - } - if(eastEntity instanceof IInventory && !(eastEntity instanceof TEWritingTable)) - { - inputInv1 = (IInventory)eastEntity; - } - if(westEntity instanceof IInventory && !(westEntity instanceof TEWritingTable)) - { - inputInv2 = (IInventory)westEntity; - } - }else if(southEntity instanceof TEWritingTable) - { - alchemyEntity = (TEWritingTable)southEntity; - if(northEntity instanceof IInventory && !(northEntity instanceof TEWritingTable)) - { - outputInv = (IInventory)northEntity; - } - if(eastEntity instanceof IInventory && !(eastEntity instanceof TEWritingTable)) - { - inputInv1 = (IInventory)eastEntity; - } - if(westEntity instanceof IInventory && !(westEntity instanceof TEWritingTable)) - { - inputInv2 = (IInventory)westEntity; - } - }else if(eastEntity instanceof TEWritingTable) - { - alchemyEntity = (TEWritingTable)eastEntity; - if(westEntity instanceof IInventory && !(westEntity instanceof TEWritingTable)) - { - outputInv = (IInventory)westEntity; - } - if(northEntity instanceof IInventory && !(northEntity instanceof TEWritingTable)) - { - inputInv1 = (IInventory)northEntity; - } - if(southEntity instanceof IInventory && !(southEntity instanceof TEWritingTable)) - { - inputInv2 = (IInventory)southEntity; - } - }else if(westEntity instanceof TEWritingTable) - { - alchemyEntity = (TEWritingTable)westEntity; - if(eastEntity instanceof IInventory && !(eastEntity instanceof TEWritingTable)) - { - outputInv = (IInventory)eastEntity; - } - if(northEntity instanceof IInventory && !(northEntity instanceof TEWritingTable)) - { - inputInv1 = (IInventory)northEntity; - } - if(southEntity instanceof IInventory && !(southEntity instanceof TEWritingTable)) - { - inputInv2 = (IInventory)southEntity; - } - }else - { - return; - } - - if(outputInv!=null) - { - ItemStack outputStack = alchemyEntity.getStackInSlot(6); - if(outputStack!=null) - { - for(int i=0; i=alchStack.getMaxStackSize())) - { - continue; - } - - for(int j=0;j=alchStack.getMaxStackSize())) - { - continue; - } - - for(int j=0;j0) - { - world.markBlockForUpdate(x, y, z+1); - world.markBlockForUpdate(x, y, z-1); - world.markBlockForUpdate(x+1, y, z); - world.markBlockForUpdate(x-1, y, z); - data.currentEssence = currentEssence - this.getCostPerRefresh()*flag; - data.markDirty(); - } - } - } - - @Override - public int getCostPerRefresh() - { - return 10; - } - - @Override - public List getRitualComponentList() - { - ArrayList autoAlchemyRitual = new ArrayList(); - autoAlchemyRitual.add(new RitualComponent(1,0,1, RitualComponent.DUSK)); - autoAlchemyRitual.add(new RitualComponent(1,0,-1, RitualComponent.DUSK)); - autoAlchemyRitual.add(new RitualComponent(-1,0,-1, RitualComponent.DUSK)); - autoAlchemyRitual.add(new RitualComponent(-1,0,1, RitualComponent.DUSK)); - autoAlchemyRitual.add(new RitualComponent(2,0,2, RitualComponent.WATER)); - autoAlchemyRitual.add(new RitualComponent(2,0,-2, RitualComponent.WATER)); - autoAlchemyRitual.add(new RitualComponent(-2,0,-2, RitualComponent.WATER)); - autoAlchemyRitual.add(new RitualComponent(-2,0,2, RitualComponent.WATER)); - autoAlchemyRitual.add(new RitualComponent(-3,0,-2, RitualComponent.FIRE)); - autoAlchemyRitual.add(new RitualComponent(-2,0,-3, RitualComponent.FIRE)); - autoAlchemyRitual.add(new RitualComponent(-3,0,2, RitualComponent.FIRE)); - autoAlchemyRitual.add(new RitualComponent(-2,0,3, RitualComponent.FIRE)); - autoAlchemyRitual.add(new RitualComponent(3,0,-2, RitualComponent.FIRE)); - autoAlchemyRitual.add(new RitualComponent(2,0,-3, RitualComponent.FIRE)); - autoAlchemyRitual.add(new RitualComponent(3,0,2, RitualComponent.FIRE)); - autoAlchemyRitual.add(new RitualComponent(2,0,3, RitualComponent.FIRE)); - return autoAlchemyRitual; - } - - public boolean areItemStacksEqualWithWildcard(ItemStack recipeStack, ItemStack comparedStack) - { - return recipeStack.isItemEqual(comparedStack) || (recipeStack.getItemDamage() == OreDictionary.WILDCARD_VALUE && recipeStack.getItem() == comparedStack.getItem()); - } -} diff --git a/BM_src/WayofTime/alchemicalWizardry/common/rituals/RitualEffectBiomeChanger.java b/BM_src/WayofTime/alchemicalWizardry/common/rituals/RitualEffectBiomeChanger.java deleted file mode 100644 index 802473a5..00000000 --- a/BM_src/WayofTime/alchemicalWizardry/common/rituals/RitualEffectBiomeChanger.java +++ /dev/null @@ -1,447 +0,0 @@ -package WayofTime.alchemicalWizardry.common.rituals; - -import java.util.ArrayList; -import java.util.List; - -import net.minecraft.block.Block; -import net.minecraft.entity.effect.EntityLightningBolt; -import net.minecraft.entity.player.EntityPlayer; -import net.minecraft.item.Item; -import net.minecraft.item.ItemBlock; -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 net.minecraft.world.biome.BiomeGenBase; -import net.minecraft.world.chunk.Chunk; -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.tileEntity.TEPlinth; - -public class RitualEffectBiomeChanger 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); - } - World world = ritualStone.getWorld(); - int cooldown = ritualStone.getCooldown(); - int x = ritualStone.getXCoord(); - int y = ritualStone.getYCoord(); - int z = ritualStone.getZCoord(); - if (cooldown > 0) - { - ritualStone.setCooldown(cooldown - 1); - - if (world.rand.nextInt(15) == 0) - { - world.addWeatherEffect(new EntityLightningBolt(world, x - 1 + world.rand.nextInt(3),y + 1, z - 1 + world.rand.nextInt(3))); - } - - return; - } - - int currentEssence = data.currentEssence; - - - int range = 10; - - if (currentEssence < this.getCostPerRefresh()) - { - EntityPlayer entityOwner = MinecraftServer.getServer().getConfigurationManager().getPlayerForUsername(owner); - - if (entityOwner == null) - { - return; - } - - entityOwner.addPotionEffect(new PotionEffect(Potion.confusion.id, 80)); - } else - { - boolean[][] boolList = new boolean[range * 2 + 1][range * 2 + 1]; - - for (int i = 0; i < 2 * range + 1; i++) - { - for (int j = 0; j < 2 * range + 1; j++) - { - boolList[i][j] = false; - } - } - - boolList[range][range] = true; - boolean isReady = false; - - while (!isReady) - { - isReady = true; - - for (int i = 0; i < 2 * range + 1; i++) - { - for (int j = 0; j < 2 * range + 1; j++) - { - if (boolList[i][j]) - { - if (i - 1 >= 0 && !boolList[i - 1][j]) - { - int id = world.getBlockId(x - range + i - 1, y + 1, z - range + j); - Block block = Block.blocksList[id]; - - if (!ModBlocks.largeBloodStoneBrick.equals(block) && !ModBlocks.bloodStoneBrick.equals(block)) - { - boolList[i - 1][j] = true; - isReady = false; - } - } - - if (j - 1 >= 0 && !boolList[i][j - 1]) - { - int id = world.getBlockId(x - range + i, y + 1, z - range + j - 1); - Block block = Block.blocksList[id]; - - if (!ModBlocks.largeBloodStoneBrick.equals(block) && !ModBlocks.bloodStoneBrick.equals(block)) - { - boolList[i][j - 1] = true; - isReady = false; - } - } - - if (i + 1 <= 2 * range && !boolList[i + 1][j]) - { - int id = world.getBlockId(x - range + i + 1, y + 1, z - range + j); - Block block = Block.blocksList[id]; - - if (!ModBlocks.largeBloodStoneBrick.equals(block) && !ModBlocks.bloodStoneBrick.equals(block)) - { - boolList[i + 1][j] = true; - isReady = false; - } - } - - if (j + 1 <= 2 * range && !boolList[i][j + 1]) - { - int id = world.getBlockId(x - range + i, y + 1, z - range + j + 1); - Block block = Block.blocksList[id]; - - if (!ModBlocks.largeBloodStoneBrick.equals(block) && !ModBlocks.bloodStoneBrick.equals(block)) - { - boolList[i][j + 1] = true; - isReady = false; - } - } - } - } - } - } - - float temperature = 0.5f; - float humidity = 0.5f; - float acceptableRange = 0.1f; - - for (int i = -1; i <= 1; i++) - { - for (int j = -1; j <= 1; j++) - { - if (i == 0 && j == 0) - { - continue; - } - - boolean isItemConsumed = false; - TileEntity tileEntity = world.getBlockTileEntity(x + i, y, z + j); - - if (!(tileEntity instanceof TEPlinth)) - { - continue; - } - - TEPlinth tilePlinth = (TEPlinth) tileEntity; - ItemStack itemStack = tilePlinth.getStackInSlot(0); - - if (itemStack != null) - { - Item item = itemStack.getItem(); - - if (item != null) - { - if (item instanceof ItemBlock) - { - if (item.itemID == (Block.sand.blockID)) - { - humidity -= 0.1f; - isItemConsumed = true; - } else if (item.itemID == (Block.blockLapis.blockID)) - { - humidity += 0.4f; - isItemConsumed = true; - } else if (item.itemID == (Block.sand.blockID)) - { - humidity -= 0.1f; - isItemConsumed = true; - } else if (item.itemID == (Block.sandStone.blockID)) - { - humidity -= 0.2f; - isItemConsumed = true; - } else if (item.itemID == (Block.netherrack.blockID)) - { - humidity -= 0.4f; - isItemConsumed = true; - } else if (item.itemID == (Block.coalBlock.blockID)) - { - temperature += 0.2f; - isItemConsumed = true; - } else if (item.itemID == (Block.ice.blockID)) - { - temperature -= 0.4f; - isItemConsumed = true; - } else if (item.itemID == (Block.blockSnow.blockID)) - { - temperature -= 0.2f; - isItemConsumed = true; - } - } else if (item.equals(Item.dyePowder) && itemStack.getItemDamage() == 4) - { - humidity += 0.1f; - isItemConsumed = true; - } else if (item.equals(Item.bucketLava)) - { - temperature += 0.4f; - isItemConsumed = true; - } else if (item.equals(Item.bucketWater)) - { - humidity += 0.2f; - isItemConsumed = true; - } else if (item.equals(Item.coal)) - { - temperature += 0.1f; - isItemConsumed = true; - } else if (item.equals(Item.snowball)) - { - temperature -= 0.1f; - isItemConsumed = true; - } - } - } - - if (isItemConsumed) - { - tilePlinth.setInventorySlotContents(0, null); - world.markBlockForUpdate(x + i, y, z + j); - world.addWeatherEffect(new EntityLightningBolt(world, x + i, y + 1, z + j)); - } - } - } - - boolean wantsSnow = false; - boolean wantsRain = true; - int biomeID = 1; - BiomeGenBase[] biomeList = BiomeGenBase.biomeList; - int iteration = 0; - - for (BiomeGenBase biome : biomeList) - { - if (biome == null) - { - continue; - } - - float temp = biome.temperature; - float rainfall = biome.rainfall; - temperature = Math.min(2.0f, Math.max(0.0f, temperature)); - humidity = Math.min(2.0f, Math.max(0.0f, humidity)); - - if (Math.abs(rainfall - humidity) < acceptableRange && Math.abs(temperature - temp) < acceptableRange) - { - //if(biome.getEnableSnow()==wantsSnow) - { - biomeID = iteration; - break; - } - } - - iteration++; - } - - for (int i = 0; i < 2 * range + 1; i++) - { - for (int j = 0; j < 2 * range + 1; j++) - { - //Testing of traversal of boolean matrix - if (boolList[i][j]) - { - Chunk chunk = world.getChunkFromBlockCoords(x - range + i, z - range + j); - byte[] byteArray = chunk.getBiomeArray(); - int moduX = (x - range + i) % 16; - int moduZ = (z - range + j) % 16; - - if (moduX < 0) - { - moduX = moduX + 16; - } - - if (moduZ < 0) - { - moduZ = moduZ + 16; - } - - byteArray[moduZ * 16 + moduX] = (byte) biomeID; - chunk.setBiomeArray(byteArray); - //world.setBlock(x-range+i, y+1, z-range+j, Block.blockClay.blockID); - } - } - } - - data.currentEssence = currentEssence - this.getCostPerRefresh(); - data.markDirty(); - ritualStone.setActive(false); - } - } - - @Override - public int getCostPerRefresh() - { - // TODO Auto-generated method stub - return 0; - } - - @Override - public int getInitialCooldown() - { - return 200; - } - - @Override - public List getRitualComponentList() - { - ArrayList biomeChangerRitual = new ArrayList(); - biomeChangerRitual.add(new RitualComponent(1, 0, -2, RitualComponent.AIR)); - biomeChangerRitual.add(new RitualComponent(1, 0, -3, RitualComponent.AIR)); - biomeChangerRitual.add(new RitualComponent(2, 0, -1, RitualComponent.AIR)); - biomeChangerRitual.add(new RitualComponent(3, 0, -1, RitualComponent.AIR)); - biomeChangerRitual.add(new RitualComponent(1, 0, 2, RitualComponent.AIR)); - biomeChangerRitual.add(new RitualComponent(1, 0, 3, RitualComponent.AIR)); - biomeChangerRitual.add(new RitualComponent(2, 0, 1, RitualComponent.AIR)); - biomeChangerRitual.add(new RitualComponent(3, 0, 1, RitualComponent.AIR)); - biomeChangerRitual.add(new RitualComponent(-1, 0, -2, RitualComponent.AIR)); - biomeChangerRitual.add(new RitualComponent(-1, 0, -3, RitualComponent.AIR)); - biomeChangerRitual.add(new RitualComponent(-2, 0, -1, RitualComponent.AIR)); - biomeChangerRitual.add(new RitualComponent(-3, 0, -1, RitualComponent.AIR)); - biomeChangerRitual.add(new RitualComponent(-1, 0, 2, RitualComponent.AIR)); - biomeChangerRitual.add(new RitualComponent(-1, 0, 3, RitualComponent.AIR)); - biomeChangerRitual.add(new RitualComponent(-2, 0, 1, RitualComponent.AIR)); - biomeChangerRitual.add(new RitualComponent(-3, 0, 1, RitualComponent.AIR)); - biomeChangerRitual.add(new RitualComponent(3, 0, -3, RitualComponent.EARTH)); - biomeChangerRitual.add(new RitualComponent(3, 0, -4, RitualComponent.EARTH)); - biomeChangerRitual.add(new RitualComponent(4, 0, -3, RitualComponent.EARTH)); - biomeChangerRitual.add(new RitualComponent(4, 0, -5, RitualComponent.FIRE)); - biomeChangerRitual.add(new RitualComponent(5, 0, -4, RitualComponent.FIRE)); - biomeChangerRitual.add(new RitualComponent(3, 0, 3, RitualComponent.EARTH)); - biomeChangerRitual.add(new RitualComponent(3, 0, 4, RitualComponent.EARTH)); - biomeChangerRitual.add(new RitualComponent(4, 0, 3, RitualComponent.EARTH)); - biomeChangerRitual.add(new RitualComponent(4, 0, 5, RitualComponent.FIRE)); - biomeChangerRitual.add(new RitualComponent(5, 0, 4, RitualComponent.FIRE)); - biomeChangerRitual.add(new RitualComponent(-3, 0, 3, RitualComponent.EARTH)); - biomeChangerRitual.add(new RitualComponent(-3, 0, 4, RitualComponent.EARTH)); - biomeChangerRitual.add(new RitualComponent(-4, 0, 3, RitualComponent.EARTH)); - biomeChangerRitual.add(new RitualComponent(-4, 0, 5, RitualComponent.FIRE)); - biomeChangerRitual.add(new RitualComponent(-5, 0, 4, RitualComponent.FIRE)); - biomeChangerRitual.add(new RitualComponent(-3, 0, -3, RitualComponent.EARTH)); - biomeChangerRitual.add(new RitualComponent(-3, 0, -4, RitualComponent.EARTH)); - biomeChangerRitual.add(new RitualComponent(-4, 0, -3, RitualComponent.EARTH)); - biomeChangerRitual.add(new RitualComponent(-4, 0, -5, RitualComponent.FIRE)); - biomeChangerRitual.add(new RitualComponent(-5, 0, -4, RitualComponent.FIRE)); - biomeChangerRitual.add(new RitualComponent(0, 0, -5, RitualComponent.WATER)); - biomeChangerRitual.add(new RitualComponent(-1, 0, -6, RitualComponent.WATER)); - biomeChangerRitual.add(new RitualComponent(1, 0, -6, RitualComponent.WATER)); - biomeChangerRitual.add(new RitualComponent(-1, 0, -8, RitualComponent.BLANK)); - biomeChangerRitual.add(new RitualComponent(0, 0, -8, RitualComponent.BLANK)); - biomeChangerRitual.add(new RitualComponent(1, 0, -8, RitualComponent.BLANK)); - biomeChangerRitual.add(new RitualComponent(-1, 0, -10, RitualComponent.DUSK)); - biomeChangerRitual.add(new RitualComponent(0, 0, -10, RitualComponent.DUSK)); - biomeChangerRitual.add(new RitualComponent(1, 0, -10, RitualComponent.DUSK)); - biomeChangerRitual.add(new RitualComponent(0, 0, 5, RitualComponent.WATER)); - biomeChangerRitual.add(new RitualComponent(-1, 0, 6, RitualComponent.WATER)); - biomeChangerRitual.add(new RitualComponent(1, 0, 6, RitualComponent.WATER)); - biomeChangerRitual.add(new RitualComponent(-1, 0, 8, RitualComponent.BLANK)); - biomeChangerRitual.add(new RitualComponent(0, 0, 8, RitualComponent.BLANK)); - biomeChangerRitual.add(new RitualComponent(1, 0, 8, RitualComponent.BLANK)); - biomeChangerRitual.add(new RitualComponent(-1, 0, 10, RitualComponent.DUSK)); - biomeChangerRitual.add(new RitualComponent(0, 0, 10, RitualComponent.DUSK)); - biomeChangerRitual.add(new RitualComponent(1, 0, 10, RitualComponent.DUSK)); - biomeChangerRitual.add(new RitualComponent(-5, 0, 0, RitualComponent.WATER)); - biomeChangerRitual.add(new RitualComponent(-6, 0, -1, RitualComponent.WATER)); - biomeChangerRitual.add(new RitualComponent(-6, 0, 1, RitualComponent.WATER)); - biomeChangerRitual.add(new RitualComponent(-8, 0, -1, RitualComponent.BLANK)); - biomeChangerRitual.add(new RitualComponent(-8, 0, 0, RitualComponent.BLANK)); - biomeChangerRitual.add(new RitualComponent(-8, 0, 1, RitualComponent.BLANK)); - biomeChangerRitual.add(new RitualComponent(-10, 0, -1, RitualComponent.DUSK)); - biomeChangerRitual.add(new RitualComponent(-10, 0, 0, RitualComponent.DUSK)); - biomeChangerRitual.add(new RitualComponent(-10, 0, 1, RitualComponent.DUSK)); - biomeChangerRitual.add(new RitualComponent(5, 0, 0, RitualComponent.WATER)); - biomeChangerRitual.add(new RitualComponent(6, 0, -1, RitualComponent.WATER)); - biomeChangerRitual.add(new RitualComponent(6, 0, 1, RitualComponent.WATER)); - biomeChangerRitual.add(new RitualComponent(8, 0, -1, RitualComponent.BLANK)); - biomeChangerRitual.add(new RitualComponent(8, 0, 0, RitualComponent.BLANK)); - biomeChangerRitual.add(new RitualComponent(8, 0, 1, RitualComponent.BLANK)); - biomeChangerRitual.add(new RitualComponent(10, 0, -1, RitualComponent.DUSK)); - biomeChangerRitual.add(new RitualComponent(10, 0, 0, RitualComponent.DUSK)); - biomeChangerRitual.add(new RitualComponent(10, 0, 1, RitualComponent.DUSK)); - biomeChangerRitual.add(new RitualComponent(6, 0, -6, RitualComponent.AIR)); - biomeChangerRitual.add(new RitualComponent(6, 0, -7, RitualComponent.AIR)); - biomeChangerRitual.add(new RitualComponent(7, 0, -6, RitualComponent.AIR)); - biomeChangerRitual.add(new RitualComponent(7, 0, -5, RitualComponent.EARTH)); - biomeChangerRitual.add(new RitualComponent(5, 0, -7, RitualComponent.EARTH)); - biomeChangerRitual.add(new RitualComponent(8, 0, -5, RitualComponent.DUSK)); - biomeChangerRitual.add(new RitualComponent(8, 0, -4, RitualComponent.EARTH)); - biomeChangerRitual.add(new RitualComponent(9, 0, -4, RitualComponent.EARTH)); - biomeChangerRitual.add(new RitualComponent(5, 0, -8, RitualComponent.DUSK)); - biomeChangerRitual.add(new RitualComponent(4, 0, -8, RitualComponent.EARTH)); - biomeChangerRitual.add(new RitualComponent(4, 0, -9, RitualComponent.EARTH)); - biomeChangerRitual.add(new RitualComponent(-6, 0, 6, RitualComponent.AIR)); - biomeChangerRitual.add(new RitualComponent(-6, 0, 7, RitualComponent.AIR)); - biomeChangerRitual.add(new RitualComponent(-7, 0, 6, RitualComponent.AIR)); - biomeChangerRitual.add(new RitualComponent(-7, 0, 5, RitualComponent.EARTH)); - biomeChangerRitual.add(new RitualComponent(-5, 0, 7, RitualComponent.EARTH)); - biomeChangerRitual.add(new RitualComponent(-8, 0, 5, RitualComponent.DUSK)); - biomeChangerRitual.add(new RitualComponent(-8, 0, 4, RitualComponent.EARTH)); - biomeChangerRitual.add(new RitualComponent(-9, 0, 4, RitualComponent.EARTH)); - biomeChangerRitual.add(new RitualComponent(-5, 0, 8, RitualComponent.DUSK)); - biomeChangerRitual.add(new RitualComponent(-4, 0, 8, RitualComponent.EARTH)); - biomeChangerRitual.add(new RitualComponent(-4, 0, 9, RitualComponent.EARTH)); - biomeChangerRitual.add(new RitualComponent(6, 0, 6, RitualComponent.FIRE)); - biomeChangerRitual.add(new RitualComponent(6, 0, 7, RitualComponent.FIRE)); - biomeChangerRitual.add(new RitualComponent(7, 0, 6, RitualComponent.FIRE)); - biomeChangerRitual.add(new RitualComponent(7, 0, 5, RitualComponent.WATER)); - biomeChangerRitual.add(new RitualComponent(5, 0, 7, RitualComponent.WATER)); - biomeChangerRitual.add(new RitualComponent(8, 0, 5, RitualComponent.DUSK)); - biomeChangerRitual.add(new RitualComponent(8, 0, 4, RitualComponent.WATER)); - biomeChangerRitual.add(new RitualComponent(9, 0, 4, RitualComponent.WATER)); - biomeChangerRitual.add(new RitualComponent(5, 0, 8, RitualComponent.DUSK)); - biomeChangerRitual.add(new RitualComponent(4, 0, 8, RitualComponent.WATER)); - biomeChangerRitual.add(new RitualComponent(4, 0, 9, RitualComponent.WATER)); - biomeChangerRitual.add(new RitualComponent(-6, 0, -6, RitualComponent.FIRE)); - biomeChangerRitual.add(new RitualComponent(-6, 0, -7, RitualComponent.FIRE)); - biomeChangerRitual.add(new RitualComponent(-7, 0, -6, RitualComponent.FIRE)); - biomeChangerRitual.add(new RitualComponent(-7, 0, -5, RitualComponent.WATER)); - biomeChangerRitual.add(new RitualComponent(-5, 0, -7, RitualComponent.WATER)); - biomeChangerRitual.add(new RitualComponent(-8, 0, -5, RitualComponent.DUSK)); - biomeChangerRitual.add(new RitualComponent(-8, 0, -4, RitualComponent.WATER)); - biomeChangerRitual.add(new RitualComponent(-9, 0, -4, RitualComponent.WATER)); - biomeChangerRitual.add(new RitualComponent(-5, 0, -8, RitualComponent.DUSK)); - biomeChangerRitual.add(new RitualComponent(-4, 0, -8, RitualComponent.WATER)); - biomeChangerRitual.add(new RitualComponent(-4, 0, -9, RitualComponent.WATER)); - return biomeChangerRitual; - } -} diff --git a/BM_src/WayofTime/alchemicalWizardry/common/rituals/RitualEffectContainment.java b/BM_src/WayofTime/alchemicalWizardry/common/rituals/RitualEffectContainment.java deleted file mode 100644 index 3a3cbf19..00000000 --- a/BM_src/WayofTime/alchemicalWizardry/common/rituals/RitualEffectContainment.java +++ /dev/null @@ -1,127 +0,0 @@ -package WayofTime.alchemicalWizardry.common.rituals; - -import java.util.ArrayList; -import java.util.Iterator; -import java.util.List; - -import net.minecraft.entity.EntityLivingBase; -import net.minecraft.entity.player.EntityPlayer; -import net.minecraft.potion.Potion; -import net.minecraft.potion.PotionEffect; -import net.minecraft.server.MinecraftServer; -import net.minecraft.util.AxisAlignedBB; -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.tileEntity.TEAltar; -import cpw.mods.fml.common.network.PacketDispatcher; - -public class RitualEffectContainment 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(); - - if (currentEssence < this.getCostPerRefresh()) - { - EntityPlayer entityOwner = MinecraftServer.getServer().getConfigurationManager().getPlayerForUsername(owner); - - if (entityOwner == null) - { - return; - } - - entityOwner.addPotionEffect(new PotionEffect(Potion.confusion.id, 80)); - } else - { - int d0 = 5; - AxisAlignedBB axisalignedbb = AxisAlignedBB.getAABBPool().getAABB((double) x, (double) y, (double) z, (double) (x + 1), (double) (y + 1), (double) (z + 1)).expand(d0, d0, d0); - List list = world.getEntitiesWithinAABB(EntityLivingBase.class, axisalignedbb); - Iterator iterator = list.iterator(); - EntityLivingBase livingEntity; - boolean flag = false; - - while (iterator.hasNext()) - { - livingEntity = (EntityLivingBase) iterator.next(); - - if (livingEntity instanceof EntityPlayer) - { - continue; - } - - if (!(livingEntity.getEntityName().equals(owner))) - { - double xDif = livingEntity.posX - (x + 0.5); - double yDif = livingEntity.posY - (y + 3); - double zDif = livingEntity.posZ - (z + 0.5); - livingEntity.motionX = -0.05 * xDif; - livingEntity.motionY = -0.05 * yDif; - livingEntity.motionZ = -0.05 * zDif; - flag = true; - //livingEntity.setVelocity(-0.05 * xDif, -0.05 * yDif, -0.05 * zDif); - - if (world.rand.nextInt(10) == 0) - { - PacketDispatcher.sendPacketToAllPlayers(TEAltar.getParticlePacket(livingEntity.posX, livingEntity.posY, livingEntity.posZ, (short) 1)); - } - - livingEntity.fallDistance = 0; - //entityplayer.addPotionEffect(new PotionEffect(Potion.confusion.id, 80)); - } - } - - if (world.getWorldTime() % 2 == 0 && flag) - { - data.currentEssence = currentEssence - this.getCostPerRefresh(); - data.markDirty(); - } - } - } - - @Override - public int getCostPerRefresh() - { - return 1; - } - - @Override - public List getRitualComponentList() - { - ArrayList containmentRitual = new ArrayList(); - containmentRitual.add(new RitualComponent(1, 0, 0, 3)); - containmentRitual.add(new RitualComponent(-1, 0, 0, 3)); - containmentRitual.add(new RitualComponent(0, 0, 1, 3)); - containmentRitual.add(new RitualComponent(0, 0, -1, 3)); - containmentRitual.add(new RitualComponent(2, 0, 2, 3)); - containmentRitual.add(new RitualComponent(2, 0, -2, 3)); - containmentRitual.add(new RitualComponent(-2, 0, 2, 3)); - containmentRitual.add(new RitualComponent(-2, 0, -2, 3)); - containmentRitual.add(new RitualComponent(1, 5, 0, 3)); - containmentRitual.add(new RitualComponent(-1, 5, 0, 3)); - containmentRitual.add(new RitualComponent(0, 5, 1, 3)); - containmentRitual.add(new RitualComponent(0, 5, -1, 3)); - containmentRitual.add(new RitualComponent(2, 5, 2, 3)); - containmentRitual.add(new RitualComponent(2, 5, -2, 3)); - containmentRitual.add(new RitualComponent(-2, 5, 2, 3)); - containmentRitual.add(new RitualComponent(-2, 5, -2, 3)); - return containmentRitual; - } -} diff --git a/BM_src/WayofTime/alchemicalWizardry/common/rituals/RitualEffectCrushing.java b/BM_src/WayofTime/alchemicalWizardry/common/rituals/RitualEffectCrushing.java deleted file mode 100644 index ca2a0f9e..00000000 --- a/BM_src/WayofTime/alchemicalWizardry/common/rituals/RitualEffectCrushing.java +++ /dev/null @@ -1,302 +0,0 @@ -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.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; - -public class RitualEffectCrushing 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(); - - if (world.getWorldTime() % 40 != 20) - { - return; - } - - 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; - } - - boolean isSilkTouch = this.isSilkTouch(world, x, y, z); - int fortuneLevel = this.getFortuneLevel(world, x, y, z); - - if (currentEssence < this.getCostPerRefresh()) - { - EntityPlayer entityOwner = MinecraftServer.getServer().getConfigurationManager().getPlayerForUsername(owner); - - if (entityOwner == null) - { - return; - } - - entityOwner.addPotionEffect(new PotionEffect(Potion.confusion.id, 80)); - } else - { - - //boolean flag = false; - for (int j = -3; j < 0; j++) - { - for (int i = -1; i <= 1; i++) - { - for (int k = -1; k <= 1; k++) - { - int blockID = world.getBlockId(x + i, y + j, z + k); - Block block = Block.blocksList[blockID]; - int meta = world.getBlockMetadata(x + i, y + j, z + k); - - if (block != null) - { - if ((block.equals(ModBlocks.ritualStone) || block.equals(ModBlocks.blockMasterStone)) || block.getBlockHardness(world, x + i, y + j, z + k) == -1) - { - continue; - } - - if(isSilkTouch && block.canSilkHarvest(world, null, x + i, y + j, z + k, meta)) - { - int invSize = tileEntity.getSizeInventory(); - - ItemStack item = new ItemStack(block,1,meta); - ItemStack copyStack = item.copyItemStack(item); - - 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) - { - world.spawnEntityInWorld(new EntityItem(world, x + 0.4, y + 2, z + 0.5, copyStack)); - //flag=true; - } - - } - else - { - ArrayList itemDropList = block.getBlockDropped(world, x + i, y + j, z + k, meta, fortuneLevel); - - if (itemDropList != null) - { - int invSize = tileEntity.getSizeInventory(); - - for (ItemStack item : itemDropList) - { - ItemStack copyStack = item.copyItemStack(item); - - 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) - { - world.spawnEntityInWorld(new EntityItem(world, x + 0.4, y + 2, z + 0.5, copyStack)); - //flag=true; - } - } - } - - } - - //if(flag) - world.setBlockToAir(x + i, y + j, z + k); - world.playSoundEffect(x + i, y + j, z + k, "mob.endermen.portal", 1.0F, 1.0F); - data.currentEssence = currentEssence - this.getCostPerRefresh(); - data.markDirty(); - return; - } - } - } - } - } - } - - public boolean isSilkTouch(World world, int x, int y, int z) - { - int index = 0; - for(int i=-2; i<=2; i++) - { - for(int j=-2; j<=2; j++) - { - int index1 = Math.abs(i); - int index2 = Math.abs(j); - - if((index1 == 2 && (index2 == 2 || index2 == 1)) || (index1 == 1 && index2 == 2)) - { - int blockID = world.getBlockId(x + i, y + 1, z + j); - Block block = Block.blocksList[blockID]; - if(block == Block.blockGold) - { - index++; - } - } - } - } - - return index>=12; - } - - public int getFortuneLevel(World world, int x, int y, int z) - { - int index = 0; - for(int i=-2; i<=2; i++) - { - for(int j=-2; j<=2; j++) - { - int index1 = Math.abs(i); - int index2 = Math.abs(j); - - if((index1 == 2 && (index2 == 2 || index2 == 1)) || (index1 == 1 && index2 == 2)) - { - int blockID = world.getBlockId(x + i, y + 1, z + j); - Block block = Block.blocksList[blockID]; - if(block == Block.blockEmerald || block == Block.blockDiamond) - { - index++; - } - } - } - } - - if(index>=12) - { - return 3; - }else if(index>=8) - { - return 2; - }else if(index>=4) - { - return 1; - } - - return 0; - } - - @Override - public int getCostPerRefresh() - { - return 7; - } - - @Override - public List getRitualComponentList() - { - ArrayList crushingRitual = new ArrayList(); - crushingRitual.add(new RitualComponent(0, 0, 1, RitualComponent.EARTH)); - crushingRitual.add(new RitualComponent(1, 0, 0, RitualComponent.EARTH)); - crushingRitual.add(new RitualComponent(0, 0, -1, RitualComponent.EARTH)); - crushingRitual.add(new RitualComponent(-1, 0, 0, RitualComponent.EARTH)); - crushingRitual.add(new RitualComponent(2, 0, 0, RitualComponent.FIRE)); - crushingRitual.add(new RitualComponent(0, 0, 2, RitualComponent.FIRE)); - crushingRitual.add(new RitualComponent(-2, 0, 0, RitualComponent.FIRE)); - crushingRitual.add(new RitualComponent(0, 0, -2, RitualComponent.FIRE)); - crushingRitual.add(new RitualComponent(2, 0, 2, RitualComponent.DUSK)); - crushingRitual.add(new RitualComponent(2, 0, -2, RitualComponent.DUSK)); - crushingRitual.add(new RitualComponent(-2, 0, 2, RitualComponent.DUSK)); - crushingRitual.add(new RitualComponent(-2, 0, -2, RitualComponent.DUSK)); - crushingRitual.add(new RitualComponent(2, 1, 0, RitualComponent.AIR)); - crushingRitual.add(new RitualComponent(-2, 1, 0, RitualComponent.AIR)); - crushingRitual.add(new RitualComponent(0, 1, 2, RitualComponent.AIR)); - crushingRitual.add(new RitualComponent(0, 1, -2, RitualComponent.AIR)); - return crushingRitual; - } -} diff --git a/BM_src/WayofTime/alchemicalWizardry/common/rituals/RitualEffectEnhancedAlchemy.java b/BM_src/WayofTime/alchemicalWizardry/common/rituals/RitualEffectEnhancedAlchemy.java deleted file mode 100644 index 4de9e3f3..00000000 --- a/BM_src/WayofTime/alchemicalWizardry/common/rituals/RitualEffectEnhancedAlchemy.java +++ /dev/null @@ -1,96 +0,0 @@ -package WayofTime.alchemicalWizardry.common.rituals; - -import java.util.List; - -import net.minecraft.block.Block; -import net.minecraft.entity.player.EntityPlayer; -import net.minecraft.potion.Potion; -import net.minecraft.potion.PotionEffect; -import net.minecraft.server.MinecraftServer; -import net.minecraft.world.World; -import net.minecraftforge.common.IPlantable; -import WayofTime.alchemicalWizardry.api.rituals.IMasterRitualStone; -import WayofTime.alchemicalWizardry.api.rituals.RitualComponent; -import WayofTime.alchemicalWizardry.api.rituals.RitualEffect; -import WayofTime.alchemicalWizardry.api.soulNetwork.LifeEssenceNetwork; -import WayofTime.alchemicalWizardry.common.tileEntity.TEAltar; -import cpw.mods.fml.common.network.PacketDispatcher; - -public class RitualEffectEnhancedAlchemy 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(); - - if (currentEssence < this.getCostPerRefresh()) - { - EntityPlayer entityOwner = MinecraftServer.getServer().getConfigurationManager().getPlayerForUsername(owner); - - if (entityOwner == null) - { - return; - } - - entityOwner.addPotionEffect(new PotionEffect(Potion.confusion.id, 80)); - } else - { - if (world.getWorldTime() % 20 != 0) - { - return; - } - - boolean flag = false; - - for (int i = -1; i <= 1; i++) - { - for (int j = -1; j <= 1; j++) - { - int id = world.getBlockId(x + i, y + 2, z + j); - Block block = Block.blocksList[id]; - - if (block instanceof IPlantable) - { - { - PacketDispatcher.sendPacketToAllPlayers(TEAltar.getParticlePacket(x + i, y + 2, z + j, (short) 3)); - block.updateTick(world, x + i, y + 2, z + j, world.rand); - flag = true; - } - } - } - } - - if (flag) - { - data.currentEssence = currentEssence - this.getCostPerRefresh(); - data.markDirty(); - } - } - } - - @Override - public int getCostPerRefresh() - { - return 0; - } - - @Override - public List getRitualComponentList() { - // TODO Auto-generated method stub - return null; - } -} diff --git a/BM_src/WayofTime/alchemicalWizardry/common/rituals/RitualEffectExpulsion.java b/BM_src/WayofTime/alchemicalWizardry/common/rituals/RitualEffectExpulsion.java deleted file mode 100644 index fbfbb674..00000000 --- a/BM_src/WayofTime/alchemicalWizardry/common/rituals/RitualEffectExpulsion.java +++ /dev/null @@ -1,287 +0,0 @@ -package WayofTime.alchemicalWizardry.common.rituals; - -import java.util.ArrayList; -import java.util.Iterator; -import java.util.List; -import java.util.Random; - -import net.minecraft.block.Block; -import net.minecraft.entity.Entity; -import net.minecraft.entity.EntityLivingBase; -import net.minecraft.entity.player.EntityPlayer; -import net.minecraft.entity.player.EntityPlayerMP; -import net.minecraft.potion.Potion; -import net.minecraft.potion.PotionEffect; -import net.minecraft.server.MinecraftServer; -import net.minecraft.util.AxisAlignedBB; -import net.minecraft.util.MathHelper; -import net.minecraft.world.World; -import net.minecraftforge.common.MinecraftForge; -import net.minecraftforge.event.entity.living.EnderTeleportEvent; -import WayofTime.alchemicalWizardry.AlchemicalWizardry; -import WayofTime.alchemicalWizardry.api.rituals.IMasterRitualStone; -import WayofTime.alchemicalWizardry.api.rituals.RitualComponent; -import WayofTime.alchemicalWizardry.api.rituals.RitualEffect; -import WayofTime.alchemicalWizardry.api.soulNetwork.LifeEssenceNetwork; -import WayofTime.alchemicalWizardry.common.spell.simple.SpellTeleport; - -public class RitualEffectExpulsion 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(); - - if (currentEssence < this.getCostPerRefresh()) - { - EntityPlayer entityOwner = MinecraftServer.getServer().getConfigurationManager().getPlayerForUsername(owner); - - if (entityOwner == null) - { - return; - } - - entityOwner.addPotionEffect(new PotionEffect(Potion.confusion.id, 80)); - } else - { - int d0 = 25; - AxisAlignedBB axisalignedbb = AxisAlignedBB.getAABBPool().getAABB((double) x, (double) y, (double) z, (double) (x + 1), (double) (y + 1), (double) (z + 1)).expand(d0, d0, d0); - axisalignedbb.maxY = Math.min((double) world.getHeight(), (double) (y + 1 + d0)); - List list = world.getEntitiesWithinAABB(EntityPlayer.class, axisalignedbb); - Iterator iterator = list.iterator(); - EntityPlayer entityplayer; - boolean flag = false; - - while (iterator.hasNext()) - { - entityplayer = (EntityPlayer) iterator.next(); - - if (!(entityplayer.getEntityName().equals(owner))) - { - if(entityplayer.isPotionActive(AlchemicalWizardry.customPotionPlanarBinding)||entityplayer.capabilities.isCreativeMode) - { - continue; - } - - teleportRandomly(entityplayer,100); - - flag = true; - } - } - - if (flag) - { - data.currentEssence = currentEssence - this.getCostPerRefresh(); - data.markDirty(); - } - } - } - - @Override - public int getCostPerRefresh() - { - return 1000; - } - - public boolean teleportRandomly(EntityLivingBase entityLiving, double distance) - { - double x = entityLiving.posX; - double y = entityLiving.posY; - double z = entityLiving.posZ; - Random rand = new Random(); - double d0 = x + (rand.nextDouble() - 0.5D) * distance; - double d1 = y + (double) (rand.nextInt((int) distance) - (distance) / 2); - double d2 = z + (rand.nextDouble() - 0.5D) * distance; - int i = 0; - - while (!teleportTo(entityLiving, d0, d1, d2, x, y, z) && i < 100) - { - d0 = x + (rand.nextDouble() - 0.5D) * distance; - d1 = y + (double) (rand.nextInt((int) distance) - (distance) / 2); - d2 = z + (rand.nextDouble() - 0.5D) * distance; - i++; - } - - if (i >= 100) - { - return false; - } - - return true; - //return SpellTeleport.teleportTo(entityLiving, d0, d1, d2,x,y,z); - } - - public boolean teleportTo(EntityLivingBase entityLiving, double par1, double par3, double par5, double lastX, double lastY, double lastZ) - { - EnderTeleportEvent event = new EnderTeleportEvent(entityLiving, par1, par3, par5, 0); - - if (MinecraftForge.EVENT_BUS.post(event)) - { - return false; - } - - double d3 = lastX; - double d4 = lastY; - double d5 = lastZ; - SpellTeleport.moveEntityViaTeleport(entityLiving, event.targetX, event.targetY, event.targetZ); - boolean flag = false; - int i = MathHelper.floor_double(entityLiving.posX); - int j = MathHelper.floor_double(entityLiving.posY); - int k = MathHelper.floor_double(entityLiving.posZ); - int l; - - if (entityLiving.worldObj.blockExists(i, j, k)) - { - boolean flag1 = false; - - while (!flag1 && j > 0) - { - l = entityLiving.worldObj.getBlockId(i, j - 1, k); - - if (l != 0 && Block.blocksList[l].blockMaterial.blocksMovement()) - { - flag1 = true; - } else - { - --entityLiving.posY; - --j; - } - } - - if (flag1) - { - SpellTeleport.moveEntityViaTeleport(entityLiving, entityLiving.posX, entityLiving.posY, entityLiving.posZ); - - if (entityLiving.worldObj.getCollidingBoundingBoxes(entityLiving, entityLiving.boundingBox).isEmpty() && !entityLiving.worldObj.isAnyLiquid(entityLiving.boundingBox)) - { - flag = true; - } - } - } - - if (!flag) - { - SpellTeleport.moveEntityViaTeleport(entityLiving, d3, d4, d5); - return false; - } else - { - short short1 = 128; - - for (l = 0; l < short1; ++l) - { - double d6 = (double) l / ((double) short1 - 1.0D); - float f = (entityLiving.worldObj.rand.nextFloat() - 0.5F) * 0.2F; - float f1 = (entityLiving.worldObj.rand.nextFloat() - 0.5F) * 0.2F; - float f2 = (entityLiving.worldObj.rand.nextFloat() - 0.5F) * 0.2F; - double d7 = d3 + (entityLiving.posX - d3) * d6 + (entityLiving.worldObj.rand.nextDouble() - 0.5D) * (double) entityLiving.width * 2.0D; - double d8 = d4 + (entityLiving.posY - d4) * d6 + entityLiving.worldObj.rand.nextDouble() * (double) entityLiving.height; - double d9 = d5 + (entityLiving.posZ - d5) * d6 + (entityLiving.worldObj.rand.nextDouble() - 0.5D) * (double) entityLiving.width * 2.0D; - entityLiving.worldObj.spawnParticle("portal", d7, d8, d9, (double) f, (double) f1, (double) f2); - } - -// this.worldObj.playSoundEffect(d3, d4, d5, "mob.endermen.portal", 1.0F, 1.0F); -// this.playSound("mob.endermen.portal", 1.0F, 1.0F); - return true; - } - } - - public void moveEntityViaTeleport(EntityLivingBase entityLiving, double x, double y, double z) - { - if (entityLiving instanceof EntityPlayer) - { - if (entityLiving != null && entityLiving instanceof EntityPlayerMP) - { - EntityPlayerMP entityplayermp = (EntityPlayerMP) entityLiving; - - if (!entityplayermp.playerNetServerHandler.connectionClosed && entityplayermp.worldObj == entityLiving.worldObj) - { - EnderTeleportEvent event = new EnderTeleportEvent(entityplayermp, x, y, z, 5.0F); - - if (!MinecraftForge.EVENT_BUS.post(event)) - { - if (entityLiving.isRiding()) - { - entityLiving.mountEntity((Entity) null); - } - - entityLiving.setPositionAndUpdate(event.targetX, event.targetY, event.targetZ); -// this.getThrower().fallDistance = 0.0F; -// this.getThrower().attackEntityFrom(DamageSource.fall, event.attackDamage); - } - } - } - } else if (entityLiving != null) - { - entityLiving.setPosition(x, y, z); - } - } - - @Override - public List getRitualComponentList() - { - ArrayList expulsionRitual = new ArrayList(); - expulsionRitual.add(new RitualComponent(2,0,2, RitualComponent.EARTH)); - expulsionRitual.add(new RitualComponent(2,0,1, RitualComponent.EARTH)); - expulsionRitual.add(new RitualComponent(1,0,2, RitualComponent.EARTH)); - expulsionRitual.add(new RitualComponent(2,0,-2, RitualComponent.EARTH)); - expulsionRitual.add(new RitualComponent(2,0,-1, RitualComponent.EARTH)); - expulsionRitual.add(new RitualComponent(-1,0,2, RitualComponent.EARTH)); - expulsionRitual.add(new RitualComponent(-2,0,2, RitualComponent.EARTH)); - expulsionRitual.add(new RitualComponent(-2,0,1, RitualComponent.EARTH)); - expulsionRitual.add(new RitualComponent(1,0,-2, RitualComponent.EARTH)); - expulsionRitual.add(new RitualComponent(-2,0,-2, RitualComponent.EARTH)); - expulsionRitual.add(new RitualComponent(-2,0,-1, RitualComponent.EARTH)); - expulsionRitual.add(new RitualComponent(-1,0,-2, RitualComponent.EARTH)); - expulsionRitual.add(new RitualComponent(4,0,2, RitualComponent.AIR)); - expulsionRitual.add(new RitualComponent(5,0,2, RitualComponent.AIR)); - expulsionRitual.add(new RitualComponent(4,0,-2, RitualComponent.AIR)); - expulsionRitual.add(new RitualComponent(5,0,-2, RitualComponent.AIR)); - expulsionRitual.add(new RitualComponent(-4,0,2, RitualComponent.AIR)); - expulsionRitual.add(new RitualComponent(-5,0,2, RitualComponent.AIR)); - expulsionRitual.add(new RitualComponent(-4,0,-2, RitualComponent.AIR)); - expulsionRitual.add(new RitualComponent(-5,0,-2, RitualComponent.AIR)); - expulsionRitual.add(new RitualComponent(2,0,4, RitualComponent.AIR)); - expulsionRitual.add(new RitualComponent(2,0,5, RitualComponent.AIR)); - expulsionRitual.add(new RitualComponent(-2,0,4, RitualComponent.AIR)); - expulsionRitual.add(new RitualComponent(-2,0,5, RitualComponent.AIR)); - expulsionRitual.add(new RitualComponent(2,0,-4, RitualComponent.AIR)); - expulsionRitual.add(new RitualComponent(2,0,-5, RitualComponent.AIR)); - expulsionRitual.add(new RitualComponent(-2,0,-4, RitualComponent.AIR)); - expulsionRitual.add(new RitualComponent(-2,0,-5, RitualComponent.AIR)); - expulsionRitual.add(new RitualComponent(0,0,6, RitualComponent.EARTH)); - expulsionRitual.add(new RitualComponent(0,0,-6, RitualComponent.EARTH)); - expulsionRitual.add(new RitualComponent(6,0,0, RitualComponent.EARTH)); - expulsionRitual.add(new RitualComponent(-6,0,0, RitualComponent.EARTH)); - expulsionRitual.add(new RitualComponent(-5,0,0, RitualComponent.DUSK)); - expulsionRitual.add(new RitualComponent(-6,0,1, RitualComponent.DUSK)); - expulsionRitual.add(new RitualComponent(-6,0,-1, RitualComponent.DUSK)); - expulsionRitual.add(new RitualComponent(5,0,0, RitualComponent.DUSK)); - expulsionRitual.add(new RitualComponent(6,0,1, RitualComponent.DUSK)); - expulsionRitual.add(new RitualComponent(6,0,-1, RitualComponent.DUSK)); - expulsionRitual.add(new RitualComponent(0,0,5, RitualComponent.DUSK)); - expulsionRitual.add(new RitualComponent(1,0,6, RitualComponent.DUSK)); - expulsionRitual.add(new RitualComponent(-1,0,6, RitualComponent.DUSK)); - expulsionRitual.add(new RitualComponent(0,0,-5, RitualComponent.DUSK)); - expulsionRitual.add(new RitualComponent(1,0,-6, RitualComponent.DUSK)); - expulsionRitual.add(new RitualComponent(-1,0,-6, RitualComponent.DUSK)); - expulsionRitual.add(new RitualComponent(4,0,4, RitualComponent.FIRE)); - expulsionRitual.add(new RitualComponent(4,0,-4, RitualComponent.FIRE)); - expulsionRitual.add(new RitualComponent(-4,0,4, RitualComponent.FIRE)); - expulsionRitual.add(new RitualComponent(-4,0,-4, RitualComponent.FIRE)); - return expulsionRitual; - } -} diff --git a/BM_src/WayofTime/alchemicalWizardry/common/rituals/RitualEffectFeatheredEarth.java b/BM_src/WayofTime/alchemicalWizardry/common/rituals/RitualEffectFeatheredEarth.java deleted file mode 100644 index 9ace6527..00000000 --- a/BM_src/WayofTime/alchemicalWizardry/common/rituals/RitualEffectFeatheredEarth.java +++ /dev/null @@ -1,140 +0,0 @@ -package WayofTime.alchemicalWizardry.common.rituals; - -import java.util.ArrayList; -import java.util.List; - -import net.minecraft.entity.EntityLivingBase; -import net.minecraft.entity.effect.EntityLightningBolt; -import net.minecraft.entity.player.EntityPlayer; -import net.minecraft.potion.Potion; -import net.minecraft.potion.PotionEffect; -import net.minecraft.server.MinecraftServer; -import net.minecraft.util.AxisAlignedBB; -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; - -public class RitualEffectFeatheredEarth extends RitualEffect //Nullifies all fall damage in the area of effect -{ - @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(); - - if (ritualStone.getCooldown() > 0) - { - world.addWeatherEffect(new EntityLightningBolt(world, x + 4, y + 5, z + 4)); - world.addWeatherEffect(new EntityLightningBolt(world, x + 4, y + 5, z - 4)); - world.addWeatherEffect(new EntityLightningBolt(world, x - 4, y + 5, z - 4)); - world.addWeatherEffect(new EntityLightningBolt(world, x - 4, y + 5, z + 4)); - ritualStone.setCooldown(0); - } - - int range = 20; - int verticalRange = 30; - List entities = world.getEntitiesWithinAABB(EntityLivingBase.class, AxisAlignedBB.getBoundingBox(x, y, z, x + 1, y + 1, z + 1).expand(range, verticalRange, range)); - int entityCount = 0; - boolean flag = false; - - for (EntityLivingBase entity : entities) - { - entityCount++; - } - - if (currentEssence < this.getCostPerRefresh() * entityCount) - { - EntityPlayer entityOwner = MinecraftServer.getServer().getConfigurationManager().getPlayerForUsername(owner); - - if (entityOwner == null) - { - return; - } - - entityOwner.addPotionEffect(new PotionEffect(Potion.confusion.id, 80)); - } else - { - for (EntityLivingBase entity : entities) - { - entity.fallDistance = 0; - } - - data.currentEssence = currentEssence - this.getCostPerRefresh() * entityCount; - data.markDirty(); - } - } - - @Override - public int getCostPerRefresh() - { - return 0; - } - - @Override - public int getInitialCooldown() - { - return 1; - } - - @Override - public List getRitualComponentList() - { - ArrayList featheredEarthRitual = new ArrayList(); - featheredEarthRitual.add(new RitualComponent(1, 0, 0, RitualComponent.DUSK)); - featheredEarthRitual.add(new RitualComponent(-1, 0, 0, RitualComponent.DUSK)); - featheredEarthRitual.add(new RitualComponent(0, 0, 1, RitualComponent.DUSK)); - featheredEarthRitual.add(new RitualComponent(0, 0, -1, RitualComponent.DUSK)); - featheredEarthRitual.add(new RitualComponent(2, 0, 2, RitualComponent.AIR)); - featheredEarthRitual.add(new RitualComponent(-2, 0, 2, RitualComponent.AIR)); - featheredEarthRitual.add(new RitualComponent(-2, 0, -2, RitualComponent.AIR)); - featheredEarthRitual.add(new RitualComponent(2, 0, -2, RitualComponent.AIR)); - featheredEarthRitual.add(new RitualComponent(1, 0, 3, RitualComponent.EARTH)); - featheredEarthRitual.add(new RitualComponent(0, 0, 3, RitualComponent.EARTH)); - featheredEarthRitual.add(new RitualComponent(-1, 0, 3, RitualComponent.EARTH)); - featheredEarthRitual.add(new RitualComponent(1, 0, -3, RitualComponent.EARTH)); - featheredEarthRitual.add(new RitualComponent(0, 0, -3, RitualComponent.EARTH)); - featheredEarthRitual.add(new RitualComponent(-1, 0, -3, RitualComponent.EARTH)); - featheredEarthRitual.add(new RitualComponent(3, 0, 1, RitualComponent.EARTH)); - featheredEarthRitual.add(new RitualComponent(3, 0, 0, RitualComponent.EARTH)); - featheredEarthRitual.add(new RitualComponent(3, 0, -1, RitualComponent.EARTH)); - featheredEarthRitual.add(new RitualComponent(-3, 0, 1, RitualComponent.EARTH)); - featheredEarthRitual.add(new RitualComponent(-3, 0, 0, RitualComponent.EARTH)); - featheredEarthRitual.add(new RitualComponent(-3, 0, -1, RitualComponent.EARTH)); - featheredEarthRitual.add(new RitualComponent(4, 4, 4, RitualComponent.FIRE)); - featheredEarthRitual.add(new RitualComponent(-4, 4, 4, RitualComponent.FIRE)); - featheredEarthRitual.add(new RitualComponent(-4, 4, -4, RitualComponent.FIRE)); - featheredEarthRitual.add(new RitualComponent(4, 4, -4, RitualComponent.FIRE)); - featheredEarthRitual.add(new RitualComponent(4, 5, 5, RitualComponent.AIR)); - featheredEarthRitual.add(new RitualComponent(4, 5, 3, RitualComponent.AIR)); - featheredEarthRitual.add(new RitualComponent(5, 5, 4, RitualComponent.AIR)); - featheredEarthRitual.add(new RitualComponent(3, 5, 4, RitualComponent.AIR)); - featheredEarthRitual.add(new RitualComponent(-4, 5, 5, RitualComponent.AIR)); - featheredEarthRitual.add(new RitualComponent(-4, 5, 3, RitualComponent.AIR)); - featheredEarthRitual.add(new RitualComponent(-5, 5, 4, RitualComponent.AIR)); - featheredEarthRitual.add(new RitualComponent(-3, 5, 4, RitualComponent.AIR)); - featheredEarthRitual.add(new RitualComponent(4, 5, -5, RitualComponent.AIR)); - featheredEarthRitual.add(new RitualComponent(4, 5, -3, RitualComponent.AIR)); - featheredEarthRitual.add(new RitualComponent(5, 5, -4, RitualComponent.AIR)); - featheredEarthRitual.add(new RitualComponent(3, 5, -4, RitualComponent.AIR)); - featheredEarthRitual.add(new RitualComponent(-4, 5, -5, RitualComponent.AIR)); - featheredEarthRitual.add(new RitualComponent(-4, 5, -3, RitualComponent.AIR)); - featheredEarthRitual.add(new RitualComponent(-5, 5, -4, RitualComponent.AIR)); - featheredEarthRitual.add(new RitualComponent(-3, 5, -4, RitualComponent.AIR)); - return featheredEarthRitual; - } -} diff --git a/BM_src/WayofTime/alchemicalWizardry/common/rituals/RitualEffectFeatheredKnife.java b/BM_src/WayofTime/alchemicalWizardry/common/rituals/RitualEffectFeatheredKnife.java deleted file mode 100644 index bd2b26b8..00000000 --- a/BM_src/WayofTime/alchemicalWizardry/common/rituals/RitualEffectFeatheredKnife.java +++ /dev/null @@ -1,191 +0,0 @@ -package WayofTime.alchemicalWizardry.common.rituals; - -import java.util.ArrayList; -import java.util.Iterator; -import java.util.List; - -import net.minecraft.entity.player.EntityPlayer; -import net.minecraft.potion.Potion; -import net.minecraft.potion.PotionEffect; -import net.minecraft.server.MinecraftServer; -import net.minecraft.util.AxisAlignedBB; -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; -import WayofTime.alchemicalWizardry.common.tileEntity.TEAltar; - -public class RitualEffectFeatheredKnife extends RitualEffect -{ - public final int timeDelay = 20; - public final int amount = 100; - - @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(); - - if (world.getWorldTime() % this.timeDelay != 0) - { - return; - } - -// if(!(world.getBlockTileEntity(x, y-1, z) instanceof TEAltar)) -// { -// return; -// } - TEAltar tileAltar = null; - boolean testFlag = false; - - for (int i = -5; i <= 5; i++) - { - for (int j = -5; j <= 5; j++) - { - for (int k = -10; k <= 10; k++) - { - if (world.getBlockTileEntity(x + i, y + k, z + j) instanceof TEAltar) - { - tileAltar = (TEAltar) world.getBlockTileEntity(x + i, y + k, z + j); - testFlag = true; - } - } - } - } - - if (!testFlag) - { - return; - } - - //tileAltar = (TEAltar)world.getBlockTileEntity(x,y-1,z); - int d0 = 15; - int vertRange = 20; - AxisAlignedBB axisalignedbb = AxisAlignedBB.getAABBPool().getAABB((double) x, (double) y, (double) z, (double) (x + 1), (double) (y + 1), (double) (z + 1)).expand(d0, vertRange, d0); - List list = world.getEntitiesWithinAABB(EntityPlayer.class, axisalignedbb); - Iterator iterator1 = list.iterator(); - EntityPlayer entity; - int entityCount = 0; - boolean flag = false; - - while (iterator1.hasNext()) - { - entity = (EntityPlayer) iterator1.next(); - - if (!SpellHelper.isFakePlayer(world, entity)) - { - entityCount++; - } - } - - if (currentEssence < this.getCostPerRefresh() * entityCount) - { - EntityPlayer entityOwner = MinecraftServer.getServer().getConfigurationManager().getPlayerForUsername(owner); - - if (entityOwner == null) - { - return; - } - - entityOwner.addPotionEffect(new PotionEffect(Potion.confusion.id, 80)); - } else - { - Iterator iterator2 = list.iterator(); - entityCount = 0; - - while (iterator2.hasNext()) - { - entity = (EntityPlayer) iterator2.next(); - - //entity = (EntityPlayer)iterator1.next(); - if (!SpellHelper.isFakePlayer(world, entity)) - { - if (entity.getHealth() > 6.2f) - { - entity.setHealth(entity.getHealth() - 1); - entityCount++; - tileAltar.sacrificialDaggerCall(this.amount, false); - } - } - - //entity.setHealth(entity.getHealth()-1); -// if(entity.getHealth()<=0.2f) -// { -// entity.onDeath(DamageSource.inFire); -// } - } - - data.currentEssence = currentEssence - this.getCostPerRefresh() * entityCount; - data.markDirty(); - } - } - - @Override - public int getCostPerRefresh() - { - // TODO Auto-generated method stub - return 20; - } - - @Override - public List getRitualComponentList() - { - ArrayList featheredKnifeRitual = new ArrayList(); - featheredKnifeRitual.add(new RitualComponent(1, 0, 0, RitualComponent.DUSK)); - featheredKnifeRitual.add(new RitualComponent(-1, 0, 0, RitualComponent.DUSK)); - featheredKnifeRitual.add(new RitualComponent(0, 0, 1, RitualComponent.DUSK)); - featheredKnifeRitual.add(new RitualComponent(0, 0, -1, RitualComponent.DUSK)); - featheredKnifeRitual.add(new RitualComponent(2, -1, 0, RitualComponent.WATER)); - featheredKnifeRitual.add(new RitualComponent(-2, -1, 0, RitualComponent.WATER)); - featheredKnifeRitual.add(new RitualComponent(0, -1, 2, RitualComponent.WATER)); - featheredKnifeRitual.add(new RitualComponent(0, -1, -2, RitualComponent.WATER)); - featheredKnifeRitual.add(new RitualComponent(1, -1, 1, RitualComponent.AIR)); - featheredKnifeRitual.add(new RitualComponent(1, -1, -1, RitualComponent.AIR)); - featheredKnifeRitual.add(new RitualComponent(-1, -1, 1, RitualComponent.AIR)); - featheredKnifeRitual.add(new RitualComponent(-1, -1, -1, RitualComponent.AIR)); - featheredKnifeRitual.add(new RitualComponent(4, -1, 2, RitualComponent.FIRE)); - featheredKnifeRitual.add(new RitualComponent(2, -1, 4, RitualComponent.FIRE)); - featheredKnifeRitual.add(new RitualComponent(-4, -1, 2, RitualComponent.FIRE)); - featheredKnifeRitual.add(new RitualComponent(2, -1, -4, RitualComponent.FIRE)); - featheredKnifeRitual.add(new RitualComponent(4, -1, -2, RitualComponent.FIRE)); - featheredKnifeRitual.add(new RitualComponent(-2, -1, 4, RitualComponent.FIRE)); - featheredKnifeRitual.add(new RitualComponent(-4, -1, -2, RitualComponent.FIRE)); - featheredKnifeRitual.add(new RitualComponent(-2, -1, -4, RitualComponent.FIRE)); - featheredKnifeRitual.add(new RitualComponent(4, 0, 2, RitualComponent.EARTH)); - featheredKnifeRitual.add(new RitualComponent(2, 0, 4, RitualComponent.EARTH)); - featheredKnifeRitual.add(new RitualComponent(-4, 0, 2, RitualComponent.EARTH)); - featheredKnifeRitual.add(new RitualComponent(2, 0, -4, RitualComponent.EARTH)); - featheredKnifeRitual.add(new RitualComponent(4, 0, -2, RitualComponent.EARTH)); - featheredKnifeRitual.add(new RitualComponent(-2, 0, 4, RitualComponent.EARTH)); - featheredKnifeRitual.add(new RitualComponent(-4, 0, -2, RitualComponent.EARTH)); - featheredKnifeRitual.add(new RitualComponent(-2, 0, -4, RitualComponent.EARTH)); - featheredKnifeRitual.add(new RitualComponent(4, 0, 3, RitualComponent.EARTH)); - featheredKnifeRitual.add(new RitualComponent(3, 0, 4, RitualComponent.EARTH)); - featheredKnifeRitual.add(new RitualComponent(-4, 0, 3, RitualComponent.EARTH)); - featheredKnifeRitual.add(new RitualComponent(3, 0, -4, RitualComponent.EARTH)); - featheredKnifeRitual.add(new RitualComponent(4, 0, -3, RitualComponent.EARTH)); - featheredKnifeRitual.add(new RitualComponent(-3, 0, 4, RitualComponent.EARTH)); - featheredKnifeRitual.add(new RitualComponent(-4, 0, -3, RitualComponent.EARTH)); - featheredKnifeRitual.add(new RitualComponent(-3, 0, -4, RitualComponent.EARTH)); - featheredKnifeRitual.add(new RitualComponent(3, 0, 3, RitualComponent.AIR)); - featheredKnifeRitual.add(new RitualComponent(3, 0, -3, RitualComponent.AIR)); - featheredKnifeRitual.add(new RitualComponent(-3, 0, 3, RitualComponent.AIR)); - featheredKnifeRitual.add(new RitualComponent(-3, 0, -3, RitualComponent.AIR)); - return featheredKnifeRitual; - } -} diff --git a/BM_src/WayofTime/alchemicalWizardry/common/rituals/RitualEffectFlight.java b/BM_src/WayofTime/alchemicalWizardry/common/rituals/RitualEffectFlight.java deleted file mode 100644 index 9fd3b54d..00000000 --- a/BM_src/WayofTime/alchemicalWizardry/common/rituals/RitualEffectFlight.java +++ /dev/null @@ -1,179 +0,0 @@ -package WayofTime.alchemicalWizardry.common.rituals; - -import java.util.ArrayList; -import java.util.List; - -import net.minecraft.entity.player.EntityPlayer; -import net.minecraft.potion.Potion; -import net.minecraft.potion.PotionEffect; -import net.minecraft.server.MinecraftServer; -import net.minecraft.util.AxisAlignedBB; -import net.minecraft.world.World; -import WayofTime.alchemicalWizardry.AlchemicalWizardry; -import WayofTime.alchemicalWizardry.api.rituals.IMasterRitualStone; -import WayofTime.alchemicalWizardry.api.rituals.RitualComponent; -import WayofTime.alchemicalWizardry.api.rituals.RitualEffect; -import WayofTime.alchemicalWizardry.api.soulNetwork.LifeEssenceNetwork; - -public class RitualEffectFlight 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(); - - if (ritualStone.getCooldown() > 0) - { - //TODO Cool stuffs - ritualStone.setCooldown(0); - } - - int range = 20; - int verticalRange = 30; - AxisAlignedBB axis = AxisAlignedBB.getBoundingBox(x, y, z, x + 1, y + 1, z + 1).expand(range, verticalRange, range); - axis.maxY = 256; - axis.minY = 0; - List entities = world.getEntitiesWithinAABB(EntityPlayer.class, axis); - int entityCount = 0; - - for (EntityPlayer entity : entities) - { - entityCount++; - } - - if (currentEssence < this.getCostPerRefresh() * entityCount) - { - EntityPlayer entityOwner = MinecraftServer.getServer().getConfigurationManager().getPlayerForUsername(owner); - - if (entityOwner == null) - { - return; - } - - entityOwner.addPotionEffect(new PotionEffect(Potion.confusion.id, 80)); - } else - { - for (EntityPlayer entity : entities) - { - entity.addPotionEffect(new PotionEffect(AlchemicalWizardry.customPotionFlight.id, 20, 0)); - } - - data.currentEssence = currentEssence - this.getCostPerRefresh() * entityCount; - data.markDirty(); - } - } - - @Override - public int getCostPerRefresh() - { - return 0; - } - - @Override - public int getInitialCooldown() - { - return 1; - } - - @Override - public List getRitualComponentList() - { - ArrayList flightRitual = new ArrayList(); - flightRitual.add(new RitualComponent(1, 0, 0, RitualComponent.DUSK)); - flightRitual.add(new RitualComponent(-1, 0, 0, RitualComponent.DUSK)); - flightRitual.add(new RitualComponent(0, 0, 1, RitualComponent.DUSK)); - flightRitual.add(new RitualComponent(0, 0, -1, RitualComponent.DUSK)); - flightRitual.add(new RitualComponent(2, 0, 2, RitualComponent.AIR)); - flightRitual.add(new RitualComponent(-2, 0, 2, RitualComponent.AIR)); - flightRitual.add(new RitualComponent(-2, 0, -2, RitualComponent.AIR)); - flightRitual.add(new RitualComponent(2, 0, -2, RitualComponent.AIR)); - flightRitual.add(new RitualComponent(1, 0, 3, RitualComponent.EARTH)); - flightRitual.add(new RitualComponent(0, 0, 3, RitualComponent.EARTH)); - flightRitual.add(new RitualComponent(-1, 0, 3, RitualComponent.EARTH)); - flightRitual.add(new RitualComponent(1, 0, -3, RitualComponent.EARTH)); - flightRitual.add(new RitualComponent(0, 0, -3, RitualComponent.EARTH)); - flightRitual.add(new RitualComponent(-1, 0, -3, RitualComponent.EARTH)); - flightRitual.add(new RitualComponent(3, 0, 1, RitualComponent.EARTH)); - flightRitual.add(new RitualComponent(3, 0, 0, RitualComponent.EARTH)); - flightRitual.add(new RitualComponent(3, 0, -1, RitualComponent.EARTH)); - flightRitual.add(new RitualComponent(-3, 0, 1, RitualComponent.EARTH)); - flightRitual.add(new RitualComponent(-3, 0, 0, RitualComponent.EARTH)); - flightRitual.add(new RitualComponent(-3, 0, -1, RitualComponent.EARTH)); - flightRitual.add(new RitualComponent(-3, 0, -4, RitualComponent.WATER)); - flightRitual.add(new RitualComponent(-4, 0, -3, RitualComponent.WATER)); - flightRitual.add(new RitualComponent(-3, 0, 4, RitualComponent.WATER)); - flightRitual.add(new RitualComponent(4, 0, -3, RitualComponent.WATER)); - flightRitual.add(new RitualComponent(3, 0, -4, RitualComponent.WATER)); - flightRitual.add(new RitualComponent(-4, 0, 3, RitualComponent.WATER)); - flightRitual.add(new RitualComponent(3, 0, 4, RitualComponent.WATER)); - flightRitual.add(new RitualComponent(4, 0, 3, RitualComponent.WATER)); - flightRitual.add(new RitualComponent(-1, 1, 0, RitualComponent.FIRE)); - flightRitual.add(new RitualComponent(1, 1, 0, RitualComponent.FIRE)); - flightRitual.add(new RitualComponent(0, 1, -1, RitualComponent.FIRE)); - flightRitual.add(new RitualComponent(0, 1, 1, RitualComponent.FIRE)); - flightRitual.add(new RitualComponent(-2, 1, 0, RitualComponent.BLANK)); - flightRitual.add(new RitualComponent(2, 1, 0, RitualComponent.BLANK)); - flightRitual.add(new RitualComponent(0, 1, -2, RitualComponent.BLANK)); - flightRitual.add(new RitualComponent(0, 1, 2, RitualComponent.BLANK)); - flightRitual.add(new RitualComponent(-4, 1, 0, RitualComponent.BLANK)); - flightRitual.add(new RitualComponent(4, 1, 0, RitualComponent.BLANK)); - flightRitual.add(new RitualComponent(0, 1, -4, RitualComponent.BLANK)); - flightRitual.add(new RitualComponent(0, 1, 4, RitualComponent.BLANK)); - flightRitual.add(new RitualComponent(-5, 1, 0, RitualComponent.AIR)); - flightRitual.add(new RitualComponent(5, 1, 0, RitualComponent.AIR)); - flightRitual.add(new RitualComponent(0, 1, -5, RitualComponent.AIR)); - flightRitual.add(new RitualComponent(0, 1, 5, RitualComponent.AIR)); - flightRitual.add(new RitualComponent(5, 0, 0, RitualComponent.DUSK)); - flightRitual.add(new RitualComponent(-5, 0, 0, RitualComponent.DUSK)); - flightRitual.add(new RitualComponent(0, 0, 5, RitualComponent.DUSK)); - flightRitual.add(new RitualComponent(0, 0, -5, RitualComponent.DUSK)); - - for (int i = 2; i <= 4; i++) - { - flightRitual.add(new RitualComponent(-i, 2, 0, RitualComponent.EARTH)); - flightRitual.add(new RitualComponent(i, 2, 0, RitualComponent.EARTH)); - flightRitual.add(new RitualComponent(0, 2, -i, RitualComponent.EARTH)); - flightRitual.add(new RitualComponent(0, 2, i, RitualComponent.EARTH)); - } - - flightRitual.add(new RitualComponent(2, 4, 1, RitualComponent.FIRE)); - flightRitual.add(new RitualComponent(1, 4, 2, RitualComponent.FIRE)); - flightRitual.add(new RitualComponent(-2, 4, 1, RitualComponent.FIRE)); - flightRitual.add(new RitualComponent(1, 4, -2, RitualComponent.FIRE)); - flightRitual.add(new RitualComponent(2, 4, -1, RitualComponent.FIRE)); - flightRitual.add(new RitualComponent(-1, 4, 2, RitualComponent.FIRE)); - flightRitual.add(new RitualComponent(-2, 4, -1, RitualComponent.FIRE)); - flightRitual.add(new RitualComponent(-1, 4, -2, RitualComponent.FIRE)); - flightRitual.add(new RitualComponent(2, 4, 2, RitualComponent.AIR)); - flightRitual.add(new RitualComponent(-2, 4, 2, RitualComponent.AIR)); - flightRitual.add(new RitualComponent(2, 4, -2, RitualComponent.AIR)); - flightRitual.add(new RitualComponent(-2, 4, -2, RitualComponent.AIR)); - flightRitual.add(new RitualComponent(-4, 2, -4, RitualComponent.FIRE)); - flightRitual.add(new RitualComponent(4, 2, 4, RitualComponent.FIRE)); - flightRitual.add(new RitualComponent(4, 2, -4, RitualComponent.FIRE)); - flightRitual.add(new RitualComponent(-4, 2, 4, RitualComponent.FIRE)); - - for (int i = -1; i <= 1; i++) - { - flightRitual.add(new RitualComponent(3, 4, i, RitualComponent.EARTH)); - flightRitual.add(new RitualComponent(-3, 4, i, RitualComponent.EARTH)); - flightRitual.add(new RitualComponent(i, 4, 3, RitualComponent.EARTH)); - flightRitual.add(new RitualComponent(i, 4, -3, RitualComponent.EARTH)); - } - return flightRitual; - } -} diff --git a/BM_src/WayofTime/alchemicalWizardry/common/rituals/RitualEffectGrowth.java b/BM_src/WayofTime/alchemicalWizardry/common/rituals/RitualEffectGrowth.java deleted file mode 100644 index 47caa38b..00000000 --- a/BM_src/WayofTime/alchemicalWizardry/common/rituals/RitualEffectGrowth.java +++ /dev/null @@ -1,106 +0,0 @@ -package WayofTime.alchemicalWizardry.common.rituals; - -import java.util.ArrayList; -import java.util.List; - -import net.minecraft.block.Block; -import net.minecraft.entity.player.EntityPlayer; -import net.minecraft.potion.Potion; -import net.minecraft.potion.PotionEffect; -import net.minecraft.server.MinecraftServer; -import net.minecraft.world.World; -import net.minecraftforge.common.IPlantable; -import WayofTime.alchemicalWizardry.api.rituals.IMasterRitualStone; -import WayofTime.alchemicalWizardry.api.rituals.RitualComponent; -import WayofTime.alchemicalWizardry.api.rituals.RitualEffect; -import WayofTime.alchemicalWizardry.api.soulNetwork.LifeEssenceNetwork; -import WayofTime.alchemicalWizardry.common.tileEntity.TEAltar; -import cpw.mods.fml.common.network.PacketDispatcher; - -public class RitualEffectGrowth 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(); - - if (currentEssence < this.getCostPerRefresh()) - { - EntityPlayer entityOwner = MinecraftServer.getServer().getConfigurationManager().getPlayerForUsername(owner); - - if (entityOwner == null) - { - return; - } - - entityOwner.addPotionEffect(new PotionEffect(Potion.confusion.id, 80)); - } else - { - if (world.getWorldTime() % 20 != 0) - { - return; - } - - boolean flag = false; - - for (int i = -1; i <= 1; i++) - { - for (int j = -1; j <= 1; j++) - { - int id = world.getBlockId(x + i, y + 2, z + j); - Block block = Block.blocksList[id]; - - if (block instanceof IPlantable) - { - { - PacketDispatcher.sendPacketToAllPlayers(TEAltar.getParticlePacket(x + i, y + 2, z + j, (short) 3)); - block.updateTick(world, x + i, y + 2, z + j, world.rand); - flag = true; - } - } - } - } - - if (flag) - { - data.currentEssence = currentEssence - this.getCostPerRefresh(); - data.markDirty(); - } - } - } - - @Override - public int getCostPerRefresh() - { - return 100; - } - - @Override - public List getRitualComponentList() - { - ArrayList growthRitual = new ArrayList(); - growthRitual.add(new RitualComponent(1, 0, 0, 1)); - growthRitual.add(new RitualComponent(-1, 0, 0, 1)); - growthRitual.add(new RitualComponent(0, 0, 1, 1)); - growthRitual.add(new RitualComponent(0, 0, -1, 1)); - growthRitual.add(new RitualComponent(-1, 0, 1, 3)); - growthRitual.add(new RitualComponent(1, 0, 1, 3)); - growthRitual.add(new RitualComponent(-1, 0, -1, 3)); - growthRitual.add(new RitualComponent(1, 0, -1, 3)); - return growthRitual; - } -} diff --git a/BM_src/WayofTime/alchemicalWizardry/common/rituals/RitualEffectHealing.java b/BM_src/WayofTime/alchemicalWizardry/common/rituals/RitualEffectHealing.java deleted file mode 100644 index 6751b4f1..00000000 --- a/BM_src/WayofTime/alchemicalWizardry/common/rituals/RitualEffectHealing.java +++ /dev/null @@ -1,180 +0,0 @@ -package WayofTime.alchemicalWizardry.common.rituals; - -import java.util.ArrayList; -import java.util.Iterator; -import java.util.List; - -import net.minecraft.entity.EntityLivingBase; -import net.minecraft.entity.player.EntityPlayer; -import net.minecraft.potion.Potion; -import net.minecraft.potion.PotionEffect; -import net.minecraft.server.MinecraftServer; -import net.minecraft.util.AxisAlignedBB; -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; - -public class RitualEffectHealing extends RitualEffect -{ - public final int timeDelay = 50; - //public final int amount = 10; - - @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(); - - if (world.getWorldTime() % this.timeDelay != 0) - { - return; - } - -// if(!(world.getBlockTileEntity(x, y-1, z) instanceof TEAltar)) -// { -// return; -// } - //tileAltar = (TEAltar)world.getBlockTileEntity(x,y-1,z); - int d0 = 15; - int vertRange = 20; - AxisAlignedBB axisalignedbb = AxisAlignedBB.getAABBPool().getAABB((double) x, (double) y, (double) z, (double) (x + 1), (double) (y + 1), (double) (z + 1)).expand(d0, vertRange, d0); - List list = world.getEntitiesWithinAABB(EntityLivingBase.class, axisalignedbb); - Iterator iterator1 = list.iterator(); - EntityLivingBase entity; - int entityCount = 0; - boolean flag = false; - - while (iterator1.hasNext()) - { - entity = (EntityLivingBase) iterator1.next(); - - if (entity instanceof EntityPlayer) - { - entityCount += 10; - } else - { - entityCount++; - } - } - - if (currentEssence < this.getCostPerRefresh() * entityCount) - { - EntityPlayer entityOwner = MinecraftServer.getServer().getConfigurationManager().getPlayerForUsername(owner); - - if (entityOwner == null) - { - return; - } - - entityOwner.addPotionEffect(new PotionEffect(Potion.confusion.id, 80)); - } else - { - Iterator iterator2 = list.iterator(); - entityCount = 0; - - while (iterator2.hasNext()) - { - entity = (EntityLivingBase) iterator2.next(); - - if (entity.getHealth() + 0.1f < entity.getMaxHealth()) - { - entity.addPotionEffect(new PotionEffect(Potion.regeneration.id, timeDelay + 2, 0)); - - //entity.setHealth(entity.getHealth()-1); - - //entity.attackEntityFrom(DamageSource.outOfWorld, 1); - - if (entity instanceof EntityPlayer) - { - entityCount += 10; - } else - { - entityCount++; - } - } - -// if(entity.getHealth()<=0.2f) -// { -// entity.onDeath(DamageSource.inFire); -// } - //tileAltar.sacrificialDaggerCall(this.amount, true); - } - - data.currentEssence = currentEssence - this.getCostPerRefresh() * entityCount; - data.markDirty(); - } - } - - @Override - public int getCostPerRefresh() - { - // TODO Auto-generated method stub - return 20; - } - - @Override - public List getRitualComponentList() - { - ArrayList healingRitual = new ArrayList(); - healingRitual.add(new RitualComponent(4, 0, 0, RitualComponent.AIR)); - healingRitual.add(new RitualComponent(5, 0, -1, RitualComponent.AIR)); - healingRitual.add(new RitualComponent(5, 0, 1, RitualComponent.AIR)); - healingRitual.add(new RitualComponent(-4, 0, 0, RitualComponent.AIR)); - healingRitual.add(new RitualComponent(-5, 0, -1, RitualComponent.AIR)); - healingRitual.add(new RitualComponent(-5, 0, 1, RitualComponent.AIR)); - healingRitual.add(new RitualComponent(0, 0, 4, RitualComponent.FIRE)); - healingRitual.add(new RitualComponent(-1, 0, 5, RitualComponent.FIRE)); - healingRitual.add(new RitualComponent(1, 0, 5, RitualComponent.FIRE)); - healingRitual.add(new RitualComponent(0, 0, -4, RitualComponent.FIRE)); - healingRitual.add(new RitualComponent(-1, 0, -5, RitualComponent.FIRE)); - healingRitual.add(new RitualComponent(1, 0, -5, RitualComponent.FIRE)); - healingRitual.add(new RitualComponent(3, 0, 5, RitualComponent.WATER)); - healingRitual.add(new RitualComponent(5, 0, 3, RitualComponent.WATER)); - healingRitual.add(new RitualComponent(3, 0, -5, RitualComponent.WATER)); - healingRitual.add(new RitualComponent(5, 0, -3, RitualComponent.WATER)); - healingRitual.add(new RitualComponent(-3, 0, 5, RitualComponent.WATER)); - healingRitual.add(new RitualComponent(-5, 0, 3, RitualComponent.WATER)); - healingRitual.add(new RitualComponent(-3, 0, -5, RitualComponent.WATER)); - healingRitual.add(new RitualComponent(-5, 0, -3, RitualComponent.WATER)); - healingRitual.add(new RitualComponent(-3, 0, -3, RitualComponent.DUSK)); - healingRitual.add(new RitualComponent(-3, 0, 3, RitualComponent.DUSK)); - healingRitual.add(new RitualComponent(3, 0, -3, RitualComponent.DUSK)); - healingRitual.add(new RitualComponent(3, 0, 3, RitualComponent.DUSK)); - healingRitual.add(new RitualComponent(4, 0, 5, RitualComponent.EARTH)); - healingRitual.add(new RitualComponent(4, -1, 5, RitualComponent.EARTH)); - healingRitual.add(new RitualComponent(5, 0, 4, RitualComponent.EARTH)); - healingRitual.add(new RitualComponent(5, -1, 4, RitualComponent.EARTH)); - healingRitual.add(new RitualComponent(5, 0, 5, RitualComponent.EARTH)); - healingRitual.add(new RitualComponent(4, 0, -5, RitualComponent.EARTH)); - healingRitual.add(new RitualComponent(4, -1, -5, RitualComponent.EARTH)); - healingRitual.add(new RitualComponent(5, 0, -4, RitualComponent.EARTH)); - healingRitual.add(new RitualComponent(5, -1, -4, RitualComponent.EARTH)); - healingRitual.add(new RitualComponent(5, 0, -5, RitualComponent.EARTH)); - healingRitual.add(new RitualComponent(-4, 0, 5, RitualComponent.EARTH)); - healingRitual.add(new RitualComponent(-4, -1, 5, RitualComponent.EARTH)); - healingRitual.add(new RitualComponent(-5, 0, 4, RitualComponent.EARTH)); - healingRitual.add(new RitualComponent(-5, -1, 4, RitualComponent.EARTH)); - healingRitual.add(new RitualComponent(-5, 0, 5, RitualComponent.EARTH)); - healingRitual.add(new RitualComponent(-4, 0, -5, RitualComponent.EARTH)); - healingRitual.add(new RitualComponent(-4, -1, -5, RitualComponent.EARTH)); - healingRitual.add(new RitualComponent(-5, 0, -4, RitualComponent.EARTH)); - healingRitual.add(new RitualComponent(-5, -1, -4, RitualComponent.EARTH)); - healingRitual.add(new RitualComponent(-5, 0, -5, RitualComponent.EARTH)); - return healingRitual; - } -} diff --git a/BM_src/WayofTime/alchemicalWizardry/common/rituals/RitualEffectInterdiction.java b/BM_src/WayofTime/alchemicalWizardry/common/rituals/RitualEffectInterdiction.java deleted file mode 100644 index 38a32587..00000000 --- a/BM_src/WayofTime/alchemicalWizardry/common/rituals/RitualEffectInterdiction.java +++ /dev/null @@ -1,111 +0,0 @@ -package WayofTime.alchemicalWizardry.common.rituals; - -import java.util.ArrayList; -import java.util.Iterator; -import java.util.List; - -import net.minecraft.entity.EntityLivingBase; -import net.minecraft.entity.player.EntityPlayer; -import net.minecraft.potion.Potion; -import net.minecraft.potion.PotionEffect; -import net.minecraft.server.MinecraftServer; -import net.minecraft.util.AxisAlignedBB; -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; - -public class RitualEffectInterdiction 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(); - - if (currentEssence < this.getCostPerRefresh()) - { - EntityPlayer entityOwner = MinecraftServer.getServer().getConfigurationManager().getPlayerForUsername(owner); - - if (entityOwner == null) - { - return; - } - - entityOwner.addPotionEffect(new PotionEffect(Potion.confusion.id, 80)); - } else - { - int d0 = 5; - AxisAlignedBB axisalignedbb = AxisAlignedBB.getAABBPool().getAABB((double) x, (double) y, (double) z, (double) (x + 1), (double) (y + 1), (double) (z + 1)).expand(d0, d0, d0); - axisalignedbb.maxY = Math.min((double) world.getHeight(), (double) (y + 1 + d0)); - List list = world.getEntitiesWithinAABB(EntityLivingBase.class, axisalignedbb); - Iterator iterator = list.iterator(); - EntityLivingBase entityplayer; - boolean flag = false; - - while (iterator.hasNext()) - { - entityplayer = (EntityLivingBase) iterator.next(); - - if (!(entityplayer.getEntityName().equals(owner))) - { - double xDif = entityplayer.posX - x; - double yDif = entityplayer.posY - (y + 1); - double zDif = entityplayer.posZ - z; - entityplayer.motionX = 0.1 * xDif; - entityplayer.motionY = 0.1 * yDif; - entityplayer.motionZ = 0.1 * zDif; - entityplayer.fallDistance = 0; - - if (!(entityplayer instanceof EntityPlayer)) - { - flag = true; - } - - //entityplayer.addPotionEffect(new PotionEffect(Potion.confusion.id, 80)); - } - } - - if (world.getWorldTime() % 2 == 0 && flag) - { - data.currentEssence = currentEssence - this.getCostPerRefresh(); - data.markDirty(); - } - } - } - - @Override - public int getCostPerRefresh() - { - return 1; - } - - @Override - public List getRitualComponentList() - { - ArrayList interdictionRitual = new ArrayList(); - interdictionRitual.add(new RitualComponent(1, 0, 0, 4)); - interdictionRitual.add(new RitualComponent(-1, 0, 0, 4)); - interdictionRitual.add(new RitualComponent(0, 0, 1, 4)); - interdictionRitual.add(new RitualComponent(0, 0, -1, 4)); - interdictionRitual.add(new RitualComponent(-1, 0, 1, 4)); - interdictionRitual.add(new RitualComponent(1, 0, 1, 4)); - interdictionRitual.add(new RitualComponent(-1, 0, -1, 4)); - interdictionRitual.add(new RitualComponent(1, 0, -1, 4)); - return interdictionRitual; - } -} diff --git a/BM_src/WayofTime/alchemicalWizardry/common/rituals/RitualEffectItemSuction.java b/BM_src/WayofTime/alchemicalWizardry/common/rituals/RitualEffectItemSuction.java deleted file mode 100644 index 2e9cccb2..00000000 --- a/BM_src/WayofTime/alchemicalWizardry/common/rituals/RitualEffectItemSuction.java +++ /dev/null @@ -1,164 +0,0 @@ -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/rituals/RitualEffectJumping.java b/BM_src/WayofTime/alchemicalWizardry/common/rituals/RitualEffectJumping.java deleted file mode 100644 index 7873dea9..00000000 --- a/BM_src/WayofTime/alchemicalWizardry/common/rituals/RitualEffectJumping.java +++ /dev/null @@ -1,115 +0,0 @@ -package WayofTime.alchemicalWizardry.common.rituals; - -import java.util.ArrayList; -import java.util.Iterator; -import java.util.List; - -import net.minecraft.entity.EntityLivingBase; -import net.minecraft.entity.player.EntityPlayer; -import net.minecraft.potion.Potion; -import net.minecraft.potion.PotionEffect; -import net.minecraft.server.MinecraftServer; -import net.minecraft.util.AxisAlignedBB; -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.PacketHandler; -import cpw.mods.fml.common.network.PacketDispatcher; -import cpw.mods.fml.common.network.Player; - -public class RitualEffectJumping 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(); - - if (currentEssence < this.getCostPerRefresh()) - { - EntityPlayer entityOwner = MinecraftServer.getServer().getConfigurationManager().getPlayerForUsername(owner); - - if (entityOwner == null) - { - return; - } - - entityOwner.addPotionEffect(new PotionEffect(Potion.confusion.id, 80)); - } else - { - int d0 = 0; - AxisAlignedBB axisalignedbb = AxisAlignedBB.getAABBPool().getAABB((double) x, (double) y + 1, (double) z, (double) (x + 1), (double) (y + 2), (double) (z + 1)).expand(d0, d0, d0); - List list = world.getEntitiesWithinAABB(EntityLivingBase.class, axisalignedbb); - Iterator iterator = list.iterator(); - EntityLivingBase entityplayer; - boolean flag = false; - - while (iterator.hasNext()) - { - entityplayer = (EntityLivingBase) iterator.next(); - - if (entityplayer instanceof EntityPlayer) - { - PacketDispatcher.sendPacketToPlayer(PacketHandler.getPlayerVelocitySettingPacket(entityplayer.motionX, 1.5, entityplayer.motionZ), (Player) entityplayer); - entityplayer.motionY = 1.5; - entityplayer.fallDistance = 0; - flag = true; - } else - //if (!(entityplayer.getEntityName().equals(owner))) - { -// double xDif = entityplayer.posX - xCoord; -// double yDif = entityplayer.posY - (yCoord + 1); -// double zDif = entityplayer.posZ - zCoord; - //entityplayer.motionX=0.1*xDif; - entityplayer.motionY = 1.5; - //entityplayer.motionZ=0.1*zDif; - entityplayer.fallDistance = 0; - flag = true; - //entityplayer.addPotionEffect(new PotionEffect(Potion.confusion.id, 80)); - } - } - - if (flag) - { - data.currentEssence = currentEssence - this.getCostPerRefresh(); - data.markDirty(); - } - } - } - - @Override - public int getCostPerRefresh() - { - return 5; - } - - @Override - public List getRitualComponentList() - { - ArrayList jumpingRitual = new ArrayList(); - - for (int i = -1; i <= 1; i++) - { - jumpingRitual.add(new RitualComponent(1, i, 1, RitualComponent.AIR)); - jumpingRitual.add(new RitualComponent(-1, i, 1, RitualComponent.AIR)); - jumpingRitual.add(new RitualComponent(-1, i, -1, RitualComponent.AIR)); - jumpingRitual.add(new RitualComponent(1, i, -1, RitualComponent.AIR)); - } - return jumpingRitual; - } -} diff --git a/BM_src/WayofTime/alchemicalWizardry/common/rituals/RitualEffectLava.java b/BM_src/WayofTime/alchemicalWizardry/common/rituals/RitualEffectLava.java deleted file mode 100644 index 0bce2a1a..00000000 --- a/BM_src/WayofTime/alchemicalWizardry/common/rituals/RitualEffectLava.java +++ /dev/null @@ -1,82 +0,0 @@ -package WayofTime.alchemicalWizardry.common.rituals; - -import java.util.ArrayList; -import java.util.List; - -import net.minecraft.block.Block; -import net.minecraft.entity.player.EntityPlayer; -import net.minecraft.potion.Potion; -import net.minecraft.potion.PotionEffect; -import net.minecraft.server.MinecraftServer; -import net.minecraft.world.World; -import 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.tileEntity.TEAltar; -import cpw.mods.fml.common.network.PacketDispatcher; - -public class RitualEffectLava 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(); - - if (world.isAirBlock(x, y + 1, z)) - { - if (currentEssence < this.getCostPerRefresh()) - { - EntityPlayer entityOwner = MinecraftServer.getServer().getConfigurationManager().getPlayerForUsername(owner); - - if (entityOwner == null) - { - return; - } - - entityOwner.addPotionEffect(new PotionEffect(Potion.confusion.id, 80)); - } else - { - for (int i = 0; i < 10; i++) - { - PacketDispatcher.sendPacketToAllPlayers(TEAltar.getParticlePacket(x, y, z, (short) 3)); - } - - world.setBlock(x, y + 1, z, Block.lavaMoving.blockID, 0, 3); - data.currentEssence = currentEssence - this.getCostPerRefresh(); - data.markDirty(); - } - } - } - - @Override - public int getCostPerRefresh() - { - return 500; - } - - @Override - public List getRitualComponentList() - { - ArrayList lavaRitual = new ArrayList(); - lavaRitual.add(new RitualComponent(1, 0, 0, 2)); - lavaRitual.add(new RitualComponent(-1, 0, 0, 2)); - lavaRitual.add(new RitualComponent(0, 0, 1, 2)); - lavaRitual.add(new RitualComponent(0, 0, -1, 2)); - return lavaRitual; - } -} diff --git a/BM_src/WayofTime/alchemicalWizardry/common/rituals/RitualEffectLeap.java b/BM_src/WayofTime/alchemicalWizardry/common/rituals/RitualEffectLeap.java deleted file mode 100644 index 387ef449..00000000 --- a/BM_src/WayofTime/alchemicalWizardry/common/rituals/RitualEffectLeap.java +++ /dev/null @@ -1,160 +0,0 @@ -package WayofTime.alchemicalWizardry.common.rituals; - -import java.util.ArrayList; -import java.util.Iterator; -import java.util.List; - -import net.minecraft.entity.EntityLivingBase; -import net.minecraft.entity.player.EntityPlayer; -import net.minecraft.potion.Potion; -import net.minecraft.potion.PotionEffect; -import net.minecraft.server.MinecraftServer; -import net.minecraft.util.AxisAlignedBB; -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.PacketHandler; -import cpw.mods.fml.common.network.PacketDispatcher; -import cpw.mods.fml.common.network.Player; - -public class RitualEffectLeap 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(); - - if (currentEssence < this.getCostPerRefresh()) - { - EntityPlayer entityOwner = MinecraftServer.getServer().getConfigurationManager().getPlayerForUsername(owner); - - if (entityOwner == null) - { - return; - } - - entityOwner.addPotionEffect(new PotionEffect(Potion.confusion.id, 80)); - } else - { - int direction = ritualStone.getDirection(); - int d0 = 2; - AxisAlignedBB axisalignedbb = AxisAlignedBB.getAABBPool().getAABB((double) x, (double) y - 1, (double) z, (double) (x + 1), (double) (y + 2), (double) (z + 1)).expand(d0, 0, d0); - List list = world.getEntitiesWithinAABB(EntityLivingBase.class, axisalignedbb); - Iterator iterator = list.iterator(); - EntityLivingBase entityplayer; - boolean flag = false; - - while (iterator.hasNext()) - { - entityplayer = (EntityLivingBase) iterator.next(); - - if (entityplayer instanceof EntityPlayer) - { - entityplayer.motionY = 1.2; - entityplayer.fallDistance = 0; - - switch (direction) - { - case 1: - PacketDispatcher.sendPacketToPlayer(PacketHandler.getPlayerVelocitySettingPacket(0, 1.2, -3.0), (Player) entityplayer); - break; - - case 2: - PacketDispatcher.sendPacketToPlayer(PacketHandler.getPlayerVelocitySettingPacket(3.0, 1.2, 0), (Player) entityplayer); - break; - - case 3: - PacketDispatcher.sendPacketToPlayer(PacketHandler.getPlayerVelocitySettingPacket(0, 1.2, 3.0), (Player) entityplayer); - break; - - case 4: - PacketDispatcher.sendPacketToPlayer(PacketHandler.getPlayerVelocitySettingPacket(-3.0, 1.2, 0), (Player) entityplayer); - break; - } - - flag = true; - } else - //if (!(entityplayer.getEntityName().equals(owner))) - { -// double xDif = entityplayer.posX - xCoord; -// double yDif = entityplayer.posY - (yCoord + 1); -// double zDif = entityplayer.posZ - zCoord; - //entityplayer.motionX=0.1*xDif; - entityplayer.motionY = 1.2; - - switch (direction) - { - case 1: - entityplayer.motionX = 0.0; - entityplayer.motionZ = -3.0; - break; - - case 2: - entityplayer.motionX = 3.0; - entityplayer.motionZ = 0.0; - break; - - case 3: - entityplayer.motionX = 0.0; - entityplayer.motionZ = -3.0; - break; - - case 4: - entityplayer.motionX = -3.0; - entityplayer.motionZ = 0.0; - break; - } - - //entityplayer.motionZ=0.1*zDif; - entityplayer.fallDistance = 0; - flag = true; - //entityplayer.addPotionEffect(new PotionEffect(Potion.confusion.id, 80)); - } - } - - if (flag) - { - data.currentEssence = currentEssence - this.getCostPerRefresh(); - data.markDirty(); - } - } - } - - @Override - public int getCostPerRefresh() - { - return 5; - } - - @Override - public List getRitualComponentList() - { - ArrayList leapingRitual = new ArrayList(); - leapingRitual.add(new RitualComponent(0, 0, -2, RitualComponent.DUSK)); - leapingRitual.add(new RitualComponent(1, 0, -1, RitualComponent.AIR)); - leapingRitual.add(new RitualComponent(-1, 0, -1, RitualComponent.AIR)); - - for (int i = 0; i <= 2; i++) - { - leapingRitual.add(new RitualComponent(2, 0, i, RitualComponent.AIR)); - leapingRitual.add(new RitualComponent(-2, 0, i, RitualComponent.AIR)); - } - return leapingRitual; - } -} diff --git a/BM_src/WayofTime/alchemicalWizardry/common/rituals/RitualEffectMagnetic.java b/BM_src/WayofTime/alchemicalWizardry/common/rituals/RitualEffectMagnetic.java deleted file mode 100644 index e6a64971..00000000 --- a/BM_src/WayofTime/alchemicalWizardry/common/rituals/RitualEffectMagnetic.java +++ /dev/null @@ -1,149 +0,0 @@ -package WayofTime.alchemicalWizardry.common.rituals; - -import java.util.ArrayList; -import java.util.List; - -import net.minecraft.block.Block; -import net.minecraft.entity.player.EntityPlayer; -import net.minecraft.item.ItemStack; -import net.minecraft.potion.Potion; -import net.minecraft.potion.PotionEffect; -import net.minecraft.server.MinecraftServer; -import net.minecraft.world.World; -import net.minecraftforge.oredict.OreDictionary; -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.block.BlockTeleposer; - -public class RitualEffectMagnetic 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(); - - if (world.getWorldTime() % 40 != 0) - { - return; - } - - if (currentEssence < this.getCostPerRefresh()) - { - EntityPlayer entityOwner = MinecraftServer.getServer().getConfigurationManager().getPlayerForUsername(owner); - - if (entityOwner == null) - { - return; - } - - entityOwner.addPotionEffect(new PotionEffect(Potion.confusion.id, 80)); - } else - { - int xRep = 0; - int yRep = 0; - int zRep = 0; - boolean replace = false; - - for (int j = 1; j <= 3; j++) - { - for (int i = -1; i <= 1; i++) - { - for (int k = -1; k <= 1; k++) - { - if ((!replace) && world.isAirBlock(x + i, y + j, z + k)) - { - xRep = x + i; - yRep = y + j; - zRep = z + k; - replace = true; - } - } - } - } - - if (replace) - { - //boolean hasReplaced = false; - for (int j = y - 1; j >= 0; j--) - { - for (int i = -3; i <= 3; i++) - { - for (int k = -3; k <= 3; k++) - { - Block block = Block.blocksList[world.getBlockId(x + i, j, z + k)]; - int meta = world.getBlockMetadata(x + i, j, z + k); - - if (block == null) - { - continue; - } - - ItemStack itemStack = new ItemStack(block, 1, meta); - int id = OreDictionary.getOreID(itemStack); - - if (id != -1) - { - String oreName = OreDictionary.getOreName(id); - - if (oreName.contains("ore")) - { - //TODO - //Allow swapping code. This means the searched block is an ore. - BlockTeleposer.swapBlocks(world, world, x + i, j, z + k, xRep, yRep, zRep); - data.currentEssence = currentEssence - this.getCostPerRefresh(); - data.markDirty(); - return; - } - } - } - } - } - } - } - } - - @Override - public int getCostPerRefresh() - { - return 50; - } - - @Override - public List getRitualComponentList() - { - ArrayList magneticRitual = new ArrayList(); - magneticRitual.add(new RitualComponent(1, 0, 1, RitualComponent.EARTH)); - magneticRitual.add(new RitualComponent(1, 0, -1, RitualComponent.EARTH)); - magneticRitual.add(new RitualComponent(-1, 0, 1, RitualComponent.EARTH)); - magneticRitual.add(new RitualComponent(-1, 0, -1, RitualComponent.EARTH)); - magneticRitual.add(new RitualComponent(2, 1, 0, RitualComponent.EARTH)); - magneticRitual.add(new RitualComponent(0, 1, 2, RitualComponent.EARTH)); - magneticRitual.add(new RitualComponent(-2, 1, 0, RitualComponent.EARTH)); - magneticRitual.add(new RitualComponent(0, 1, -2, RitualComponent.EARTH)); - magneticRitual.add(new RitualComponent(2, 1, 2, RitualComponent.AIR)); - magneticRitual.add(new RitualComponent(2, 1, -2, RitualComponent.AIR)); - magneticRitual.add(new RitualComponent(-2, 1, 2, RitualComponent.AIR)); - magneticRitual.add(new RitualComponent(-2, 1, -2, RitualComponent.AIR)); - magneticRitual.add(new RitualComponent(2, 2, 0, RitualComponent.FIRE)); - magneticRitual.add(new RitualComponent(0, 2, 2, RitualComponent.FIRE)); - magneticRitual.add(new RitualComponent(-2, 2, 0, RitualComponent.FIRE)); - magneticRitual.add(new RitualComponent(0, 2, -2, RitualComponent.FIRE)); - return magneticRitual; - } -} diff --git a/BM_src/WayofTime/alchemicalWizardry/common/rituals/RitualEffectSoulBound.java b/BM_src/WayofTime/alchemicalWizardry/common/rituals/RitualEffectSoulBound.java deleted file mode 100644 index 39326daa..00000000 --- a/BM_src/WayofTime/alchemicalWizardry/common/rituals/RitualEffectSoulBound.java +++ /dev/null @@ -1,200 +0,0 @@ -package WayofTime.alchemicalWizardry.common.rituals; - -import java.util.ArrayList; -import java.util.Iterator; -import java.util.List; - -import net.minecraft.entity.effect.EntityLightningBolt; -import net.minecraft.entity.item.EntityItem; -import net.minecraft.entity.player.EntityPlayer; -import net.minecraft.item.Item; -import net.minecraft.item.ItemStack; -import net.minecraft.potion.Potion; -import net.minecraft.potion.PotionEffect; -import net.minecraft.server.MinecraftServer; -import net.minecraft.util.AxisAlignedBB; -import net.minecraft.world.World; -import thaumcraft.api.ItemApi; -import WayofTime.alchemicalWizardry.AlchemicalWizardry; -import WayofTime.alchemicalWizardry.ModItems; -import WayofTime.alchemicalWizardry.api.bindingRegistry.BindingRegistry; -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.tileEntity.TEAltar; -import cpw.mods.fml.common.network.PacketDispatcher; - -public class RitualEffectSoulBound 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(); - - if (currentEssence < this.getCostPerRefresh()) - { - EntityPlayer entityOwner = MinecraftServer.getServer().getConfigurationManager().getPlayerForUsername(owner); - - if (entityOwner == null) - { - return; - } - - entityOwner.addPotionEffect(new PotionEffect(Potion.confusion.id, 80)); - } else - { - if (ritualStone.getVar1() == 0) - { - int d0 = 0; - AxisAlignedBB axisalignedbb = AxisAlignedBB.getAABBPool().getAABB((double) x, (double) y + 1, (double) z, (double) (x + 1), (double) (y + 2), (double) (z + 1)).expand(d0, d0, d0); - List list = world.getEntitiesWithinAABB(EntityItem.class, axisalignedbb); - Iterator iterator = list.iterator(); - EntityItem item; - - while (iterator.hasNext()) - { - item = (EntityItem) iterator.next(); - - ItemStack itemStack = item.getEntityItem(); - - if (itemStack == null) - { - continue; - } - - if(BindingRegistry.isRequiredItemValid(itemStack)) - { - ritualStone.setVar1(BindingRegistry.getIndexForItem(itemStack)+1); - world.addWeatherEffect(new EntityLightningBolt(world, x, y + 1, z)); - ritualStone.setCooldown(ritualStone.getCooldown() - 1); - item.setDead(); - break; - } - - if (world.rand.nextInt(10) == 0) - { - PacketDispatcher.sendPacketToAllPlayers(TEAltar.getParticlePacket(item.posX, item.posY, item.posZ, (short) 1)); - } - } - - data.currentEssence = currentEssence - this.getCostPerRefresh(); - data.markDirty(); - } else - { - ritualStone.setCooldown(ritualStone.getCooldown() - 1); - - if (world.rand.nextInt(20) == 0) - { - int lightningPoint = world.rand.nextInt(8); - - switch (lightningPoint) - { - case 0: - world.addWeatherEffect(new EntityLightningBolt(world, x + 4, y + 3, z + 0)); - break; - - case 1: - world.addWeatherEffect(new EntityLightningBolt(world, x - 4, y + 3, z + 0)); - break; - - case 2: - world.addWeatherEffect(new EntityLightningBolt(world, x + 0, y + 3, z + 4)); - break; - - case 3: - world.addWeatherEffect(new EntityLightningBolt(world, x + 0, y + 3, z - 4)); - break; - - case 4: - world.addWeatherEffect(new EntityLightningBolt(world, x + 3, y + 3, z + 3)); - break; - - case 5: - world.addWeatherEffect(new EntityLightningBolt(world, x - 3, y + 3, z + 3)); - break; - - case 6: - world.addWeatherEffect(new EntityLightningBolt(world, x + 3, y + 3, z - 3)); - break; - - case 7: - world.addWeatherEffect(new EntityLightningBolt(world, x - 3, y + 3, z - 3)); - break; - } - } - - if (ritualStone.getCooldown() <= 0) - { - - ItemStack spawnedItem = BindingRegistry.getOutputForIndex(ritualStone.getVar1()-1); - - if (spawnedItem != null) - { - EntityItem newItem = new EntityItem(world, x + 0.5, y + 1, z + 0.5, spawnedItem.copy()); - world.spawnEntityInWorld(newItem); - } - - ritualStone.setActive(false); - } - } - } - } - - @Override - public int getCostPerRefresh() - { - return 0; - } - - @Override - public int getInitialCooldown() - { - return 200; - } - - @Override - public List getRitualComponentList() - { - ArrayList boundSoulRitual = new ArrayList(); - boundSoulRitual.add(new RitualComponent(3, 0, 0, 2)); - boundSoulRitual.add(new RitualComponent(-3, 0, 0, 2)); - boundSoulRitual.add(new RitualComponent(0, 0, 3, 2)); - boundSoulRitual.add(new RitualComponent(0, 0, -3, 2)); - boundSoulRitual.add(new RitualComponent(2, 0, 2, 4)); - boundSoulRitual.add(new RitualComponent(-2, 0, 2, 4)); - boundSoulRitual.add(new RitualComponent(2, 0, -2, 4)); - boundSoulRitual.add(new RitualComponent(-2, 0, -2, 4)); - boundSoulRitual.add(new RitualComponent(4, 2, 0, 1)); - boundSoulRitual.add(new RitualComponent(-4, 2, 0, 1)); - boundSoulRitual.add(new RitualComponent(0, 2, 4, 1)); - boundSoulRitual.add(new RitualComponent(0, 2, -4, 1)); - boundSoulRitual.add(new RitualComponent(3, 2, 3, 3)); - boundSoulRitual.add(new RitualComponent(3, 2, -3, 3)); - boundSoulRitual.add(new RitualComponent(-3, 2, 3, 3)); - boundSoulRitual.add(new RitualComponent(-3, 2, -3, 3)); - boundSoulRitual.add(new RitualComponent(4, 1, 0, 0)); - boundSoulRitual.add(new RitualComponent(-4, 1, 0, 0)); - boundSoulRitual.add(new RitualComponent(0, 1, 4, 0)); - boundSoulRitual.add(new RitualComponent(0, 1, -4, 0)); - boundSoulRitual.add(new RitualComponent(3, 1, 3, 0)); - boundSoulRitual.add(new RitualComponent(3, 1, -3, 0)); - boundSoulRitual.add(new RitualComponent(-3, 1, 3, 0)); - boundSoulRitual.add(new RitualComponent(-3, 1, -3, 0)); - return boundSoulRitual; - } -} diff --git a/BM_src/WayofTime/alchemicalWizardry/common/rituals/RitualEffectSummonMeteor.java b/BM_src/WayofTime/alchemicalWizardry/common/rituals/RitualEffectSummonMeteor.java deleted file mode 100644 index e23e201a..00000000 --- a/BM_src/WayofTime/alchemicalWizardry/common/rituals/RitualEffectSummonMeteor.java +++ /dev/null @@ -1,203 +0,0 @@ -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.potion.Potion; -import net.minecraft.potion.PotionEffect; -import net.minecraft.server.MinecraftServer; -import net.minecraft.util.AxisAlignedBB; -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.entity.projectile.EntityMeteor; -import WayofTime.alchemicalWizardry.common.summoning.meteor.MeteorRegistry; - -public class RitualEffectSummonMeteor 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(); - - if (ritualStone.getCooldown() > 0) - { - ritualStone.setCooldown(0); - } - - if (currentEssence < this.getCostPerRefresh()) - { - EntityPlayer entityOwner = MinecraftServer.getServer().getConfigurationManager().getPlayerForUsername(owner); - - if (entityOwner == null) - { - return; - } - - entityOwner.addPotionEffect(new PotionEffect(Potion.confusion.id, 80)); - } else - { - List entities = world.getEntitiesWithinAABB(EntityItem.class, AxisAlignedBB.getBoundingBox(x, y + 1, z, x + 1, y + 2, z + 1)); - - if (entities == null) - { - return; - } - - for (EntityItem entityItem : entities) - { - if (entityItem != null && MeteorRegistry.isValidParadigmItem(entityItem.getEntityItem())) - { - int meteorID = MeteorRegistry.getParadigmIDForItem(entityItem.getEntityItem()); - EntityMeteor meteor = new EntityMeteor(world, x + 0.5f, 257, z + 0.5f, meteorID); - meteor.motionY = -1.0f; - entityItem.setDead(); - world.spawnEntityInWorld(meteor); - ritualStone.setActive(false); - break; - } - } - -// EnergyBlastProjectile proj = new EnergyBlastProjectile(world, x, y+20, z); -// proj.motionX = 0.0d; -// proj.motionZ = 0.0d; -// proj.motionY = -1.0d; -// world.spawnEntityInWorld(proj); - data.currentEssence = currentEssence - this.getCostPerRefresh(); - data.markDirty(); - } - } - - @Override - public int getCostPerRefresh() - { - return 0; - } - - @Override - public List getRitualComponentList() - { - ArrayList meteorRitual = new ArrayList(); - meteorRitual.add(new RitualComponent(2, 0, 0, RitualComponent.FIRE)); - meteorRitual.add(new RitualComponent(-2, 0, 0, RitualComponent.FIRE)); - meteorRitual.add(new RitualComponent(0, 0, 2, RitualComponent.FIRE)); - meteorRitual.add(new RitualComponent(0, 0, -2, RitualComponent.FIRE)); - meteorRitual.add(new RitualComponent(3, 0, 1, RitualComponent.AIR)); - meteorRitual.add(new RitualComponent(3, 0, -1, RitualComponent.AIR)); - meteorRitual.add(new RitualComponent(-3, 0, 1, RitualComponent.AIR)); - meteorRitual.add(new RitualComponent(-3, 0, -1, RitualComponent.AIR)); - meteorRitual.add(new RitualComponent(1, 0, 3, RitualComponent.AIR)); - meteorRitual.add(new RitualComponent(-1, 0, 3, RitualComponent.AIR)); - meteorRitual.add(new RitualComponent(1, 0, -3, RitualComponent.AIR)); - meteorRitual.add(new RitualComponent(-1, 0, -3, RitualComponent.AIR)); - meteorRitual.add(new RitualComponent(4, 0, 2, RitualComponent.AIR)); - meteorRitual.add(new RitualComponent(4, 0, -2, RitualComponent.AIR)); - meteorRitual.add(new RitualComponent(-4, 0, 2, RitualComponent.AIR)); - meteorRitual.add(new RitualComponent(-4, 0, -2, RitualComponent.AIR)); - meteorRitual.add(new RitualComponent(2, 0, 4, RitualComponent.AIR)); - meteorRitual.add(new RitualComponent(-2, 0, 4, RitualComponent.AIR)); - meteorRitual.add(new RitualComponent(2, 0, -4, RitualComponent.AIR)); - meteorRitual.add(new RitualComponent(-2, 0, -4, RitualComponent.AIR)); - meteorRitual.add(new RitualComponent(5, 0, 3, RitualComponent.DUSK)); - meteorRitual.add(new RitualComponent(5, 0, -3, RitualComponent.DUSK)); - meteorRitual.add(new RitualComponent(-5, 0, 3, RitualComponent.DUSK)); - meteorRitual.add(new RitualComponent(-5, 0, -3, RitualComponent.DUSK)); - meteorRitual.add(new RitualComponent(3, 0, 5, RitualComponent.DUSK)); - meteorRitual.add(new RitualComponent(-3, 0, 5, RitualComponent.DUSK)); - meteorRitual.add(new RitualComponent(3, 0, -5, RitualComponent.DUSK)); - meteorRitual.add(new RitualComponent(-3, 0, -5, RitualComponent.DUSK)); - meteorRitual.add(new RitualComponent(-4, 0, -4, RitualComponent.DUSK)); - meteorRitual.add(new RitualComponent(-4, 0, 4, RitualComponent.DUSK)); - meteorRitual.add(new RitualComponent(4, 0, 4, RitualComponent.DUSK)); - meteorRitual.add(new RitualComponent(4, 0, -4, RitualComponent.DUSK)); - - for (int i = 4; i <= 6; i++) - { - meteorRitual.add(new RitualComponent(i, 0, 0, RitualComponent.EARTH)); - meteorRitual.add(new RitualComponent(-i, 0, 0, RitualComponent.EARTH)); - meteorRitual.add(new RitualComponent(0, 0, i, RitualComponent.EARTH)); - meteorRitual.add(new RitualComponent(0, 0, -i, RitualComponent.EARTH)); - } - - meteorRitual.add(new RitualComponent(8, 0, 0, RitualComponent.EARTH)); - meteorRitual.add(new RitualComponent(-8, 0, 0, RitualComponent.EARTH)); - meteorRitual.add(new RitualComponent(0, 0, 8, RitualComponent.EARTH)); - meteorRitual.add(new RitualComponent(0, 0, -8, RitualComponent.EARTH)); - meteorRitual.add(new RitualComponent(8, 1, 0, RitualComponent.EARTH)); - meteorRitual.add(new RitualComponent(-8, 1, 0, RitualComponent.EARTH)); - meteorRitual.add(new RitualComponent(0, 1, 8, RitualComponent.EARTH)); - meteorRitual.add(new RitualComponent(0, 1, -8, RitualComponent.EARTH)); - meteorRitual.add(new RitualComponent(7, 1, 0, RitualComponent.EARTH)); - meteorRitual.add(new RitualComponent(-7, 1, 0, RitualComponent.EARTH)); - meteorRitual.add(new RitualComponent(0, 1, 7, RitualComponent.EARTH)); - meteorRitual.add(new RitualComponent(0, 1, -7, RitualComponent.EARTH)); - meteorRitual.add(new RitualComponent(7, 2, 0, RitualComponent.FIRE)); - meteorRitual.add(new RitualComponent(-7, 2, 0, RitualComponent.FIRE)); - meteorRitual.add(new RitualComponent(0, 2, 7, RitualComponent.FIRE)); - meteorRitual.add(new RitualComponent(0, 2, -7, RitualComponent.FIRE)); - meteorRitual.add(new RitualComponent(6, 2, 0, RitualComponent.FIRE)); - meteorRitual.add(new RitualComponent(-6, 2, 0, RitualComponent.FIRE)); - meteorRitual.add(new RitualComponent(0, 2, 6, RitualComponent.FIRE)); - meteorRitual.add(new RitualComponent(0, 2, -6, RitualComponent.FIRE)); - meteorRitual.add(new RitualComponent(6, 3, 0, RitualComponent.WATER)); - meteorRitual.add(new RitualComponent(-6, 3, 0, RitualComponent.WATER)); - meteorRitual.add(new RitualComponent(0, 3, 6, RitualComponent.WATER)); - meteorRitual.add(new RitualComponent(0, 3, -6, RitualComponent.WATER)); - meteorRitual.add(new RitualComponent(5, 3, 0, RitualComponent.WATER)); - meteorRitual.add(new RitualComponent(-5, 3, 0, RitualComponent.WATER)); - meteorRitual.add(new RitualComponent(0, 3, 5, RitualComponent.WATER)); - meteorRitual.add(new RitualComponent(0, 3, -5, RitualComponent.WATER)); - meteorRitual.add(new RitualComponent(5, 4, 0, RitualComponent.AIR)); - meteorRitual.add(new RitualComponent(-5, 4, 0, RitualComponent.AIR)); - meteorRitual.add(new RitualComponent(0, 4, 5, RitualComponent.AIR)); - meteorRitual.add(new RitualComponent(0, 4, -5, RitualComponent.AIR)); - - for (int i = -1; i <= 1; i++) - { - meteorRitual.add(new RitualComponent(i, 4, 4, RitualComponent.AIR)); - meteorRitual.add(new RitualComponent(i, 4, -4, RitualComponent.AIR)); - meteorRitual.add(new RitualComponent(4, 4, i, RitualComponent.AIR)); - meteorRitual.add(new RitualComponent(-4, 4, i, RitualComponent.AIR)); - } - - meteorRitual.add(new RitualComponent(2, 4, 4, RitualComponent.WATER)); - meteorRitual.add(new RitualComponent(4, 4, 2, RitualComponent.WATER)); - meteorRitual.add(new RitualComponent(2, 4, -4, RitualComponent.WATER)); - meteorRitual.add(new RitualComponent(-4, 4, 2, RitualComponent.WATER)); - meteorRitual.add(new RitualComponent(-2, 4, 4, RitualComponent.WATER)); - meteorRitual.add(new RitualComponent(4, 4, -2, RitualComponent.WATER)); - meteorRitual.add(new RitualComponent(-2, 4, -4, RitualComponent.WATER)); - meteorRitual.add(new RitualComponent(-4, 4, -2, RitualComponent.WATER)); - meteorRitual.add(new RitualComponent(2, 4, 3, RitualComponent.FIRE)); - meteorRitual.add(new RitualComponent(3, 4, 2, RitualComponent.FIRE)); - meteorRitual.add(new RitualComponent(3, 4, 3, RitualComponent.FIRE)); - meteorRitual.add(new RitualComponent(-2, 4, 3, RitualComponent.FIRE)); - meteorRitual.add(new RitualComponent(3, 4, -2, RitualComponent.FIRE)); - meteorRitual.add(new RitualComponent(3, 4, -3, RitualComponent.FIRE)); - meteorRitual.add(new RitualComponent(2, 4, -3, RitualComponent.FIRE)); - meteorRitual.add(new RitualComponent(-3, 4, 2, RitualComponent.FIRE)); - meteorRitual.add(new RitualComponent(-3, 4, 3, RitualComponent.FIRE)); - meteorRitual.add(new RitualComponent(-2, 4, -3, RitualComponent.FIRE)); - meteorRitual.add(new RitualComponent(-3, 4, -2, RitualComponent.FIRE)); - meteorRitual.add(new RitualComponent(-3, 4, -3, RitualComponent.FIRE)); - return meteorRitual; - } -} diff --git a/BM_src/WayofTime/alchemicalWizardry/common/rituals/RitualEffectSupression.java b/BM_src/WayofTime/alchemicalWizardry/common/rituals/RitualEffectSupression.java deleted file mode 100644 index 44387ad9..00000000 --- a/BM_src/WayofTime/alchemicalWizardry/common/rituals/RitualEffectSupression.java +++ /dev/null @@ -1,179 +0,0 @@ -package WayofTime.alchemicalWizardry.common.rituals; - -import java.util.ArrayList; -import java.util.List; - -import net.minecraft.block.Block; -import net.minecraft.entity.player.EntityPlayer; -import net.minecraft.potion.Potion; -import net.minecraft.potion.PotionEffect; -import net.minecraft.server.MinecraftServer; -import net.minecraft.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; -import WayofTime.alchemicalWizardry.common.tileEntity.TESpectralContainer; - -public class RitualEffectSupression 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(); - - Block blockish = Block.blocksList[world.getBlockId(x, y-1, z)]; - int costMod = this.getCostModifier(blockish); - int radius = this.getRadiusForModifierBlock(blockish); - int masterRadius = radius; - - int yIndex = (int)(world.getWorldTime() % (2*radius + 1))-radius; - boolean expansion = false; - - if(ritualStone.getVar1()<(radius+1)) - { - expansion = true; - radius = ritualStone.getVar1(); - ritualStone.setVar1(ritualStone.getVar1() + 1); - } - - if (currentEssence < this.getCostPerRefresh()*costMod) - { - EntityPlayer entityOwner = MinecraftServer.getServer().getConfigurationManager().getPlayerForUsername(owner); - - if (entityOwner == null) - { - return; - } - - entityOwner.addPotionEffect(new PotionEffect(Potion.confusion.id, 80)); - } else - { - for (int i = -radius; i <= radius; i++) - { - for (int j = (expansion ? -radius : yIndex); j <= (expansion ? radius : yIndex); j++) - { - for(int k = -radius; k <= radius; k++) - { - if (i * i + j * j + k * k >= (radius + 0.50f) * (radius + 0.50f)) - { - continue; - } - - Block block = Block.blocksList[world.getBlockId(x+i, y+j, z+k)]; - - - if(SpellHelper.isBlockFluid(block)) - { - TESpectralContainer.createSpectralBlockAtLocation(world, x+i, y+j, z+k, 3*masterRadius); - } - else - { - TileEntity tile = world.getBlockTileEntity(x+i, y+j, z+k); - if(tile instanceof TESpectralContainer) - { - ((TESpectralContainer) tile).resetDuration(3*masterRadius); - } - } - } - } - } - - - data.currentEssence = currentEssence - this.getCostPerRefresh()*costMod; - data.markDirty(); - - } - } - - @Override - public int getCostPerRefresh() - { - return 2; - } - - @Override - public List getRitualComponentList() - { - ArrayList supressionRitual = new ArrayList(); - supressionRitual.add(new RitualComponent(2,0,2, RitualComponent.WATER)); - supressionRitual.add(new RitualComponent(2,0,-2, RitualComponent.WATER)); - supressionRitual.add(new RitualComponent(-2,0,2, RitualComponent.WATER)); - supressionRitual.add(new RitualComponent(-2,0,-2, RitualComponent.WATER)); - supressionRitual.add(new RitualComponent(-2,0,-1, RitualComponent.AIR)); - supressionRitual.add(new RitualComponent(-1,0,-2, RitualComponent.AIR)); - supressionRitual.add(new RitualComponent(-2,0,1, RitualComponent.AIR)); - supressionRitual.add(new RitualComponent(1,0,-2, RitualComponent.AIR)); - supressionRitual.add(new RitualComponent(2,0,1, RitualComponent.AIR)); - supressionRitual.add(new RitualComponent(1,0,2, RitualComponent.AIR)); - supressionRitual.add(new RitualComponent(2,0,-1, RitualComponent.AIR)); - supressionRitual.add(new RitualComponent(-1,0,2, RitualComponent.AIR)); - return supressionRitual; - } - - public int getRadiusForModifierBlock(Block block) - { - if(block == null) - { - return 10; - } - - if(block == Block.blockDiamond) - { - return 30; - } - - if(block == Block.blockGold) - { - return 20; - } - - if(block == Block.blockIron) - { - return 15; - } - - return 10; - } - - public int getCostModifier(Block block) - { - if(block == null) - { - return 1; - } - - if(block == Block.blockDiamond) - { - return 20; - } - - if(block == Block.blockGold) - { - return 10; - } - - if(block == Block.blockIron) - { - return 5; - } - - return 1; - } -} diff --git a/BM_src/WayofTime/alchemicalWizardry/common/rituals/RitualEffectUnbinding.java b/BM_src/WayofTime/alchemicalWizardry/common/rituals/RitualEffectUnbinding.java deleted file mode 100644 index a3031834..00000000 --- a/BM_src/WayofTime/alchemicalWizardry/common/rituals/RitualEffectUnbinding.java +++ /dev/null @@ -1,208 +0,0 @@ -package WayofTime.alchemicalWizardry.common.rituals; - -import java.util.ArrayList; -import java.util.Iterator; -import java.util.List; - -import net.minecraft.block.Block; -import net.minecraft.entity.effect.EntityLightningBolt; -import net.minecraft.entity.item.EntityItem; -import net.minecraft.entity.player.EntityPlayer; -import net.minecraft.item.ItemStack; -import net.minecraft.nbt.NBTTagCompound; -import net.minecraft.potion.Potion; -import net.minecraft.potion.PotionEffect; -import net.minecraft.server.MinecraftServer; -import net.minecraft.util.AxisAlignedBB; -import net.minecraft.world.World; -import WayofTime.alchemicalWizardry.ModBlocks; -import WayofTime.alchemicalWizardry.ModItems; -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.items.BoundArmour; -import WayofTime.alchemicalWizardry.common.items.sigil.SigilOfHolding; -import WayofTime.alchemicalWizardry.common.tileEntity.TEAltar; -import cpw.mods.fml.common.network.PacketDispatcher; - -public class RitualEffectUnbinding 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(); - - if (currentEssence < this.getCostPerRefresh()) - { - EntityPlayer entityOwner = MinecraftServer.getServer().getConfigurationManager().getPlayerForUsername(owner); - - if (entityOwner == null) - { - return; - } - - entityOwner.addPotionEffect(new PotionEffect(Potion.confusion.id, 80)); - } else - { - int d0 = 0; - AxisAlignedBB axisalignedbb = AxisAlignedBB.getAABBPool().getAABB((double) x, (double) y + 1, (double) z, (double) (x + 1), (double) (y + 2), (double) (z + 1)).expand(d0, d0, d0); - List list = world.getEntitiesWithinAABB(EntityItem.class, axisalignedbb); - Iterator iterator = list.iterator(); - EntityItem item; - - while (iterator.hasNext()) - { - item = (EntityItem) iterator.next(); -// double xDif = item.posX - (xCoord+0.5); -// double yDif = item.posY - (yCoord+1); -// double zDif = item.posZ - (zCoord+0.5); - ItemStack itemStack = item.getEntityItem(); - - if (itemStack == null) - { - continue; - } - - if (itemStack.itemID == ModItems.boundHelmet.itemID) - { - ritualStone.setVar1(5); - } else if (itemStack.itemID == ModItems.boundPlate.itemID) - { - ritualStone.setVar1(8); - } else if (itemStack.itemID == ModItems.boundLeggings.itemID) - { - ritualStone.setVar1(7); - } else if (itemStack.itemID == ModItems.boundBoots.itemID) - { - ritualStone.setVar1(4); - } else if (itemStack.itemID == ModItems.sigilOfHolding.itemID) - { - ritualStone.setVar1(-1); - } - - if (ritualStone.getVar1() > 0) - { - item.setDead(); - world.addWeatherEffect(new EntityLightningBolt(world, x, y + 1, z - 5)); - world.addWeatherEffect(new EntityLightningBolt(world, x, y + 1, z + 5)); - world.addWeatherEffect(new EntityLightningBolt(world, x - 5, y + 1, z)); - world.addWeatherEffect(new EntityLightningBolt(world, x + 5, y + 1, z)); - NBTTagCompound itemTag = itemStack.stackTagCompound; - ItemStack[] inv = ((BoundArmour) itemStack.getItem()).getInternalInventory(itemStack); - - if (inv != null) - { - for (ItemStack internalItem : inv) - { - if (internalItem != null) - { - EntityItem newItem = new EntityItem(world, x + 0.5, y + 1, z + 0.5, internalItem.copy()); - world.spawnEntityInWorld(newItem); - } - } - } - - EntityItem newItem = new EntityItem(world, x + 0.5, y + 1, z + 0.5, new ItemStack(Block.blocksList[ModBlocks.bloodSocket.blockID], ritualStone.getVar1())); - world.spawnEntityInWorld(newItem); - ritualStone.setActive(false); - break; - } else if (ritualStone.getVar1() == -1) - { - item.setDead(); - world.addWeatherEffect(new EntityLightningBolt(world, x, y + 1, z - 5)); - world.addWeatherEffect(new EntityLightningBolt(world, x, y + 1, z + 5)); - world.addWeatherEffect(new EntityLightningBolt(world, x - 5, y + 1, z)); - world.addWeatherEffect(new EntityLightningBolt(world, x + 5, y + 1, z)); - NBTTagCompound itemTag = itemStack.stackTagCompound; - ItemStack[] inv = ((SigilOfHolding) itemStack.getItem()).getInternalInventory(itemStack); - - if (inv != null) - { - for (ItemStack internalItem : inv) - { - if (internalItem != null) - { - EntityItem newItem = new EntityItem(world, x + 0.5, y + 1, z + 0.5, internalItem.copy()); - world.spawnEntityInWorld(newItem); - } - } - } - - EntityItem newItem = new EntityItem(world, x + 0.5, y + 1, z + 0.5, new ItemStack(ModItems.sigilOfHolding.itemID, 1, 0)); - world.spawnEntityInWorld(newItem); - ritualStone.setActive(false); - break; - } - - if (world.rand.nextInt(10) == 0) - { - PacketDispatcher.sendPacketToAllPlayers(TEAltar.getParticlePacket(item.posX, item.posY, item.posZ, (short) 1)); - } - } - - data.currentEssence = currentEssence - this.getCostPerRefresh(); - data.markDirty(); - } - } - - @Override - public int getCostPerRefresh() - { - // TODO Auto-generated method stub - return 0; - } - - @Override - public List getRitualComponentList() - { - ArrayList unbindingRitual = new ArrayList(); - unbindingRitual.add(new RitualComponent(-2, 0, 0, 4)); - unbindingRitual.add(new RitualComponent(2, 0, 0, 4)); - unbindingRitual.add(new RitualComponent(0, 0, 2, 4)); - unbindingRitual.add(new RitualComponent(0, 0, -2, 4)); - unbindingRitual.add(new RitualComponent(-2, 0, -2, 3)); - unbindingRitual.add(new RitualComponent(-2, 0, -3, 3)); - unbindingRitual.add(new RitualComponent(-3, 0, -2, 3)); - unbindingRitual.add(new RitualComponent(2, 0, -2, 3)); - unbindingRitual.add(new RitualComponent(2, 0, -3, 3)); - unbindingRitual.add(new RitualComponent(3, 0, -2, 3)); - unbindingRitual.add(new RitualComponent(-2, 0, 2, 3)); - unbindingRitual.add(new RitualComponent(-2, 0, 3, 3)); - unbindingRitual.add(new RitualComponent(-3, 0, 2, 3)); - unbindingRitual.add(new RitualComponent(2, 0, 2, 3)); - unbindingRitual.add(new RitualComponent(2, 0, 3, 3)); - unbindingRitual.add(new RitualComponent(3, 0, 2, 3)); - unbindingRitual.add(new RitualComponent(3, 1, 3, 0)); - unbindingRitual.add(new RitualComponent(3, 1, -3, 0)); - unbindingRitual.add(new RitualComponent(-3, 1, -3, 0)); - unbindingRitual.add(new RitualComponent(-3, 1, 3, 0)); - unbindingRitual.add(new RitualComponent(3, 2, 3, 0)); - unbindingRitual.add(new RitualComponent(3, 2, -3, 0)); - unbindingRitual.add(new RitualComponent(-3, 2, -3, 0)); - unbindingRitual.add(new RitualComponent(-3, 2, 3, 0)); - unbindingRitual.add(new RitualComponent(3, 3, 3, 2)); - unbindingRitual.add(new RitualComponent(3, 3, -3, 2)); - unbindingRitual.add(new RitualComponent(-3, 3, -3, 2)); - unbindingRitual.add(new RitualComponent(-3, 3, 3, 2)); - unbindingRitual.add(new RitualComponent(-5, 0, 0, 2)); - unbindingRitual.add(new RitualComponent(5, 0, 0, 2)); - unbindingRitual.add(new RitualComponent(0, 0, 5, 2)); - unbindingRitual.add(new RitualComponent(0, 0, -5, 2)); - return unbindingRitual; - } -} diff --git a/BM_src/WayofTime/alchemicalWizardry/common/rituals/RitualEffectWater.java b/BM_src/WayofTime/alchemicalWizardry/common/rituals/RitualEffectWater.java deleted file mode 100644 index 3fb7bd4a..00000000 --- a/BM_src/WayofTime/alchemicalWizardry/common/rituals/RitualEffectWater.java +++ /dev/null @@ -1,80 +0,0 @@ -package WayofTime.alchemicalWizardry.common.rituals; - -import java.util.ArrayList; -import java.util.List; - -import net.minecraft.block.Block; -import net.minecraft.entity.player.EntityPlayer; -import net.minecraft.potion.Potion; -import net.minecraft.potion.PotionEffect; -import net.minecraft.server.MinecraftServer; -import net.minecraft.world.World; -import 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.tileEntity.TEAltar; -import cpw.mods.fml.common.network.PacketDispatcher; - -public class RitualEffectWater extends RitualEffect -{ - 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(); - - if (world.isAirBlock(x, y + 1, z)) - { - if (currentEssence < this.getCostPerRefresh()) - { - EntityPlayer entityOwner = MinecraftServer.getServer().getConfigurationManager().getPlayerForUsername(owner); - - if (entityOwner == null) - { - return; - } - - entityOwner.addPotionEffect(new PotionEffect(Potion.confusion.id, 80)); - } else - { - for (int i = 0; i < 10; i++) - { - PacketDispatcher.sendPacketToAllPlayers(TEAltar.getParticlePacket(x, y, z, (short) 3)); - } - - world.setBlock(x, y + 1, z, Block.waterMoving.blockID, 0, 3); - data.currentEssence = currentEssence - this.getCostPerRefresh(); - data.markDirty(); - } - } - } - - public int getCostPerRefresh() - { - return 25; - } - - @Override - public List getRitualComponentList() - { - ArrayList waterRitual = new ArrayList(); - waterRitual.add(new RitualComponent(-1, 0, 1, 1)); - waterRitual.add(new RitualComponent(-1, 0, -1, 1)); - waterRitual.add(new RitualComponent(1, 0, -1, 1)); - waterRitual.add(new RitualComponent(1, 0, 1, 1)); - return waterRitual; - } -} diff --git a/BM_src/WayofTime/alchemicalWizardry/common/rituals/RitualEffectWellOfSuffering.java b/BM_src/WayofTime/alchemicalWizardry/common/rituals/RitualEffectWellOfSuffering.java deleted file mode 100644 index cb00f4e1..00000000 --- a/BM_src/WayofTime/alchemicalWizardry/common/rituals/RitualEffectWellOfSuffering.java +++ /dev/null @@ -1,181 +0,0 @@ -package WayofTime.alchemicalWizardry.common.rituals; - -import java.util.ArrayList; -import java.util.Iterator; -import java.util.List; - -import net.minecraft.entity.EntityLivingBase; -import net.minecraft.entity.player.EntityPlayer; -import net.minecraft.potion.Potion; -import net.minecraft.potion.PotionEffect; -import net.minecraft.server.MinecraftServer; -import net.minecraft.util.AxisAlignedBB; -import net.minecraft.util.DamageSource; -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.tileEntity.TEAltar; - -public class RitualEffectWellOfSuffering extends RitualEffect -{ - public final int timeDelay = 25; - public final int amount = 10; - - @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(); - - if (world.getWorldTime() % this.timeDelay != 0) - { - return; - } - -// if(!(world.getBlockTileEntity(x, y-1, z) instanceof TEAltar)) -// { -// return; -// } - TEAltar tileAltar = null; - boolean testFlag = false; - - for (int i = -5; i <= 5; i++) - { - for (int j = -5; j <= 5; j++) - { - for (int k = -10; k <= 10; k++) - { - if (world.getBlockTileEntity(x + i, y + k, z + j) instanceof TEAltar) - { - tileAltar = (TEAltar) world.getBlockTileEntity(x + i, y + k, z + j); - testFlag = true; - } - } - } - } - - if (!testFlag) - { - return; - } - - //tileAltar = (TEAltar)world.getBlockTileEntity(x,y-1,z); - int d0 = 15; - int vertRange = 10; - AxisAlignedBB axisalignedbb = AxisAlignedBB.getAABBPool().getAABB((double) x, (double) y, (double) z, (double) (x + 1), (double) (y + 1), (double) (z + 1)).expand(d0, vertRange, d0); - List list = world.getEntitiesWithinAABB(EntityLivingBase.class, axisalignedbb); - Iterator iterator1 = list.iterator(); - EntityLivingBase entity; - int entityCount = 0; - boolean flag = false; - - while (iterator1.hasNext()) - { - entity = (EntityLivingBase) iterator1.next(); - entityCount++; - } - - if (currentEssence < this.getCostPerRefresh() * entityCount) - { - EntityPlayer entityOwner = MinecraftServer.getServer().getConfigurationManager().getPlayerForUsername(owner); - - if (entityOwner == null) - { - return; - } - - entityOwner.addPotionEffect(new PotionEffect(Potion.confusion.id, 80)); - } else - { - Iterator iterator2 = list.iterator(); - entityCount = 0; - - while (iterator2.hasNext()) - { - entity = (EntityLivingBase) iterator2.next(); - - if (entity instanceof EntityPlayer) - { - continue; - } - - //entity.setHealth(entity.getHealth()-1); - entity.attackEntityFrom(DamageSource.outOfWorld, 1); - entityCount++; -// if(entity.getHealth()<=0.2f) -// { -// entity.onDeath(DamageSource.inFire); -// } - tileAltar.sacrificialDaggerCall(this.amount, true); - } - - data.currentEssence = currentEssence - this.getCostPerRefresh() * entityCount; - data.markDirty(); - } - } - - @Override - public int getCostPerRefresh() - { - // TODO Auto-generated method stub - return 2; - } - - @Override - public List getRitualComponentList() - { - ArrayList wellOfSufferingRitual = new ArrayList(); - wellOfSufferingRitual.add(new RitualComponent(1, 0, 1, RitualComponent.FIRE)); - wellOfSufferingRitual.add(new RitualComponent(-1, 0, 1, RitualComponent.FIRE)); - wellOfSufferingRitual.add(new RitualComponent(1, 0, -1, RitualComponent.FIRE)); - wellOfSufferingRitual.add(new RitualComponent(-1, 0, -1, RitualComponent.FIRE)); - wellOfSufferingRitual.add(new RitualComponent(2, -1, 2, RitualComponent.FIRE)); - wellOfSufferingRitual.add(new RitualComponent(2, -1, -2, RitualComponent.FIRE)); - wellOfSufferingRitual.add(new RitualComponent(-2, -1, 2, RitualComponent.FIRE)); - wellOfSufferingRitual.add(new RitualComponent(-2, -1, -2, RitualComponent.FIRE)); - wellOfSufferingRitual.add(new RitualComponent(0, -1, 2, RitualComponent.EARTH)); - wellOfSufferingRitual.add(new RitualComponent(2, -1, 0, RitualComponent.EARTH)); - wellOfSufferingRitual.add(new RitualComponent(0, -1, -2, RitualComponent.EARTH)); - wellOfSufferingRitual.add(new RitualComponent(-2, -1, 0, RitualComponent.EARTH)); - wellOfSufferingRitual.add(new RitualComponent(-3, -1, -3, RitualComponent.DUSK)); - wellOfSufferingRitual.add(new RitualComponent(3, -1, -3, RitualComponent.DUSK)); - wellOfSufferingRitual.add(new RitualComponent(-3, -1, 3, RitualComponent.DUSK)); - wellOfSufferingRitual.add(new RitualComponent(3, -1, 3, RitualComponent.DUSK)); - wellOfSufferingRitual.add(new RitualComponent(2, -1, 4, RitualComponent.WATER)); - wellOfSufferingRitual.add(new RitualComponent(4, -1, 2, RitualComponent.WATER)); - wellOfSufferingRitual.add(new RitualComponent(-2, -1, 4, RitualComponent.WATER)); - wellOfSufferingRitual.add(new RitualComponent(4, -1, -2, RitualComponent.WATER)); - wellOfSufferingRitual.add(new RitualComponent(2, -1, -4, RitualComponent.WATER)); - wellOfSufferingRitual.add(new RitualComponent(-4, -1, 2, RitualComponent.WATER)); - wellOfSufferingRitual.add(new RitualComponent(-2, -1, -4, RitualComponent.WATER)); - wellOfSufferingRitual.add(new RitualComponent(-4, -1, -2, RitualComponent.WATER)); - wellOfSufferingRitual.add(new RitualComponent(1, 0, 4, RitualComponent.WATER)); - wellOfSufferingRitual.add(new RitualComponent(4, 0, 1, RitualComponent.WATER)); - wellOfSufferingRitual.add(new RitualComponent(1, 0, -4, RitualComponent.WATER)); - wellOfSufferingRitual.add(new RitualComponent(-4, 0, 1, RitualComponent.WATER)); - wellOfSufferingRitual.add(new RitualComponent(-1, 0, 4, RitualComponent.WATER)); - wellOfSufferingRitual.add(new RitualComponent(4, 0, -1, RitualComponent.WATER)); - wellOfSufferingRitual.add(new RitualComponent(-1, 0, -4, RitualComponent.WATER)); - wellOfSufferingRitual.add(new RitualComponent(-4, 0, -1, RitualComponent.WATER)); - wellOfSufferingRitual.add(new RitualComponent(4, 1, 0, RitualComponent.AIR)); - wellOfSufferingRitual.add(new RitualComponent(0, 1, 4, RitualComponent.AIR)); - wellOfSufferingRitual.add(new RitualComponent(-4, 1, 0, RitualComponent.AIR)); - wellOfSufferingRitual.add(new RitualComponent(0, 1, -4, RitualComponent.AIR)); - return wellOfSufferingRitual; - } -} diff --git a/BM_src/WayofTime/alchemicalWizardry/common/spell/complex/EntitySpellProjectile.java b/BM_src/WayofTime/alchemicalWizardry/common/spell/complex/EntitySpellProjectile.java deleted file mode 100644 index 04e10b26..00000000 --- a/BM_src/WayofTime/alchemicalWizardry/common/spell/complex/EntitySpellProjectile.java +++ /dev/null @@ -1,597 +0,0 @@ -package WayofTime.alchemicalWizardry.common.spell.complex; - -import java.util.ArrayList; -import java.util.Iterator; -import java.util.LinkedList; -import java.util.List; - -import net.minecraft.block.Block; -import net.minecraft.entity.Entity; -import net.minecraft.entity.IProjectile; -import net.minecraft.entity.player.EntityPlayer; -import net.minecraft.nbt.NBTTagCompound; -import net.minecraft.nbt.NBTTagList; -import net.minecraft.util.AxisAlignedBB; -import net.minecraft.util.ChatMessageComponent; -import net.minecraft.util.DamageSource; -import net.minecraft.util.EnumMovingObjectType; -import net.minecraft.util.MathHelper; -import net.minecraft.util.MovingObjectPosition; -import net.minecraft.util.Vec3; -import net.minecraft.world.World; -import WayofTime.alchemicalWizardry.common.spell.complex.effect.SpellEffect; -import WayofTime.alchemicalWizardry.common.spell.complex.effect.impactEffects.IProjectileImpactEffect; -import WayofTime.alchemicalWizardry.common.spell.complex.effect.impactEffects.IProjectileUpdateEffect; -import cpw.mods.fml.relauncher.Side; -import cpw.mods.fml.relauncher.SideOnly; - -public class EntitySpellProjectile extends Entity implements IProjectile -{ - private int xTile = -1; - private int yTile = -1; - private int zTile = -1; - private int inTile = 0; - private int inData = 0; - private boolean inGround = false; - /** The owner of this arrow. */ - public EntityPlayer shootingEntity; - private int ticksInAir = 0; - private int ricochetCounter = 0; - private boolean scheduledForDeath = false; - private boolean isSilkTouch = false; - - //Custom variables - private int maxRicochet = 0; - private float damage = 1; - public List impactList = new ArrayList(); - private boolean penetration = false; - public List updateEffectList = new ArrayList(); - public List spellEffectList = new LinkedList(); - private int blocksBroken = 0; - - public EntitySpellProjectile(World par1World) - { - super(par1World); - this.setSize(0.5F, 0.5F); - } - - public EntitySpellProjectile(World par1World, double par2, double par4, double par6) - { - super(par1World); - this.setSize(0.5F, 0.5F); - this.setPosition(par2, par4, par6); - yOffset = 0.0F; - } - - public EntitySpellProjectile(World par1World, EntityPlayer par2EntityPlayer) - { - super(par1World); - shootingEntity = par2EntityPlayer; - float par3 = 0.8F; - this.setSize(0.1F, 0.1F); - this.setLocationAndAngles(par2EntityPlayer.posX, par2EntityPlayer.posY + par2EntityPlayer.getEyeHeight(), par2EntityPlayer.posZ, par2EntityPlayer.rotationYaw, par2EntityPlayer.rotationPitch); - posX -= MathHelper.cos(rotationYaw / 180.0F * (float)Math.PI) * 0.16F; - posY -= 0.2D; - posZ -= MathHelper.sin(rotationYaw / 180.0F * (float)Math.PI) * 0.16F; - this.setPosition(posX, posY, posZ); - yOffset = 0.0F; - motionX = -MathHelper.sin(rotationYaw / 180.0F * (float)Math.PI) * MathHelper.cos(rotationPitch / 180.0F * (float)Math.PI); - motionZ = MathHelper.cos(rotationYaw / 180.0F * (float)Math.PI) * MathHelper.cos(rotationPitch / 180.0F * (float)Math.PI); - motionY = -MathHelper.sin(rotationPitch / 180.0F * (float)Math.PI); - this.setThrowableHeading(motionX, motionY, motionZ, par3 * 1.5F, 1.0F); - - } - - @Override - protected void entityInit() { - dataWatcher.addObject(16, Byte.valueOf((byte)0)); - } - - /** - * Similar to setArrowHeading, it's point the throwable entity to a x, y, z - * direction. - */ - @Override - public void setThrowableHeading(double var1, double var3, double var5, float var7, float var8) { - float var9 = MathHelper.sqrt_double(var1 * var1 + var3 * var3 + var5 * var5); - var1 /= var9; - var3 /= var9; - var5 /= var9; - var1 += rand.nextGaussian() * 0.007499999832361937D * var8; - var3 += rand.nextGaussian() * 0.007499999832361937D * var8; - var5 += rand.nextGaussian() * 0.007499999832361937D * var8; - var1 *= var7; - var3 *= var7; - var5 *= var7; - motionX = var1; - motionY = var3; - motionZ = var5; - float var10 = MathHelper.sqrt_double(var1 * var1 + var5 * var5); - prevRotationYaw = rotationYaw = (float)(Math.atan2(var1, var5) * 180.0D / Math.PI); - prevRotationPitch = rotationPitch = (float)(Math.atan2(var3, var10) * 180.0D / Math.PI); - } - - @Override - @SideOnly(Side.CLIENT) - /** - * Sets the position and rotation. Only difference from the other one is no bounding on the rotation. Args: posX, - * posY, posZ, yaw, pitch - */ - public void setPositionAndRotation2(double par1, double par3, double par5, float par7, float par8, int par9) { - this.setPosition(par1, par3, par5); - this.setRotation(par7, par8); - } - - @Override - @SideOnly(Side.CLIENT) - /** - * Sets the velocity to the args. Args: x, y, z - */ - public void setVelocity(double par1, double par3, double par5) { - motionX = par1; - motionY = par3; - motionZ = par5; - if (prevRotationPitch == 0.0F && prevRotationYaw == 0.0F) { - float var7 = MathHelper.sqrt_double(par1 * par1 + par5 * par5); - prevRotationYaw = rotationYaw = (float)(Math.atan2(par1, par5) * 180.0D / Math.PI); - prevRotationPitch = rotationPitch = (float)(Math.atan2(par3, var7) * 180.0D / Math.PI); - prevRotationPitch = rotationPitch; - prevRotationYaw = rotationYaw; - this.setLocationAndAngles(posX, posY, posZ, rotationYaw, rotationPitch); - } - } - - /** - * Called to update the entity's position/logic. - */ - @Override - public void onUpdate() - { - super.onUpdate(); - this.performUpdateEffects(); - if (ticksInAir > 600) { - this.setDead(); - } - if (shootingEntity == null) { - List players = worldObj.getEntitiesWithinAABB(EntityPlayer.class, AxisAlignedBB.getBoundingBox(posX - 1, posY - 1, posZ - 1, posX + 1, posY + 1, posZ + 1)); - Iterator i = players.iterator(); - double closestDistance = Double.MAX_VALUE; - EntityPlayer closestPlayer = null; - while (i.hasNext()) { - EntityPlayer e = (EntityPlayer)i.next(); - double distance = e.getDistanceToEntity(this); - if (distance < closestDistance) { - closestPlayer = e; - } - } - if (closestPlayer != null) { - shootingEntity = closestPlayer; - } - } - if (prevRotationPitch == 0.0F && prevRotationYaw == 0.0F) { - float var1 = MathHelper.sqrt_double(motionX * motionX + motionZ * motionZ); - prevRotationYaw = rotationYaw = (float)(Math.atan2(motionX, motionZ) * 180.0D / Math.PI); - prevRotationPitch = rotationPitch = (float)(Math.atan2(motionY, var1) * 180.0D / Math.PI); - } - int var16 = worldObj.getBlockId(xTile, yTile, zTile); - if (var16 > 0) { - Block.blocksList[var16].setBlockBoundsBasedOnState(worldObj, xTile, yTile, zTile); - AxisAlignedBB var2 = Block.blocksList[var16].getCollisionBoundingBoxFromPool(worldObj, xTile, yTile, zTile); - if (var2 != null && var2.isVecInside(worldObj.getWorldVec3Pool().getVecFromPool(posX, posY, posZ))) { - inGround = true; - } - } - if (inGround) { - int var18 = worldObj.getBlockId(xTile, yTile, zTile); - int var19 = worldObj.getBlockMetadata(xTile, yTile, zTile); - if (var18 == inTile && var19 == inData) { - // this.groundImpact(); - // this.setDead(); - } - } else { - ++ticksInAir; - if (ticksInAir > 1 && ticksInAir < 3) { - worldObj.spawnParticle("flame", posX + smallGauss(0.1D), posY + smallGauss(0.1D), posZ + smallGauss(0.1D), 0D, 0D, 0D); - for (int particles = 0; particles < 3; particles++) { - this.doFiringParticles(); - } - } else { - this.doFlightParticles(); - } - Vec3 var17 = worldObj.getWorldVec3Pool().getVecFromPool(posX, posY, posZ); - Vec3 var3 = worldObj.getWorldVec3Pool().getVecFromPool(posX + motionX, posY + motionY, posZ + motionZ); - MovingObjectPosition var4 = worldObj.rayTraceBlocks_do_do(var17, var3, false, true); - var17 = worldObj.getWorldVec3Pool().getVecFromPool(posX, posY, posZ); - var3 = worldObj.getWorldVec3Pool().getVecFromPool(posX + motionX, posY + motionY, posZ + motionZ); - if (var4 != null) { - var3 = worldObj.getWorldVec3Pool().getVecFromPool(var4.hitVec.xCoord, var4.hitVec.yCoord, var4.hitVec.zCoord); - } - Entity var5 = null; - List var6 = worldObj.getEntitiesWithinAABBExcludingEntity(this, boundingBox.addCoord(motionX, motionY, motionZ).expand(1.0D, 1.0D, 1.0D)); - double var7 = 0.0D; - Iterator var9 = var6.iterator(); - float var11; - while (var9.hasNext()) { - Entity var10 = (Entity)var9.next(); - if (var10.canBeCollidedWith() && (var10 != shootingEntity || ticksInAir >= 5)) { - var11 = 0.3F; - AxisAlignedBB var12 = var10.boundingBox.expand(var11, var11, var11); - MovingObjectPosition var13 = var12.calculateIntercept(var17, var3); - if (var13 != null) { - double var14 = var17.distanceTo(var13.hitVec); - if (var14 < var7 || var7 == 0.0D) { - var5 = var10; - var7 = var14; - } - } - } - } - if (var5 != null) { - var4 = new MovingObjectPosition(var5); - } - if (var4 != null) { - this.onImpact(var4); - if (scheduledForDeath) { - this.setDead(); - } - } - posX += motionX; - posY += motionY; - posZ += motionZ; - MathHelper.sqrt_double(motionX * motionX + motionZ * motionZ); - this.setPosition(posX, posY, posZ); - this.doBlockCollisions(); - } - } - - private void doFlightParticles() { - if (ticksInAir % 3 == 0) { - double gauss = gaussian(1.0F); - worldObj.spawnParticle("mobSpell", posX, posY, posZ, gauss, gauss, 0.0F); - } - } - - private void doFiringParticles() { - worldObj.spawnParticle("mobSpellAmbient", posX + smallGauss(0.1D), posY + smallGauss(0.1D), posZ + smallGauss(0.1D), 0.5D, 0.5D, 0.5D); - worldObj.spawnParticle("flame", posX, posY, posZ, gaussian(motionX), gaussian(motionY), gaussian(motionZ)); - } - - /** - * (abstract) Protected helper method to write subclass entity data to NBT. - */ - @Override - public void writeEntityToNBT(NBTTagCompound par1NBTTagCompound) - { - par1NBTTagCompound.setShort("xTile", (short)xTile); - par1NBTTagCompound.setShort("yTile", (short)yTile); - par1NBTTagCompound.setShort("zTile", (short)zTile); - par1NBTTagCompound.setByte("inTile", (byte)inTile); - par1NBTTagCompound.setByte("inData", (byte)inData); - par1NBTTagCompound.setByte("inGround", (byte)(inGround ? 1 : 0)); - - NBTTagList effectList = new NBTTagList(); - - for(SpellEffect eff : spellEffectList) - { - effectList.appendTag(eff.getTag()); - } - -// for (String str : this.effectList) -// { -// if (str != null) -// { -// NBTTagCompound tag = new NBTTagCompound(); -// -// tag.setString("Class", str); -// effectList.appendTag(tag); -// } -// } - - par1NBTTagCompound.setTag("Effects", effectList); - par1NBTTagCompound.setInteger("blocksBroken", blocksBroken); - par1NBTTagCompound.setBoolean("isSilkTouch", isSilkTouch); - } - - /** - * (abstract) Protected helper method to read subclass entity data from NBT. - */ - @Override - public void readEntityFromNBT(NBTTagCompound par1NBTTagCompound) - { - xTile = par1NBTTagCompound.getShort("xTile"); - yTile = par1NBTTagCompound.getShort("yTile"); - zTile = par1NBTTagCompound.getShort("zTile"); - inTile = par1NBTTagCompound.getByte("inTile") & 255; - inData = par1NBTTagCompound.getByte("inData") & 255; - inGround = par1NBTTagCompound.getByte("inGround") == 1; - blocksBroken = par1NBTTagCompound.getInteger("blocksBroken"); - isSilkTouch = par1NBTTagCompound.getBoolean("isSilkTouch"); - - - NBTTagList tagList = par1NBTTagCompound.getTagList("Effects"); - - List spellEffectList = new LinkedList(); - for (int i = 0; i < tagList.tagCount(); i++) - { - NBTTagCompound tag = (NBTTagCompound) tagList.tagAt(i); - - SpellEffect eff = SpellEffect.getEffectFromTag(tag); - if(eff!=null) - { - spellEffectList.add(eff); - } - } - this.spellEffectList = spellEffectList; - - -// this.effectList = new LinkedList(); -// for (int i = 0; i < tagList.tagCount(); i++) -// { -// NBTTagCompound tag = (NBTTagCompound) tagList.tagAt(i); -// -// this.effectList.add(tag.getString("Class")); -// } - - //SpellParadigmProjectile parad = SpellParadigmProjectile.getParadigmForStringArray(effectList); - SpellParadigmProjectile parad = SpellParadigmProjectile.getParadigmForEffectArray(spellEffectList); - parad.applyAllSpellEffects(); - parad.prepareProjectile(this); - } - - /** - * returns if this entity triggers Block.onEntityWalking on the blocks they - * walk on. used for spiders and wolves to prevent them from trampling crops - */ - @Override - protected boolean canTriggerWalking() { - return false; - } - - @Override - @SideOnly(Side.CLIENT) - public float getShadowSize() { - return 0.0F; - } - - /** - * Sets the amount of knockback the arrow applies when it hits a mob. - */ - public void setKnockbackStrength(int par1) { - } - - /** - * If returns false, the item will not inflict any damage against entities. - */ - @Override - public boolean canAttackWithItem() { - return false; - } - - /** - * Whether the arrow has a stream of critical hit particles flying behind - * it. - */ - public void setIsCritical(boolean par1) { - byte var2 = dataWatcher.getWatchableObjectByte(16); - if (par1) { - dataWatcher.updateObject(16, Byte.valueOf((byte)(var2 | 1))); - } else { - dataWatcher.updateObject(16, Byte.valueOf((byte)(var2 & -2))); - } - } - - /** - * Whether the arrow has a stream of critical hit particles flying behind - * it. - */ - public boolean getIsCritical() { - byte var1 = dataWatcher.getWatchableObjectByte(16); - return (var1 & 1) != 0; - } - - private void onImpact(MovingObjectPosition mop) - { - if (mop.typeOfHit == EnumMovingObjectType.ENTITY && mop.entityHit != null) - { - if (mop.entityHit == shootingEntity) return; - this.onImpact(mop.entityHit); - this.performEntityImpactEffects(mop.entityHit); - } - else if (mop.typeOfHit == EnumMovingObjectType.TILE) - { - if(!this.penetration) - { - this.groundImpact(mop.sideHit); - this.performTileImpactEffects(mop); - } - } - } - - private void onImpact(Entity mop) //TODO - { - if (mop == shootingEntity && ticksInAir > 3) - { - shootingEntity.attackEntityFrom(DamageSource.causePlayerDamage(shootingEntity), 1); - this.setDead(); - } - else - { - doDamage(this.damage, mop); - } - spawnHitParticles("exorcism", 8); - this.setDead(); - } - - - private void spawnHitParticles(String string, int i) { - for (int particles = 0; particles < i; particles++) { - worldObj.spawnParticle("mobSpellAmbient", posX + smallGauss(0.1D), posY + smallGauss(0.1D), posZ + smallGauss(0.1D), posGauss(1.0F), posGauss(1.0F), 0.0F); - } - } - - private void doDamage(float f, Entity mop) - { - mop.attackEntityFrom(this.getDamageSource(), f); - } - - private DamageSource getDamageSource() - { - return DamageSource.causePlayerDamage(shootingEntity); - } - - private void groundImpact(int sideHit) { - this.ricochet(sideHit); - } - - private double smallGauss(double d) { - return (worldObj.rand.nextFloat() - 0.5D) * d; - } - - private double posGauss(double d) { - return rand.nextFloat() * 0.5D * d; - } - - private double gaussian(double d) { - return d + d * ((rand.nextFloat() - 0.5D) / 4); - } - - private void ricochet(int sideHit) { - switch (sideHit) { - case 0: - case 1: - // topHit, bottomHit, reflect Y - motionY = motionY * -1; - break; - case 2: - case 3: - // westHit, eastHit, reflect Z - motionZ = motionZ * -1; - break; - case 4: - case 5: - // southHit, northHit, reflect X - motionX = motionX * -1; - break; - } - ricochetCounter++; - if (ricochetCounter > this.getRicochetMax()) { - scheduledForDeath = true; - for (int particles = 0; particles < 4; particles++) { - switch (sideHit) { - case 0: - worldObj.spawnParticle("smoke", posX, posY, posZ, gaussian(0.1D), -gaussian(0.1D), gaussian(0.1D)); - break; - case 1: - worldObj.spawnParticle("smoke", posX, posY, posZ, gaussian(0.1D), gaussian(0.1D), gaussian(0.1D)); - break; - case 2: - worldObj.spawnParticle("smoke", posX, posY, posZ, gaussian(0.1D), gaussian(0.1D), -gaussian(0.1D)); - break; - case 3: - worldObj.spawnParticle("smoke", posX, posY, posZ, gaussian(0.1D), gaussian(0.1D), gaussian(0.1D)); - break; - case 4: - worldObj.spawnParticle("smoke", posX, posY, posZ, -gaussian(0.1D), gaussian(0.1D), gaussian(0.1D)); - break; - case 5: - worldObj.spawnParticle("smoke", posX, posY, posZ, gaussian(0.1D), gaussian(0.1D), gaussian(0.1D)); - break; - } - } - } - } - - //Custom stuff - public int getRicochetMax() - { - return this.maxRicochet; - } - - public void setRicochetMax(int ricochet) - { - this.maxRicochet = ricochet; - } - - public void setImpactList(List list) - { - this.impactList = list; - } - - public void setUpdateEffectList(List list) - { - this.updateEffectList = list; - } - - private void performEntityImpactEffects(Entity mop) - { - if(impactList!=null) - { - for(IProjectileImpactEffect impactEffect : impactList) - { - impactEffect.onEntityImpact(mop,this); - } - } - } - - private void performTileImpactEffects(MovingObjectPosition mop) - { - if(impactList!=null) - { - for(IProjectileImpactEffect impactEffect : impactList) - { - impactEffect.onTileImpact(worldObj, mop); - } - } - } - - private void performUpdateEffects() - { - if(updateEffectList!=null) - { - for(IProjectileUpdateEffect updateEffect : updateEffectList) - { - updateEffect.onUpdateEffect(this); - } - } - } - - public void setPenetration(boolean penetration) - { - this.penetration = penetration; - } - - public float getDamage() - { - return this.damage; - } - - public void setDamage(float damage) - { - this.damage = damage; - } - - public void setSpellEffectList(List list) - { - this.spellEffectList = list; - } - - public int getBlocksBroken() - { - return this.blocksBroken; - } - - public void setBlocksBroken(int blocksBroken) - { - this.blocksBroken = blocksBroken; - } - - public boolean getIsSilkTouch() - { - return this.isSilkTouch; - } - - public void setIsSilkTouch(boolean bool) - { - this.isSilkTouch = bool; - } -} diff --git a/BM_src/WayofTime/alchemicalWizardry/common/spell/complex/SpellModifier.java b/BM_src/WayofTime/alchemicalWizardry/common/spell/complex/SpellModifier.java deleted file mode 100644 index 39297530..00000000 --- a/BM_src/WayofTime/alchemicalWizardry/common/spell/complex/SpellModifier.java +++ /dev/null @@ -1,21 +0,0 @@ -package WayofTime.alchemicalWizardry.common.spell.complex; - -public class SpellModifier -{ - public static final int DEFAULT = 0; - public static final int OFFENSIVE = 1; - public static final int DEFENSIVE = 2; - public static final int ENVIRONMENTAL = 3; - - private int modifier; - - protected SpellModifier(int modifier) - { - this.modifier = modifier; - } - - public int getModifier() - { - return this.modifier; - } -} diff --git a/BM_src/WayofTime/alchemicalWizardry/common/spell/complex/SpellModifierDefault.java b/BM_src/WayofTime/alchemicalWizardry/common/spell/complex/SpellModifierDefault.java deleted file mode 100644 index fd379ae1..00000000 --- a/BM_src/WayofTime/alchemicalWizardry/common/spell/complex/SpellModifierDefault.java +++ /dev/null @@ -1,9 +0,0 @@ -package WayofTime.alchemicalWizardry.common.spell.complex; - -public class SpellModifierDefault extends SpellModifier -{ - public SpellModifierDefault() - { - super(SpellModifier.DEFAULT); - } -} diff --git a/BM_src/WayofTime/alchemicalWizardry/common/spell/complex/SpellModifierDefensive.java b/BM_src/WayofTime/alchemicalWizardry/common/spell/complex/SpellModifierDefensive.java deleted file mode 100644 index f9f69dbe..00000000 --- a/BM_src/WayofTime/alchemicalWizardry/common/spell/complex/SpellModifierDefensive.java +++ /dev/null @@ -1,9 +0,0 @@ -package WayofTime.alchemicalWizardry.common.spell.complex; - -public class SpellModifierDefensive extends SpellModifier -{ - public SpellModifierDefensive() - { - super(SpellModifier.DEFENSIVE); - } -} diff --git a/BM_src/WayofTime/alchemicalWizardry/common/spell/complex/SpellModifierEnvironmental.java b/BM_src/WayofTime/alchemicalWizardry/common/spell/complex/SpellModifierEnvironmental.java deleted file mode 100644 index ff9ef7f4..00000000 --- a/BM_src/WayofTime/alchemicalWizardry/common/spell/complex/SpellModifierEnvironmental.java +++ /dev/null @@ -1,9 +0,0 @@ -package WayofTime.alchemicalWizardry.common.spell.complex; - -public class SpellModifierEnvironmental extends SpellModifier -{ - public SpellModifierEnvironmental() - { - super(SpellModifier.ENVIRONMENTAL); - } -} diff --git a/BM_src/WayofTime/alchemicalWizardry/common/spell/complex/SpellModifierOffensive.java b/BM_src/WayofTime/alchemicalWizardry/common/spell/complex/SpellModifierOffensive.java deleted file mode 100644 index 783ab1e3..00000000 --- a/BM_src/WayofTime/alchemicalWizardry/common/spell/complex/SpellModifierOffensive.java +++ /dev/null @@ -1,9 +0,0 @@ -package WayofTime.alchemicalWizardry.common.spell.complex; - -public class SpellModifierOffensive extends SpellModifier -{ - public SpellModifierOffensive() - { - super(SpellModifier.OFFENSIVE); - } -} diff --git a/BM_src/WayofTime/alchemicalWizardry/common/spell/complex/SpellParadigm.java b/BM_src/WayofTime/alchemicalWizardry/common/spell/complex/SpellParadigm.java deleted file mode 100644 index 025d188c..00000000 --- a/BM_src/WayofTime/alchemicalWizardry/common/spell/complex/SpellParadigm.java +++ /dev/null @@ -1,157 +0,0 @@ -package WayofTime.alchemicalWizardry.common.spell.complex; - -import java.util.ArrayList; -import java.util.LinkedList; -import java.util.List; - -import net.minecraft.entity.player.EntityPlayer; -import net.minecraft.item.ItemStack; -import net.minecraft.world.World; -import WayofTime.alchemicalWizardry.common.spell.complex.effect.SpellEffect; -import WayofTime.alchemicalWizardry.common.spell.complex.enhancement.SpellEnhancement; - -public abstract class SpellParadigm -{ - protected List bufferedEffectList = new ArrayList(); - public List effectList = new LinkedList(); - - public void addBufferedEffect(SpellEffect effect) - { - if(effect!=null) - { - this.bufferedEffectList.add(effect); - - effectList.add(effect.getClass().getName()); - } - } - - public void modifyBufferedEffect(SpellModifier modifier) - { - SpellEffect effect = this.getBufferedEffect(); - if(effect!=null) - { - effect.modifyEffect(modifier); - - effectList.add(modifier.getClass().getName()); - } - } - - public void applyEnhancement(SpellEnhancement enh) - { - if(enh!=null) - { - if(bufferedEffectList.isEmpty()) - { - this.enhanceParadigm(enh); - } - else - { - SpellEffect effect = this.getBufferedEffect(); - if(effect!=null) - { - effect.enhanceEffect(enh); - } - } - - effectList.add(enh.getClass().getName()); - } - - } - - public abstract void enhanceParadigm(SpellEnhancement enh); - public abstract void castSpell(World world, EntityPlayer entityPlayer, ItemStack itemStack); - - public void applySpellEffect(SpellEffect effect) - { - effect.modifyParadigm(this); - } - - public void applyAllSpellEffects() - { - for(SpellEffect effect : bufferedEffectList) - { - this.applySpellEffect(effect); - } - } - - public SpellEffect getBufferedEffect() - { - if(bufferedEffectList.isEmpty()) - { - return null; - } - else - { - return bufferedEffectList.get(bufferedEffectList.size()-1); - } - } - - public int getTotalCost() - { - int cost = 0; - if(this.bufferedEffectList!=null && !this.bufferedEffectList.isEmpty()) - { - if(this instanceof SpellParadigmProjectile) - { - for(SpellEffect effect : bufferedEffectList) - { - cost+=effect.getCostForProjectile(); - } - }else if(this instanceof SpellParadigmSelf) - { - for(SpellEffect effect : bufferedEffectList) - { - cost+=effect.getCostForSelf(); - } - }else if(this instanceof SpellParadigmMelee) - { - for(SpellEffect effect : bufferedEffectList) - { - cost+=effect.getCostForMelee(); - } - } - - return (int)(cost*Math.sqrt(this.bufferedEffectList.size())); - } - - return getDefaultCost(); - } - - public abstract int getDefaultCost(); - - public int getBufferedEffectPower() - { - SpellEffect eff = this.getBufferedEffect(); - - if(eff!=null) - { - return eff.getPowerEnhancements(); - } - - return 0; - } - - public int getBufferedEffectCost() - { - SpellEffect eff = this.getBufferedEffect(); - - if(eff!=null) - { - return eff.getCostEnhancements(); - } - - return 0; - } - - public int getBufferedEffectPotency() - { - SpellEffect eff = this.getBufferedEffect(); - - if(eff!=null) - { - return eff.getPotencyEnhancements(); - } - - return 0; - } -} diff --git a/BM_src/WayofTime/alchemicalWizardry/common/spell/complex/SpellParadigmMelee.java b/BM_src/WayofTime/alchemicalWizardry/common/spell/complex/SpellParadigmMelee.java deleted file mode 100644 index b1cac7de..00000000 --- a/BM_src/WayofTime/alchemicalWizardry/common/spell/complex/SpellParadigmMelee.java +++ /dev/null @@ -1,70 +0,0 @@ -package WayofTime.alchemicalWizardry.common.spell.complex; - -import java.util.ArrayList; -import java.util.List; - -import net.minecraft.entity.player.EntityPlayer; -import net.minecraft.item.ItemStack; -import net.minecraft.world.World; -import WayofTime.alchemicalWizardry.common.items.EnergyItems; -import WayofTime.alchemicalWizardry.common.spell.complex.effect.impactEffects.IMeleeSpellEntityEffect; -import WayofTime.alchemicalWizardry.common.spell.complex.effect.impactEffects.IMeleeSpellWorldEffect; -import WayofTime.alchemicalWizardry.common.spell.complex.enhancement.SpellEnhancement; - -public class SpellParadigmMelee extends SpellParadigm -{ - private List entityEffectList; - private List worldEffectList; - - public SpellParadigmMelee() - { - this.entityEffectList = new ArrayList(); - this.worldEffectList = new ArrayList(); - } - - @Override - public void enhanceParadigm(SpellEnhancement enh) - { - - } - - @Override - public void castSpell(World world, EntityPlayer entityPlayer, ItemStack itemStack) - { - for(IMeleeSpellEntityEffect effect : entityEffectList) - { - effect.onEntityImpact(world, entityPlayer); - } - - for(IMeleeSpellWorldEffect effect : worldEffectList) - { - effect.onWorldEffect(world, entityPlayer); - } - - int cost = this.getTotalCost(); - - EnergyItems.syphonBatteries(itemStack, entityPlayer, cost); - } - - public void addEntityEffect(IMeleeSpellEntityEffect eff) - { - if(eff!=null) - { - this.entityEffectList.add(eff); - } - } - - public void addWorldEffect(IMeleeSpellWorldEffect eff) - { - if(eff!=null) - { - this.worldEffectList.add(eff); - } - } - - @Override - public int getDefaultCost() - { - return 0; - } -} diff --git a/BM_src/WayofTime/alchemicalWizardry/common/spell/complex/SpellParadigmProjectile.java b/BM_src/WayofTime/alchemicalWizardry/common/spell/complex/SpellParadigmProjectile.java deleted file mode 100644 index 1cc9b3a6..00000000 --- a/BM_src/WayofTime/alchemicalWizardry/common/spell/complex/SpellParadigmProjectile.java +++ /dev/null @@ -1,102 +0,0 @@ -package WayofTime.alchemicalWizardry.common.spell.complex; - -import java.util.ArrayList; -import java.util.List; - -import net.minecraft.entity.player.EntityPlayer; -import net.minecraft.item.ItemStack; -import net.minecraft.util.DamageSource; -import net.minecraft.world.World; -import WayofTime.alchemicalWizardry.common.items.EnergyItems; -import WayofTime.alchemicalWizardry.common.spell.complex.effect.SpellEffect; -import WayofTime.alchemicalWizardry.common.spell.complex.effect.impactEffects.IProjectileImpactEffect; -import WayofTime.alchemicalWizardry.common.spell.complex.effect.impactEffects.IProjectileUpdateEffect; -import WayofTime.alchemicalWizardry.common.spell.complex.effect.impactEffects.fire.ProjectileDefaultFire; -import WayofTime.alchemicalWizardry.common.spell.complex.enhancement.SpellEnhancement; - -public class SpellParadigmProjectile extends SpellParadigm -{ - public DamageSource damageSource; - public float damage; - public int cost; - public List impactList; - public List updateEffectList; - public boolean penetration; - public int ricochetMax; - public boolean isSilkTouch; - - public SpellParadigmProjectile() - { - this.damageSource = DamageSource.generic; - this.damage = 1; - this.cost = 0; - this.impactList = new ArrayList(); - this.updateEffectList = new ArrayList(); - this.penetration = false; - this.ricochetMax = 0; - this.isSilkTouch = false; - } - - @Override - public void enhanceParadigm(SpellEnhancement enh) - { - - } - - @Override - public void castSpell(World world, EntityPlayer entityPlayer, ItemStack itemStack) - { - EntitySpellProjectile proj = new EntitySpellProjectile(world, entityPlayer); - this.prepareProjectile(proj); - world.spawnEntityInWorld(proj); - int cost = this.getTotalCost(); - - EnergyItems.syphonBatteries(itemStack, entityPlayer, cost); - } - - public static SpellParadigmProjectile getParadigmForEffectArray(List effectList) - { - SpellParadigmProjectile parad = new SpellParadigmProjectile(); - - for(SpellEffect eff : effectList) - { - parad.addBufferedEffect(eff); - } - - return parad; - } - - public void prepareProjectile(EntitySpellProjectile proj) - { - proj.setDamage(damage); - proj.setImpactList(impactList); - proj.setUpdateEffectList(updateEffectList); - proj.setPenetration(penetration); - proj.setRicochetMax(ricochetMax); - proj.setIsSilkTouch(isSilkTouch); - proj.setSpellEffectList(bufferedEffectList); - } - - public void addImpactEffect(IProjectileImpactEffect eff) - { - if(eff!=null) - { - this.impactList.add(eff); - } - } - - public void addUpdateEffect(IProjectileUpdateEffect eff) - { - if(eff!=null) - { - this.updateEffectList.add(eff); - } - } - - @Override - public int getDefaultCost() - { - return 50; - } - -} diff --git a/BM_src/WayofTime/alchemicalWizardry/common/spell/complex/SpellParadigmSelf.java b/BM_src/WayofTime/alchemicalWizardry/common/spell/complex/SpellParadigmSelf.java deleted file mode 100644 index 94a7186a..00000000 --- a/BM_src/WayofTime/alchemicalWizardry/common/spell/complex/SpellParadigmSelf.java +++ /dev/null @@ -1,58 +0,0 @@ -package WayofTime.alchemicalWizardry.common.spell.complex; - -import java.util.ArrayList; -import java.util.List; - -import WayofTime.alchemicalWizardry.common.items.EnergyItems; -import WayofTime.alchemicalWizardry.common.spell.complex.effect.SpellEffect; -import WayofTime.alchemicalWizardry.common.spell.complex.effect.impactEffects.ISelfSpellEffect; -import WayofTime.alchemicalWizardry.common.spell.complex.enhancement.SpellEnhancement; -import net.minecraft.entity.player.EntityPlayer; -import net.minecraft.item.ItemStack; -import net.minecraft.world.World; - -public class SpellParadigmSelf extends SpellParadigm -{ - public List selfSpellEffectList; - - public SpellParadigmSelf() - { - selfSpellEffectList = new ArrayList(); - } - - @Override - public void enhanceParadigm(SpellEnhancement enh) - { - - } - - @Override - public void castSpell(World world, EntityPlayer entityPlayer, ItemStack itemStack) - { - this.applyAllSpellEffects(); - - for(ISelfSpellEffect eff : selfSpellEffectList) - { - eff.onSelfUse(world, entityPlayer); - } - - int cost = this.getTotalCost(); - - EnergyItems.syphonBatteries(itemStack, entityPlayer, cost); - } - - public void addSelfSpellEffect(ISelfSpellEffect eff) - { - if(eff!=null) - { - this.selfSpellEffectList.add(eff); - } - } - - @Override - public int getDefaultCost() - { - return 100; - } - -} diff --git a/BM_src/WayofTime/alchemicalWizardry/common/spell/complex/effect/SpellEffect.java b/BM_src/WayofTime/alchemicalWizardry/common/spell/complex/effect/SpellEffect.java deleted file mode 100644 index 7a090649..00000000 --- a/BM_src/WayofTime/alchemicalWizardry/common/spell/complex/effect/SpellEffect.java +++ /dev/null @@ -1,221 +0,0 @@ -package WayofTime.alchemicalWizardry.common.spell.complex.effect; - -import net.minecraft.nbt.NBTTagCompound; -import WayofTime.alchemicalWizardry.common.spell.complex.SpellModifier; -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.enhancement.SpellEnhancement; - -public abstract class SpellEffect -{ - protected int modifierState; - protected int powerEnhancement; - protected int costEnhancement; - protected int potencyEnhancement; - - public SpellEffect() - { - this.modifierState = SpellModifier.DEFAULT; - this.powerEnhancement = 0; - this.costEnhancement = 0; - this.potencyEnhancement = 0; - } - - public void enhanceEffect(SpellEnhancement enh) - { - if(enh!=null) - { - switch(enh.getState()) - { - case SpellEnhancement.POWER: this.powerEnhancement++; break; - case SpellEnhancement.EFFICIENCY: this.costEnhancement++; break; - case SpellEnhancement.POTENCY: this.potencyEnhancement++; break; - } - } - } - - public void modifyEffect(SpellModifier mod) - { - if(mod!=null) - modifierState = mod.getModifier(); - } - - public void modifyParadigm(SpellParadigm parad) - { - if(parad instanceof SpellParadigmProjectile) - { - this.modifyProjectileParadigm((SpellParadigmProjectile)parad); - } - if(parad instanceof SpellParadigmSelf) - { - this.modifySelfParadigm((SpellParadigmSelf)parad); - } - if(parad instanceof SpellParadigmMelee) - { - this.modifyMeleeParadigm((SpellParadigmMelee)parad); - } - } - - public void modifyProjectileParadigm(SpellParadigmProjectile parad) - { - switch(modifierState) - { - case SpellModifier.DEFAULT: this.defaultModificationProjectile(parad); break; - case SpellModifier.OFFENSIVE: this.offensiveModificationProjectile(parad); break; - case SpellModifier.DEFENSIVE: this.defensiveModificationProjectile(parad); break; - case SpellModifier.ENVIRONMENTAL: this.environmentalModificationProjectile(parad); break; - } - } - - public abstract void defaultModificationProjectile(SpellParadigmProjectile parad); - public abstract void offensiveModificationProjectile(SpellParadigmProjectile parad); - public abstract void defensiveModificationProjectile(SpellParadigmProjectile parad); - public abstract void environmentalModificationProjectile(SpellParadigmProjectile parad); - - public void modifySelfParadigm(SpellParadigmSelf parad) - { - switch(modifierState) - { - case SpellModifier.DEFAULT: this.defaultModificationSelf(parad); break; - case SpellModifier.OFFENSIVE: this.offensiveModificationSelf(parad); break; - case SpellModifier.DEFENSIVE: this.defensiveModificationSelf(parad); break; - case SpellModifier.ENVIRONMENTAL: this.environmentalModificationSelf(parad); break; - } - } - - public abstract void defaultModificationSelf(SpellParadigmSelf parad); - public abstract void offensiveModificationSelf(SpellParadigmSelf parad); - public abstract void defensiveModificationSelf(SpellParadigmSelf parad); - public abstract void environmentalModificationSelf(SpellParadigmSelf parad); - - public void modifyMeleeParadigm(SpellParadigmMelee parad) - { - switch(modifierState) - { - case SpellModifier.DEFAULT: this.defaultModificationMelee(parad); break; - case SpellModifier.OFFENSIVE: this.offensiveModificationMelee(parad); break; - case SpellModifier.DEFENSIVE: this.defensiveModificationMelee(parad); break; - case SpellModifier.ENVIRONMENTAL: this.environmentalModificationMelee(parad); break; - } - } - - public abstract void defaultModificationMelee(SpellParadigmMelee parad); - public abstract void offensiveModificationMelee(SpellParadigmMelee parad); - public abstract void defensiveModificationMelee(SpellParadigmMelee parad); - public abstract void environmentalModificationMelee(SpellParadigmMelee parad); - - public int getCostForProjectile() - { - switch(this.modifierState) - { - case SpellModifier.DEFAULT: return this.getCostForDefaultProjectile(); - case SpellModifier.OFFENSIVE: return this.getCostForOffenseProjectile(); - case SpellModifier.DEFENSIVE: return this.getCostForDefenseProjectile(); - case SpellModifier.ENVIRONMENTAL: return this.getCostForEnvironmentProjectile(); - } - return 0; - } - - protected abstract int getCostForDefaultProjectile(); - protected abstract int getCostForOffenseProjectile(); - protected abstract int getCostForDefenseProjectile(); - protected abstract int getCostForEnvironmentProjectile(); - - public int getCostForSelf() - { - switch(this.modifierState) - { - case SpellModifier.DEFAULT: return this.getCostForDefaultSelf(); - case SpellModifier.OFFENSIVE: return this.getCostForOffenseSelf(); - case SpellModifier.DEFENSIVE: return this.getCostForDefenseSelf(); - case SpellModifier.ENVIRONMENTAL: return this.getCostForEnvironmentSelf(); - } - return 0; - } - - protected abstract int getCostForDefaultSelf(); - protected abstract int getCostForOffenseSelf(); - protected abstract int getCostForDefenseSelf(); - protected abstract int getCostForEnvironmentSelf(); - - public int getCostForMelee() - { - switch(this.modifierState) - { - case SpellModifier.DEFAULT: return this.getCostForDefaultMelee(); - case SpellModifier.OFFENSIVE: return this.getCostForOffenseMelee(); - case SpellModifier.DEFENSIVE: return this.getCostForDefenseMelee(); - case SpellModifier.ENVIRONMENTAL: return this.getCostForEnvironmentMelee(); - } - return 0; - } - - protected abstract int getCostForDefaultMelee(); - protected abstract int getCostForOffenseMelee(); - protected abstract int getCostForDefenseMelee(); - protected abstract int getCostForEnvironmentMelee(); - - public int getPowerEnhancements() - { - return this.powerEnhancement; - } - - public int getCostEnhancements() - { - return this.costEnhancement; - } - - public int getPotencyEnhancements() - { - return this.potencyEnhancement; - } - - public NBTTagCompound getTag() - { - NBTTagCompound tag = new NBTTagCompound(); - - tag.setString("Class", this.getClass().getName()); - tag.setInteger("modifier", modifierState); - tag.setInteger("power", powerEnhancement); - tag.setInteger("cost", costEnhancement); - tag.setInteger("potency", potencyEnhancement); - - return tag; - } - - public static SpellEffect getEffectFromTag(NBTTagCompound tag) - { - try { - Class clazz = Class.forName(tag.getString("Class")); - if(clazz !=null) - { - try { - Object obj = clazz.newInstance(); - if(obj instanceof SpellEffect) - { - SpellEffect eff = (SpellEffect) obj; - - eff.modifierState = tag.getInteger("modifier"); - eff.powerEnhancement = tag.getInteger("power"); - eff.costEnhancement = tag.getInteger("cost"); - eff.potencyEnhancement = tag.getInteger("potency"); - - return eff; - } - } catch (InstantiationException e) { - // TODO Auto-generated catch block - e.printStackTrace(); - } catch (IllegalAccessException e) { - // TODO Auto-generated catch block - e.printStackTrace(); - } - } - } catch (ClassNotFoundException e) { - // TODO Auto-generated catch block - e.printStackTrace(); - } - return null; - } -} diff --git a/BM_src/WayofTime/alchemicalWizardry/common/spell/complex/effect/SpellEffectEarth.java b/BM_src/WayofTime/alchemicalWizardry/common/spell/complex/effect/SpellEffectEarth.java deleted file mode 100644 index a3c993c1..00000000 --- a/BM_src/WayofTime/alchemicalWizardry/common/spell/complex/effect/SpellEffectEarth.java +++ /dev/null @@ -1,165 +0,0 @@ -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.effect.impactEffects.earth.MeleeDefaultEarth; -import WayofTime.alchemicalWizardry.common.spell.complex.effect.impactEffects.earth.MeleeDefensiveEarth; -import WayofTime.alchemicalWizardry.common.spell.complex.effect.impactEffects.earth.MeleeEnvironmentalEarth; -import WayofTime.alchemicalWizardry.common.spell.complex.effect.impactEffects.earth.MeleeOffensiveEarth; -import WayofTime.alchemicalWizardry.common.spell.complex.effect.impactEffects.earth.ProjectileDefaultEarth; -import WayofTime.alchemicalWizardry.common.spell.complex.effect.impactEffects.earth.ProjectileDefensiveEarth; -import WayofTime.alchemicalWizardry.common.spell.complex.effect.impactEffects.earth.ProjectileEnvironmentalEarth; -import WayofTime.alchemicalWizardry.common.spell.complex.effect.impactEffects.earth.ProjectileOffensiveEarth; -import WayofTime.alchemicalWizardry.common.spell.complex.effect.impactEffects.earth.SelfDefaultEarth; -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; - -public class SpellEffectEarth extends SpellEffect -{ - @Override - public void defaultModificationProjectile(SpellParadigmProjectile parad) - { - parad.addImpactEffect(new ProjectileDefaultEarth(this.powerEnhancement, this.potencyEnhancement, this.costEnhancement)); - } - - @Override - public void offensiveModificationProjectile(SpellParadigmProjectile parad) - { - parad.addImpactEffect(new ProjectileOffensiveEarth(this.powerEnhancement, this.potencyEnhancement, this.costEnhancement)); - } - - @Override - public void defensiveModificationProjectile(SpellParadigmProjectile parad) - { - parad.addImpactEffect(new ProjectileDefensiveEarth(this.powerEnhancement,this.potencyEnhancement,this.costEnhancement)); - } - - @Override - public void environmentalModificationProjectile(SpellParadigmProjectile parad) - { - parad.addUpdateEffect(new ProjectileEnvironmentalEarth(this.powerEnhancement,this.potencyEnhancement,this.costEnhancement)); - } - - @Override - public void defaultModificationSelf(SpellParadigmSelf parad) - { - parad.addSelfSpellEffect(new SelfDefaultEarth(this.powerEnhancement, this.potencyEnhancement, this.costEnhancement)); - } - - @Override - public void offensiveModificationSelf(SpellParadigmSelf parad) - { - parad.addSelfSpellEffect(new SelfOffensiveEarth(this.powerEnhancement,this.potencyEnhancement, this.costEnhancement)); - } - - @Override - public void defensiveModificationSelf(SpellParadigmSelf parad) - { - parad.addSelfSpellEffect(new SelfDefensiveEarth(this.powerEnhancement,this.potencyEnhancement, this.costEnhancement)); - } - - @Override - public void environmentalModificationSelf(SpellParadigmSelf parad) - { - parad.addSelfSpellEffect(new SelfEnvironmentalEarth(this.powerEnhancement,this.potencyEnhancement,this.costEnhancement)); - } - - @Override - public void defaultModificationMelee(SpellParadigmMelee parad) - { - parad.addWorldEffect(new MeleeDefaultEarth(this.powerEnhancement, this.potencyEnhancement, this.costEnhancement)); - } - - @Override - public void offensiveModificationMelee(SpellParadigmMelee parad) - { - parad.addWorldEffect(new MeleeOffensiveEarth(this.powerEnhancement,this.potencyEnhancement,this.costEnhancement)); - } - - @Override - public void defensiveModificationMelee(SpellParadigmMelee parad) - { - parad.addWorldEffect(new MeleeDefensiveEarth(this.powerEnhancement, this.potencyEnhancement, this.costEnhancement)); - } - - @Override - public void environmentalModificationMelee(SpellParadigmMelee parad) - { - parad.addWorldEffect(new MeleeEnvironmentalEarth(this.powerEnhancement, this.potencyEnhancement, this.costEnhancement)); - } - - @Override - protected int getCostForDefaultProjectile() - { - return (int)(10*Math.pow((0.5*(this.powerEnhancement)+1)*2 + 1,3)*Math.pow(0.85, costEnhancement)); - } - - @Override - protected int getCostForOffenseProjectile() - { - - return (int)(10*(1.5*this.potencyEnhancement+1)*(Math.pow(1*this.powerEnhancement+1,2))*Math.pow(0.85, costEnhancement)); - } - - @Override - protected int getCostForDefenseProjectile() - { - return (int)(3*Math.pow((this.powerEnhancement*2+1),2)*(this.potencyEnhancement*2+1)*Math.pow(0.85, costEnhancement)); - } - - @Override - protected int getCostForEnvironmentProjectile() - { - return (int)(10*2*(0.1d*(this.potencyEnhancement+1))*Math.pow(3.47,this.potencyEnhancement)*Math.pow(0.85, costEnhancement)); - } - - @Override - protected int getCostForDefaultSelf() - { - return (int)(20*Math.pow(1.5*powerEnhancement+1,2)*(2*this.potencyEnhancement+1)*Math.pow(0.85, costEnhancement)); - } - - @Override - protected int getCostForOffenseSelf() - { - return (int)(10*Math.pow(2*this.powerEnhancement+1,2)*(this.potencyEnhancement+1)*Math.pow(0.85, costEnhancement)); - } - - @Override - protected int getCostForDefenseSelf() - { - return (int)(750*(1.1*this.powerEnhancement+1)*(0.5*this.potencyEnhancement+1)*Math.pow(0.85, costEnhancement)); - } - - @Override - protected int getCostForEnvironmentSelf() - { - return (int)(250*(1.2*this.potencyEnhancement+1)*(3*this.powerEnhancement+2.5)*Math.pow(0.85, costEnhancement)); - } - - @Override - protected int getCostForDefaultMelee() - { - return (int)(50*Math.pow(1.5*this.potencyEnhancement + 1,3)*(0.5*this.powerEnhancement + 1)*Math.pow(0.85, costEnhancement)); - } - - @Override - protected int getCostForOffenseMelee() - { - return (int)(20*Math.pow(1.5*this.powerEnhancement+1,3)*(0.25*this.powerEnhancement+1)*Math.pow(0.85, costEnhancement)); - } - - @Override - protected int getCostForDefenseMelee() - { - return (int)(5*(1.2*this.powerEnhancement+1)*(1.0f/3.0f*Math.pow(this.potencyEnhancement,2)+2+1.0f/2.0f*this.potencyEnhancement)*Math.pow(0.85, costEnhancement)); - } - - @Override - protected int getCostForEnvironmentMelee() - { - return (int)(500*Math.pow(2*this.potencyEnhancement+1, 3)*(0.25*this.powerEnhancement+1)*Math.pow(0.85, costEnhancement)); - } -} diff --git a/BM_src/WayofTime/alchemicalWizardry/common/spell/complex/effect/SpellEffectFire.java b/BM_src/WayofTime/alchemicalWizardry/common/spell/complex/effect/SpellEffectFire.java deleted file mode 100644 index edba6b15..00000000 --- a/BM_src/WayofTime/alchemicalWizardry/common/spell/complex/effect/SpellEffectFire.java +++ /dev/null @@ -1,165 +0,0 @@ -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.effect.impactEffects.fire.MeleeDefaultFire; -import WayofTime.alchemicalWizardry.common.spell.complex.effect.impactEffects.fire.MeleeDefensiveFire; -import WayofTime.alchemicalWizardry.common.spell.complex.effect.impactEffects.fire.MeleeEnvironmentalFire; -import WayofTime.alchemicalWizardry.common.spell.complex.effect.impactEffects.fire.MeleeOffensiveFire; -import WayofTime.alchemicalWizardry.common.spell.complex.effect.impactEffects.fire.ProjectileDefaultFire; -import WayofTime.alchemicalWizardry.common.spell.complex.effect.impactEffects.fire.ProjectileDefensiveFire; -import WayofTime.alchemicalWizardry.common.spell.complex.effect.impactEffects.fire.ProjectileEnvironmentalFire; -import WayofTime.alchemicalWizardry.common.spell.complex.effect.impactEffects.fire.ProjectileOffensiveFire; -import WayofTime.alchemicalWizardry.common.spell.complex.effect.impactEffects.fire.SelfDefaultFire; -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; - -public class SpellEffectFire extends SpellEffect -{ - @Override - public void defaultModificationProjectile(SpellParadigmProjectile parad) - { - parad.addImpactEffect(new ProjectileDefaultFire(this.powerEnhancement,this.potencyEnhancement,this.costEnhancement)); - parad.damage+=this.potencyEnhancement; - } - - @Override - public void offensiveModificationProjectile(SpellParadigmProjectile parad) - { - parad.addImpactEffect(new ProjectileOffensiveFire(this.powerEnhancement,this.potencyEnhancement,this.costEnhancement)); - } - - @Override - public void defensiveModificationProjectile(SpellParadigmProjectile parad) - { - parad.addImpactEffect(new ProjectileDefensiveFire(this.powerEnhancement,this.potencyEnhancement,this.costEnhancement)); - } - - @Override - public void environmentalModificationProjectile(SpellParadigmProjectile parad) - { - parad.addUpdateEffect(new ProjectileEnvironmentalFire(this.powerEnhancement,this.potencyEnhancement,this.costEnhancement)); - } - - @Override - public void defaultModificationSelf(SpellParadigmSelf parad) - { - parad.addSelfSpellEffect(new SelfDefaultFire(powerEnhancement, potencyEnhancement, costEnhancement)); - } - - @Override - public void offensiveModificationSelf(SpellParadigmSelf parad) - { - parad.addSelfSpellEffect(new SelfOffensiveFire(powerEnhancement,potencyEnhancement,costEnhancement)); - } - - @Override - public void defensiveModificationSelf(SpellParadigmSelf parad) - { - parad.addSelfSpellEffect(new SelfDefensiveFire(powerEnhancement,potencyEnhancement,costEnhancement)); - } - - @Override - public void environmentalModificationSelf(SpellParadigmSelf parad) - { - parad.addSelfSpellEffect(new SelfEnvironmentalFire(powerEnhancement, potencyEnhancement, costEnhancement)); - } - - @Override - public void defaultModificationMelee(SpellParadigmMelee parad) - { - parad.addEntityEffect(new MeleeDefaultFire(this.powerEnhancement, this.potencyEnhancement, this.costEnhancement)); - } - - @Override - public void offensiveModificationMelee(SpellParadigmMelee parad) - { - parad.addEntityEffect(new MeleeOffensiveFire(this.powerEnhancement,this.potencyEnhancement,this.costEnhancement)); - } - - @Override - public void defensiveModificationMelee(SpellParadigmMelee parad) - { - parad.addWorldEffect(new MeleeDefensiveFire(this.powerEnhancement,this.potencyEnhancement,this.costEnhancement)); - } - - @Override - public void environmentalModificationMelee(SpellParadigmMelee parad) - { - parad.addWorldEffect(new MeleeEnvironmentalFire(this.powerEnhancement,this.potencyEnhancement,this.costEnhancement)); - } - - @Override - protected int getCostForDefaultProjectile() - { - return (int)((5*Math.pow(1.5*this.powerEnhancement+1, 2)*(1.5*this.potencyEnhancement+1)+this.potencyEnhancement*15)*Math.pow(0.85, costEnhancement)); - } - - @Override - protected int getCostForOffenseProjectile() - { - return (int)(10*Math.pow((this.powerEnhancement)*1.3+1,2)*((1.5*this.potencyEnhancement+1))*Math.pow(0.85, costEnhancement)); - } - - @Override - protected int getCostForDefenseProjectile() - { - return (int)(25*Math.pow(1*this.powerEnhancement+1,2)*(1*this.potencyEnhancement+1)*Math.pow(0.85, costEnhancement)); - } - - @Override - protected int getCostForEnvironmentProjectile() - { - return (int)(75*(0.5*this.powerEnhancement+1)*(0.5*this.potencyEnhancement+1)*Math.pow(0.85, costEnhancement)); - } - - @Override - protected int getCostForDefaultSelf() - { - return 10*(int)(10*Math.pow(1.5, this.powerEnhancement+1.5*this.potencyEnhancement)*Math.pow(0.85, costEnhancement)); - } - - @Override - protected int getCostForOffenseSelf() - { - return (int)(300*(3*powerEnhancement+1)*(2*potencyEnhancement + 1)*Math.pow(0.85, costEnhancement)); - } - - @Override - protected int getCostForDefenseSelf() - { - return (int)(25*(3*this.potencyEnhancement+1)*(2*this.powerEnhancement+1)*Math.pow(0.85, costEnhancement)); - } - - @Override - protected int getCostForEnvironmentSelf() - { - return (int)((15*Math.pow(1.7, powerEnhancement)+10*Math.pow(potencyEnhancement,1.8))*Math.pow(0.85, costEnhancement)); - } - - @Override - protected int getCostForDefaultMelee() - { - return (int)(25*(1.2*this.potencyEnhancement+1)*(2.5*this.powerEnhancement+2)*Math.pow(0.85, costEnhancement)); - } - - @Override - protected int getCostForOffenseMelee() - { - return (int)(500*(1+this.potencyEnhancement)*(this.powerEnhancement+1)*Math.pow(0.85, costEnhancement)); - } - - @Override - protected int getCostForDefenseMelee() - { - return (int)(30*(1.5*potencyEnhancement+1)*(3*powerEnhancement+1)*Math.pow(0.85, costEnhancement)); - } - - @Override - protected int getCostForEnvironmentMelee() - { - return (int)(25*Math.pow(1.5*this.powerEnhancement+1,3)*(0.25*this.powerEnhancement+1)*Math.pow(0.85, costEnhancement)); - } -} diff --git a/BM_src/WayofTime/alchemicalWizardry/common/spell/complex/effect/SpellEffectIce.java b/BM_src/WayofTime/alchemicalWizardry/common/spell/complex/effect/SpellEffectIce.java deleted file mode 100644 index f11d92b0..00000000 --- a/BM_src/WayofTime/alchemicalWizardry/common/spell/complex/effect/SpellEffectIce.java +++ /dev/null @@ -1,167 +0,0 @@ -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.effect.impactEffects.ice.MeleeDefaultIce; -import WayofTime.alchemicalWizardry.common.spell.complex.effect.impactEffects.ice.MeleeDefensiveIce; -import WayofTime.alchemicalWizardry.common.spell.complex.effect.impactEffects.ice.MeleeEnvironmentalIce; -import WayofTime.alchemicalWizardry.common.spell.complex.effect.impactEffects.ice.MeleeOffensiveIce; -import WayofTime.alchemicalWizardry.common.spell.complex.effect.impactEffects.ice.ProjectileDefaultIce; -import WayofTime.alchemicalWizardry.common.spell.complex.effect.impactEffects.ice.ProjectileDefensiveIce; -import WayofTime.alchemicalWizardry.common.spell.complex.effect.impactEffects.ice.ProjectileEnvironmentalIce; -import WayofTime.alchemicalWizardry.common.spell.complex.effect.impactEffects.ice.ProjectileOffensiveIce; -import WayofTime.alchemicalWizardry.common.spell.complex.effect.impactEffects.ice.SelfDefaultIce; -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; - -public class SpellEffectIce extends SpellEffect -{ - @Override - public void defaultModificationProjectile(SpellParadigmProjectile parad) - { - parad.damage+=this.potencyEnhancement; - parad.addImpactEffect(new ProjectileDefaultIce(this.powerEnhancement,this.potencyEnhancement,this.costEnhancement)); - } - - @Override - public void offensiveModificationProjectile(SpellParadigmProjectile parad) - { - parad.damage+=2; - parad.addImpactEffect(new ProjectileOffensiveIce(this.powerEnhancement,this.potencyEnhancement,this.costEnhancement)); - } - - @Override - public void defensiveModificationProjectile(SpellParadigmProjectile parad) - { - parad.addImpactEffect(new ProjectileDefensiveIce(this.powerEnhancement,this.potencyEnhancement,this.costEnhancement)); - - } - - @Override - public void environmentalModificationProjectile(SpellParadigmProjectile parad) - { - parad.addUpdateEffect(new ProjectileEnvironmentalIce(this.powerEnhancement,this.potencyEnhancement,this.costEnhancement)); - } - - @Override - public void defaultModificationSelf(SpellParadigmSelf parad) - { - parad.addSelfSpellEffect(new SelfDefaultIce(this.powerEnhancement,this.potencyEnhancement, this.costEnhancement)); - } - - @Override - public void offensiveModificationSelf(SpellParadigmSelf parad) - { - parad.addSelfSpellEffect(new SelfOffensiveIce(this.powerEnhancement,this.potencyEnhancement,this.costEnhancement)); - } - - @Override - public void defensiveModificationSelf(SpellParadigmSelf parad) - { - parad.addSelfSpellEffect(new SelfDefensiveIce(this.powerEnhancement,this.potencyEnhancement,this.costEnhancement)); - } - - @Override - public void environmentalModificationSelf(SpellParadigmSelf parad) - { - parad.addSelfSpellEffect(new SelfEnvironmentalIce(this.powerEnhancement,this.potencyEnhancement,this.costEnhancement)); - } - - @Override - public void defaultModificationMelee(SpellParadigmMelee parad) - { - parad.addEntityEffect(new MeleeDefaultIce(this.powerEnhancement,this.potencyEnhancement,this.costEnhancement)); - } - - @Override - public void offensiveModificationMelee(SpellParadigmMelee parad) - { - parad.addEntityEffect(new MeleeOffensiveIce(this.powerEnhancement,this.potencyEnhancement,this.costEnhancement)); - } - - @Override - public void defensiveModificationMelee(SpellParadigmMelee parad) - { - parad.addWorldEffect(new MeleeDefensiveIce(this.powerEnhancement,this.potencyEnhancement,this.costEnhancement)); - } - - @Override - public void environmentalModificationMelee(SpellParadigmMelee parad) - { - parad.addEntityEffect(new MeleeEnvironmentalIce(this.powerEnhancement,this.potencyEnhancement,this.costEnhancement)); - } - - @Override - protected int getCostForDefaultProjectile() - { - return (int)((30)*(this.potencyEnhancement+1)*Math.pow(0.85, costEnhancement)); - } - - @Override - protected int getCostForOffenseProjectile() - { - return (int)((60)*(this.powerEnhancement+1)*(3*this.potencyEnhancement+1)*Math.pow(0.85, costEnhancement)); - } - - @Override - protected int getCostForDefenseProjectile() - { - return (int)(75*(2*this.powerEnhancement+1)*(this.potencyEnhancement+1)*Math.pow(0.85, costEnhancement)); - } - - @Override - protected int getCostForEnvironmentProjectile() - { - return (int)(200*(2*this.powerEnhancement+1)*(2*this.potencyEnhancement+1)*Math.pow(0.85, costEnhancement)); - } - - @Override - protected int getCostForDefaultSelf() - { - return (int)(20*(this.powerEnhancement+1)*Math.pow(0.85, costEnhancement)); - } - - @Override - protected int getCostForOffenseSelf() - { - return (int)(100*(2*this.powerEnhancement+1)*(2*this.potencyEnhancement+1)*Math.pow(0.85, costEnhancement)); - } - - @Override - protected int getCostForDefenseSelf() - { - return (int)(200*(3*powerEnhancement+1)*(2*potencyEnhancement + 1)*Math.pow(0.85, costEnhancement)); - } - - @Override - protected int getCostForEnvironmentSelf() - { - return (int)(10*(1.5*potencyEnhancement+1)*(3*powerEnhancement+1)*Math.pow(0.85, costEnhancement)); - } - - @Override - protected int getCostForDefaultMelee() - { - return (int)(250*(potencyEnhancement+1)*(1.5*powerEnhancement+1)*Math.pow(0.85, costEnhancement)); - } - - @Override - protected int getCostForOffenseMelee() - { - return (int)(40*(1.5*potencyEnhancement+1)*Math.pow(1.5, powerEnhancement)*Math.pow(0.85, costEnhancement)); - } - - @Override - protected int getCostForDefenseMelee() - { - return (int)(50*(0.5*potencyEnhancement+1)*(0.7*powerEnhancement+1)*(0.5*powerEnhancement+1)*Math.pow(0.85, costEnhancement)); - } - - @Override - protected int getCostForEnvironmentMelee() - { - return (int)(20*(0.5*potencyEnhancement+1)*(0*powerEnhancement+1)*Math.pow(0.85, costEnhancement)); - } -} diff --git a/BM_src/WayofTime/alchemicalWizardry/common/spell/complex/effect/SpellEffectWind.java b/BM_src/WayofTime/alchemicalWizardry/common/spell/complex/effect/SpellEffectWind.java deleted file mode 100644 index 91688c44..00000000 --- a/BM_src/WayofTime/alchemicalWizardry/common/spell/complex/effect/SpellEffectWind.java +++ /dev/null @@ -1,163 +0,0 @@ -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.effect.impactEffects.wind.MeleeDefaultWind; -import WayofTime.alchemicalWizardry.common.spell.complex.effect.impactEffects.wind.MeleeDefensiveWind; -import WayofTime.alchemicalWizardry.common.spell.complex.effect.impactEffects.wind.MeleeEnvironmentalWind; -import WayofTime.alchemicalWizardry.common.spell.complex.effect.impactEffects.wind.MeleeOffensiveWind; -import WayofTime.alchemicalWizardry.common.spell.complex.effect.impactEffects.wind.ProjectileDefaultWind; -import WayofTime.alchemicalWizardry.common.spell.complex.effect.impactEffects.wind.ProjectileEnvironmentalWind; -import WayofTime.alchemicalWizardry.common.spell.complex.effect.impactEffects.wind.ProjectileOffensiveWind; -import WayofTime.alchemicalWizardry.common.spell.complex.effect.impactEffects.wind.SelfDefaultWind; -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; - -public class SpellEffectWind extends SpellEffect -{ - @Override - public void defaultModificationProjectile(SpellParadigmProjectile parad) - { - parad.addImpactEffect(new ProjectileDefaultWind(this.powerEnhancement,this.potencyEnhancement,this.costEnhancement)); - } - - @Override - public void offensiveModificationProjectile(SpellParadigmProjectile parad) - { - parad.addImpactEffect(new ProjectileOffensiveWind(this.powerEnhancement,this.potencyEnhancement,this.costEnhancement)); - } - - @Override - public void defensiveModificationProjectile(SpellParadigmProjectile parad) - { - parad.isSilkTouch = true; - } - - @Override - public void environmentalModificationProjectile(SpellParadigmProjectile parad) - { - parad.addUpdateEffect(new ProjectileEnvironmentalWind(this.powerEnhancement,this.potencyEnhancement,this.costEnhancement)); - } - - @Override - public void defaultModificationSelf(SpellParadigmSelf parad) - { - parad.addSelfSpellEffect(new SelfDefaultWind(this.powerEnhancement,this.potencyEnhancement,this.costEnhancement)); - } - - @Override - public void offensiveModificationSelf(SpellParadigmSelf parad) - { - parad.addSelfSpellEffect(new SelfOffensiveWind(this.powerEnhancement,this.potencyEnhancement,this.costEnhancement)); - } - - @Override - public void defensiveModificationSelf(SpellParadigmSelf parad) - { - parad.addSelfSpellEffect(new SelfDefensiveWind(this.powerEnhancement,this.potencyEnhancement,this.costEnhancement)); - } - - @Override - public void environmentalModificationSelf(SpellParadigmSelf parad) - { - parad.addSelfSpellEffect(new SelfEnvironmentalWind(this.powerEnhancement,this.potencyEnhancement,this.costEnhancement)); - } - - @Override - public void defaultModificationMelee(SpellParadigmMelee parad) - { - parad.addEntityEffect(new MeleeDefaultWind(this.powerEnhancement,this.potencyEnhancement,this.costEnhancement)); - } - - @Override - public void offensiveModificationMelee(SpellParadigmMelee parad) - { - parad.addEntityEffect(new MeleeOffensiveWind(this.powerEnhancement,this.potencyEnhancement,this.costEnhancement)); - } - - @Override - public void defensiveModificationMelee(SpellParadigmMelee parad) - { - parad.addEntityEffect(new MeleeDefensiveWind(this.powerEnhancement,this.potencyEnhancement,this.costEnhancement)); - } - - @Override - public void environmentalModificationMelee(SpellParadigmMelee parad) - { - parad.addWorldEffect(new MeleeEnvironmentalWind(this.powerEnhancement,this.potencyEnhancement,this.costEnhancement)); - } - - @Override - protected int getCostForDefaultProjectile() - { - return (int)(100*(this.potencyEnhancement+1)*Math.pow(0.85, costEnhancement)); - } - - @Override - protected int getCostForOffenseProjectile() - { - return (int)(100*(0.5*this.potencyEnhancement+1)*(this.powerEnhancement+1)*Math.pow(0.85, costEnhancement)); - } - - @Override - protected int getCostForDefenseProjectile() - { - return (int)(100*(this.potencyEnhancement+1)); - } - - @Override - protected int getCostForEnvironmentProjectile() - { - return (int)(50*(this.powerEnhancement+1)*(this.potencyEnhancement+1)*Math.pow(0.85, costEnhancement)); - } - - @Override - protected int getCostForDefaultSelf() - { - return (int)(100*Math.pow(0.85, costEnhancement)); - } - - @Override - protected int getCostForOffenseSelf() - { - return (int)(100*(0.5*this.powerEnhancement+1)*Math.pow(0.85, costEnhancement)); - } - - @Override - protected int getCostForDefenseSelf() - { - return (int)(500*(0.7d*this.powerEnhancement+1)*(0.8*this.potencyEnhancement+1)*Math.pow(0.85, costEnhancement)); - } - - @Override - protected int getCostForEnvironmentSelf() - { - return (int)(500*(0.7d*this.powerEnhancement+1)*(0.2*this.potencyEnhancement+1)*Math.pow(0.85, costEnhancement)); - } - - @Override - protected int getCostForDefaultMelee() - { - return (int)(350*(1.0*this.potencyEnhancement+1)*(1.2*this.powerEnhancement+1)*Math.pow(0.85, costEnhancement)); - } - - @Override - protected int getCostForOffenseMelee() - { - return (int)(250*(1.0*this.potencyEnhancement+1)*(0.7*this.powerEnhancement+1)*Math.pow(0.85, costEnhancement)); - } - - @Override - protected int getCostForDefenseMelee() - { - return (int)(150*(1.0*this.potencyEnhancement+1)*(0.7*this.powerEnhancement+1)*Math.pow(0.85, costEnhancement)); - } - - @Override - protected int getCostForEnvironmentMelee() - { - return (int)(100*(1.0*this.potencyEnhancement+1)*(0.7*this.powerEnhancement+1)*Math.pow(0.85, costEnhancement)); - } -} diff --git a/BM_src/WayofTime/alchemicalWizardry/common/spell/complex/effect/SpellHelper.java b/BM_src/WayofTime/alchemicalWizardry/common/spell/complex/effect/SpellHelper.java deleted file mode 100644 index 390a69c3..00000000 --- a/BM_src/WayofTime/alchemicalWizardry/common/spell/complex/effect/SpellHelper.java +++ /dev/null @@ -1,242 +0,0 @@ -package WayofTime.alchemicalWizardry.common.spell.complex.effect; - -import java.util.ArrayList; -import java.util.List; -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; -import net.minecraft.item.ItemStack; -import net.minecraft.item.crafting.FurnaceRecipes; -import net.minecraft.util.AxisAlignedBB; -import net.minecraft.util.Vec3; -import net.minecraft.world.World; -import net.minecraftforge.common.FakePlayer; -import net.minecraftforge.common.ForgeDirection; -import net.minecraftforge.fluids.IFluidBlock; -import net.minecraftforge.oredict.OreDictionary; -import WayofTime.alchemicalWizardry.AlchemicalWizardry; -import WayofTime.alchemicalWizardry.common.PacketHandler; -import cpw.mods.fml.common.network.PacketDispatcher; -import cpw.mods.fml.common.network.Player; - -public class SpellHelper -{ - public static Random rand = new Random(); - public static final double root2 = Math.sqrt(2); - - public static void smeltBlockInWorld(World world, int posX, int posY, int posZ) - { - FurnaceRecipes recipes = FurnaceRecipes.smelting(); - - Block block = Block.blocksList[world.getBlockId(posX, posY, posZ)]; - if(block==null) - { - return; - } - - int meta = world.getBlockMetadata(posX, posY, posZ); - - ItemStack smeltedStack = recipes.getSmeltingResult(new ItemStack(block,1,meta)); - if(smeltedStack!=null && smeltedStack.getItem() instanceof ItemBlock) - { - world.setBlock(posX, posY, posZ, smeltedStack.itemID, smeltedStack.getItemDamage(), 3); - } - } - - public static List getEntitiesInRange(World world, double posX, double posY, double posZ, double horizontalRadius, double verticalRadius) - { - 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 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)); - } - - public static double gaussian(double d) - { - return d * ((rand.nextFloat() - 0.5D)); - } - - public static Vec3 getEntityBlockVector(Entity entity) - { - int posX = (int) Math.round(entity.posX - 0.5f); - int posY = (int) entity.posY; - int posZ = (int) Math.round(entity.posZ - 0.5f); - - return entity.getLookVec().createVectorHelper(posX, posY, posZ); - } - - public static ForgeDirection getDirectionForLookVector(Vec3 lookVec) - { - double distance = lookVec.lengthVector(); - - if(lookVec.yCoord>distance*0.9) - { - return ForgeDirection.UP; - } - if(lookVec.yCoordradius*1/root2) - { - return ForgeDirection.SOUTH; - } - if(lookVec.zCoord<-radius*1/root2) - { - return ForgeDirection.NORTH; - } - if(lookVec.xCoord>radius*1/root2) - { - return ForgeDirection.EAST; - } - if(lookVec.xCoord<-radius*1/root2) - { - return ForgeDirection.WEST; - } - - return ForgeDirection.EAST; - } - - public static void freezeWaterBlock(World world, int posX, int posY, int posZ) - { - int id = world.getBlockId(posX, posY, posZ); - - if(id == Block.waterStill.blockID || id == Block.waterMoving.blockID) - { - world.setBlock(posX, posY, posZ, Block.ice.blockID); - } - } - - public static String getUsername(EntityPlayer player) - { - return player.getDisplayName(); - } - - public static boolean isFakePlayer(World world, EntityPlayer player) - { - if(world.isRemote) - { - return false; - } - - if(player instanceof FakePlayer || player.username.contains("[CoFH]")) - { - return true; - } - - String str = player.getClass().getSimpleName(); - if(str.contains("GC")) - { - return false; - } - - if(player.getClass().equals(EntityPlayerMP.class)) - { - return false; - } - - return false; - } - - public static void smashBlock(World world, int posX, int posY, int posZ) - { - Block block = Block.blocksList[world.getBlockId(posX, posY, posZ)]; - - if(block==Block.stone) - { - world.setBlock(posX, posY, posZ, Block.cobblestone.blockID); - return; - } - else if(block==Block.cobblestone) - { - world.setBlock(posX, posY, posZ, Block.gravel.blockID); - return; - } - else if(block==Block.gravel) - { - world.setBlock(posX, posY, posZ, Block.sand.blockID); - return; - } - } - - public static boolean isBlockFluid(Block block) - { - return block instanceof BlockFluid || block instanceof IFluidBlock; - } - - public static void evaporateWaterBlock(World world, int posX, int posY, int posZ) - { - int id = world.getBlockId(posX, posY, posZ); - Block block = Block.blocksList[id]; - - if(block == Block.waterMoving || block == Block.waterStill) - { - world.setBlockToAir(posX, posY, posZ); - } - } - - public static ItemStack getDustForOre(ItemStack item) - { - String oreName = OreDictionary.getOreName(OreDictionary.getOreID(item)); - - if(oreName.contains("ore")) - { - String lowercaseOre = oreName.toLowerCase(); - boolean isAllowed = false; - - for(String str : AlchemicalWizardry.allowedCrushedOresArray) - { - String testStr = str.toLowerCase(); - - if(lowercaseOre.contains(testStr)) - { - isAllowed = true; - break; - } - } - - if(!isAllowed) - { - return null; - } - - String dustName = oreName.replace("ore", "dust"); - - ArrayList items = OreDictionary.getOres(dustName); - - if(items!=null && items.size()>=1) - { - return(items.get(0).copy()); - } - } - - return null; - } - - public static void setPlayerSpeedFromServer(EntityPlayer player, double xVel, double yVel, double zVel) - { - 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/spell/complex/effect/impactEffects/ExtrapolatedMeleeEntityEffect.java b/BM_src/WayofTime/alchemicalWizardry/common/spell/complex/effect/impactEffects/ExtrapolatedMeleeEntityEffect.java deleted file mode 100644 index 7e48b5a8..00000000 --- a/BM_src/WayofTime/alchemicalWizardry/common/spell/complex/effect/impactEffects/ExtrapolatedMeleeEntityEffect.java +++ /dev/null @@ -1,74 +0,0 @@ -package WayofTime.alchemicalWizardry.common.spell.complex.effect.impactEffects; - -import java.util.List; - -import net.minecraft.entity.Entity; -import net.minecraft.entity.item.EntityItem; -import net.minecraft.entity.player.EntityPlayer; -import net.minecraft.util.AxisAlignedBB; -import net.minecraft.util.Vec3; -import net.minecraft.world.World; - -public abstract class ExtrapolatedMeleeEntityEffect implements IMeleeSpellEntityEffect -{ - protected float range; - protected float radius; - protected int powerUpgrades; - protected int potencyUpgrades; - protected int costUpgrades; - protected int maxHit; - - public ExtrapolatedMeleeEntityEffect(int power, int potency, int cost) - { - this.powerUpgrades = power; - this.potencyUpgrades = potency; - this.costUpgrades = cost; - this.range = 0; - this.radius = 0; - this.maxHit = 1; - } - - @Override - public void onEntityImpact(World world, EntityPlayer entityPlayer) - { - Vec3 lookVec = entityPlayer.getLook(range); - double x = entityPlayer.posX + lookVec.xCoord; - double y = entityPlayer.posY + entityPlayer.getEyeHeight() + lookVec.yCoord; - double z = entityPlayer.posZ + lookVec.zCoord; - - List entities = world.getEntitiesWithinAABB(Entity.class, AxisAlignedBB.getBoundingBox(x-0.5f, y-0.5f, z-0.5f, x + 0.5f, y + 0.5f, z + 0.5f).expand(radius, radius, radius)); - int hit = 0; - - if(entities!=null) - { - for(Entity entity : entities) - { - if(hit=maxBlocks) - { - return; - } - - for(int i=-horizRange; i<=horizRange; i++) - { - for(int j=-vertRange; j<=vertRange; j++) - { - for(int k=-horizRange; k<=horizRange; k++) - { - if(!worldObj.isAirBlock(posX+i, posY+j, posZ+k)&&blocksBroken=-vertRange; j--) - { - if(!world.isAirBlock(posX+i, posY+j, posZ+k)&&!SpellHelper.isBlockFluid(Block.blocksList[world.getBlockId(posX+i, posY+j, posZ+k)])) - { - BlockTeleposer.swapBlocks(world, world, posX+i, posY, posZ+k, posX+i, posY+j, posZ+k); - - break; - } - } - } - } - } -} diff --git a/BM_src/WayofTime/alchemicalWizardry/common/spell/complex/effect/impactEffects/earth/SelfDefensiveEarth.java b/BM_src/WayofTime/alchemicalWizardry/common/spell/complex/effect/impactEffects/earth/SelfDefensiveEarth.java deleted file mode 100644 index d0053320..00000000 --- a/BM_src/WayofTime/alchemicalWizardry/common/spell/complex/effect/impactEffects/earth/SelfDefensiveEarth.java +++ /dev/null @@ -1,27 +0,0 @@ -package WayofTime.alchemicalWizardry.common.spell.complex.effect.impactEffects.earth; - -import net.minecraft.entity.player.EntityPlayer; -import net.minecraft.potion.Potion; -import net.minecraft.potion.PotionEffect; -import net.minecraft.world.World; -import WayofTime.alchemicalWizardry.AlchemicalWizardry; -import WayofTime.alchemicalWizardry.common.spell.complex.effect.impactEffects.SelfSpellEffect; - -public class SelfDefensiveEarth extends SelfSpellEffect -{ - - public SelfDefensiveEarth(int power, int potency, int cost) - { - super(power, potency, cost); - } - - @Override - public void onSelfUse(World world, EntityPlayer player) - { - int pot = 2*this.potencyUpgrades + 1; - int duration = 20*60*(this.powerUpgrades+1); - - player.addPotionEffect(new PotionEffect(Potion.field_76434_w.id,duration, pot)); - player.addPotionEffect(new PotionEffect(AlchemicalWizardry.customPotionHeavyHeart.id, duration, pot)); - } -} diff --git a/BM_src/WayofTime/alchemicalWizardry/common/spell/complex/effect/impactEffects/earth/SelfEnvironmentalEarth.java b/BM_src/WayofTime/alchemicalWizardry/common/spell/complex/effect/impactEffects/earth/SelfEnvironmentalEarth.java deleted file mode 100644 index d73381ee..00000000 --- a/BM_src/WayofTime/alchemicalWizardry/common/spell/complex/effect/impactEffects/earth/SelfEnvironmentalEarth.java +++ /dev/null @@ -1,37 +0,0 @@ -package WayofTime.alchemicalWizardry.common.spell.complex.effect.impactEffects.earth; - -import java.util.List; - -import net.minecraft.entity.Entity; -import net.minecraft.entity.EntityLiving; -import net.minecraft.entity.player.EntityPlayer; -import net.minecraft.potion.Potion; -import net.minecraft.potion.PotionEffect; -import net.minecraft.world.World; -import WayofTime.alchemicalWizardry.common.spell.complex.effect.SpellHelper; -import WayofTime.alchemicalWizardry.common.spell.complex.effect.impactEffects.SelfSpellEffect; - -public class SelfEnvironmentalEarth extends SelfSpellEffect -{ - public SelfEnvironmentalEarth(int power, int potency, int cost) - { - super(power, potency, cost); - } - - @Override - public void onSelfUse(World world, EntityPlayer player) - { - float radius = this.powerUpgrades*2 + 1.5f; - int dur = this.powerUpgrades*5*20 + 60; - - List entities = SpellHelper.getEntitiesInRange(world, player.posX, player.posY, player.posZ, radius, radius); - - for(Entity entity : entities) - { - if(entity instanceof EntityLiving) - { - ((EntityLiving) entity).addPotionEffect(new PotionEffect(Potion.weakness.id,dur,this.potencyUpgrades)); - } - } - } -} diff --git a/BM_src/WayofTime/alchemicalWizardry/common/spell/complex/effect/impactEffects/earth/SelfOffensiveEarth.java b/BM_src/WayofTime/alchemicalWizardry/common/spell/complex/effect/impactEffects/earth/SelfOffensiveEarth.java deleted file mode 100644 index 6637e9d8..00000000 --- a/BM_src/WayofTime/alchemicalWizardry/common/spell/complex/effect/impactEffects/earth/SelfOffensiveEarth.java +++ /dev/null @@ -1,43 +0,0 @@ -package WayofTime.alchemicalWizardry.common.spell.complex.effect.impactEffects.earth; - -import net.minecraft.entity.player.EntityPlayer; -import net.minecraft.util.Vec3; -import net.minecraft.world.World; -import WayofTime.alchemicalWizardry.common.spell.complex.effect.SpellHelper; -import WayofTime.alchemicalWizardry.common.spell.complex.effect.impactEffects.SelfSpellEffect; - -public class SelfOffensiveEarth extends SelfSpellEffect -{ - - public SelfOffensiveEarth(int power, int potency, int cost) - { - super(power, potency, cost); - } - - @Override - public void onSelfUse(World world, EntityPlayer player) - { - int horizRadius = this.powerUpgrades; - int vertRadius = this.potencyUpgrades + 1; - - Vec3 blockVec = SpellHelper.getEntityBlockVector(player); - - int posX = (int)(blockVec.xCoord); - int posY = (int)(blockVec.yCoord); - int posZ = (int)(blockVec.zCoord); - - for(int i=-horizRadius; i<=horizRadius; i++) - { - for(int j=-vertRadius; j<0; j++) - { - for(int k=-horizRadius; k<=horizRadius; k++) - { - if(world.rand.nextFloat()<0.7f) - { - SpellHelper.smashBlock(world, posX+i, posY+j, posZ+k); - } - } - } - } - } -} diff --git a/BM_src/WayofTime/alchemicalWizardry/common/spell/complex/effect/impactEffects/fire/MeleeDefaultFire.java b/BM_src/WayofTime/alchemicalWizardry/common/spell/complex/effect/impactEffects/fire/MeleeDefaultFire.java deleted file mode 100644 index af369dea..00000000 --- a/BM_src/WayofTime/alchemicalWizardry/common/spell/complex/effect/impactEffects/fire/MeleeDefaultFire.java +++ /dev/null @@ -1,30 +0,0 @@ -package WayofTime.alchemicalWizardry.common.spell.complex.effect.impactEffects.fire; - -import net.minecraft.entity.Entity; -import net.minecraft.entity.EntityLiving; -import net.minecraft.entity.player.EntityPlayer; -import net.minecraft.world.World; -import WayofTime.alchemicalWizardry.common.spell.complex.effect.impactEffects.ExtrapolatedMeleeEntityEffect; - -public class MeleeDefaultFire extends ExtrapolatedMeleeEntityEffect -{ - public MeleeDefaultFire(int power, int potency, int cost) - { - super(power, potency, cost); - this.setRange(3+0.3f*potency); - this.setRadius(2+0.3f*potency); - this.setMaxNumberHit(potency+1); - } - - @Override - protected boolean entityEffect(World world, Entity entity, EntityPlayer entityPlayer) - { - if(entity instanceof EntityLiving) - { - entity.setFire(3*this.powerUpgrades+3); - return true; - } - - return false; - } -} diff --git a/BM_src/WayofTime/alchemicalWizardry/common/spell/complex/effect/impactEffects/fire/MeleeDefensiveFire.java b/BM_src/WayofTime/alchemicalWizardry/common/spell/complex/effect/impactEffects/fire/MeleeDefensiveFire.java deleted file mode 100644 index da8003f7..00000000 --- a/BM_src/WayofTime/alchemicalWizardry/common/spell/complex/effect/impactEffects/fire/MeleeDefensiveFire.java +++ /dev/null @@ -1,49 +0,0 @@ -package WayofTime.alchemicalWizardry.common.spell.complex.effect.impactEffects.fire; - -import net.minecraft.block.Block; -import net.minecraft.entity.player.EntityPlayer; -import net.minecraft.util.Vec3; -import net.minecraft.world.World; -import net.minecraftforge.common.ForgeDirection; -import WayofTime.alchemicalWizardry.common.spell.complex.effect.SpellHelper; -import WayofTime.alchemicalWizardry.common.spell.complex.effect.impactEffects.MeleeSpellWorldEffect; - -public class MeleeDefensiveFire extends MeleeSpellWorldEffect -{ - public MeleeDefensiveFire(int power, int potency, int cost) - { - super(power, potency, cost); - } - - @Override - public void onWorldEffect(World world, EntityPlayer entityPlayer) - { - ForgeDirection look = SpellHelper.getCompassDirectionForLookVector(entityPlayer.getLookVec()); - - int width = this.potencyUpgrades + 1; - int length = 5*this.powerUpgrades + 3; - - int xOffset = look.offsetX; - int zOffset = look.offsetZ; - - Vec3 lookVec = SpellHelper.getEntityBlockVector(entityPlayer); - - int xStart = (int)(lookVec.xCoord)+1*xOffset; - int zStart = (int)(lookVec.zCoord)+1*zOffset; - int yStart = (int)(lookVec.yCoord)-1; - - for(int i=-width; i<=width; i++) - { - for(int j=0; j0) - { - entity.hurtResistantTime = Math.max(0, -(potencyUpgrades+1)+entity.hurtResistantTime); - } - - return true; - } -} diff --git a/BM_src/WayofTime/alchemicalWizardry/common/spell/complex/effect/impactEffects/ice/MeleeDefensiveIce.java b/BM_src/WayofTime/alchemicalWizardry/common/spell/complex/effect/impactEffects/ice/MeleeDefensiveIce.java deleted file mode 100644 index 81a6ae8e..00000000 --- a/BM_src/WayofTime/alchemicalWizardry/common/spell/complex/effect/impactEffects/ice/MeleeDefensiveIce.java +++ /dev/null @@ -1,48 +0,0 @@ -package WayofTime.alchemicalWizardry.common.spell.complex.effect.impactEffects.ice; - -import net.minecraft.block.Block; -import net.minecraft.entity.player.EntityPlayer; -import net.minecraft.util.Vec3; -import net.minecraft.world.World; -import net.minecraftforge.common.ForgeDirection; -import WayofTime.alchemicalWizardry.common.spell.complex.effect.SpellHelper; -import WayofTime.alchemicalWizardry.common.spell.complex.effect.impactEffects.MeleeSpellWorldEffect; - -public class MeleeDefensiveIce extends MeleeSpellWorldEffect -{ - public MeleeDefensiveIce(int power, int potency, int cost) - { - super(power, potency, cost); - } - - @Override - public void onWorldEffect(World world, EntityPlayer entityPlayer) - { - ForgeDirection look = SpellHelper.getCompassDirectionForLookVector(entityPlayer.getLookVec()); - - int width = this.powerUpgrades; - int height = this.powerUpgrades + 2; - - int xOffset = look.offsetX; - int zOffset = look.offsetZ; - - int range = this.potencyUpgrades + 1; - - Vec3 lookVec = SpellHelper.getEntityBlockVector(entityPlayer); - - int xStart = (int)(lookVec.xCoord) + range * xOffset; - int zStart = (int)(lookVec.zCoord) + range * zOffset; - int yStart = (int)(lookVec.yCoord); - - for(int i=-width; i<=width; i++) - { - for(int j=0; j entities = SpellHelper.getEntitiesInRange(world, player.posX, player.posY, player.posZ,horizRadius, vertRadius); - - if(entities==null) - { - return; - } - - int i=0; - int number = this.powerUpgrades+1; - - for(Entity entity : entities) - { - if(i>=number) - { - continue; - } - - if(entity instanceof EntityLivingBase && !entity.equals(player)) - { - ((EntityLivingBase) entity).addPotionEffect(new PotionEffect(Potion.moveSlowdown.id,60*(1+this.powerUpgrades),this.potencyUpgrades)); - - i++; - } - } - } -} diff --git a/BM_src/WayofTime/alchemicalWizardry/common/spell/complex/effect/impactEffects/wind/MeleeDefaultWind.java b/BM_src/WayofTime/alchemicalWizardry/common/spell/complex/effect/impactEffects/wind/MeleeDefaultWind.java deleted file mode 100644 index 31b324ef..00000000 --- a/BM_src/WayofTime/alchemicalWizardry/common/spell/complex/effect/impactEffects/wind/MeleeDefaultWind.java +++ /dev/null @@ -1,40 +0,0 @@ -package WayofTime.alchemicalWizardry.common.spell.complex.effect.impactEffects.wind; - -import net.minecraft.entity.Entity; -import net.minecraft.entity.EntityLiving; -import net.minecraft.entity.player.EntityPlayer; -import net.minecraft.world.World; -import WayofTime.alchemicalWizardry.common.spell.complex.effect.impactEffects.ExtrapolatedMeleeEntityEffect; - -public class MeleeDefaultWind extends ExtrapolatedMeleeEntityEffect -{ - public MeleeDefaultWind(int power, int potency, int cost) - { - super(power, potency, cost); - this.setRange(4+2.0f*potency); - this.setRadius(4+2.0f*potency); - this.setMaxNumberHit(potency+1); - } - - @Override - protected boolean entityEffect(World world, Entity entity, EntityPlayer player) - { - double wantedVel = -(0.5d+0.7d*this.powerUpgrades); - - if(entity instanceof EntityLiving) - { - double dist = Math.sqrt(entity.getDistanceToEntity(player)); - double xVel = wantedVel*(entity.posX - player.posX)/dist; - double yVel = wantedVel*(entity.posY - player.posY)/dist; - double zVel = wantedVel*(entity.posZ - player.posZ)/dist; - - entity.motionX = xVel; - entity.motionY = yVel; - entity.motionZ = zVel; - - return true; - } - - return false; - } -} diff --git a/BM_src/WayofTime/alchemicalWizardry/common/spell/complex/effect/impactEffects/wind/MeleeDefensiveWind.java b/BM_src/WayofTime/alchemicalWizardry/common/spell/complex/effect/impactEffects/wind/MeleeDefensiveWind.java deleted file mode 100644 index 5f146e25..00000000 --- a/BM_src/WayofTime/alchemicalWizardry/common/spell/complex/effect/impactEffects/wind/MeleeDefensiveWind.java +++ /dev/null @@ -1,33 +0,0 @@ -package WayofTime.alchemicalWizardry.common.spell.complex.effect.impactEffects.wind; - -import net.minecraft.entity.Entity; -import net.minecraft.entity.EntityLiving; -import net.minecraft.entity.player.EntityPlayer; -import net.minecraft.world.World; -import WayofTime.alchemicalWizardry.common.spell.complex.effect.impactEffects.ExtrapolatedMeleeEntityEffect; - -public class MeleeDefensiveWind extends ExtrapolatedMeleeEntityEffect -{ - public MeleeDefensiveWind(int power, int potency, int cost) - { - super(power, potency, cost); - this.setRange(3+0.3f*potency); - this.setRadius(2+0.3f*potency); - this.setMaxNumberHit(potency+1); - } - - @Override - protected boolean entityEffect(World world, Entity entity, EntityPlayer player) - { - double wantedVel = 0.5d+0.5d*this.powerUpgrades; - - if(entity instanceof EntityLiving) - { - entity.motionY = wantedVel; - - return true; - } - - return false; - } -} diff --git a/BM_src/WayofTime/alchemicalWizardry/common/spell/complex/effect/impactEffects/wind/MeleeEnvironmentalWind.java b/BM_src/WayofTime/alchemicalWizardry/common/spell/complex/effect/impactEffects/wind/MeleeEnvironmentalWind.java deleted file mode 100644 index 2eed2c73..00000000 --- a/BM_src/WayofTime/alchemicalWizardry/common/spell/complex/effect/impactEffects/wind/MeleeEnvironmentalWind.java +++ /dev/null @@ -1,36 +0,0 @@ -package WayofTime.alchemicalWizardry.common.spell.complex.effect.impactEffects.wind; - -import java.util.List; - -import net.minecraft.entity.Entity; -import net.minecraft.entity.item.EntityItem; -import net.minecraft.entity.player.EntityPlayer; -import net.minecraft.world.World; -import WayofTime.alchemicalWizardry.common.spell.complex.effect.SpellHelper; -import WayofTime.alchemicalWizardry.common.spell.complex.effect.impactEffects.MeleeSpellCenteredWorldEffect; - -public class MeleeEnvironmentalWind extends MeleeSpellCenteredWorldEffect -{ - public MeleeEnvironmentalWind(int power, int potency, int cost) - { - super(power, potency, cost); - this.setRange(5*power + 5); - } - - @Override - public void onCenteredWorldEffect(EntityPlayer player, World world, int posX, int posY, int posZ) - { - int radius = 5*this.potencyUpgrades + 3; - - List entities = SpellHelper.getEntitiesInRange(world, posX, posY, posZ, radius, radius); - - for(Entity entity : entities) - { - if(entity instanceof EntityItem) - { - ((EntityItem)entity).delayBeforeCanPickup = 0; - entity.onCollideWithPlayer((EntityPlayer)player); - } - } - } -} diff --git a/BM_src/WayofTime/alchemicalWizardry/common/spell/complex/effect/impactEffects/wind/MeleeOffensiveWind.java b/BM_src/WayofTime/alchemicalWizardry/common/spell/complex/effect/impactEffects/wind/MeleeOffensiveWind.java deleted file mode 100644 index dd283246..00000000 --- a/BM_src/WayofTime/alchemicalWizardry/common/spell/complex/effect/impactEffects/wind/MeleeOffensiveWind.java +++ /dev/null @@ -1,40 +0,0 @@ -package WayofTime.alchemicalWizardry.common.spell.complex.effect.impactEffects.wind; - -import net.minecraft.entity.Entity; -import net.minecraft.entity.EntityLiving; -import net.minecraft.entity.player.EntityPlayer; -import net.minecraft.world.World; -import WayofTime.alchemicalWizardry.common.spell.complex.effect.impactEffects.ExtrapolatedMeleeEntityEffect; - -public class MeleeOffensiveWind extends ExtrapolatedMeleeEntityEffect -{ - public MeleeOffensiveWind(int power, int potency, int cost) - { - super(power, potency, cost); - this.setRange(3+0.3f*potency); - this.setRadius(2+0.3f*potency); - this.setMaxNumberHit(potency+1); - } - - @Override - protected boolean entityEffect(World world, Entity entity, EntityPlayer player) - { - double wantedVel = 1.0d+1.0d*this.powerUpgrades; - - if(entity instanceof EntityLiving) - { - double dist = Math.sqrt(entity.getDistanceToEntity(player)); - double xVel = wantedVel*(entity.posX - player.posX)/dist; - double yVel = wantedVel*(entity.posY - player.posY+0.5f)/dist; - double zVel = wantedVel*(entity.posZ - player.posZ)/dist; - - entity.motionX = xVel; - entity.motionY = yVel; - entity.motionZ = zVel; - - return true; - } - - return false; - } -} diff --git a/BM_src/WayofTime/alchemicalWizardry/common/spell/complex/effect/impactEffects/wind/ProjectileDefaultWind.java b/BM_src/WayofTime/alchemicalWizardry/common/spell/complex/effect/impactEffects/wind/ProjectileDefaultWind.java deleted file mode 100644 index a50dcbd3..00000000 --- a/BM_src/WayofTime/alchemicalWizardry/common/spell/complex/effect/impactEffects/wind/ProjectileDefaultWind.java +++ /dev/null @@ -1,33 +0,0 @@ -package WayofTime.alchemicalWizardry.common.spell.complex.effect.impactEffects.wind; - -import net.minecraft.entity.Entity; -import net.minecraft.entity.EntityLiving; -import net.minecraft.potion.PotionEffect; -import net.minecraft.util.MovingObjectPosition; -import net.minecraft.world.World; -import WayofTime.alchemicalWizardry.AlchemicalWizardry; -import WayofTime.alchemicalWizardry.common.spell.complex.effect.impactEffects.ProjectileImpactEffect; - -public class ProjectileDefaultWind extends ProjectileImpactEffect -{ - public ProjectileDefaultWind(int power, int potency, int cost) - { - super(power, potency, cost); - } - - @Override - public void onEntityImpact(Entity mop, Entity proj) - { - float wantedYVel = (float)((0.5)*(0.5*this.potencyUpgrades + 1)); - - mop.motionX = proj.motionX; - mop.motionY = mop.motionY += wantedYVel; - mop.motionZ = proj.motionZ; - } - - @Override - public void onTileImpact(World world, MovingObjectPosition mop) - { - return; - } -} diff --git a/BM_src/WayofTime/alchemicalWizardry/common/spell/complex/effect/impactEffects/wind/ProjectileEnvironmentalWind.java b/BM_src/WayofTime/alchemicalWizardry/common/spell/complex/effect/impactEffects/wind/ProjectileEnvironmentalWind.java deleted file mode 100644 index e1871678..00000000 --- a/BM_src/WayofTime/alchemicalWizardry/common/spell/complex/effect/impactEffects/wind/ProjectileEnvironmentalWind.java +++ /dev/null @@ -1,53 +0,0 @@ -package WayofTime.alchemicalWizardry.common.spell.complex.effect.impactEffects.wind; - -import java.util.List; - -import net.minecraft.entity.Entity; -import net.minecraft.entity.item.EntityItem; -import net.minecraft.entity.player.EntityPlayer; -import net.minecraft.util.Vec3; -import net.minecraft.world.World; -import WayofTime.alchemicalWizardry.common.spell.complex.EntitySpellProjectile; -import WayofTime.alchemicalWizardry.common.spell.complex.effect.SpellHelper; -import WayofTime.alchemicalWizardry.common.spell.complex.effect.impactEffects.ProjectileUpdateEffect; - -public class ProjectileEnvironmentalWind extends ProjectileUpdateEffect -{ - public ProjectileEnvironmentalWind(int power, int potency, int cost) - { - super(power, potency, cost); - } - - @Override - public void onUpdateEffect(Entity projectile) - { - Vec3 posVec = SpellHelper.getEntityBlockVector(projectile); - - int horizRange = this.powerUpgrades+1; - int vertRange = 1*this.potencyUpgrades+1; - - World worldObj = projectile.worldObj; - - if(projectile instanceof EntitySpellProjectile) - { - Entity shooter = ((EntitySpellProjectile) projectile).shootingEntity; - if(shooter instanceof EntityPlayer) - { - List entitylist = SpellHelper.getEntitiesInRange(worldObj, projectile.posX, projectile.posY, projectile.posZ, horizRange, vertRange); - if(entitylist !=null) - { - for(Entity entity : entitylist) - { - if(entity instanceof EntityItem) - { - ((EntityItem)entity).delayBeforeCanPickup = 0; - entity.onCollideWithPlayer((EntityPlayer)shooter); - } - } - } - } - } - - - } -} diff --git a/BM_src/WayofTime/alchemicalWizardry/common/spell/complex/effect/impactEffects/wind/ProjectileOffensiveWind.java b/BM_src/WayofTime/alchemicalWizardry/common/spell/complex/effect/impactEffects/wind/ProjectileOffensiveWind.java deleted file mode 100644 index 661fa367..00000000 --- a/BM_src/WayofTime/alchemicalWizardry/common/spell/complex/effect/impactEffects/wind/ProjectileOffensiveWind.java +++ /dev/null @@ -1,33 +0,0 @@ -package WayofTime.alchemicalWizardry.common.spell.complex.effect.impactEffects.wind; - -import net.minecraft.entity.Entity; -import net.minecraft.entity.EntityLiving; -import net.minecraft.potion.PotionEffect; -import net.minecraft.util.MovingObjectPosition; -import net.minecraft.world.World; -import WayofTime.alchemicalWizardry.AlchemicalWizardry; -import WayofTime.alchemicalWizardry.common.spell.complex.effect.impactEffects.ProjectileImpactEffect; - -public class ProjectileOffensiveWind extends ProjectileImpactEffect -{ - - public ProjectileOffensiveWind(int power, int potency, int cost) - { - super(power, potency, cost); - } - - @Override - public void onEntityImpact(Entity mop, Entity proj) - { - if(mop instanceof EntityLiving) - { - ((EntityLiving) mop).addPotionEffect(new PotionEffect(AlchemicalWizardry.customPotionHeavyHeart.id,(int)(100*(2*this.powerUpgrades+1)*(1/(this.potencyUpgrades+1))),this.potencyUpgrades)); - } - } - - @Override - public void onTileImpact(World world, MovingObjectPosition mop) - { - return; - } -} diff --git a/BM_src/WayofTime/alchemicalWizardry/common/spell/complex/effect/impactEffects/wind/SelfDefaultWind.java b/BM_src/WayofTime/alchemicalWizardry/common/spell/complex/effect/impactEffects/wind/SelfDefaultWind.java deleted file mode 100644 index 3e13568a..00000000 --- a/BM_src/WayofTime/alchemicalWizardry/common/spell/complex/effect/impactEffects/wind/SelfDefaultWind.java +++ /dev/null @@ -1,27 +0,0 @@ -package WayofTime.alchemicalWizardry.common.spell.complex.effect.impactEffects.wind; - -import java.util.List; - -import net.minecraft.entity.Entity; -import net.minecraft.entity.EntityLiving; -import net.minecraft.entity.player.EntityPlayer; -import net.minecraft.potion.PotionEffect; -import net.minecraft.world.World; -import WayofTime.alchemicalWizardry.AlchemicalWizardry; -import WayofTime.alchemicalWizardry.common.spell.complex.effect.SpellHelper; -import WayofTime.alchemicalWizardry.common.spell.complex.effect.impactEffects.SelfSpellEffect; - -public class SelfDefaultWind extends SelfSpellEffect -{ - public SelfDefaultWind(int power, int potency, int cost) - { - super(power, potency, cost); - } - - @Override - public void onSelfUse(World world, EntityPlayer player) - { - player.extinguish(); - player.fallDistance = 0; - } -} diff --git a/BM_src/WayofTime/alchemicalWizardry/common/spell/complex/effect/impactEffects/wind/SelfDefensiveWind.java b/BM_src/WayofTime/alchemicalWizardry/common/spell/complex/effect/impactEffects/wind/SelfDefensiveWind.java deleted file mode 100644 index 125ef17d..00000000 --- a/BM_src/WayofTime/alchemicalWizardry/common/spell/complex/effect/impactEffects/wind/SelfDefensiveWind.java +++ /dev/null @@ -1,39 +0,0 @@ -package WayofTime.alchemicalWizardry.common.spell.complex.effect.impactEffects.wind; - -import java.util.List; - -import net.minecraft.entity.Entity; -import net.minecraft.entity.EntityLiving; -import net.minecraft.entity.player.EntityPlayer; -import net.minecraft.potion.PotionEffect; -import net.minecraft.world.World; -import WayofTime.alchemicalWizardry.AlchemicalWizardry; -import WayofTime.alchemicalWizardry.common.spell.complex.effect.SpellHelper; -import WayofTime.alchemicalWizardry.common.spell.complex.effect.impactEffects.SelfSpellEffect; - -public class SelfDefensiveWind extends SelfSpellEffect -{ - public SelfDefensiveWind(int power, int potency, int cost) - { - super(power, potency, cost); - } - - @Override - public void onSelfUse(World world, EntityPlayer player) - { - double radius = 1.5d*this.powerUpgrades+1.5d; - double posX = player.posX; - double posY = player.posY; - double posZ = player.posZ; - - List entities = SpellHelper.getEntitiesInRange(world, posX, posY, posZ, radius, radius); - - for(Entity entity: entities) - { - if((!entity.equals(player))&&entity instanceof EntityLiving) - { - ((EntityLiving)entity).addPotionEffect(new PotionEffect(AlchemicalWizardry.customPotionHeavyHeart.id,200,this.potencyUpgrades)); - } - } - } -} diff --git a/BM_src/WayofTime/alchemicalWizardry/common/spell/complex/effect/impactEffects/wind/SelfEnvironmentalWind.java b/BM_src/WayofTime/alchemicalWizardry/common/spell/complex/effect/impactEffects/wind/SelfEnvironmentalWind.java deleted file mode 100644 index 3ea0f86b..00000000 --- a/BM_src/WayofTime/alchemicalWizardry/common/spell/complex/effect/impactEffects/wind/SelfEnvironmentalWind.java +++ /dev/null @@ -1,45 +0,0 @@ -package WayofTime.alchemicalWizardry.common.spell.complex.effect.impactEffects.wind; - -import java.util.List; - -import net.minecraft.entity.Entity; -import net.minecraft.entity.EntityLiving; -import net.minecraft.entity.player.EntityPlayer; -import net.minecraft.world.World; -import WayofTime.alchemicalWizardry.common.spell.complex.effect.SpellHelper; -import WayofTime.alchemicalWizardry.common.spell.complex.effect.impactEffects.SelfSpellEffect; - -public class SelfEnvironmentalWind extends SelfSpellEffect -{ - public SelfEnvironmentalWind(int power, int potency, int cost) - { - super(power, potency, cost); - } - - @Override - public void onSelfUse(World world, EntityPlayer player) - { - double radius = 1.5d*this.potencyUpgrades+1; - double posX = player.posX; - double posY = player.posY-0.7d; - double posZ = player.posZ; - double wantedVel = 0.7d+0.7d*this.powerUpgrades; - - List entities = SpellHelper.getEntitiesInRange(world, posX, posY, posZ, radius, radius); - - for(Entity entity: entities) - { - if((!entity.equals(player))&&entity instanceof EntityLiving) - { - double dist = Math.sqrt(entity.getDistanceToEntity(player)); - double xVel = wantedVel*(entity.posX - posX)/dist; - double yVel = wantedVel*(entity.posY - posY)/dist; - double zVel = wantedVel*(entity.posZ - posZ)/dist; - - entity.motionX = xVel; - entity.motionY = yVel; - entity.motionZ = zVel; - } - } - } -} diff --git a/BM_src/WayofTime/alchemicalWizardry/common/spell/complex/effect/impactEffects/wind/SelfOffensiveWind.java b/BM_src/WayofTime/alchemicalWizardry/common/spell/complex/effect/impactEffects/wind/SelfOffensiveWind.java deleted file mode 100644 index 74dd6e13..00000000 --- a/BM_src/WayofTime/alchemicalWizardry/common/spell/complex/effect/impactEffects/wind/SelfOffensiveWind.java +++ /dev/null @@ -1,32 +0,0 @@ -package WayofTime.alchemicalWizardry.common.spell.complex.effect.impactEffects.wind; - -import java.util.List; - -import net.minecraft.entity.Entity; -import net.minecraft.entity.EntityLiving; -import net.minecraft.entity.player.EntityPlayer; -import net.minecraft.potion.PotionEffect; -import net.minecraft.util.Vec3; -import net.minecraft.world.World; -import WayofTime.alchemicalWizardry.AlchemicalWizardry; -import WayofTime.alchemicalWizardry.common.spell.complex.effect.SpellHelper; -import WayofTime.alchemicalWizardry.common.spell.complex.effect.impactEffects.SelfSpellEffect; - -public class SelfOffensiveWind extends SelfSpellEffect -{ - public SelfOffensiveWind(int power, int potency, int cost) - { - super(power, potency, cost); - } - - @Override - public void onSelfUse(World world, EntityPlayer player) - { - Vec3 vec = player.getLookVec(); - double wantedVelocity = 1.5 + this.powerUpgrades*0.4; - - SpellHelper.setPlayerSpeedFromServer(player, vec.xCoord * wantedVelocity, vec.yCoord * wantedVelocity, vec.zCoord * wantedVelocity); - - player.fallDistance = 0; - } -} diff --git a/BM_src/WayofTime/alchemicalWizardry/common/spell/complex/enhancement/SpellEnhancement.java b/BM_src/WayofTime/alchemicalWizardry/common/spell/complex/enhancement/SpellEnhancement.java deleted file mode 100644 index b17c5659..00000000 --- a/BM_src/WayofTime/alchemicalWizardry/common/spell/complex/enhancement/SpellEnhancement.java +++ /dev/null @@ -1,20 +0,0 @@ -package WayofTime.alchemicalWizardry.common.spell.complex.enhancement; - -public class SpellEnhancement -{ - public static final int POWER = 0; - public static final int EFFICIENCY = 1; - public static final int POTENCY = 2; - - private int state = this.POWER; - - protected SpellEnhancement(int state) - { - this.state = state; - } - - public int getState() - { - return this.state; - } -} diff --git a/BM_src/WayofTime/alchemicalWizardry/common/spell/complex/enhancement/SpellEnhancementCost.java b/BM_src/WayofTime/alchemicalWizardry/common/spell/complex/enhancement/SpellEnhancementCost.java deleted file mode 100644 index 2e0df1fb..00000000 --- a/BM_src/WayofTime/alchemicalWizardry/common/spell/complex/enhancement/SpellEnhancementCost.java +++ /dev/null @@ -1,10 +0,0 @@ -package WayofTime.alchemicalWizardry.common.spell.complex.enhancement; - -public class SpellEnhancementCost extends SpellEnhancement -{ - - public SpellEnhancementCost() - { - super(SpellEnhancement.EFFICIENCY); - } -} diff --git a/BM_src/WayofTime/alchemicalWizardry/common/spell/complex/enhancement/SpellEnhancementPotency.java b/BM_src/WayofTime/alchemicalWizardry/common/spell/complex/enhancement/SpellEnhancementPotency.java deleted file mode 100644 index 6231c8a7..00000000 --- a/BM_src/WayofTime/alchemicalWizardry/common/spell/complex/enhancement/SpellEnhancementPotency.java +++ /dev/null @@ -1,10 +0,0 @@ -package WayofTime.alchemicalWizardry.common.spell.complex.enhancement; - -public class SpellEnhancementPotency extends SpellEnhancement -{ - public SpellEnhancementPotency() - { - super(SpellEnhancement.POTENCY); - } - -} diff --git a/BM_src/WayofTime/alchemicalWizardry/common/spell/complex/enhancement/SpellEnhancementPower.java b/BM_src/WayofTime/alchemicalWizardry/common/spell/complex/enhancement/SpellEnhancementPower.java deleted file mode 100644 index 527dfe46..00000000 --- a/BM_src/WayofTime/alchemicalWizardry/common/spell/complex/enhancement/SpellEnhancementPower.java +++ /dev/null @@ -1,10 +0,0 @@ -package WayofTime.alchemicalWizardry.common.spell.complex.enhancement; - -public class SpellEnhancementPower extends SpellEnhancement -{ - - public SpellEnhancementPower() - { - super(SpellEnhancement.POWER); - } -} diff --git a/BM_src/WayofTime/alchemicalWizardry/common/spell/simple/HomSpell.java b/BM_src/WayofTime/alchemicalWizardry/common/spell/simple/HomSpell.java deleted file mode 100644 index 903f4fb9..00000000 --- a/BM_src/WayofTime/alchemicalWizardry/common/spell/simple/HomSpell.java +++ /dev/null @@ -1,143 +0,0 @@ -package WayofTime.alchemicalWizardry.common.spell.simple; - -import net.minecraft.entity.player.EntityPlayer; -import net.minecraft.item.ItemStack; -import net.minecraft.nbt.NBTTagCompound; -import net.minecraft.world.World; - -public abstract class HomSpell implements ISimpleSpell -{ - private int offensiveRangedEnergy; - private int offensiveMeleeEnergy; - private int defensiveEnergy; - private int environmentalEnergy; - - public HomSpell() - { - //super(id); - //this.setMaxStackSize(1); - // TODO Auto-generated constructor stub - } - - @Override - public abstract ItemStack onOffensiveRangedRightClick(ItemStack par1ItemStack, World par2World, EntityPlayer par3EntityPlayer); - - ; - - @Override - public abstract ItemStack onOffensiveMeleeRightClick(ItemStack par1ItemStack, World par2World, EntityPlayer par3EntityPlayer); - - @Override - public abstract ItemStack onDefensiveRightClick(ItemStack par1ItemStack, World par2World, EntityPlayer par3EntityPlayer); - - @Override - public abstract ItemStack onEnvironmentalRightClick(ItemStack par1ItemStack, World par2World, EntityPlayer par3EntityPlayer); - - public int getOffensiveRangedEnergy() - { - return offensiveRangedEnergy; - } - - public int getOffensiveMeleeEnergy() - { - return offensiveMeleeEnergy; - } - - public int getDefensiveEnergy() - { - return defensiveEnergy; - } - - public int getEnvironmentalEnergy() - { - return environmentalEnergy; - } - - public void setEnergies(int offensiveRanged, int offensiveMelee, int defensive, int environmental) - { - this.offensiveRangedEnergy = offensiveRanged; - this.offensiveMeleeEnergy = offensiveMelee; - this.defensiveEnergy = defensive; - this.environmentalEnergy = environmental; - } - - public void setSpellParadigm(ItemStack itemStack, int paradigm) - { - if (itemStack.stackTagCompound == null) - { - itemStack.setTagCompound(new NBTTagCompound()); - } - - itemStack.stackTagCompound.setInteger("paradigm", paradigm); - } - - public int getSpellParadigm(ItemStack itemStack) - { - if (itemStack.stackTagCompound == null) - { - itemStack.setTagCompound(new NBTTagCompound()); - } - - return (itemStack.stackTagCompound.getInteger("paradigm")); - } - - //@Override - public ItemStack useSpell(ItemStack par1ItemStack, World par2World, EntityPlayer par3EntityPlayer) - { - int paradigm = getSpellParadigm(par1ItemStack); - - if (par3EntityPlayer.isSneaking()) - { - if (paradigm < 3) - { - this.setSpellParadigm(par1ItemStack, paradigm + 1); - } else - { - this.setSpellParadigm(par1ItemStack, 0); - } - - return par1ItemStack; - } - - switch (paradigm) - { - case 0: - return this.onOffensiveRangedRightClick(par1ItemStack, par2World, par3EntityPlayer); - - case 1: - return this.onOffensiveMeleeRightClick(par1ItemStack, par2World, par3EntityPlayer); - - case 2: - return this.onDefensiveRightClick(par1ItemStack, par2World, par3EntityPlayer); - - case 3: - return this.onEnvironmentalRightClick(par1ItemStack, par2World, par3EntityPlayer); - } - - return par1ItemStack; - } - -// @Override -// public void addInformation(ItemStack par1ItemStack, EntityPlayer par2EntityPlayer, List par3List, boolean par4) -// { -// if (!(par1ItemStack.stackTagCompound == null)) -// { -// if (!par1ItemStack.stackTagCompound.getString("ownerName").equals("")) -// { -// par3List.add("Current owner: " + par1ItemStack.stackTagCompound.getString("ownerName")); -// } -// -// par3List.add("Current paradigm: " + this.getSpellParadigm(par1ItemStack)); -// } -// } - - public int getDimensionID(ItemStack itemStack) - { - if (itemStack.stackTagCompound == null) - { - itemStack.setTagCompound(new NBTTagCompound()); - } - - return itemStack.stackTagCompound.getInteger("dimensionId"); - } -} diff --git a/BM_src/WayofTime/alchemicalWizardry/common/spell/simple/HomSpellComponent.java b/BM_src/WayofTime/alchemicalWizardry/common/spell/simple/HomSpellComponent.java deleted file mode 100644 index 41cfcaab..00000000 --- a/BM_src/WayofTime/alchemicalWizardry/common/spell/simple/HomSpellComponent.java +++ /dev/null @@ -1,26 +0,0 @@ -package WayofTime.alchemicalWizardry.common.spell.simple; - -import net.minecraft.item.ItemStack; - -public class HomSpellComponent -{ - public HomSpell spell; - public ItemStack item; - public int blockID; - - public HomSpellComponent(ItemStack item, HomSpell spell) - { - this.item = item; - this.spell = spell; - } - - public HomSpell getSpell() - { - return spell; - } - - public ItemStack getItemStack() - { - return this.item; - } -} diff --git a/BM_src/WayofTime/alchemicalWizardry/common/spell/simple/HomSpellRegistry.java b/BM_src/WayofTime/alchemicalWizardry/common/spell/simple/HomSpellRegistry.java deleted file mode 100644 index 06551124..00000000 --- a/BM_src/WayofTime/alchemicalWizardry/common/spell/simple/HomSpellRegistry.java +++ /dev/null @@ -1,55 +0,0 @@ -package WayofTime.alchemicalWizardry.common.spell.simple; - -import net.minecraft.item.ItemBlock; -import net.minecraft.item.ItemStack; - -import java.util.ArrayList; -import java.util.List; - -public class HomSpellRegistry -{ - public static List spellList = new ArrayList(); - - public static void registerBasicSpell(ItemStack item, HomSpell spell) - { - spellList.add(new HomSpellComponent(item, spell)); - } - - public static HomSpell getSpellForItemStack(ItemStack testItem) - { - if (testItem == null) - { - return null; - } - - for (HomSpellComponent hsc : spellList) - { - ItemStack item = hsc.getItemStack(); - - if (item != null) - { - if (item.getItem() instanceof ItemBlock) - { - if (testItem.getItem() instanceof ItemBlock) - { - if (testItem.itemID == item.itemID) - { - return hsc.getSpell(); - } - } - } else - { - if (!(testItem.getItem() instanceof ItemBlock)) - { - if (testItem.itemID == item.itemID) - { - return hsc.getSpell(); - } - } - } - } - } - - return null; - } -} diff --git a/BM_src/WayofTime/alchemicalWizardry/common/spell/simple/ISimpleSpell.java b/BM_src/WayofTime/alchemicalWizardry/common/spell/simple/ISimpleSpell.java deleted file mode 100644 index 77a8799d..00000000 --- a/BM_src/WayofTime/alchemicalWizardry/common/spell/simple/ISimpleSpell.java +++ /dev/null @@ -1,16 +0,0 @@ -package WayofTime.alchemicalWizardry.common.spell.simple; - -import net.minecraft.entity.player.EntityPlayer; -import net.minecraft.item.ItemStack; -import net.minecraft.world.World; - -public interface ISimpleSpell -{ - public abstract ItemStack onOffensiveRangedRightClick(ItemStack par1ItemStack, World par2World, EntityPlayer par3EntityPlayer); - - public abstract ItemStack onOffensiveMeleeRightClick(ItemStack par1ItemStack, World par2World, EntityPlayer par3EntityPlayer); - - public abstract ItemStack onDefensiveRightClick(ItemStack par1ItemStack, World par2World, EntityPlayer par3EntityPlayer); - - public abstract ItemStack onEnvironmentalRightClick(ItemStack par1ItemStack, World par2World, EntityPlayer par3EntityPlayer); -} diff --git a/BM_src/WayofTime/alchemicalWizardry/common/spell/simple/SpellEarthBender.java b/BM_src/WayofTime/alchemicalWizardry/common/spell/simple/SpellEarthBender.java deleted file mode 100644 index af91d66e..00000000 --- a/BM_src/WayofTime/alchemicalWizardry/common/spell/simple/SpellEarthBender.java +++ /dev/null @@ -1,196 +0,0 @@ -package WayofTime.alchemicalWizardry.common.spell.simple; - -import WayofTime.alchemicalWizardry.common.PacketHandler; -import WayofTime.alchemicalWizardry.common.entity.projectile.MudProjectile; -import WayofTime.alchemicalWizardry.common.items.EnergyItems; -import cpw.mods.fml.common.network.PacketDispatcher; -import net.minecraft.block.Block; -import net.minecraft.entity.player.EntityPlayer; -import net.minecraft.item.ItemStack; -import net.minecraft.world.World; - -import java.util.Random; - -public class SpellEarthBender extends HomSpell -{ - Random itemRand = new Random(); - - public SpellEarthBender() - { - super(); - this.setEnergies(100, 150, 350, 200); - //this.setCreativeTab(CreativeTabs.tabMisc); - } - - @Override - public ItemStack onOffensiveRangedRightClick(ItemStack par1ItemStack, World par2World, EntityPlayer par3EntityPlayer) - { - EnergyItems.checkAndSetItemOwner(par1ItemStack, par3EntityPlayer); - - if (par3EntityPlayer.isSneaking()) - { - return par1ItemStack; - } - - if (!par3EntityPlayer.capabilities.isCreativeMode) - { - EnergyItems.syphonAndDamageWhileInContainer(par1ItemStack, par3EntityPlayer, this.getOffensiveRangedEnergy()); - } - - par2World.spawnEntityInWorld(new MudProjectile(par2World, par3EntityPlayer, 8, false)); - par2World.playSoundAtEntity(par3EntityPlayer, "random.fizz", 0.5F, 0.4F / (itemRand.nextFloat() * 0.4F + 0.8F)); - return par1ItemStack; - } - - @Override - public ItemStack onOffensiveMeleeRightClick(ItemStack par1ItemStack, World par2World, EntityPlayer par3EntityPlayer) - { - EnergyItems.checkAndSetItemOwner(par1ItemStack, par3EntityPlayer); - - if (par3EntityPlayer.isSneaking()) - { - return par1ItemStack; - } - - if (!par3EntityPlayer.capabilities.isCreativeMode) - { - EnergyItems.syphonAndDamageWhileInContainer(par1ItemStack, par3EntityPlayer, this.getOffensiveMeleeEnergy()); - } - - if (!par2World.isRemote) - { - for (int i = -1; i <= 1; i++) - { - for (int j = -1; j <= 1; j++) - { - par2World.spawnEntityInWorld(new MudProjectile(par2World, par3EntityPlayer, 3, 3, par3EntityPlayer.posX, par3EntityPlayer.posY + par3EntityPlayer.getEyeHeight(), par3EntityPlayer.posZ, par3EntityPlayer.rotationYaw + i * 10F, par3EntityPlayer.rotationPitch + j * 5F, true)); - } - } - } - - return par1ItemStack; - } - - @Override - public ItemStack onDefensiveRightClick(ItemStack par1ItemStack, World par2World, EntityPlayer par3EntityPlayer) - { - EnergyItems.checkAndSetItemOwner(par1ItemStack, par3EntityPlayer); - - if (par3EntityPlayer.isSneaking()) - { - return par1ItemStack; - } - - if (!par3EntityPlayer.capabilities.isCreativeMode) - { - EnergyItems.syphonAndDamageWhileInContainer(par1ItemStack, par3EntityPlayer, this.getDefensiveEnergy()); - } - - double xCoord = par3EntityPlayer.posX; - double yCoord = par3EntityPlayer.posY; - double zCoord = par3EntityPlayer.posZ; - int posX = (int) xCoord; - int posY = (int) yCoord; - int posZ = (int) zCoord; - int blockID = Block.stone.blockID; - - if (par2World.isAirBlock(posX, posY + 3, posZ)) - { - par2World.setBlock(posX, posY + 3, posZ, Block.glass.blockID); - } - - for (int i = 0; i < 4; i++) - { - for (int j = 0; j < 4; j++) - { - if (par2World.isAirBlock(posX + i - 1, posY + j, posZ - 2)) - { - par2World.setBlock(posX + i - 1, posY + j, posZ - 2, blockID); - } - - if (par2World.isAirBlock(posX + 2, posY + j, posZ - 1 + i)) - { - par2World.setBlock(posX + 2, posY + j, posZ - 1 + i, blockID); - } - - if (par2World.isAirBlock(posX - i + 1, posY + j, posZ + 2)) - { - par2World.setBlock(posX - i + 1, posY + j, posZ + 2, blockID); - } - - if (par2World.isAirBlock(posX - 2, posY + j, posZ + 1 - i)) - { - par2World.setBlock(posX - 2, posY + j, posZ + 1 - i, blockID); - } - - { - if (par2World.isAirBlock(posX - 1 + i, posY + 3, posZ - 1 + j)) - { - par2World.setBlock(posX - 1 + i, posY + 3, posZ - 1 + j, blockID); - } - } - } - } - - for (int i = 0; i < 20; i++) - { - PacketDispatcher.sendPacketToAllAround(xCoord, yCoord, zCoord, 30, par2World.provider.dimensionId, PacketHandler.getCustomParticlePacket("mobSpell", xCoord + (itemRand.nextFloat() - itemRand.nextFloat()) * 3, yCoord + (itemRand.nextFloat() - itemRand.nextFloat()) * 3, zCoord + (itemRand.nextFloat() - itemRand.nextFloat()) * 3, 0.0F, 0.410F, 1.0F)); - } - - return par1ItemStack; - } - - @Override - public ItemStack onEnvironmentalRightClick(ItemStack par1ItemStack, World par2World, EntityPlayer par3EntityPlayer) - { - EnergyItems.checkAndSetItemOwner(par1ItemStack, par3EntityPlayer); - - if (par3EntityPlayer.isSneaking()) - { - return par1ItemStack; - } - - if (!par3EntityPlayer.capabilities.isCreativeMode) - { - EnergyItems.syphonAndDamageWhileInContainer(par1ItemStack, par3EntityPlayer, this.getEnvironmentalEnergy()); - } - - int range = 3; - - if (!par2World.isRemote) - { - for (int i = -range; i <= range; i++) - { - for (int j = -1; j <= 1; j++) - { - for (int k = -range; k <= range; k++) - { - if (par2World.getBlockId((int) par3EntityPlayer.posX + i, (int) par3EntityPlayer.posY + j, (int) par3EntityPlayer.posZ + k) == Block.waterStill.blockID || par2World.getBlockId((int) par3EntityPlayer.posX + i, (int) par3EntityPlayer.posY + j, (int) par3EntityPlayer.posZ + k) == Block.waterMoving.blockID) - { - int x = par2World.rand.nextInt(2); - - if (x == 0) - { - par2World.setBlock((int) par3EntityPlayer.posX + i, (int) par3EntityPlayer.posY + j, (int) par3EntityPlayer.posZ + k, Block.sand.blockID); - } else - { - par2World.setBlock((int) par3EntityPlayer.posX + i, (int) par3EntityPlayer.posY + j, (int) par3EntityPlayer.posZ + k, Block.dirt.blockID); - } - } - } - } - } - } - - double xCoord = par3EntityPlayer.posX; - double yCoord = par3EntityPlayer.posY; - double zCoord = par3EntityPlayer.posZ; - - for (int i = 0; i < 16; i++) - { - PacketDispatcher.sendPacketToAllAround(xCoord, yCoord, zCoord, 30, par2World.provider.dimensionId, PacketHandler.getCustomParticlePacket("mobSpell", xCoord + (itemRand.nextFloat() - itemRand.nextFloat()) * 2, yCoord + (itemRand.nextFloat() - itemRand.nextFloat()) * 2, zCoord + (itemRand.nextFloat() - itemRand.nextFloat()) * 2, 0.0F, 0.410F, 1.0F)); - } - - return par1ItemStack; - } -} diff --git a/BM_src/WayofTime/alchemicalWizardry/common/spell/simple/SpellExplosions.java b/BM_src/WayofTime/alchemicalWizardry/common/spell/simple/SpellExplosions.java deleted file mode 100644 index 44ede225..00000000 --- a/BM_src/WayofTime/alchemicalWizardry/common/spell/simple/SpellExplosions.java +++ /dev/null @@ -1,116 +0,0 @@ -package WayofTime.alchemicalWizardry.common.spell.simple; - -import WayofTime.alchemicalWizardry.common.entity.projectile.ExplosionProjectile; -import WayofTime.alchemicalWizardry.common.items.EnergyItems; -import net.minecraft.entity.player.EntityPlayer; -import net.minecraft.item.ItemStack; -import net.minecraft.world.World; - -import java.util.Random; - -public class SpellExplosions extends HomSpell -{ - Random itemRand = new Random(); - - public SpellExplosions() - { - super(); - this.setEnergies(400, 500, 1900, 1500); - //this.setCreativeTab(CreativeTabs.tabMisc); - } - - @Override - public ItemStack onOffensiveRangedRightClick(ItemStack par1ItemStack, World par2World, EntityPlayer par3EntityPlayer) - { - EnergyItems.checkAndSetItemOwner(par1ItemStack, par3EntityPlayer); - - if (par3EntityPlayer.isSneaking()) - { - return par1ItemStack; - } - - if (!par3EntityPlayer.capabilities.isCreativeMode) - { - EnergyItems.syphonAndDamageWhileInContainer(par1ItemStack, par3EntityPlayer, this.getOffensiveRangedEnergy()); - } - - par2World.playSoundAtEntity(par3EntityPlayer, "random.fizz", 0.5F, 0.4F / (itemRand.nextFloat() * 0.4F + 0.8F)); - - if (!par2World.isRemote) - { - //par2World.spawnEntityInWorld(new EnergyBlastProjectile(par2World, par3EntityPlayer, damage)); - par2World.spawnEntityInWorld(new ExplosionProjectile(par2World, par3EntityPlayer, 6, true)); - } - - return par1ItemStack; - } - - @Override - public ItemStack onOffensiveMeleeRightClick(ItemStack par1ItemStack, World par2World, EntityPlayer par3EntityPlayer) - { - EnergyItems.checkAndSetItemOwner(par1ItemStack, par3EntityPlayer); - - if (par3EntityPlayer.isSneaking()) - { - return par1ItemStack; - } - - if (!par3EntityPlayer.capabilities.isCreativeMode) - { - EnergyItems.syphonAndDamageWhileInContainer(par1ItemStack, par3EntityPlayer, this.getOffensiveMeleeEnergy()); - } - - int distance = 4; - double yaw = par3EntityPlayer.rotationYaw / 180 * Math.PI; - double pitch = par3EntityPlayer.rotationPitch / 180 * Math.PI; - par2World.createExplosion(par3EntityPlayer, par3EntityPlayer.posX + Math.sin(yaw) * Math.cos(pitch) * (-distance), par3EntityPlayer.posY + par3EntityPlayer.getEyeHeight() + Math.sin(-pitch) * distance, par3EntityPlayer.posZ + Math.cos(yaw) * Math.cos(pitch) * distance, (float) (3), true); - return par1ItemStack; - } - - @Override - public ItemStack onDefensiveRightClick(ItemStack par1ItemStack, World par2World, EntityPlayer par3EntityPlayer) - { - EnergyItems.checkAndSetItemOwner(par1ItemStack, par3EntityPlayer); - - if (par3EntityPlayer.isSneaking()) - { - return par1ItemStack; - } - - if (!par3EntityPlayer.capabilities.isCreativeMode) - { - EnergyItems.syphonAndDamageWhileInContainer(par1ItemStack, par3EntityPlayer, this.getDefensiveEnergy()); - } - - int distance = 4; -// double yaw = par3EntityPlayer.rotationYaw/180*Math.PI; -// double pitch = par3EntityPlayer.rotationPitch/180*Math.PI; - par2World.createExplosion(par3EntityPlayer, par3EntityPlayer.posX, par3EntityPlayer.posY + par3EntityPlayer.getEyeHeight(), par3EntityPlayer.posZ, (float) (distance), false); - return par1ItemStack; - } - - @Override - public ItemStack onEnvironmentalRightClick(ItemStack par1ItemStack, World par2World, EntityPlayer par3EntityPlayer) - { - EnergyItems.checkAndSetItemOwner(par1ItemStack, par3EntityPlayer); - - if (par3EntityPlayer.isSneaking()) - { - return par1ItemStack; - } - - if (!par3EntityPlayer.capabilities.isCreativeMode) - { - EnergyItems.syphonAndDamageWhileInContainer(par1ItemStack, par3EntityPlayer, this.getEnvironmentalEnergy()); - } - - int radius = 3; - - for (int i = 0; i < 360; i += 36) - { - par2World.createExplosion(par3EntityPlayer, par3EntityPlayer.posX + Math.cos(i) * radius, par3EntityPlayer.posY, par3EntityPlayer.posZ + Math.sin(i) * radius, (float) (2), true); - } - - return null; - } -} diff --git a/BM_src/WayofTime/alchemicalWizardry/common/spell/simple/SpellFireBurst.java b/BM_src/WayofTime/alchemicalWizardry/common/spell/simple/SpellFireBurst.java deleted file mode 100644 index 0cc85b32..00000000 --- a/BM_src/WayofTime/alchemicalWizardry/common/spell/simple/SpellFireBurst.java +++ /dev/null @@ -1,174 +0,0 @@ -package WayofTime.alchemicalWizardry.common.spell.simple; - -import WayofTime.alchemicalWizardry.common.entity.projectile.FireProjectile; -import WayofTime.alchemicalWizardry.common.items.EnergyItems; -import net.minecraft.block.Block; -import net.minecraft.entity.EntityLivingBase; -import net.minecraft.entity.player.EntityPlayer; -import net.minecraft.item.ItemStack; -import net.minecraft.util.AxisAlignedBB; -import net.minecraft.util.DamageSource; -import net.minecraft.world.World; - -import java.util.Iterator; -import java.util.List; -import java.util.Random; - -public class SpellFireBurst extends HomSpell -{ - public Random itemRand = new Random(); - - public SpellFireBurst() - { - super(); - this.setEnergies(100, 300, 400, 100); - //this.setCreativeTab(CreativeTabs.tabMisc); - } - - @Override - public ItemStack onOffensiveRangedRightClick(ItemStack par1ItemStack, World par2World, EntityPlayer par3EntityPlayer) - { - EnergyItems.checkAndSetItemOwner(par1ItemStack, par3EntityPlayer); - - if (par3EntityPlayer.isSneaking()) - { - return par1ItemStack; - } - - if (!par3EntityPlayer.capabilities.isCreativeMode) - { - EnergyItems.syphonAndDamageWhileInContainer(par1ItemStack, par3EntityPlayer, this.getOffensiveRangedEnergy()); - } - - par2World.playSoundAtEntity(par3EntityPlayer, "random.fizz", 0.5F, 0.4F / (itemRand.nextFloat() * 0.4F + 0.8F)); - - if (!par2World.isRemote) - { - //par2World.spawnEntityInWorld(new EnergyBlastProjectile(par2World, par3EntityPlayer, damage)); - par2World.spawnEntityInWorld(new FireProjectile(par2World, par3EntityPlayer, 7)); - } - - return par1ItemStack; - } - - @Override - public ItemStack onOffensiveMeleeRightClick(ItemStack par1ItemStack, World par2World, EntityPlayer par3EntityPlayer) - { - EnergyItems.checkAndSetItemOwner(par1ItemStack, par3EntityPlayer); - - if (par3EntityPlayer.isSneaking()) - { - return par1ItemStack; - } - - if (!par3EntityPlayer.capabilities.isCreativeMode) - { - EnergyItems.syphonAndDamageWhileInContainer(par1ItemStack, par3EntityPlayer, this.getOffensiveMeleeEnergy()); - } - - par2World.playSoundAtEntity(par3EntityPlayer, "random.fizz", 0.5F, 0.4F / (itemRand.nextFloat() * 0.4F + 0.8F)); - - if (!par2World.isRemote) - { - for (int i = -1; i <= 1; i++) - { - for (int j = -1; j <= 1; j++) - { - par2World.spawnEntityInWorld(new FireProjectile(par2World, par3EntityPlayer, 8, 2, par3EntityPlayer.posX, par3EntityPlayer.posY + par3EntityPlayer.getEyeHeight(), par3EntityPlayer.posZ, par3EntityPlayer.rotationYaw + i * 10F, par3EntityPlayer.rotationPitch + j * 10F)); - } - } - } - - return par1ItemStack; - } - - @Override - public ItemStack onDefensiveRightClick(ItemStack par1ItemStack, World par2World, EntityPlayer par3EntityPlayer) - { - EnergyItems.checkAndSetItemOwner(par1ItemStack, par3EntityPlayer); - - if (par3EntityPlayer.isSneaking()) - { - return par1ItemStack; - } - - if (!par3EntityPlayer.capabilities.isCreativeMode) - { - EnergyItems.syphonAndDamageWhileInContainer(par1ItemStack, par3EntityPlayer, this.getDefensiveEnergy()); - } - - par2World.playSoundAtEntity(par3EntityPlayer, "random.fizz", 0.5F, 0.4F / (itemRand.nextFloat() * 0.4F + 0.8F)); - int d0 = 2; - AxisAlignedBB axisalignedbb = AxisAlignedBB.getAABBPool().getAABB((double) par3EntityPlayer.posX, (double) par3EntityPlayer.posY, (double) par3EntityPlayer.posZ, (double) (par3EntityPlayer.posX + 1), (double) (par3EntityPlayer.posY + 2), (double) (par3EntityPlayer.posZ + 1)).expand(d0, d0, d0); - //axisalignedbb.maxY = (double)this.worldObj.getHeight(); - List list = par3EntityPlayer.worldObj.getEntitiesWithinAABB(EntityLivingBase.class, axisalignedbb); - Iterator iterator = list.iterator(); - - while (iterator.hasNext()) - { - EntityLivingBase entityLiving = (EntityLivingBase) iterator.next(); - - if (entityLiving instanceof EntityPlayer) - { - if (entityLiving.getEntityName().equals(par3EntityPlayer.getEntityName())) - { - continue; - } - } - - entityLiving.setFire(100); - entityLiving.attackEntityFrom(DamageSource.inFire, 2); - } - -// if (!par2World.isRemote) -// { -// -// for(int i=0;i<10;i++) -// { -// for(int j=0;j<5;j++) -// { -// par2World.spawnEntityInWorld(new FireProjectile(par2World, par3EntityPlayer, 10,5,par3EntityPlayer.posX,par3EntityPlayer.posY+par3EntityPlayer.getEyeHeight(),par3EntityPlayer.posZ, par3EntityPlayer.rotationYaw+i*36F,par3EntityPlayer.rotationPitch+j*72F)); -// } -// } -// } - return par1ItemStack; - } - - @Override - public ItemStack onEnvironmentalRightClick(ItemStack par1ItemStack, World par2World, EntityPlayer par3EntityPlayer) - { - EnergyItems.checkAndSetItemOwner(par1ItemStack, par3EntityPlayer); - - if (par3EntityPlayer.isSneaking()) - { - return par1ItemStack; - } - - if (!par3EntityPlayer.capabilities.isCreativeMode) - { - EnergyItems.syphonAndDamageWhileInContainer(par1ItemStack, par3EntityPlayer, this.getEnvironmentalEnergy()); - } - - par2World.playSoundAtEntity(par3EntityPlayer, "random.fizz", 0.5F, 0.4F / (itemRand.nextFloat() * 0.4F + 0.8F)); - World worldObj = par2World; - - for (int i = -1; i <= 1; i++) - { - for (int j = -1; j <= 1; j++) - { - for (int k = -1; k <= 1; k++) - { - if (worldObj.isAirBlock((int) par3EntityPlayer.posX + i, (int) par3EntityPlayer.posY + j, (int) par3EntityPlayer.posZ + k)) - { - if (worldObj.rand.nextFloat() < 0.8F) - { - worldObj.setBlock((int) par3EntityPlayer.posX + i, (int) par3EntityPlayer.posY + j, (int) par3EntityPlayer.posZ + k, Block.fire.blockID); - } - } - } - } - } - - return par1ItemStack; - } -} diff --git a/BM_src/WayofTime/alchemicalWizardry/common/spell/simple/SpellFrozenWater.java b/BM_src/WayofTime/alchemicalWizardry/common/spell/simple/SpellFrozenWater.java deleted file mode 100644 index b993e454..00000000 --- a/BM_src/WayofTime/alchemicalWizardry/common/spell/simple/SpellFrozenWater.java +++ /dev/null @@ -1,207 +0,0 @@ -package WayofTime.alchemicalWizardry.common.spell.simple; - -import WayofTime.alchemicalWizardry.common.entity.projectile.IceProjectile; -import WayofTime.alchemicalWizardry.common.items.EnergyItems; -import net.minecraft.block.Block; -import net.minecraft.entity.player.EntityPlayer; -import net.minecraft.item.ItemStack; -import net.minecraft.world.World; - -import java.util.Random; - -public class SpellFrozenWater extends HomSpell -{ - public Random itemRand = new Random(); - - public SpellFrozenWater() - { - super(); - this.setEnergies(100, 200, 150, 100); - //this.setCreativeTab(CreativeTabs.tabMisc); - } - - @Override - public ItemStack onOffensiveRangedRightClick(ItemStack par1ItemStack, World par2World, EntityPlayer par3EntityPlayer) - { - EnergyItems.checkAndSetItemOwner(par1ItemStack, par3EntityPlayer); - - if (par3EntityPlayer.isSneaking()) - { - return par1ItemStack; - } - - if (!par3EntityPlayer.capabilities.isCreativeMode) - { - EnergyItems.syphonAndDamageWhileInContainer(par1ItemStack, par3EntityPlayer, this.getOffensiveRangedEnergy()); - } - - par2World.playSoundAtEntity(par3EntityPlayer, "random.fizz", 0.5F, 0.4F / (itemRand.nextFloat() * 0.4F + 0.8F)); - - if (!par2World.isRemote) - { - //par2World.spawnEntityInWorld(new EnergyBlastProjectile(par2World, par3EntityPlayer, damage)); - par2World.spawnEntityInWorld(new IceProjectile(par2World, par3EntityPlayer, 6)); - } - - return par1ItemStack; - } - - @Override - public ItemStack onOffensiveMeleeRightClick(ItemStack par1ItemStack, World par2World, EntityPlayer par3EntityPlayer) - { - EnergyItems.checkAndSetItemOwner(par1ItemStack, par3EntityPlayer); - - if (par3EntityPlayer.isSneaking()) - { - return par1ItemStack; - } - - if (!par3EntityPlayer.capabilities.isCreativeMode) - { - EnergyItems.syphonAndDamageWhileInContainer(par1ItemStack, par3EntityPlayer, this.getOffensiveMeleeEnergy()); - } - - for (int i = -2; i <= 2; i++) - { - par2World.spawnEntityInWorld(new IceProjectile(par2World, par3EntityPlayer, 6, 2, par3EntityPlayer.posX, par3EntityPlayer.posY + par3EntityPlayer.getEyeHeight(), par3EntityPlayer.posZ, par3EntityPlayer.rotationYaw + i * 5F, par3EntityPlayer.rotationPitch)); - } - - return par1ItemStack; - } - - @Override - public ItemStack onDefensiveRightClick(ItemStack par1ItemStack, World par2World, EntityPlayer par3EntityPlayer) - { - if (!par3EntityPlayer.capabilities.isCreativeMode) - { - EnergyItems.syphonAndDamageWhileInContainer(par1ItemStack, par3EntityPlayer, getDefensiveEnergy()); - } - - float yaw = par3EntityPlayer.rotationYaw; - float pitch = par3EntityPlayer.rotationPitch; - int range = 2; - - if (pitch > 40F) - { - for (int i = -range; i <= range; i++) - { - for (int j = -range; j <= range; j++) - { - if (par2World.isAirBlock((int) par3EntityPlayer.posX + i, (int) par3EntityPlayer.posY - 1, (int) par3EntityPlayer.posZ + j)) - { - par2World.setBlock((int) par3EntityPlayer.posX + i, (int) par3EntityPlayer.posY - 1, (int) par3EntityPlayer.posZ + j, Block.ice.blockID); - } - } - } - - return par1ItemStack; - } else if (pitch < -40F) - { - for (int i = -range; i <= range; i++) - { - for (int j = -range; j <= range; j++) - { - if (par2World.isAirBlock((int) par3EntityPlayer.posX + i, (int) par3EntityPlayer.posY + 3, (int) par3EntityPlayer.posZ + j)) - { - par2World.setBlock((int) par3EntityPlayer.posX + i, (int) par3EntityPlayer.posY + 3, (int) par3EntityPlayer.posZ + j, Block.ice.blockID); - } - } - } - - return par1ItemStack; - } - - if ((yaw >= 315 && yaw < 360) || (yaw >= 0 && yaw < 45)) - { - for (int i = -range; i <= range; i++) - { - for (int j = 0; j < range * 2 + 1; j++) - { - if (par2World.isAirBlock((int) par3EntityPlayer.posX + i, (int) par3EntityPlayer.posY + j, (int) par3EntityPlayer.posZ + 2)) - { - par2World.setBlock((int) par3EntityPlayer.posX + i, (int) par3EntityPlayer.posY + j, (int) par3EntityPlayer.posZ + 2, Block.ice.blockID); - } - } - } - } else if (yaw >= 45 && yaw < 135) - { - for (int i = -range; i <= range; i++) - { - for (int j = 0; j < range * 2 + 1; j++) - { - if (par2World.isAirBlock((int) par3EntityPlayer.posX - 2, (int) par3EntityPlayer.posY + j, (int) par3EntityPlayer.posZ + i)) - { - par2World.setBlock((int) par3EntityPlayer.posX - 2, (int) par3EntityPlayer.posY + j, (int) par3EntityPlayer.posZ + i, Block.ice.blockID); - } - } - } - } else if (yaw >= 135 && yaw < 225) - { - for (int i = -range; i <= range; i++) - { - for (int j = 0; j < range * 2 + 1; j++) - { - if (par2World.isAirBlock((int) par3EntityPlayer.posX + i, (int) par3EntityPlayer.posY + j, (int) par3EntityPlayer.posZ - 2)) - { - par2World.setBlock((int) par3EntityPlayer.posX + i, (int) par3EntityPlayer.posY + j, (int) par3EntityPlayer.posZ - 2, Block.ice.blockID); - } - } - } - } else - { - for (int i = -range; i <= range; i++) - { - for (int j = 0; j < range * 2 + 1; j++) - { - if (par2World.isAirBlock((int) par3EntityPlayer.posX + 2, (int) par3EntityPlayer.posY + j, (int) par3EntityPlayer.posZ + i)) - { - par2World.setBlock((int) par3EntityPlayer.posX + 2, (int) par3EntityPlayer.posY + j, (int) par3EntityPlayer.posZ + i, Block.ice.blockID); - } - } - } - } - - return par1ItemStack; - } - - @Override - public ItemStack onEnvironmentalRightClick(ItemStack par1ItemStack, World par2World, EntityPlayer par3EntityPlayer) - { - EnergyItems.checkAndSetItemOwner(par1ItemStack, par3EntityPlayer); - - if (par3EntityPlayer.isSneaking()) - { - return par1ItemStack; - } - - int radius = 3; - int posX = (int) par3EntityPlayer.posX; - int posY = (int) par3EntityPlayer.posY; - int posZ = (int) par3EntityPlayer.posZ; - - for (int i = -radius; i <= radius; i++) - { - for (int j = -radius; j <= radius; j++) - { - for (int k = -radius; k <= radius; k++) - { - int blockID = par2World.getBlockId((int) par3EntityPlayer.posX + i - 1, (int) par3EntityPlayer.posY + j, (int) par3EntityPlayer.posZ + k); - - //Block block = Block.blocksList[blockID]; - if (blockID == Block.waterMoving.blockID || blockID == Block.waterStill.blockID) - { - par2World.setBlock((int) par3EntityPlayer.posX + i - 1, (int) par3EntityPlayer.posY + j, (int) par3EntityPlayer.posZ + k, Block.ice.blockID); - } - } - } - } - -// int blockID = par2World.getBlockId((int)par3EntityPlayer.posX+i, (int)par3EntityPlayer.posY+j, (int)par3EntityPlayer.posZ+k); -// //Block block = Block.blocksList[blockID]; -// if(blockID==Block.waterMoving.blockID||blockID==Block.waterStill.blockID) -// { -// par2World.setBlock((int)par3EntityPlayer.posX+i, (int)par3EntityPlayer.posY+j, (int)par3EntityPlayer.posZ+k, Block.ice.blockID); -// } - return par1ItemStack; - } -} diff --git a/BM_src/WayofTime/alchemicalWizardry/common/spell/simple/SpellHolyBlast.java b/BM_src/WayofTime/alchemicalWizardry/common/spell/simple/SpellHolyBlast.java deleted file mode 100644 index 7752fb08..00000000 --- a/BM_src/WayofTime/alchemicalWizardry/common/spell/simple/SpellHolyBlast.java +++ /dev/null @@ -1,199 +0,0 @@ -package WayofTime.alchemicalWizardry.common.spell.simple; - -import WayofTime.alchemicalWizardry.common.PacketHandler; -import WayofTime.alchemicalWizardry.common.entity.projectile.HolyProjectile; -import WayofTime.alchemicalWizardry.common.items.EnergyItems; -import cpw.mods.fml.common.network.PacketDispatcher; -import net.minecraft.entity.EntityLivingBase; -import net.minecraft.entity.player.EntityPlayer; -import net.minecraft.item.ItemStack; -import net.minecraft.util.AxisAlignedBB; -import net.minecraft.util.DamageSource; -import net.minecraft.world.World; - -import java.util.Iterator; -import java.util.List; -import java.util.Random; - -public class SpellHolyBlast extends HomSpell -{ - Random itemRand = new Random(); - - public SpellHolyBlast() - { - super(); - this.setEnergies(100, 300, 500, 400); - //this.setCreativeTab(CreativeTabs.tabMisc); - } - - @Override - public ItemStack onOffensiveRangedRightClick(ItemStack par1ItemStack, World par2World, EntityPlayer par3EntityPlayer) - { - EnergyItems.checkAndSetItemOwner(par1ItemStack, par3EntityPlayer); - - if (par3EntityPlayer.isSneaking()) - { - return par1ItemStack; - } - - if (!par3EntityPlayer.capabilities.isCreativeMode) - { - EnergyItems.syphonAndDamageWhileInContainer(par1ItemStack, par3EntityPlayer, this.getOffensiveRangedEnergy()); - } - - par2World.playSoundAtEntity(par3EntityPlayer, "random.fizz", 0.5F, 0.4F / (itemRand.nextFloat() * 0.4F + 0.8F)); - - if (!par2World.isRemote) - { - //par2World.spawnEntityInWorld(new EnergyBlastProjectile(par2World, par3EntityPlayer, damage)); - par2World.spawnEntityInWorld(new HolyProjectile(par2World, par3EntityPlayer, 8)); - } - - return par1ItemStack; - } - - @Override - public ItemStack onOffensiveMeleeRightClick(ItemStack par1ItemStack, World par2World, EntityPlayer par3EntityPlayer) - { - EnergyItems.checkAndSetItemOwner(par1ItemStack, par3EntityPlayer); - - if (par3EntityPlayer.isSneaking()) - { - return par1ItemStack; - } - - if (!par3EntityPlayer.capabilities.isCreativeMode) - { - EnergyItems.syphonAndDamageWhileInContainer(par1ItemStack, par3EntityPlayer, this.getOffensiveMeleeEnergy()); - } - - int distance = 2; - double yaw = par3EntityPlayer.rotationYaw / 180 * Math.PI; - double pitch = par3EntityPlayer.rotationPitch / 180 * Math.PI; - double xCoord = par3EntityPlayer.posX + Math.sin(yaw) * Math.cos(pitch) * (-distance); - double yCoord = par3EntityPlayer.posY + par3EntityPlayer.getEyeHeight() + Math.sin(-pitch) * distance; - double zCoord = par3EntityPlayer.posZ + Math.cos(yaw) * Math.cos(pitch) * distance; - float d0 = 0.5f; - AxisAlignedBB axisalignedbb = AxisAlignedBB.getAABBPool().getAABB(par3EntityPlayer.posX - 0.5 + Math.sin(yaw) * Math.cos(pitch) * (-distance), par3EntityPlayer.posY + par3EntityPlayer.getEyeHeight() + Math.sin(-pitch) * distance, par3EntityPlayer.posZ - 0.5 + Math.cos(yaw) * Math.cos(pitch) * distance, par3EntityPlayer.posX + Math.sin(yaw) * Math.cos(pitch) * (-distance) + 0.5, par3EntityPlayer.posY + par3EntityPlayer.getEyeHeight() + Math.sin(-pitch) * distance + 1, par3EntityPlayer.posZ + Math.cos(yaw) * Math.cos(pitch) * distance + 0.5).expand(d0, d0, d0); - //axisalignedbb.maxY = (double)this.worldObj.getHeight(); - List list = par3EntityPlayer.worldObj.getEntitiesWithinAABB(EntityLivingBase.class, axisalignedbb); - Iterator iterator = list.iterator(); - - while (iterator.hasNext()) - { - EntityLivingBase entityLiving = (EntityLivingBase) iterator.next(); - - if (entityLiving instanceof EntityPlayer) - { - if (entityLiving.getEntityName().equals(par3EntityPlayer.getEntityName())) - { - continue; - } - } - - int i = 1; - - if (entityLiving.isEntityUndead()) - { - i = 3; - } - - //entityLiving.setFire(50); - entityLiving.attackEntityFrom(DamageSource.causePlayerDamage(par3EntityPlayer), 5 * i); - //par2World.createExplosion(par3EntityPlayer, par3EntityPlayer.posX, par3EntityPlayer.posY, par3EntityPlayer.posZ, (float)(2), false); - } - - par2World.createExplosion(par3EntityPlayer, xCoord, yCoord, zCoord, (float) (1), false); - - for (int i = 0; i < 5; i++) - { - PacketDispatcher.sendPacketToAllAround(xCoord, yCoord, zCoord, 30, par2World.provider.dimensionId, PacketHandler.getCustomParticlePacket("mobSpell", xCoord + itemRand.nextFloat() - itemRand.nextFloat(), yCoord + itemRand.nextFloat() - itemRand.nextFloat(), zCoord + itemRand.nextFloat() - itemRand.nextFloat(), 1.0F, 1.0F, 1.0F)); - } - - return par1ItemStack; - } - - @Override - public ItemStack onDefensiveRightClick(ItemStack par1ItemStack, World par2World, EntityPlayer par3EntityPlayer) - { - EnergyItems.checkAndSetItemOwner(par1ItemStack, par3EntityPlayer); - - if (par3EntityPlayer.isSneaking()) - { - return par1ItemStack; - } - - if (!par3EntityPlayer.capabilities.isCreativeMode) - { - EnergyItems.syphonAndDamageWhileInContainer(par1ItemStack, par3EntityPlayer, this.getDefensiveEnergy()); - } - - if (!par2World.isRemote) - { - for (int i = 0; i < 360; i += 18) - { - par2World.spawnEntityInWorld(new HolyProjectile(par2World, par3EntityPlayer, 8, 3, par3EntityPlayer.posX, par3EntityPlayer.posY + (par3EntityPlayer.height / 2), par3EntityPlayer.posZ, i, 0)); - } - } - - return par1ItemStack; - } - - @Override - public ItemStack onEnvironmentalRightClick(ItemStack par1ItemStack, World par2World, EntityPlayer par3EntityPlayer) - { - EnergyItems.checkAndSetItemOwner(par1ItemStack, par3EntityPlayer); - - if (par3EntityPlayer.isSneaking()) - { - return par1ItemStack; - } - - if (!par3EntityPlayer.capabilities.isCreativeMode) - { - EnergyItems.syphonAndDamageWhileInContainer(par1ItemStack, par3EntityPlayer, this.getEnvironmentalEnergy()); - } - - int d0 = 3; - AxisAlignedBB axisalignedbb = AxisAlignedBB.getAABBPool().getAABB((double) par3EntityPlayer.posX, (double) par3EntityPlayer.posY, (double) par3EntityPlayer.posZ, (double) (par3EntityPlayer.posX + 1), (double) (par3EntityPlayer.posY + 2), (double) (par3EntityPlayer.posZ + 1)).expand(d0, d0, d0); - //axisalignedbb.maxY = (double)this.worldObj.getHeight(); - List list = par3EntityPlayer.worldObj.getEntitiesWithinAABB(EntityLivingBase.class, axisalignedbb); - Iterator iterator = list.iterator(); - - while (iterator.hasNext()) - { - EntityLivingBase entityLiving = (EntityLivingBase) iterator.next(); - - if (entityLiving instanceof EntityPlayer) - { - if (entityLiving.getEntityName().equals(par3EntityPlayer.getEntityName())) - { - continue; - } - } - - int i = 1; - - if (entityLiving.isEntityUndead()) - { - i = 3; - } - - //entityLiving.setFire(50); - entityLiving.attackEntityFrom(DamageSource.causePlayerDamage(par3EntityPlayer), 5 * i); - //par2World.createExplosion(par3EntityPlayer, par3EntityPlayer.posX, par3EntityPlayer.posY, par3EntityPlayer.posZ, (float)(2), false); - } - - par2World.createExplosion(par3EntityPlayer, par3EntityPlayer.posX, par3EntityPlayer.posY, par3EntityPlayer.posZ, (float) (2), false); - double xCoord = par3EntityPlayer.posX; - double yCoord = par3EntityPlayer.posY; - double zCoord = par3EntityPlayer.posZ; - - for (int i = 0; i < 20; i++) - { - PacketDispatcher.sendPacketToAllAround(xCoord, yCoord, zCoord, 30, par2World.provider.dimensionId, PacketHandler.getCustomParticlePacket("mobSpell", xCoord + (itemRand.nextFloat() - itemRand.nextFloat()) * 3, yCoord + (itemRand.nextFloat() - itemRand.nextFloat()) * 3, zCoord + (itemRand.nextFloat() - itemRand.nextFloat()) * 3, 1.0F, 1.0F, 1.0F)); - } - - return par1ItemStack; - } -} diff --git a/BM_src/WayofTime/alchemicalWizardry/common/spell/simple/SpellLightningBolt.java b/BM_src/WayofTime/alchemicalWizardry/common/spell/simple/SpellLightningBolt.java deleted file mode 100644 index d75feb7c..00000000 --- a/BM_src/WayofTime/alchemicalWizardry/common/spell/simple/SpellLightningBolt.java +++ /dev/null @@ -1,140 +0,0 @@ -package WayofTime.alchemicalWizardry.common.spell.simple; - -import WayofTime.alchemicalWizardry.common.PacketHandler; -import WayofTime.alchemicalWizardry.common.entity.projectile.LightningBoltProjectile; -import WayofTime.alchemicalWizardry.common.items.EnergyItems; -import cpw.mods.fml.common.network.PacketDispatcher; -import net.minecraft.entity.effect.EntityLightningBolt; -import net.minecraft.entity.player.EntityPlayer; -import net.minecraft.item.ItemStack; -import net.minecraft.world.World; - -import java.util.Random; - -public class SpellLightningBolt extends HomSpell -{ - Random itemRand = new Random(); - - public SpellLightningBolt() - { - super(); - this.setEnergies(75, 200, 700, 700); - //this.setCreativeTab(CreativeTabs.tabMisc); - } - - @Override - public ItemStack onOffensiveRangedRightClick(ItemStack par1ItemStack, World par2World, EntityPlayer par3EntityPlayer) - { - EnergyItems.checkAndSetItemOwner(par1ItemStack, par3EntityPlayer); - - if (par3EntityPlayer.isSneaking()) - { - return par1ItemStack; - } - - if (!par3EntityPlayer.capabilities.isCreativeMode) - { - EnergyItems.syphonAndDamageWhileInContainer(par1ItemStack, par3EntityPlayer, this.getOffensiveRangedEnergy()); - } - - par2World.playSoundAtEntity(par3EntityPlayer, "random.fizz", 0.5F, 0.4F / (itemRand.nextFloat() * 0.4F + 0.8F)); - - if (!par2World.isRemote) - { - //par2World.spawnEntityInWorld(new EnergyBlastProjectile(par2World, par3EntityPlayer, damage)); - par2World.spawnEntityInWorld(new LightningBoltProjectile(par2World, par3EntityPlayer, 8, false)); - } - - return par1ItemStack; - } - - @Override - public ItemStack onOffensiveMeleeRightClick(ItemStack par1ItemStack, World par2World, EntityPlayer par3EntityPlayer) - { - //TODO Make it work better...? - EnergyItems.checkAndSetItemOwner(par1ItemStack, par3EntityPlayer); - - if (par3EntityPlayer.isSneaking()) - { - return par1ItemStack; - } - - if (!par3EntityPlayer.capabilities.isCreativeMode) - { - EnergyItems.syphonAndDamageWhileInContainer(par1ItemStack, par3EntityPlayer, this.getOffensiveMeleeEnergy()); - } - - double xCoord = par3EntityPlayer.posX; - double yCoord = par3EntityPlayer.posY; - double zCoord = par3EntityPlayer.posZ; - par2World.getWorldInfo().setRaining(true); - //par2World.setRainStrength(1.0F); - par2World.rainingStrength = 1.0F; - par2World.thunderingStrength = 1.0F; - par2World.getWorldInfo().setThunderTime(0); - par2World.getWorldInfo().setThundering(true); - - for (int i = 0; i < 5; i++) - { - PacketDispatcher.sendPacketToAllAround(xCoord, yCoord, zCoord, 30, par2World.provider.dimensionId, PacketHandler.getCustomParticlePacket("mobSpell", xCoord + itemRand.nextFloat() - itemRand.nextFloat(), yCoord + itemRand.nextFloat() - itemRand.nextFloat(), zCoord + itemRand.nextFloat() - itemRand.nextFloat(), 1.0F, 1.0F, 1.0F)); - } - - return par1ItemStack; - } - - @Override - public ItemStack onDefensiveRightClick(ItemStack par1ItemStack, World par2World, EntityPlayer par3EntityPlayer) - { - EnergyItems.checkAndSetItemOwner(par1ItemStack, par3EntityPlayer); - - if (par3EntityPlayer.isSneaking()) - { - return par1ItemStack; - } - - if (!par3EntityPlayer.capabilities.isCreativeMode) - { - EnergyItems.syphonAndDamageWhileInContainer(par1ItemStack, par3EntityPlayer, this.getDefensiveEnergy()); - } - - double xCoord = par3EntityPlayer.posX; - double yCoord = par3EntityPlayer.posY; - double zCoord = par3EntityPlayer.posZ; - - for (int i = 0; i < 5; i++) - { - par2World.addWeatherEffect(new EntityLightningBolt(par2World, xCoord + itemRand.nextInt(64) - 32, yCoord + itemRand.nextInt(8) - 8, zCoord + itemRand.nextInt(64) - 32)); - } - - for (int i = 0; i < 8; i++) - { - PacketDispatcher.sendPacketToAllAround(xCoord, yCoord, zCoord, 30, par2World.provider.dimensionId, PacketHandler.getCustomParticlePacket("mobSpell", xCoord + (itemRand.nextFloat() - itemRand.nextFloat()) * 3, yCoord + (itemRand.nextFloat() - itemRand.nextFloat()) * 3, zCoord + (itemRand.nextFloat() - itemRand.nextFloat()) * 3, 1.0F, 1.0F, 1.0F)); - } - - return par1ItemStack; - } - - @Override - public ItemStack onEnvironmentalRightClick(ItemStack par1ItemStack, World par2World, EntityPlayer par3EntityPlayer) - { - EnergyItems.checkAndSetItemOwner(par1ItemStack, par3EntityPlayer); - - if (par3EntityPlayer.isSneaking()) - { - return par1ItemStack; - } - - if (!par3EntityPlayer.capabilities.isCreativeMode) - { - EnergyItems.syphonAndDamageWhileInContainer(par1ItemStack, par3EntityPlayer, this.getEnvironmentalEnergy()); - } - - if (!par2World.isRemote) - { - //par2World.spawnEntityInWorld(new EnergyBlastProjectile(par2World, par3EntityPlayer, damage)); - par2World.spawnEntityInWorld(new LightningBoltProjectile(par2World, par3EntityPlayer, 8, true)); - } - - return par1ItemStack; - } -} \ No newline at end of file diff --git a/BM_src/WayofTime/alchemicalWizardry/common/spell/simple/SpellTeleport.java b/BM_src/WayofTime/alchemicalWizardry/common/spell/simple/SpellTeleport.java deleted file mode 100644 index 1e39a48c..00000000 --- a/BM_src/WayofTime/alchemicalWizardry/common/spell/simple/SpellTeleport.java +++ /dev/null @@ -1,287 +0,0 @@ -package WayofTime.alchemicalWizardry.common.spell.simple; - -import WayofTime.alchemicalWizardry.common.PacketHandler; -import WayofTime.alchemicalWizardry.common.entity.projectile.TeleportProjectile; -import WayofTime.alchemicalWizardry.common.items.EnergyItems; -import cpw.mods.fml.common.network.PacketDispatcher; -import net.minecraft.block.Block; -import net.minecraft.entity.Entity; -import net.minecraft.entity.EntityLivingBase; -import net.minecraft.entity.monster.EntityEnderman; -import net.minecraft.entity.player.EntityPlayer; -import net.minecraft.entity.player.EntityPlayerMP; -import net.minecraft.item.ItemStack; -import net.minecraft.util.AxisAlignedBB; -import net.minecraft.util.MathHelper; -import net.minecraft.world.World; -import net.minecraftforge.common.MinecraftForge; -import net.minecraftforge.event.entity.living.EnderTeleportEvent; - -import java.util.Iterator; -import java.util.List; -import java.util.Random; - -public class SpellTeleport extends HomSpell -{ - Random itemRand = new Random(); - - public SpellTeleport() - { - super(); - this.setEnergies(500, 300, 500, 1000); - //this.setCreativeTab(CreativeTabs.tabMisc); - } - - @Override - public ItemStack onOffensiveRangedRightClick(ItemStack par1ItemStack, World par2World, EntityPlayer par3EntityPlayer) - { - EnergyItems.checkAndSetItemOwner(par1ItemStack, par3EntityPlayer); - - if (par3EntityPlayer.isSneaking()) - { - return par1ItemStack; - } - - if (!par3EntityPlayer.capabilities.isCreativeMode) - { - EnergyItems.syphonAndDamageWhileInContainer(par1ItemStack, par3EntityPlayer, this.getOffensiveRangedEnergy()); - } - - par2World.spawnEntityInWorld(new TeleportProjectile(par2World, par3EntityPlayer, 8, true)); - par2World.playSoundAtEntity(par3EntityPlayer, "random.fizz", 0.5F, 0.4F / (itemRand.nextFloat() * 0.4F + 0.8F)); - EntityEnderman g; - return par1ItemStack; - } - - @Override - public ItemStack onOffensiveMeleeRightClick(ItemStack par1ItemStack, World par2World, EntityPlayer par3EntityPlayer) - { - EnergyItems.checkAndSetItemOwner(par1ItemStack, par3EntityPlayer); - - if (par3EntityPlayer.isSneaking()) - { - return par1ItemStack; - } - - if (!par3EntityPlayer.capabilities.isCreativeMode) - { - EnergyItems.syphonAndDamageWhileInContainer(par1ItemStack, par3EntityPlayer, this.getOffensiveMeleeEnergy()); - } - - par2World.spawnEntityInWorld(new TeleportProjectile(par2World, par3EntityPlayer, 8, false)); - return par1ItemStack; - } - - @Override - public ItemStack onDefensiveRightClick(ItemStack par1ItemStack, World par2World, EntityPlayer par3EntityPlayer) - { - EnergyItems.checkAndSetItemOwner(par1ItemStack, par3EntityPlayer); - - if (par3EntityPlayer.isSneaking()) - { - return par1ItemStack; - } - - if (!par3EntityPlayer.capabilities.isCreativeMode) - { - EnergyItems.syphonAndDamageWhileInContainer(par1ItemStack, par3EntityPlayer, this.getDefensiveEnergy()); - } - - double xCoord = par3EntityPlayer.posX; - double yCoord = par3EntityPlayer.posY; - double zCoord = par3EntityPlayer.posZ; - SpellTeleport.teleportRandomly(par3EntityPlayer, 128); - - for (int i = 0; i < 20; i++) - { - PacketDispatcher.sendPacketToAllAround(xCoord, yCoord, zCoord, 30, par2World.provider.dimensionId, PacketHandler.getCustomParticlePacket("portal", xCoord + (itemRand.nextFloat() - itemRand.nextFloat()) * 2, yCoord + (itemRand.nextFloat() - itemRand.nextFloat()) * 2, zCoord + (itemRand.nextFloat() - itemRand.nextFloat()) * 2, itemRand.nextFloat(), itemRand.nextFloat(), itemRand.nextFloat())); - } - - return par1ItemStack; - } - - @Override - public ItemStack onEnvironmentalRightClick(ItemStack par1ItemStack, World par2World, EntityPlayer par3EntityPlayer) - { - EnergyItems.checkAndSetItemOwner(par1ItemStack, par3EntityPlayer); - - if (par3EntityPlayer.isSneaking()) - { - return par1ItemStack; - } - - if (!par3EntityPlayer.capabilities.isCreativeMode) - { - EnergyItems.syphonAndDamageWhileInContainer(par1ItemStack, par3EntityPlayer, this.getEnvironmentalEnergy()); - } - - if (!par2World.isRemote) - { - int d0 = 3; - AxisAlignedBB axisalignedbb = AxisAlignedBB.getAABBPool().getAABB((double) par3EntityPlayer.posX, (double) par3EntityPlayer.posY, (double) par3EntityPlayer.posZ, (double) (par3EntityPlayer.posX + 1), (double) (par3EntityPlayer.posY + 2), (double) (par3EntityPlayer.posZ + 1)).expand(d0, d0, d0); - //axisalignedbb.maxY = (double)this.worldObj.getHeight(); - List list = par3EntityPlayer.worldObj.getEntitiesWithinAABB(EntityLivingBase.class, axisalignedbb); - Iterator iterator = list.iterator(); - - while (iterator.hasNext()) - { - EntityLivingBase entityLiving = (EntityLivingBase) iterator.next(); - - if (entityLiving instanceof EntityPlayer) - { - if (entityLiving.getEntityName().equals(par3EntityPlayer.getEntityName())) - { - continue; - } - } - - SpellTeleport.teleportRandomly(entityLiving, 128); - //entityLiving.attackEntityFrom(DamageSource.inFire, 5); - } - } - - double xCoord = par3EntityPlayer.posX; - double yCoord = par3EntityPlayer.posY; - double zCoord = par3EntityPlayer.posZ; - - for (int i = 0; i < 32; i++) - { - PacketDispatcher.sendPacketToAllAround(xCoord, yCoord, zCoord, 30, par2World.provider.dimensionId, PacketHandler.getCustomParticlePacket("portal", xCoord + (itemRand.nextFloat() - itemRand.nextFloat()) * 2, yCoord + (itemRand.nextFloat() - itemRand.nextFloat()) * 2, zCoord + (itemRand.nextFloat() - itemRand.nextFloat()) * 2, itemRand.nextFloat(), itemRand.nextFloat(), itemRand.nextFloat())); - } - - return par1ItemStack; - } - - public static boolean teleportRandomly(EntityLivingBase entityLiving, double distance) - { - double x = entityLiving.posX; - double y = entityLiving.posY; - double z = entityLiving.posZ; - Random rand = new Random(); - double d0 = x + (rand.nextDouble() - 0.5D) * distance; - double d1 = y + (double) (rand.nextInt((int) distance) - (distance) / 2); - double d2 = z + (rand.nextDouble() - 0.5D) * distance; - int i = 0; - - while (!SpellTeleport.teleportTo(entityLiving, d0, d1, d2, x, y, z) && i < 100) - { - d0 = x + (rand.nextDouble() - 0.5D) * distance; - d1 = y + (double) (rand.nextInt((int) distance) - (distance) / 2); - d2 = z + (rand.nextDouble() - 0.5D) * distance; - i++; - } - - if (i >= 100) - { - return false; - } - - return true; - //return SpellTeleport.teleportTo(entityLiving, d0, d1, d2,x,y,z); - } - - private static boolean teleportTo(EntityLivingBase entityLiving, double par1, double par3, double par5, double lastX, double lastY, double lastZ) - { - EnderTeleportEvent event = new EnderTeleportEvent(entityLiving, par1, par3, par5, 0); - - if (MinecraftForge.EVENT_BUS.post(event)) - { - return false; - } - - double d3 = lastX; - double d4 = lastY; - double d5 = lastZ; - SpellTeleport.moveEntityViaTeleport(entityLiving, event.targetX, event.targetY, event.targetZ); - boolean flag = false; - int i = MathHelper.floor_double(entityLiving.posX); - int j = MathHelper.floor_double(entityLiving.posY); - int k = MathHelper.floor_double(entityLiving.posZ); - int l; - - if (entityLiving.worldObj.blockExists(i, j, k)) - { - boolean flag1 = false; - - while (!flag1 && j > 0) - { - l = entityLiving.worldObj.getBlockId(i, j - 1, k); - - if (l != 0 && Block.blocksList[l].blockMaterial.blocksMovement()) - { - flag1 = true; - } else - { - --entityLiving.posY; - --j; - } - } - - if (flag1) - { - SpellTeleport.moveEntityViaTeleport(entityLiving, entityLiving.posX, entityLiving.posY, entityLiving.posZ); - - if (entityLiving.worldObj.getCollidingBoundingBoxes(entityLiving, entityLiving.boundingBox).isEmpty() && !entityLiving.worldObj.isAnyLiquid(entityLiving.boundingBox)) - { - flag = true; - } - } - } - - if (!flag) - { - SpellTeleport.moveEntityViaTeleport(entityLiving, d3, d4, d5); - return false; - } else - { - short short1 = 128; - - for (l = 0; l < short1; ++l) - { - double d6 = (double) l / ((double) short1 - 1.0D); - float f = (entityLiving.worldObj.rand.nextFloat() - 0.5F) * 0.2F; - float f1 = (entityLiving.worldObj.rand.nextFloat() - 0.5F) * 0.2F; - float f2 = (entityLiving.worldObj.rand.nextFloat() - 0.5F) * 0.2F; - double d7 = d3 + (entityLiving.posX - d3) * d6 + (entityLiving.worldObj.rand.nextDouble() - 0.5D) * (double) entityLiving.width * 2.0D; - double d8 = d4 + (entityLiving.posY - d4) * d6 + entityLiving.worldObj.rand.nextDouble() * (double) entityLiving.height; - double d9 = d5 + (entityLiving.posZ - d5) * d6 + (entityLiving.worldObj.rand.nextDouble() - 0.5D) * (double) entityLiving.width * 2.0D; - entityLiving.worldObj.spawnParticle("portal", d7, d8, d9, (double) f, (double) f1, (double) f2); - } - -// this.worldObj.playSoundEffect(d3, d4, d5, "mob.endermen.portal", 1.0F, 1.0F); -// this.playSound("mob.endermen.portal", 1.0F, 1.0F); - return true; - } - } - - public static void moveEntityViaTeleport(EntityLivingBase entityLiving, double x, double y, double z) - { - if (entityLiving instanceof EntityPlayer) - { - if (entityLiving != null && entityLiving instanceof EntityPlayerMP) - { - EntityPlayerMP entityplayermp = (EntityPlayerMP) entityLiving; - - if (!entityplayermp.playerNetServerHandler.connectionClosed && entityplayermp.worldObj == entityLiving.worldObj) - { - EnderTeleportEvent event = new EnderTeleportEvent(entityplayermp, x, y, z, 5.0F); - - if (!MinecraftForge.EVENT_BUS.post(event)) - { - if (entityLiving.isRiding()) - { - entityLiving.mountEntity((Entity) null); - } - - entityLiving.setPositionAndUpdate(event.targetX, event.targetY, event.targetZ); -// this.getThrower().fallDistance = 0.0F; -// this.getThrower().attackEntityFrom(DamageSource.fall, event.attackDamage); - } - } - } - } else if (entityLiving != null) - { - entityLiving.setPosition(x, y, z); - } - } -} diff --git a/BM_src/WayofTime/alchemicalWizardry/common/spell/simple/SpellWateryGrave.java b/BM_src/WayofTime/alchemicalWizardry/common/spell/simple/SpellWateryGrave.java deleted file mode 100644 index 874005c7..00000000 --- a/BM_src/WayofTime/alchemicalWizardry/common/spell/simple/SpellWateryGrave.java +++ /dev/null @@ -1,179 +0,0 @@ -package WayofTime.alchemicalWizardry.common.spell.simple; - -import WayofTime.alchemicalWizardry.AlchemicalWizardry; -import WayofTime.alchemicalWizardry.common.PacketHandler; -import WayofTime.alchemicalWizardry.common.entity.projectile.WaterProjectile; -import WayofTime.alchemicalWizardry.common.items.EnergyItems; -import cpw.mods.fml.common.network.PacketDispatcher; -import net.minecraft.block.Block; -import net.minecraft.entity.EntityLivingBase; -import net.minecraft.entity.player.EntityPlayer; -import net.minecraft.item.ItemStack; -import net.minecraft.potion.PotionEffect; -import net.minecraft.util.AxisAlignedBB; -import net.minecraft.util.DamageSource; -import net.minecraft.world.World; - -import java.util.Iterator; -import java.util.List; -import java.util.Random; - -public class SpellWateryGrave extends HomSpell -{ - Random itemRand = new Random(); - - public SpellWateryGrave() - { - super(); - this.setEnergies(250, 350, 500, 750); - //this.setCreativeTab(CreativeTabs.tabMisc); - } - - @Override - public ItemStack onOffensiveRangedRightClick(ItemStack par1ItemStack, World par2World, EntityPlayer par3EntityPlayer) - { - EnergyItems.checkAndSetItemOwner(par1ItemStack, par3EntityPlayer); - - if (par3EntityPlayer.isSneaking()) - { - return par1ItemStack; - } - - if (!par3EntityPlayer.capabilities.isCreativeMode) - { - EnergyItems.syphonAndDamageWhileInContainer(par1ItemStack, par3EntityPlayer, this.getOffensiveRangedEnergy()); - } - - par2World.spawnEntityInWorld(new WaterProjectile(par2World, par3EntityPlayer, 8)); - par2World.playSoundAtEntity(par3EntityPlayer, "random.fizz", 0.5F, 0.4F / (itemRand.nextFloat() * 0.4F + 0.8F)); - return par1ItemStack; - } - - @Override - public ItemStack onOffensiveMeleeRightClick(ItemStack par1ItemStack, World par2World, EntityPlayer par3EntityPlayer) - { - EnergyItems.checkAndSetItemOwner(par1ItemStack, par3EntityPlayer); - - if (par3EntityPlayer.isSneaking()) - { - return par1ItemStack; - } - - if (!par3EntityPlayer.capabilities.isCreativeMode) - { - EnergyItems.syphonAndDamageWhileInContainer(par1ItemStack, par3EntityPlayer, this.getOffensiveMeleeEnergy()); - } - - if (!par2World.isRemote) - { - for (int i = -1; i <= 1; i++) - { - for (int j = -1; j <= 1; j++) - { - par2World.spawnEntityInWorld(new WaterProjectile(par2World, par3EntityPlayer, 3, 3, par3EntityPlayer.posX, par3EntityPlayer.posY + par3EntityPlayer.getEyeHeight(), par3EntityPlayer.posZ, par3EntityPlayer.rotationYaw + i * 10F, par3EntityPlayer.rotationPitch + j * 5F)); - } - } - } - - return par1ItemStack; - } - - @Override - public ItemStack onDefensiveRightClick(ItemStack par1ItemStack, World par2World, EntityPlayer par3EntityPlayer) - { - EnergyItems.checkAndSetItemOwner(par1ItemStack, par3EntityPlayer); - - if (par3EntityPlayer.isSneaking()) - { - return par1ItemStack; - } - - if (!par3EntityPlayer.capabilities.isCreativeMode) - { - EnergyItems.syphonAndDamageWhileInContainer(par1ItemStack, par3EntityPlayer, this.getDefensiveEnergy()); - } - - int d0 = 3; - AxisAlignedBB axisalignedbb = AxisAlignedBB.getAABBPool().getAABB((double) par3EntityPlayer.posX, (double) par3EntityPlayer.posY, (double) par3EntityPlayer.posZ, (double) (par3EntityPlayer.posX + 1), (double) (par3EntityPlayer.posY + 2), (double) (par3EntityPlayer.posZ + 1)).expand(d0, d0, d0); - //axisalignedbb.maxY = (double)this.worldObj.getHeight(); - List list = par3EntityPlayer.worldObj.getEntitiesWithinAABB(EntityLivingBase.class, axisalignedbb); - Iterator iterator = list.iterator(); - - while (iterator.hasNext()) - { - EntityLivingBase entityLiving = (EntityLivingBase) iterator.next(); - - if (entityLiving instanceof EntityPlayer) - { - if (entityLiving.getEntityName().equals(par3EntityPlayer.getEntityName())) - { - continue; - } - } - - int x = 1; - - if (entityLiving.isImmuneToFire()) - { - x = 2; - } - - entityLiving.attackEntityFrom(DamageSource.drown, 2 * x); - entityLiving.addPotionEffect(new PotionEffect(AlchemicalWizardry.customPotionDrowning.id, 100, x - 1)); - } - - double xCoord = par3EntityPlayer.posX; - double yCoord = par3EntityPlayer.posY; - double zCoord = par3EntityPlayer.posZ; - - for (int i = 0; i < 20; i++) - { - PacketDispatcher.sendPacketToAllAround(xCoord, yCoord, zCoord, 30, par2World.provider.dimensionId, PacketHandler.getCustomParticlePacket("mobSpell", xCoord + (itemRand.nextFloat() - itemRand.nextFloat()) * 3, yCoord + (itemRand.nextFloat() - itemRand.nextFloat()) * 3, zCoord + (itemRand.nextFloat() - itemRand.nextFloat()) * 3, 0.0F, 0.410F, 1.0F)); - } - - return par1ItemStack; - } - - @Override - public ItemStack onEnvironmentalRightClick(ItemStack par1ItemStack, World par2World, EntityPlayer par3EntityPlayer) - { - EnergyItems.checkAndSetItemOwner(par1ItemStack, par3EntityPlayer); - - if (par3EntityPlayer.isSneaking()) - { - return par1ItemStack; - } - - if (!par3EntityPlayer.capabilities.isCreativeMode) - { - EnergyItems.syphonAndDamageWhileInContainer(par1ItemStack, par3EntityPlayer, this.getEnvironmentalEnergy()); - } - - int range = 2; - - if (!par2World.isRemote) - { - for (int i = -range; i <= range; i++) - { - for (int j = -range; j <= range; j++) - { - if (par2World.isAirBlock((int) par3EntityPlayer.posX + i, (int) par3EntityPlayer.posY, (int) par3EntityPlayer.posZ + j)) - { - par2World.setBlock((int) par3EntityPlayer.posX + i, (int) par3EntityPlayer.posY, (int) par3EntityPlayer.posZ + j, Block.waterStill.blockID); - } - } - } - } - - double xCoord = par3EntityPlayer.posX; - double yCoord = par3EntityPlayer.posY; - double zCoord = par3EntityPlayer.posZ; - - for (int i = 0; i < 16; i++) - { - PacketDispatcher.sendPacketToAllAround(xCoord, yCoord, zCoord, 30, par2World.provider.dimensionId, PacketHandler.getCustomParticlePacket("mobSpell", xCoord + (itemRand.nextFloat() - itemRand.nextFloat()) * 2, yCoord + (itemRand.nextFloat() - itemRand.nextFloat()) * 2, zCoord + (itemRand.nextFloat() - itemRand.nextFloat()) * 2, 0.0F, 0.410F, 1.0F)); - } - - return par1ItemStack; - } -} diff --git a/BM_src/WayofTime/alchemicalWizardry/common/spell/simple/SpellWindGust.java b/BM_src/WayofTime/alchemicalWizardry/common/spell/simple/SpellWindGust.java deleted file mode 100644 index 62914b62..00000000 --- a/BM_src/WayofTime/alchemicalWizardry/common/spell/simple/SpellWindGust.java +++ /dev/null @@ -1,216 +0,0 @@ -package WayofTime.alchemicalWizardry.common.spell.simple; - -import WayofTime.alchemicalWizardry.common.PacketHandler; -import WayofTime.alchemicalWizardry.common.entity.projectile.WindGustProjectile; -import WayofTime.alchemicalWizardry.common.items.EnergyItems; -import cpw.mods.fml.common.network.PacketDispatcher; -import cpw.mods.fml.common.network.Player; -import net.minecraft.entity.EntityLivingBase; -import net.minecraft.entity.player.EntityPlayer; -import net.minecraft.item.ItemStack; -import net.minecraft.util.AxisAlignedBB; -import net.minecraft.util.Vec3; -import net.minecraft.world.World; - -import java.util.Iterator; -import java.util.List; -import java.util.Random; - -public class SpellWindGust extends HomSpell -{ - Random itemRand = new Random(); - - public SpellWindGust() - { - super(); - this.setEnergies(300, 400, 300, 500); - //this.setCreativeTab(CreativeTabs.tabMisc); - } - - @Override - public ItemStack onOffensiveRangedRightClick(ItemStack par1ItemStack, World par2World, EntityPlayer par3EntityPlayer) - { - EnergyItems.checkAndSetItemOwner(par1ItemStack, par3EntityPlayer); - - if (par3EntityPlayer.isSneaking()) - { - return par1ItemStack; - } - - if (!par3EntityPlayer.capabilities.isCreativeMode) - { - EnergyItems.syphonAndDamageWhileInContainer(par1ItemStack, par3EntityPlayer, this.getOffensiveRangedEnergy()); - } - - par2World.playSoundAtEntity(par3EntityPlayer, "random.fizz", 0.5F, 0.4F / (itemRand.nextFloat() * 0.4F + 0.8F)); - - if (!par2World.isRemote) - { - //par2World.spawnEntityInWorld(new EnergyBlastProjectile(par2World, par3EntityPlayer, damage)); - par2World.spawnEntityInWorld(new WindGustProjectile(par2World, par3EntityPlayer, 8)); - } - - return par1ItemStack; - } - - @Override - public ItemStack onOffensiveMeleeRightClick(ItemStack par1ItemStack, World par2World, EntityPlayer par3EntityPlayer) - { - EnergyItems.checkAndSetItemOwner(par1ItemStack, par3EntityPlayer); - - if (par3EntityPlayer.isSneaking()) - { - return par1ItemStack; - } - - if (!par3EntityPlayer.capabilities.isCreativeMode) - { - EnergyItems.syphonAndDamageWhileInContainer(par1ItemStack, par3EntityPlayer, this.getOffensiveMeleeEnergy()); - } - - int distance = 3; - double yaw = par3EntityPlayer.rotationYaw / 180 * Math.PI; - double pitch = par3EntityPlayer.rotationPitch / 180 * Math.PI; - double xCoord = par3EntityPlayer.posX + Math.sin(yaw) * Math.cos(pitch) * (-distance); - double yCoord = par3EntityPlayer.posY + par3EntityPlayer.getEyeHeight() + Math.sin(-pitch) * distance; - double zCoord = par3EntityPlayer.posZ + Math.cos(yaw) * Math.cos(pitch) * distance; - float d0 = 0.5f; - AxisAlignedBB axisalignedbb = AxisAlignedBB.getAABBPool().getAABB(par3EntityPlayer.posX - 0.5 + Math.sin(yaw) * Math.cos(pitch) * (-distance), par3EntityPlayer.posY + par3EntityPlayer.getEyeHeight() + Math.sin(-pitch) * distance, par3EntityPlayer.posZ - 0.5 + Math.cos(yaw) * Math.cos(pitch) * distance, par3EntityPlayer.posX + Math.sin(yaw) * Math.cos(pitch) * (-distance) + 0.5, par3EntityPlayer.posY + par3EntityPlayer.getEyeHeight() + Math.sin(-pitch) * distance + 1, par3EntityPlayer.posZ + Math.cos(yaw) * Math.cos(pitch) * distance + 0.5).expand(d0, d0, d0); - //axisalignedbb.maxY = (double)this.worldObj.getHeight(); - List list = par3EntityPlayer.worldObj.getEntitiesWithinAABB(EntityLivingBase.class, axisalignedbb); - Iterator iterator = list.iterator(); - - while (iterator.hasNext()) - { - EntityLivingBase entityLiving = (EntityLivingBase) iterator.next(); - - if (entityLiving instanceof EntityPlayer) - { - if (entityLiving.getEntityName().equals(par3EntityPlayer.getEntityName())) - { - continue; - } - } - - //entityLiving.setFire(50); - //entityLiving.attackEntityFrom(DamageSource.causePlayerDamage(par3EntityPlayer), 5*i); - //entityLiving.setVelocity(Math.sin(-yaw)*2, 2, Math.cos(yaw)*2); - entityLiving.motionX = Math.sin(-yaw) * 2; - entityLiving.motionY = 2; - entityLiving.motionZ = Math.cos(yaw) * 2; - //par2World.createExplosion(par3EntityPlayer, par3EntityPlayer.posX, par3EntityPlayer.posY, par3EntityPlayer.posZ, (float)(2), false); - } - - //par2World.createExplosion(par3EntityPlayer, xCoord, yCoord, zCoord, (float)(1), false); - - for (int i = 0; i < 5; i++) - { - PacketDispatcher.sendPacketToAllAround(xCoord, yCoord, zCoord, 30, par2World.provider.dimensionId, PacketHandler.getCustomParticlePacket("mobSpell", xCoord + itemRand.nextFloat() - itemRand.nextFloat(), yCoord + itemRand.nextFloat() - itemRand.nextFloat(), zCoord + itemRand.nextFloat() - itemRand.nextFloat(), 1.0F, 1.0F, 1.0F)); - } - - return par1ItemStack; - } - - @Override - public ItemStack onDefensiveRightClick(ItemStack par1ItemStack, World par2World, EntityPlayer par3EntityPlayer) - { - EnergyItems.checkAndSetItemOwner(par1ItemStack, par3EntityPlayer); - - if (par3EntityPlayer.isSneaking()) - { - return par1ItemStack; - } - - if (!par3EntityPlayer.capabilities.isCreativeMode) - { - EnergyItems.syphonAndDamageWhileInContainer(par1ItemStack, par3EntityPlayer, this.getDefensiveEnergy()); - } - - int distance = 3; - double yaw = par3EntityPlayer.rotationYaw / 180 * Math.PI; - double pitch = par3EntityPlayer.rotationPitch / 180 * Math.PI; - double wantedVelocity = 5; - double xVel = Math.sin(yaw) * Math.cos(pitch) * (-wantedVelocity); - double yVel = Math.sin(-pitch) * wantedVelocity; - double zVel = Math.cos(yaw) * Math.cos(pitch) * wantedVelocity; - Vec3 vec = par3EntityPlayer.getLookVec(); - par3EntityPlayer.motionX = vec.xCoord * wantedVelocity; - par3EntityPlayer.motionY = vec.yCoord * wantedVelocity; - par3EntityPlayer.motionZ = vec.zCoord * wantedVelocity; - PacketDispatcher.sendPacketToPlayer(PacketHandler.getPlayerVelocitySettingPacket(xVel, yVel, zVel), (Player) par3EntityPlayer); - par2World.playSoundEffect((double) ((float) par3EntityPlayer.posX + 0.5F), (double) ((float) par3EntityPlayer.posY + 0.5F), (double) ((float) par3EntityPlayer.posZ + 0.5F), "random.fizz", 0.5F, 2.6F + (par2World.rand.nextFloat() - par2World.rand.nextFloat()) * 0.8F); - par3EntityPlayer.fallDistance = 0; - //par2World.createExplosion(par3EntityPlayer, par3EntityPlayer.posX, par3EntityPlayer.posY, par3EntityPlayer.posZ, (float)(2), false); - double xCoord = par3EntityPlayer.posX; - double yCoord = par3EntityPlayer.posY; - double zCoord = par3EntityPlayer.posZ; - - for (int i = 0; i < 8; i++) - { - PacketDispatcher.sendPacketToAllAround(xCoord, yCoord, zCoord, 30, par2World.provider.dimensionId, PacketHandler.getCustomParticlePacket("mobSpell", xCoord + (itemRand.nextFloat() - itemRand.nextFloat()) * 3, yCoord + (itemRand.nextFloat() - itemRand.nextFloat()) * 3, zCoord + (itemRand.nextFloat() - itemRand.nextFloat()) * 3, 1.0F, 1.0F, 1.0F)); - } - - return par1ItemStack; - } - - @Override - public ItemStack onEnvironmentalRightClick(ItemStack par1ItemStack, World par2World, EntityPlayer par3EntityPlayer) - { - EnergyItems.checkAndSetItemOwner(par1ItemStack, par3EntityPlayer); - - if (par3EntityPlayer.isSneaking()) - { - return par1ItemStack; - } - - if (!par3EntityPlayer.capabilities.isCreativeMode) - { - EnergyItems.syphonAndDamageWhileInContainer(par1ItemStack, par3EntityPlayer, this.getEnvironmentalEnergy()); - } - - int d0 = 3; - AxisAlignedBB axisalignedbb = AxisAlignedBB.getAABBPool().getAABB((double) par3EntityPlayer.posX, (double) par3EntityPlayer.posY, (double) par3EntityPlayer.posZ, (double) (par3EntityPlayer.posX + 1), (double) (par3EntityPlayer.posY + 2), (double) (par3EntityPlayer.posZ + 1)).expand(d0, d0, d0); - //axisalignedbb.maxY = (double)this.worldObj.getHeight(); - List list = par3EntityPlayer.worldObj.getEntitiesWithinAABB(EntityLivingBase.class, axisalignedbb); - Iterator iterator = list.iterator(); - double xCoord = par3EntityPlayer.posX; - double yCoord = par3EntityPlayer.posY; - double zCoord = par3EntityPlayer.posZ; - double wantedVel = 2; - - while (iterator.hasNext()) - { - EntityLivingBase entityLiving = (EntityLivingBase) iterator.next(); - - if (entityLiving instanceof EntityPlayer) - { - if (entityLiving.getEntityName().equals(par3EntityPlayer.getEntityName())) - { - continue; - } - } - - double posXDif = entityLiving.posX - par3EntityPlayer.posX; - double posYDif = entityLiving.posY - par3EntityPlayer.posY + 1; - double posZDif = entityLiving.posZ - par3EntityPlayer.posZ; - double distance2 = Math.pow(posXDif, 2) + Math.pow(posYDif, 2) + Math.pow(posZDif, 2); - double distance = Math.sqrt(distance2); - //entityLiving.setVelocity(posXDif*wantedVel/distance, posYDif*wantedVel/distance, posZDif*wantedVel/distance); - entityLiving.motionX = posXDif * wantedVel / distance; - entityLiving.motionY = posYDif * wantedVel / distance; - entityLiving.motionZ = posZDif * wantedVel / distance; - //entityLiving.setFire(50); - //entityLiving.attackEntityFrom(DamageSource.causePlayerDamage(par3EntityPlayer), 5*i); - //par2World.createExplosion(par3EntityPlayer, par3EntityPlayer.posX, par3EntityPlayer.posY, par3EntityPlayer.posZ, (float)(2), false); - } - - //par2World.createExplosion(par3EntityPlayer, par3EntityPlayer.posX, par3EntityPlayer.posY, par3EntityPlayer.posZ, (float)(2), false); - - for (int i = 0; i < 20; i++) - { - PacketDispatcher.sendPacketToAllAround(xCoord, yCoord, zCoord, 30, par2World.provider.dimensionId, PacketHandler.getCustomParticlePacket("mobSpell", xCoord + (itemRand.nextFloat() - itemRand.nextFloat()) * 3, yCoord + (itemRand.nextFloat() - itemRand.nextFloat()) * 3, zCoord + (itemRand.nextFloat() - itemRand.nextFloat()) * 3, 1.0F, 1.0F, 1.0F)); - } - - return par1ItemStack; - } -} \ No newline at end of file diff --git a/BM_src/WayofTime/alchemicalWizardry/common/summoning/SummoningHelperAW.java b/BM_src/WayofTime/alchemicalWizardry/common/summoning/SummoningHelperAW.java deleted file mode 100644 index d740598b..00000000 --- a/BM_src/WayofTime/alchemicalWizardry/common/summoning/SummoningHelperAW.java +++ /dev/null @@ -1,115 +0,0 @@ -package WayofTime.alchemicalWizardry.common.summoning; - -import net.minecraft.entity.EntityLivingBase; -import net.minecraft.entity.passive.EntityPig; -import net.minecraft.world.World; -import WayofTime.alchemicalWizardry.AlchemicalWizardry; -import WayofTime.alchemicalWizardry.api.summoningRegistry.SummoningHelper; -import WayofTime.alchemicalWizardry.common.EntityAirElemental; -import WayofTime.alchemicalWizardry.common.entity.mob.EntityBileDemon; -import WayofTime.alchemicalWizardry.common.entity.mob.EntityBoulderFist; -import WayofTime.alchemicalWizardry.common.entity.mob.EntityEarthElemental; -import WayofTime.alchemicalWizardry.common.entity.mob.EntityFallenAngel; -import WayofTime.alchemicalWizardry.common.entity.mob.EntityFireElemental; -import WayofTime.alchemicalWizardry.common.entity.mob.EntityHolyElemental; -import WayofTime.alchemicalWizardry.common.entity.mob.EntityIceDemon; -import WayofTime.alchemicalWizardry.common.entity.mob.EntityLowerGuardian; -import WayofTime.alchemicalWizardry.common.entity.mob.EntityShade; -import WayofTime.alchemicalWizardry.common.entity.mob.EntityShadeElemental; -import WayofTime.alchemicalWizardry.common.entity.mob.EntitySmallEarthGolem; -import WayofTime.alchemicalWizardry.common.entity.mob.EntityTestDemon; -import WayofTime.alchemicalWizardry.common.entity.mob.EntityWaterElemental; -import WayofTime.alchemicalWizardry.common.entity.mob.EntityWingedFireDemon; - -public class SummoningHelperAW extends SummoningHelper -{ - public SummoningHelperAW(int id) - { - super(id); - } - - public EntityLivingBase getEntity(World worldObj) - { - if (this.id == AlchemicalWizardry.entityFallenAngelID) - { - return new EntityFallenAngel(worldObj); - } - - if (this.id == AlchemicalWizardry.entityLowerGuardianID) - { - return new EntityLowerGuardian(worldObj); - } - - if (this.id == AlchemicalWizardry.entityBileDemonID) - { - return new EntityBileDemon(worldObj); - } - - if (this.id == AlchemicalWizardry.entityWingedFireDemonID) - { - return new EntityWingedFireDemon(worldObj); - } - - if (this.id == AlchemicalWizardry.entitySmallEarthGolemID) - { - return new EntitySmallEarthGolem(worldObj); - } - - if (this.id == AlchemicalWizardry.entityIceDemonID) - { - return new EntityIceDemon(worldObj); - } - - if (this.id == AlchemicalWizardry.entityBoulderFistID) - { - return new EntityBoulderFist(worldObj); - } - - if (this.id == AlchemicalWizardry.entityShadeID) - { - return new EntityShade(worldObj); - } - - if (this.id == AlchemicalWizardry.entityAirElementalID) - { - return new EntityAirElemental(worldObj); - } - - if (this.id == AlchemicalWizardry.entityWaterElementalID) - { - return new EntityWaterElemental(worldObj); - } - - if (this.id == AlchemicalWizardry.entityEarthElementalID) - { - return new EntityEarthElemental(worldObj); - } - - if (this.id == AlchemicalWizardry.entityFireElementalID) - { - return new EntityFireElemental(worldObj); - } - - if (this.id == AlchemicalWizardry.entityShadeElementalID) - { - return new EntityShadeElemental(worldObj); - } - - if (this.id == AlchemicalWizardry.entityHolyElementalID) - { - return new EntityHolyElemental(worldObj); - } - - if (this.id == AlchemicalWizardry.entityTestDemonID) - { - return new EntityTestDemon(worldObj); - } - - return new EntityPig(worldObj); - } - - public int getSummoningHelperID() - { - return id; - } -} diff --git a/BM_src/WayofTime/alchemicalWizardry/common/summoning/meteor/MeteorParadigm.java b/BM_src/WayofTime/alchemicalWizardry/common/summoning/meteor/MeteorParadigm.java deleted file mode 100644 index 40159f10..00000000 --- a/BM_src/WayofTime/alchemicalWizardry/common/summoning/meteor/MeteorParadigm.java +++ /dev/null @@ -1,84 +0,0 @@ -package WayofTime.alchemicalWizardry.common.summoning.meteor; - -import WayofTime.alchemicalWizardry.AlchemicalWizardry; -import net.minecraft.block.Block; -import net.minecraft.item.ItemStack; -import net.minecraft.world.World; - -import java.util.ArrayList; -import java.util.List; - -public class MeteorParadigm -{ - public List componentList = new ArrayList(); - public ItemStack focusStack; - public int radius; - public static int maxChance = 1000; - - public MeteorParadigm(ItemStack focusStack, int radius) - { - this.focusStack = focusStack; - this.radius = radius; - } - - public void parseStringArray(String[] oreArray) - { - for (int i = 0; i + 1 < oreArray.length; i += 2) - { - String oreName = oreArray[i]; - int oreChance = Integer.parseInt(oreArray[i + 1]); - MeteorParadigmComponent mpc = new MeteorParadigmComponent(oreName, oreChance); - componentList.add(mpc); - } - } - - public void createMeteorImpact(World world, int x, int y, int z) - { - world.createExplosion(null, x, y, z, radius * 4, AlchemicalWizardry.doMeteorsDestroyBlocks); - - 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; - } - - if (!world.isAirBlock(x + i, y + j, z + k)) - { - continue; - } - - int randNum = world.rand.nextInt(maxChance); - boolean hasPlacedBlock = false; - - for (MeteorParadigmComponent mpc : componentList) - { - if (mpc == null || !mpc.isValidBlockParadigm()) - { - continue; - } - - randNum -= mpc.getChance(); - - if (randNum < 0) - { - ItemStack blockStack = mpc.getValidBlockParadigm(); - world.setBlock(x + i, y + j, z + k, blockStack.itemID, blockStack.getItemDamage(), 3); - hasPlacedBlock = true; - break; - } - } - - if (!hasPlacedBlock) - { - world.setBlock(x + i, y + j, z + k, Block.stone.blockID, 0, 3); - } - } - } - } - } -} diff --git a/BM_src/WayofTime/alchemicalWizardry/common/summoning/meteor/MeteorParadigmComponent.java b/BM_src/WayofTime/alchemicalWizardry/common/summoning/meteor/MeteorParadigmComponent.java deleted file mode 100644 index 0daa43a1..00000000 --- a/BM_src/WayofTime/alchemicalWizardry/common/summoning/meteor/MeteorParadigmComponent.java +++ /dev/null @@ -1,54 +0,0 @@ -package WayofTime.alchemicalWizardry.common.summoning.meteor; - -import net.minecraft.item.ItemBlock; -import net.minecraft.item.ItemStack; -import net.minecraftforge.oredict.OreDictionary; - -import java.util.List; - -public class MeteorParadigmComponent -{ - public String oreDictName; - public int chance; - - public MeteorParadigmComponent(String dictName, int chance) - { - this.oreDictName = dictName; - this.chance = chance; - } - - public boolean isValidBlockParadigm() - { - if (this.getValidBlockParadigm() != null) - { - return true; - } - - return false; - } - - public String getOreDictName() - { - return this.oreDictName; - } - - public int getChance() - { - return this.chance; - } - - public ItemStack getValidBlockParadigm() - { - List list = OreDictionary.getOres(getOreDictName()); - - for (ItemStack stack : list) - { - if (stack != null && stack.getItem() instanceof ItemBlock) - { - return stack; - } - } - - return null; - } -} diff --git a/BM_src/WayofTime/alchemicalWizardry/common/summoning/meteor/MeteorRegistry.java b/BM_src/WayofTime/alchemicalWizardry/common/summoning/meteor/MeteorRegistry.java deleted file mode 100644 index 098eb407..00000000 --- a/BM_src/WayofTime/alchemicalWizardry/common/summoning/meteor/MeteorRegistry.java +++ /dev/null @@ -1,61 +0,0 @@ -package WayofTime.alchemicalWizardry.common.summoning.meteor; - -import net.minecraft.item.ItemStack; -import net.minecraft.world.World; -import net.minecraftforge.oredict.OreDictionary; - -import java.util.ArrayList; -import java.util.List; - -public class MeteorRegistry -{ - public static List paradigmList = new ArrayList(); - - public static void registerMeteorParadigm(MeteorParadigm paradigm) - { - paradigmList.add(paradigm); - } - - public static void registerMeteorParadigm(ItemStack stack, String[] oreList, int radius) - { - if (stack != null && oreList != null) - { - MeteorParadigm meteor = new MeteorParadigm(stack, radius); - meteor.parseStringArray(oreList); - paradigmList.add(meteor); - } - } - - public static void createMeteorImpact(World world, int x, int y, int z, int paradigmID) - { - if (paradigmID < paradigmList.size()) - { - paradigmList.get(paradigmID).createMeteorImpact(world, x, y, z); - } - } - - public static int getParadigmIDForItem(ItemStack stack) - { - if (stack == null) - { - return -1; - } - - for (int i = 0; i < paradigmList.size(); i++) - { - ItemStack focusStack = paradigmList.get(i).focusStack; - - if (focusStack != null && focusStack.itemID == stack.itemID && (focusStack.getItemDamage() == OreDictionary.WILDCARD_VALUE || focusStack.getItemDamage() == stack.getItemDamage())) - { - return i; - } - } - - return -1; - } - - public static boolean isValidParadigmItem(ItemStack stack) - { - return getParadigmIDForItem(stack) != -1; - } -} diff --git a/BM_src/WayofTime/alchemicalWizardry/common/tileEntity/TEAltar.java b/BM_src/WayofTime/alchemicalWizardry/common/tileEntity/TEAltar.java deleted file mode 100644 index 1e78dd91..00000000 --- a/BM_src/WayofTime/alchemicalWizardry/common/tileEntity/TEAltar.java +++ /dev/null @@ -1,998 +0,0 @@ -package WayofTime.alchemicalWizardry.common.tileEntity; - -import java.io.ByteArrayOutputStream; -import java.io.DataOutputStream; -import java.io.IOException; - -import net.minecraft.entity.player.EntityPlayer; -import net.minecraft.inventory.IInventory; -import net.minecraft.item.ItemStack; -import net.minecraft.nbt.NBTTagCompound; -import net.minecraft.nbt.NBTTagList; -import net.minecraft.network.packet.Packet; -import net.minecraft.network.packet.Packet250CustomPayload; -import net.minecraft.server.MinecraftServer; -import net.minecraft.tileentity.TileEntity; -import net.minecraft.world.World; -import net.minecraftforge.common.ForgeDirection; -import net.minecraftforge.fluids.Fluid; -import net.minecraftforge.fluids.FluidContainerRegistry; -import net.minecraftforge.fluids.FluidEvent; -import net.minecraftforge.fluids.FluidStack; -import net.minecraftforge.fluids.FluidTank; -import net.minecraftforge.fluids.FluidTankInfo; -import net.minecraftforge.fluids.IFluidHandler; -import net.minecraftforge.fluids.IFluidTank; -import WayofTime.alchemicalWizardry.AlchemicalWizardry; -import WayofTime.alchemicalWizardry.api.altarRecipeRegistry.AltarRecipe; -import WayofTime.alchemicalWizardry.api.altarRecipeRegistry.AltarRecipeRegistry; -import WayofTime.alchemicalWizardry.api.items.interfaces.IBloodOrb; -import WayofTime.alchemicalWizardry.api.soulNetwork.LifeEssenceNetwork; -import WayofTime.alchemicalWizardry.common.PacketHandler; -import WayofTime.alchemicalWizardry.common.bloodAltarUpgrade.AltarUpgradeComponent; -import WayofTime.alchemicalWizardry.common.bloodAltarUpgrade.UpgradedAltars; -import WayofTime.alchemicalWizardry.common.items.EnergyBattery; -import cpw.mods.fml.common.network.PacketDispatcher; - -public class TEAltar extends TileEntity implements IInventory, IFluidTank, IFluidHandler -{ - private ItemStack[] inv; - private int resultID; - private int resultDamage; - private int upgradeLevel; - //public final LiquidTank tank = new LiquidTank(LiquidContainerRegistry.BUCKET_VOLUME * 10); - protected FluidStack fluid; - public int capacity; - private boolean isActive; - private int liquidRequired; //mB - private boolean canBeFilled; - private int consumptionRate; - private int drainRate; - private float consumptionMultiplier; - private float efficiencyMultiplier; - private float sacrificeEfficiencyMultiplier; - private float selfSacrificeEfficiencyMultiplier; - private float capacityMultiplier; - private float orbCapacityMultiplier; - private float dislocationMultiplier; - private boolean isUpgraded; - private boolean isResultBlock; - private int bufferCapacity; - protected FluidStack fluidOutput; - protected FluidStack fluidInput; - private int progress; - - public TEAltar() - { - this.inv = new ItemStack[1]; - resultID = 0; - resultDamage = 0; - this.capacity = FluidContainerRegistry.BUCKET_VOLUME * 10; - fluid = new FluidStack(AlchemicalWizardry.lifeEssenceFluid, 0); - fluidOutput = new FluidStack(AlchemicalWizardry.lifeEssenceFluid, 0); - fluidInput = new FluidStack(AlchemicalWizardry.lifeEssenceFluid, 0); - bufferCapacity = FluidContainerRegistry.BUCKET_VOLUME; - isActive = false; - consumptionRate = 0; - drainRate = 0; - consumptionMultiplier = 0; - efficiencyMultiplier = 0; - capacityMultiplier = 1; - isUpgraded = false; - upgradeLevel = 0; - isResultBlock = false; - progress = 0; - } - - @Override - public void readFromNBT(NBTTagCompound par1NBTTagCompound) - { - super.readFromNBT(par1NBTTagCompound); - NBTTagList tagList = par1NBTTagCompound.getTagList("Inventory"); - - for (int i = 0; i < tagList.tagCount(); i++) - { - NBTTagCompound tag = (NBTTagCompound) tagList.tagAt(i); - int slot = tag.getByte("Slot"); - - if (slot >= 0 && slot < inv.length) - { - inv[slot] = ItemStack.loadItemStackFromNBT(tag); - } - } - - resultID = par1NBTTagCompound.getInteger("resultID"); - resultDamage = par1NBTTagCompound.getInteger("resultDamage"); - - if (!par1NBTTagCompound.hasKey("Empty")) - { - FluidStack fluid = this.fluid.loadFluidStackFromNBT(par1NBTTagCompound); - - if (fluid != null) - { - setMainFluid(fluid); - } - - FluidStack fluidOut = new FluidStack(AlchemicalWizardry.lifeEssenceFluid, par1NBTTagCompound.getInteger("outputAmount")); - - if (fluidOut != null) - { - setOutputFluid(fluidOut); - } - - FluidStack fluidIn = new FluidStack(AlchemicalWizardry.lifeEssenceFluid, par1NBTTagCompound.getInteger("inputAmount")); - - if (fluidIn != null) - { - setInputFluid(fluidIn); - } - } - - upgradeLevel = par1NBTTagCompound.getInteger("upgradeLevel"); - isActive = par1NBTTagCompound.getBoolean("isActive"); - liquidRequired = par1NBTTagCompound.getInteger("liquidRequired"); - canBeFilled = par1NBTTagCompound.getBoolean("canBeFilled"); - isUpgraded = par1NBTTagCompound.getBoolean("isUpgraded"); - consumptionRate = par1NBTTagCompound.getInteger("consumptionRate"); - drainRate = par1NBTTagCompound.getInteger("drainRate"); - consumptionMultiplier = par1NBTTagCompound.getFloat("consumptionMultiplier"); - efficiencyMultiplier = par1NBTTagCompound.getFloat("efficiencyMultiplier"); - selfSacrificeEfficiencyMultiplier = par1NBTTagCompound.getFloat("selfSacrificeEfficiencyMultiplier"); - sacrificeEfficiencyMultiplier = par1NBTTagCompound.getFloat("sacrificeEfficiencyMultiplier"); - capacityMultiplier = par1NBTTagCompound.getFloat("capacityMultiplier"); - orbCapacityMultiplier = par1NBTTagCompound.getFloat("orbCapacityMultiplier"); - dislocationMultiplier = par1NBTTagCompound.getFloat("dislocationMultiplier"); - capacity = par1NBTTagCompound.getInteger("capacity"); - bufferCapacity = par1NBTTagCompound.getInteger("bufferCapacity"); - progress = par1NBTTagCompound.getInteger("progress"); - isResultBlock = par1NBTTagCompound.getBoolean("isResultBlock"); - } - - public void setMainFluid(FluidStack fluid) - { - this.fluid = fluid; - } - - public void setOutputFluid(FluidStack fluid) - { - this.fluidOutput = fluid; - } - - public void setInputFluid(FluidStack fluid) - { - this.fluidInput = fluid; - } - - @Override - public void writeToNBT(NBTTagCompound par1NBTTagCompound) - { - super.writeToNBT(par1NBTTagCompound); - NBTTagList itemList = new NBTTagList(); - - for (int i = 0; i < inv.length; i++) - { - ItemStack stack = inv[i]; - - if (inv[i] != null) - { - NBTTagCompound tag = new NBTTagCompound(); - tag.setByte("Slot", (byte) i); - inv[i].writeToNBT(tag); - itemList.appendTag(tag); - } - } - - par1NBTTagCompound.setInteger("resultID", resultID); - par1NBTTagCompound.setInteger("resultDamage", resultDamage); - par1NBTTagCompound.setTag("Inventory", itemList); - - if (fluid != null) - { - fluid.writeToNBT(par1NBTTagCompound); - } else - { - par1NBTTagCompound.setString("Empty", ""); - } - - if (fluidOutput != null) - { - par1NBTTagCompound.setInteger("outputAmount", fluidOutput.amount); - } - - if (fluidInput != null) - { - par1NBTTagCompound.setInteger("inputAmount", fluidInput.amount); - } - - par1NBTTagCompound.setInteger("upgradeLevel", upgradeLevel); - par1NBTTagCompound.setBoolean("isActive", isActive); - par1NBTTagCompound.setInteger("liquidRequired", liquidRequired); - par1NBTTagCompound.setBoolean("canBeFilled", canBeFilled); - par1NBTTagCompound.setBoolean("isUpgraded", isUpgraded); - par1NBTTagCompound.setInteger("consumptionRate", consumptionRate); - par1NBTTagCompound.setInteger("drainRate", drainRate); - par1NBTTagCompound.setFloat("consumptionMultiplier", consumptionMultiplier); - par1NBTTagCompound.setFloat("efficiencyMultiplier", efficiencyMultiplier); - par1NBTTagCompound.setFloat("sacrificeEfficiencyMultiplier", sacrificeEfficiencyMultiplier); - par1NBTTagCompound.setFloat("selfSacrificeEfficiencyMultiplier", selfSacrificeEfficiencyMultiplier); - par1NBTTagCompound.setBoolean("isResultBlock", isResultBlock); - par1NBTTagCompound.setFloat("capacityMultiplier", capacityMultiplier); - par1NBTTagCompound.setFloat("orbCapacityMultiplier", orbCapacityMultiplier); - par1NBTTagCompound.setFloat("dislocationMultiplier", dislocationMultiplier); - par1NBTTagCompound.setInteger("capacity", capacity); - par1NBTTagCompound.setInteger("progress", progress); - par1NBTTagCompound.setInteger("bufferCapacity", bufferCapacity); - } - - @Override - public int getSizeInventory() - { - return inv.length; - } - - @Override - public ItemStack getStackInSlot(int slot) - { - return inv[slot]; - } - - @Override - public ItemStack decrStackSize(int slot, int amt) - { - ItemStack stack = getStackInSlot(slot); - - if (stack != null) - { - if (stack.stackSize <= amt) - { - setInventorySlotContents(slot, null); - } else - { - stack = stack.splitStack(amt); - - if (stack.stackSize == 0) - { - setInventorySlotContents(slot, null); - } - } - } - - return stack; - } - - @Override - public ItemStack getStackInSlotOnClosing(int slot) - { - ItemStack stack = getStackInSlot(slot); - - if (stack != null) - { - setInventorySlotContents(slot, null); - } - - return stack; - } - - @Override - public void setInventorySlotContents(int slot, ItemStack itemStack) - { - inv[slot] = itemStack; - this.worldObj.markBlockForUpdate(xCoord, yCoord, zCoord); - - if (itemStack != null && itemStack.stackSize > getInventoryStackLimit()) - { - itemStack.stackSize = getInventoryStackLimit(); - } - } - - @Override - public String getInvName() - { - return "TEAltar"; - } - - @Override - public boolean isInvNameLocalized() - { - return false; - } - - @Override - public int getInventoryStackLimit() - { - return 64; - } - - @Override - public boolean isUseableByPlayer(EntityPlayer entityPlayer) - { - return worldObj.getBlockTileEntity(xCoord, yCoord, zCoord) == this && entityPlayer.getDistanceSq(xCoord + 0.5, yCoord + 0.5, zCoord + 0.5) < 64; - } - - @Override - public void openChest() - { - // TODO Auto-generated method stub - } - - @Override - public void closeChest() - { - // TODO Auto-generated method stub - } - - //IFluidTank methods - @Override - public FluidStack getFluid() - { - return fluid; - } - - public FluidStack getInputFluid() - { - return fluidInput; - } - - public FluidStack getOutputFluid() - { - return fluidOutput; - } - - @Override - public int getFluidAmount() - { - if (fluid == null) - { - return 0; - } - - return fluid.amount; - } - - @Override - public int getCapacity() - { - return capacity; - } - - @Override - public FluidTankInfo getInfo() - { - return new FluidTankInfo(this); - } - - @Override - public int fill(FluidStack resource, boolean doFill) - { - TileEntity tile = this; - - if (resource == null) - { - return 0; - } - - if (resource.fluidID != (new FluidStack(AlchemicalWizardry.lifeEssenceFluid, 1)).fluidID) - { - return 0; - } - - if (!doFill) - { - if (fluidInput == null) - { - return Math.min(bufferCapacity, resource.amount); - } - - if (!fluidInput.isFluidEqual(resource)) - { - return 0; - } - - return Math.min(bufferCapacity - fluidInput.amount, resource.amount); - } - - if (fluidInput == null) - { - fluidInput = new FluidStack(resource, Math.min(bufferCapacity, resource.amount)); - - if (tile != null) - { - FluidEvent.fireEvent(new FluidEvent.FluidFillingEvent(fluidInput, tile.worldObj, tile.xCoord, tile.yCoord, tile.zCoord, this)); - } - - return fluidInput.amount; - } - - if (!fluidInput.isFluidEqual(resource)) - { - return 0; - } - - int filled = bufferCapacity - fluidInput.amount; - - if (resource.amount < filled) - { - fluidInput.amount += resource.amount; - filled = resource.amount; - } else - { - fluidInput.amount = bufferCapacity; - } - - if (tile != null) - { - FluidEvent.fireEvent(new FluidEvent.FluidFillingEvent(fluidInput, tile.worldObj, tile.xCoord, tile.yCoord, tile.zCoord, this)); - } - - return filled; - } - - @Override - public FluidStack drain(int maxDrain, boolean doDrain) - { - if (fluidOutput == null) - { - return null; - } - - int drained = maxDrain; - - if (fluidOutput.amount < drained) - { - drained = fluidOutput.amount; - } - - FluidStack stack = new FluidStack(fluidOutput, drained); - - if (doDrain) - { - fluidOutput.amount -= drained; - - if (fluidOutput.amount <= 0) - { - fluidOutput = null; - } - - if (this != null) - { - FluidEvent.fireEvent(new FluidEvent.FluidDrainingEvent(fluidOutput, this.worldObj, this.xCoord, this.yCoord, this.zCoord, this)); - } - } - - if (fluidOutput == null) - { - fluidOutput = new FluidStack(AlchemicalWizardry.lifeEssenceFluid, 0); - } - - if (worldObj != null) - { - worldObj.markBlockForUpdate(xCoord, yCoord, zCoord); - } - - return stack; - } - - //Logic for the actual block is under here - @Override - public void updateEntity() - { - //this.capacity=(int) (10000*this.capacityMultiplier); - if (!worldObj.isRemote && worldObj.getWorldTime() % 20 == 0) - { - //TODO - int syphonMax = (int) (20 * this.dislocationMultiplier); - int fluidInputted = 0; - int fluidOutputted = 0; - fluidInputted = Math.min(syphonMax, -this.fluid.amount + capacity); - fluidInputted = Math.min(this.fluidInput.amount, fluidInputted); - this.fluid.amount += fluidInputted; - this.fluidInput.amount -= fluidInputted; - fluidOutputted = Math.min(syphonMax, this.bufferCapacity - this.fluidOutput.amount); - fluidOutputted = Math.min(this.fluid.amount, fluidOutputted); - this.fluidOutput.amount += fluidOutputted; - this.fluid.amount -= fluidOutputted; - } - - if (worldObj.getWorldTime() % 150 == 0) - { - startCycle(); - } - - if (!isActive) - { - return; - } - - if (getStackInSlot(0) == null) - { - return; - } - - int worldTime = (int) (worldObj.getWorldTime() % 24000); - - if (worldObj.isRemote) - { - return; - } - - if (worldTime % 1 == 0) - { - if (!canBeFilled) - { - if (fluid != null && fluid.amount >= 1) - { - int stackSize = getStackInSlot(0).stackSize; - int liquidDrained = Math.min((int) (upgradeLevel >= 2 ? consumptionRate * (1 + consumptionMultiplier) : consumptionRate), fluid.amount); - - if (liquidDrained > (liquidRequired * stackSize - progress)) - { - liquidDrained = liquidRequired * stackSize - progress; - } - - fluid.amount = fluid.amount - liquidDrained; - progress += liquidDrained; - //getStackInSlot(0).setItemDamage(getStackInSlot(0).getItemDamage() + liquidDrained); - - if (worldTime % 4 == 0) - { - PacketDispatcher.sendPacketToAllAround(xCoord, yCoord, zCoord, 20, worldObj.provider.dimensionId, getParticlePacket(xCoord, yCoord, zCoord, (short) 1)); - } - - if (progress >= liquidRequired * stackSize) - { - ItemStack result = null; - result = AltarRecipeRegistry.getItemForItemAndTier(this.getStackInSlot(0), this.upgradeLevel); - if(result!=null) - { - result.stackSize*=stackSize; - } - -// if (!isResultBlock) -// { -// result = new ItemStack(resultID, stackSize, resultDamage); -// } else -// { -// result = new ItemStack(Block.blocksList[resultID], stackSize, 0); -// } - - setInventorySlotContents(0, result); - progress = 0; - - for (int i = 0; i < 8; i++) - { - PacketDispatcher.sendPacketToAllAround(xCoord, yCoord, zCoord, 20, worldObj.provider.dimensionId, getParticlePacket(xCoord + 0.5, yCoord + 1, zCoord + 0.5, (short) 4)); - } - - //setInventorySlotContents(1, null); - this.isActive = false; - } - } else if (progress > 0) - { - progress -= (int) (efficiencyMultiplier * drainRate); - - if (worldTime % 2 == 0) - { - PacketDispatcher.sendPacketToAllAround(xCoord, yCoord, zCoord, 20, worldObj.provider.dimensionId, getParticlePacket(xCoord, yCoord, zCoord, (short) 2)); - } - } - } else - { - ItemStack returnedItem = getStackInSlot(0); - - if (!(returnedItem.getItem() instanceof IBloodOrb)) - { - return; - } - - IBloodOrb item = (IBloodOrb) (returnedItem.getItem()); - NBTTagCompound itemTag = returnedItem.stackTagCompound; - - if (itemTag == null) - { - return; - } - - String ownerName = itemTag.getString("ownerName"); - - if (ownerName.equals("")) - { - return; - } - - //EntityPlayer owner = MinecraftServer.getServer().getConfigurationManager().getPlayerForUsername(itemTag.getString("ownerName")); - World world = MinecraftServer.getServer().worldServers[0]; - LifeEssenceNetwork data = (LifeEssenceNetwork) world.loadItemData(LifeEssenceNetwork.class, ownerName); - - if (data == null) - { - data = new LifeEssenceNetwork(ownerName); - world.setItemData(ownerName, data); - } - - int currentEssence = data.currentEssence; -// if(owner==null){return;} -// NBTTagCompound playerTag = owner.getEntityData(); -// if(playerTag==null){return;} - //int currentEssence=playerTag.getInteger("currentEssence"); - - if (fluid != null && fluid.amount >= 1) - { - int liquidDrained = Math.min((int) (upgradeLevel >= 2 ? consumptionRate * (1 + consumptionMultiplier) : consumptionRate), fluid.amount); - - if (liquidDrained > (item.getMaxEssence() * this.orbCapacityMultiplier - currentEssence)) - { - liquidDrained = (int) (item.getMaxEssence() * this.orbCapacityMultiplier - currentEssence); - } - - if (liquidDrained <= 0) - { - return; - } - - fluid.amount = fluid.amount - liquidDrained; -// int maxAmount = (int) Math.min(item.getMaxEssence() - consumptionRate * (1 + consumptionMultiplier), consumptionRate * (1 + consumptionMultiplier)); -// fluid.amount -= maxAmount; - data.currentEssence = liquidDrained + data.currentEssence; - data.markDirty(); -// playerTag.setInteger("currentEssence", currentEssence+maxAmount); - - if (worldTime % 4 == 0) - { - PacketDispatcher.sendPacketToAllAround(xCoord, yCoord, zCoord, 20, worldObj.provider.dimensionId, getParticlePacket(xCoord, yCoord, zCoord, (short) 3)); - } - } - } - - if (worldObj != null) - { - worldObj.markBlockForUpdate(xCoord, yCoord, zCoord); - } - - //AlchemicalWizardry.proxy.getClientWorld().markBlockForUpdate(xCoord, yCoord, zCoord); - //PacketDispatcher.sendPacketToAllAround(xCoord, yCoord, zCoord, 10, 1, getDescriptionPacket()); - /* - progress++; - - if(progress>=liquidRequired) - { - setActive(); - setInventorySlotContents(0, new ItemStack(AlchemicalWizardry.weakBloodOrb)); - } - */ - } - } - - public void setActive() - { - isActive = false; - } - - public boolean isActive() - { - return isActive; - } - - public void sacrificialDaggerCall(int amount, boolean isSacrifice) - { - fluid.amount += Math.min(capacity - fluid.amount, (isSacrifice ? 1 + sacrificeEfficiencyMultiplier : 1 + selfSacrificeEfficiencyMultiplier) * amount); - } - - @Override - public Packet getDescriptionPacket() - { - return PacketHandler.getPacket(this); - } - - public static Packet250CustomPayload getParticlePacket(double x, double y, double z, short particleType) - { - ByteArrayOutputStream bos = new ByteArrayOutputStream(); - DataOutputStream dos = new DataOutputStream(bos); - - try - { - dos.writeDouble(x); - dos.writeDouble(y); - dos.writeDouble(z); - dos.writeShort(particleType); - } catch (IOException e) - { - e.printStackTrace(); - } - - return new Packet250CustomPayload("particle", bos.toByteArray()); - } - - public void handlePacketData(int[] intData, FluidStack flMain, FluidStack flOut, FluidStack flIn, int capacity) - { - if (intData == null) - { - return; - } - - if (intData.length == 3) - { - for (int i = 0; i < 1; i++) - { - if (intData[i * 3 + 2] != 0) - { - ItemStack is = new ItemStack(intData[i * 3], intData[i * 3 + 2], intData[i * 3 + 1]); - inv[i] = is; - } else - { - inv[i] = null; - } - } - } - - this.setMainFluid(flMain); - this.setOutputFluid(flOut); - this.setInputFluid(flIn); - this.capacity = capacity; - } - - public int[] buildIntDataList() - { - int[] sortList = new int[1 * 3]; - int pos = 0; - - for (ItemStack is : inv) - { - if (is != null) - { - sortList[pos++] = is.itemID; - sortList[pos++] = is.getItemDamage(); - sortList[pos++] = is.stackSize; - } else - { - sortList[pos++] = 0; - sortList[pos++] = 0; - sortList[pos++] = 0; - } - } - - return sortList; - } - - public void startCycle() - { - if (worldObj != null) - { - worldObj.markBlockForUpdate(xCoord, yCoord, zCoord); - } - - this.checkAndSetAltar(); - - if (fluid == null || fluid.amount <= 0) - { - return; - } - - if (getStackInSlot(0) == null) - { - return; - } - - if (!isActive) - { - progress = 0; - } - - if(AltarRecipeRegistry.isRequiredItemValid(getStackInSlot(0), upgradeLevel)) - { - AltarRecipe recipe = AltarRecipeRegistry.getAltarRecipeForItemAndTier(getStackInSlot(0), upgradeLevel); - this.isActive = true; - this.liquidRequired = recipe.getLiquidRequired(); - this.canBeFilled = recipe.getCanBeFilled(); - this.consumptionRate = recipe.getConsumptionRate(); - this.drainRate = recipe.drainRate; - return; - } - - isActive = false; - } - - public void checkAndSetAltar() - { - boolean checkUpgrade = true; - int upgradeState = UpgradedAltars.isAltarValid(worldObj, xCoord, yCoord, zCoord); - - if (upgradeState <= 1) - { - upgradeLevel = 1; - isUpgraded = false; - this.consumptionMultiplier = 0; - this.efficiencyMultiplier = 1; - this.sacrificeEfficiencyMultiplier = 0; - this.selfSacrificeEfficiencyMultiplier = 0; - this.capacityMultiplier = 1; - this.orbCapacityMultiplier = 1; - this.dislocationMultiplier = 1; - return; - } - - AltarUpgradeComponent upgrades = UpgradedAltars.getUpgrades(worldObj, xCoord, yCoord, zCoord, upgradeState); - - if (upgrades == null) - { - upgradeLevel = 1; - isUpgraded = false; - this.consumptionMultiplier = 0; - this.efficiencyMultiplier = 1; - this.sacrificeEfficiencyMultiplier = 0; - this.selfSacrificeEfficiencyMultiplier = 0; - this.capacityMultiplier = 1; - this.orbCapacityMultiplier = 1; - this.dislocationMultiplier = 1; - this.upgradeLevel = upgradeState; - return; - } - - this.isUpgraded = checkUpgrade; - this.upgradeLevel = upgradeState; - this.consumptionMultiplier = (float) (0.15 * upgrades.getSpeedUpgrades()); - this.efficiencyMultiplier = (float) Math.pow(0.85, upgrades.getSpeedUpgrades()); - this.sacrificeEfficiencyMultiplier = (float) (0.10 * upgrades.getSacrificeUpgrades()); - this.selfSacrificeEfficiencyMultiplier = (float) (0.10 * upgrades.getSelfSacrificeUpgrades()); - this.capacityMultiplier = (float) (1 + 0.15 * upgrades.getAltarCapacitiveUpgrades()); - //TODO finalize values - this.dislocationMultiplier = (float) (Math.pow(1.2, upgrades.getDisplacementUpgrades())); - this.orbCapacityMultiplier = (float) (1 + 0.02 * upgrades.getOrbCapacitiveUpgrades()); - this.capacity = (int) (FluidContainerRegistry.BUCKET_VOLUME * 10 * capacityMultiplier); - this.bufferCapacity = (int) (FluidContainerRegistry.BUCKET_VOLUME * 1 * capacityMultiplier); - - if (this.fluid.amount > this.capacity) - { - this.fluid.amount = this.capacity; - } - - if (this.fluidOutput.amount > this.bufferCapacity) - { - this.fluidOutput.amount = this.bufferCapacity; - } - - if (this.fluidInput.amount > this.bufferCapacity) - { - this.fluidInput.amount = this.bufferCapacity; - } - - worldObj.markBlockForUpdate(xCoord, yCoord, zCoord); -// for (int x = -1; x <= 1; x++) -// { -// for (int z = -1; z <= 1; z++) -// { -// if (!(x == 0 && z == 0)) -// { -// Block block = Block.blocksList[worldObj.getBlockId(xCoord + x, yCoord - 1, zCoord + z)]; -// -// if (!(block instanceof BloodRune)) -// { -// checkUpgrade = false; -// this.isUpgraded = false; -// return; -// } -// -// if ((z == 0 && (x == -1 || x == 1)) || (x == 0 && (z == -1 || z == 1))) -// { -// switch (((BloodRune)block).getRuneEffect()) -// { -// case 1: -// speedUpgrades++; -// -// case 2: -// efficiencyUpgrades++; -// -// case 3: -// sacrificeUpgrades++; -// -// case 4: -// selfSacrificeUpgrades++; -// } -// } -// } -// } -// } -// this.isUpgraded = checkUpgrade; -// this.consumptionMultiplier = (float)(0.20 * speedUpgrades); -// this.efficiencyMultiplier = (float)Math.pow(0.80, efficiencyUpgrades); -// this.sacrificeEfficiencyMultiplier = (float)(0.10 * sacrificeUpgrades); -// this.selfSacrificeEfficiencyMultiplier = (float)(0.10 * sacrificeUpgrades); - } - - @Override - public boolean isItemValidForSlot(int slot, ItemStack itemstack) - { - if (slot == 0) - { - return true; - } - - return false; - } - - @Override - public int fill(ForgeDirection from, FluidStack resource, boolean doFill) - { - //TODO - if (resource == null) - { - return 0; - } - - resource = resource.copy(); - int totalUsed = 0; - //TileTank tankToFill = getBottomTank(); - int used = this.fill(resource, doFill); - resource.amount -= used; - totalUsed += used; - //FluidStack liquid = tankToFill.tank.getFluid(); -// if (liquid != null && liquid.amount > 0 && !liquid.isFluidEqual(resource)) -// { -// return 0; -// } -// while (tankToFill != null && resource.amount > 0) -// { -// int used = tankToFill.tank.fill(resource, doFill); -// resource.amount -= used; -// if (used > 0) -// { -// tankToFill.hasUpdate = true; -// } -// -// -// totalUsed += used; -// tankToFill = getTankAbove(tankToFill); -// } - this.startCycle(); - return totalUsed; - } - - @Override - public FluidStack drain(ForgeDirection from, FluidStack resource, boolean doDrain) - { - if (resource == null) - { - return null; - } - - if (!resource.isFluidEqual(fluidOutput)) - { - return null; - } - - return drain(from, resource.amount, doDrain); - } - - @Override - public FluidStack drain(ForgeDirection from, int maxEmpty, boolean doDrain) - { - return this.drain(maxEmpty, doDrain); - } - - @Override - public boolean canFill(ForgeDirection from, Fluid fluid) - { - // TODO Auto-generated method stub - if (this.fluidInput != null && this.fluid.getFluid().equals(fluidInput)) - { - return true; - } - - return false; - } - - @Override - public boolean canDrain(ForgeDirection from, Fluid fluid) - { - // TODO Auto-generated method stub - return true; - } - - @Override - public FluidTankInfo[] getTankInfo(ForgeDirection from) - { - // TODO Auto-generated method stub - FluidTank compositeTank = new FluidTank(capacity); - compositeTank.setFluid(fluid); - return new FluidTankInfo[]{compositeTank.getInfo()}; - } -} diff --git a/BM_src/WayofTime/alchemicalWizardry/common/tileEntity/TEConduit.java b/BM_src/WayofTime/alchemicalWizardry/common/tileEntity/TEConduit.java deleted file mode 100644 index 59f375c0..00000000 --- a/BM_src/WayofTime/alchemicalWizardry/common/tileEntity/TEConduit.java +++ /dev/null @@ -1,40 +0,0 @@ -package WayofTime.alchemicalWizardry.common.tileEntity; - -import WayofTime.alchemicalWizardry.common.PacketHandler; -import WayofTime.alchemicalWizardry.common.spell.complex.SpellParadigm; -import net.minecraft.nbt.NBTTagCompound; -import net.minecraft.network.packet.Packet; - -public class TEConduit extends TESpellBlock -{ - @Override - public void readFromNBT(NBTTagCompound par1NBTTagCompound) - { - super.readFromNBT(par1NBTTagCompound); - } - - @Override - public void writeToNBT(NBTTagCompound par1NBTTagCompound) - { - super.writeToNBT(par1NBTTagCompound); - } - - //Logic for the actual block is under here - @Override - public void updateEntity() - { - - } - - @Override - public Packet getDescriptionPacket() - { - return PacketHandler.getBlockOrientationPacket(this); - } - - @Override - protected void applySpellChange(SpellParadigm parad) - { - return; - } -} diff --git a/BM_src/WayofTime/alchemicalWizardry/common/tileEntity/TEHomHeart.java b/BM_src/WayofTime/alchemicalWizardry/common/tileEntity/TEHomHeart.java deleted file mode 100644 index d98d65db..00000000 --- a/BM_src/WayofTime/alchemicalWizardry/common/tileEntity/TEHomHeart.java +++ /dev/null @@ -1,166 +0,0 @@ -package WayofTime.alchemicalWizardry.common.tileEntity; - -import WayofTime.alchemicalWizardry.common.spell.simple.HomSpell; -import WayofTime.alchemicalWizardry.common.spell.simple.HomSpellRegistry; -import net.minecraft.block.Block; -import net.minecraft.entity.player.EntityPlayer; -import net.minecraft.item.ItemStack; -import net.minecraft.tileentity.TileEntity; -import net.minecraft.tileentity.TileEntitySkull; -import net.minecraft.world.World; - -public class TEHomHeart extends TileEntity -{ - public boolean canCastSpell(ItemStack par1ItemStack, World par2World, EntityPlayer par3EntityPlayer) - { - return true; - } - - public int castSpell(ItemStack par1ItemStack, World par2World, EntityPlayer par3EntityPlayer) - { - HomSpell spell = getSpell(); - - if (spell != null) - { - switch (getModifiedParadigm()) - { - case 0: - spell.onOffensiveRangedRightClick(par1ItemStack, par2World, par3EntityPlayer); - break; - - case 1: - spell.onOffensiveMeleeRightClick(par1ItemStack, par2World, par3EntityPlayer); - break; - - case 2: - spell.onDefensiveRightClick(par1ItemStack, par2World, par3EntityPlayer); - break; - - case 3: - spell.onEnvironmentalRightClick(par1ItemStack, par2World, par3EntityPlayer); - break; - } - - //spell.onOffensiveRangedRightClick(par1ItemStack, par2World, par3EntityPlayer); - } - - return 0; - } - - public HomSpell getSpell() - { - TileEntity tileEntity = worldObj.getBlockTileEntity(xCoord - 1, yCoord, zCoord); - - if (tileEntity instanceof TEAltar) - { - ItemStack itemStack = ((TEAltar) tileEntity).getStackInSlot(0); - - if (itemStack != null) - { - HomSpell spell = HomSpellRegistry.getSpellForItemStack(itemStack); - - if (spell != null) - { - return spell; - } - } - } - - tileEntity = worldObj.getBlockTileEntity(xCoord + 1, yCoord, zCoord); - - if (tileEntity instanceof TEAltar) - { - ItemStack itemStack = ((TEAltar) tileEntity).getStackInSlot(0); - - if (itemStack != null) - { - HomSpell spell = HomSpellRegistry.getSpellForItemStack(itemStack); - - if (spell != null) - { - return spell; - } - } - } - - tileEntity = worldObj.getBlockTileEntity(xCoord, yCoord, zCoord - 1); - - if (tileEntity instanceof TEAltar) - { - ItemStack itemStack = ((TEAltar) tileEntity).getStackInSlot(0); - - if (itemStack != null) - { - HomSpell spell = HomSpellRegistry.getSpellForItemStack(itemStack); - - if (spell != null) - { - return spell; - } - } - } - - tileEntity = worldObj.getBlockTileEntity(xCoord, yCoord, zCoord + 1); - - if (tileEntity instanceof TEAltar) - { - ItemStack itemStack = ((TEAltar) tileEntity).getStackInSlot(0); - - if (itemStack != null) - { - HomSpell spell = HomSpellRegistry.getSpellForItemStack(itemStack); - - if (spell != null) - { - return spell; - } - } - } - - return null; - } - - public int getModifiedParadigm() - { - //TODO change so that it works with a Tile Entity for a custom head or whatnot - int blockID = worldObj.getBlockId(xCoord, yCoord + 1, zCoord); - - if (blockID == Block.glowStone.blockID) - { - return 0; - } else if (blockID == Block.blockRedstone.blockID) - { - return 1; - } else if (blockID == Block.anvil.blockID) - { - return 2; - } else if (blockID == Block.glass.blockID) - { - return 3; - } - - TileEntity tileEntity = worldObj.getBlockTileEntity(xCoord, yCoord + 1, zCoord); - - if (tileEntity instanceof TileEntitySkull) - { - int skullType = ((TileEntitySkull) tileEntity).getSkullType(); - - switch (skullType) - { - case 0: - return 0; - - case 1: - return 1; - - case 2: - return 2; - - case 4: - return 3; - } - } - - return -1; - } -} diff --git a/BM_src/WayofTime/alchemicalWizardry/common/tileEntity/TEHomHeartRenderer.java b/BM_src/WayofTime/alchemicalWizardry/common/tileEntity/TEHomHeartRenderer.java deleted file mode 100644 index 859a3b9c..00000000 --- a/BM_src/WayofTime/alchemicalWizardry/common/tileEntity/TEHomHeartRenderer.java +++ /dev/null @@ -1,13 +0,0 @@ -package WayofTime.alchemicalWizardry.common.tileEntity; - -import net.minecraft.client.renderer.tileentity.TileEntitySpecialRenderer; -import net.minecraft.tileentity.TileEntity; - -public class TEHomHeartRenderer extends TileEntitySpecialRenderer -{ - @Override - public void renderTileEntityAt(TileEntity tileentity, double d0, double d1, double d2, float f) - { - // TODO Auto-generated method stub - } -} diff --git a/BM_src/WayofTime/alchemicalWizardry/common/tileEntity/TEImperfectRitualStone.java b/BM_src/WayofTime/alchemicalWizardry/common/tileEntity/TEImperfectRitualStone.java deleted file mode 100644 index 110996ea..00000000 --- a/BM_src/WayofTime/alchemicalWizardry/common/tileEntity/TEImperfectRitualStone.java +++ /dev/null @@ -1,11 +0,0 @@ -package WayofTime.alchemicalWizardry.common.tileEntity; - -import net.minecraft.tileentity.TileEntity; - -public class TEImperfectRitualStone extends TileEntity -{ - public TEImperfectRitualStone() - { - // TODO Auto-generated constructor stub - } -} diff --git a/BM_src/WayofTime/alchemicalWizardry/common/tileEntity/TEMasterStone.java b/BM_src/WayofTime/alchemicalWizardry/common/tileEntity/TEMasterStone.java deleted file mode 100644 index fabd403d..00000000 --- a/BM_src/WayofTime/alchemicalWizardry/common/tileEntity/TEMasterStone.java +++ /dev/null @@ -1,218 +0,0 @@ -package WayofTime.alchemicalWizardry.common.tileEntity; - -import net.minecraft.nbt.NBTTagCompound; -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.Rituals; -import WayofTime.alchemicalWizardry.api.soulNetwork.LifeEssenceNetwork; -import cpw.mods.fml.common.network.PacketDispatcher; - -public class TEMasterStone extends TileEntity implements IMasterRitualStone -{ - private int currentRitual; - private boolean isActive; - private String owner; - private int cooldown; - private int var1; - private int direction; - - public TEMasterStone() - { - currentRitual = 0; - isActive = false; - owner = ""; - cooldown = 0; - var1 = 0; - direction = 0; - } - - @Override - public void readFromNBT(NBTTagCompound par1NBTTagCompound) - { - super.readFromNBT(par1NBTTagCompound); - currentRitual = par1NBTTagCompound.getInteger("currentRitual"); - isActive = par1NBTTagCompound.getBoolean("isActive"); - owner = par1NBTTagCompound.getString("owner"); - cooldown = par1NBTTagCompound.getInteger("cooldown"); - var1 = par1NBTTagCompound.getInteger("var1"); - direction = par1NBTTagCompound.getInteger("direction"); - } - - @Override - public void writeToNBT(NBTTagCompound par1NBTTagCompound) - { - super.writeToNBT(par1NBTTagCompound); - par1NBTTagCompound.setInteger("currentRitual", currentRitual); - par1NBTTagCompound.setBoolean("isActive", isActive); - par1NBTTagCompound.setString("owner", owner); - par1NBTTagCompound.setInteger("cooldown", cooldown); - par1NBTTagCompound.setInteger("var1", var1); - par1NBTTagCompound.setInteger("direction", direction); - } - - public void activateRitual(World world, int crystalLevel) - { - int testRitual = Rituals.checkValidRitual(world, xCoord, yCoord, zCoord); - - if (testRitual == 0) - { - return; - } - - boolean testLevel = Rituals.canCrystalActivate(testRitual, crystalLevel); - - if (!testLevel) - { - return; - } - - if (world.isRemote) - { - return; - } - - 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; - - if (currentEssence < Rituals.getCostForActivation(testRitual)) - { - //TODO Bad stuff - return; - } - - if (!world.isRemote) - { - data.currentEssence = currentEssence - Rituals.getCostForActivation(testRitual); - data.markDirty(); - - for (int i = 0; i < 12; i++) - { - PacketDispatcher.sendPacketToAllPlayers(TEAltar.getParticlePacket(xCoord, yCoord, zCoord, (short) 1)); - } - } - - cooldown = Rituals.getInitialCooldown(testRitual); - var1 = 0; - currentRitual = testRitual; - isActive = true; - direction = Rituals.getDirectionOfRitual(world, xCoord, yCoord, zCoord, testRitual); - worldObj.markBlockForUpdate(xCoord, yCoord, zCoord); - } - - public void setOwner(String owner) - { - this.owner = owner; - } - - @Override - public void updateEntity() - { - if (!isActive) - { - return; - } - - int worldTime = (int) (worldObj.getWorldTime() % 24000); - - if (worldObj.isRemote) - { - return; - } - - if (worldTime % 100 == 0) - { - boolean testRunes = Rituals.checkDirectionOfRitualValid(worldObj, xCoord, yCoord, zCoord, currentRitual, direction); - PacketDispatcher.sendPacketToAllPlayers(TEAltar.getParticlePacket(xCoord, yCoord, zCoord, (short) 1)); - - if (!testRunes) - { - isActive = false; - currentRitual = 0; - worldObj.markBlockForUpdate(xCoord, yCoord, zCoord); - - return; - } - } - - if (worldObj.getBlockPowerInput(xCoord, yCoord, zCoord) > 0) - { - return; - } - - performRitual(worldObj, xCoord, yCoord, zCoord, currentRitual); - } - - public void performRitual(World world, int x, int y, int z, int ritualID) - { - Rituals.performEffect(this, ritualID); - } - - public String getOwner() - { - return owner; - } - - public void setCooldown(int newCooldown) - { - this.cooldown = newCooldown; - } - - public int getCooldown() - { - return this.cooldown; - } - - public void setVar1(int newVar1) - { - this.var1 = newVar1; - } - - public int getVar1() - { - return this.var1; - } - - public void setActive(boolean active) - { - this.isActive = active; - } - - public int getDirection() - { - return this.direction; - } - - @Override - public int getXCoord() - { - return this.xCoord; - } - - @Override - public int getYCoord() - { - return this.yCoord; - } - - @Override - public int getZCoord() - { - return this.zCoord; - } - - @Override - public World getWorld() - { - return this.getWorldObj(); - } -} \ No newline at end of file diff --git a/BM_src/WayofTime/alchemicalWizardry/common/tileEntity/TEOrientable.java b/BM_src/WayofTime/alchemicalWizardry/common/tileEntity/TEOrientable.java deleted file mode 100644 index 741d7f42..00000000 --- a/BM_src/WayofTime/alchemicalWizardry/common/tileEntity/TEOrientable.java +++ /dev/null @@ -1,108 +0,0 @@ -package WayofTime.alchemicalWizardry.common.tileEntity; - -import net.minecraft.nbt.NBTTagCompound; -import net.minecraft.network.packet.Packet; -import net.minecraft.tileentity.TileEntity; -import net.minecraft.util.ResourceLocation; -import net.minecraftforge.common.ForgeDirection; -import WayofTime.alchemicalWizardry.common.PacketHandler; -import WayofTime.alchemicalWizardry.common.block.IOrientable; - -public class TEOrientable extends TileEntity implements IOrientable -{ - protected ForgeDirection inputFace; - protected ForgeDirection outputFace; - - public TEOrientable() - { - this.inputFace = ForgeDirection.DOWN; - this.outputFace = ForgeDirection.UP; - } - - @Override - public void readFromNBT(NBTTagCompound par1NBTTagCompound) - { - super.readFromNBT(par1NBTTagCompound); - this.setInputDirection(ForgeDirection.getOrientation(par1NBTTagCompound.getInteger("inputFace"))); - this.setOutputDirection(ForgeDirection.getOrientation(par1NBTTagCompound.getInteger("outputFace"))); - } - - @Override - public void writeToNBT(NBTTagCompound par1NBTTagCompound) - { - super.writeToNBT(par1NBTTagCompound); - par1NBTTagCompound.setInteger("inputFace", TEOrientable.getIntForForgeDirection(this.getInputDirection())); - par1NBTTagCompound.setInteger("outputFace", TEOrientable.getIntForForgeDirection(this.getOutputDirection())); - } - - @Override - public ForgeDirection getInputDirection() - { - return this.inputFace; - } - - @Override - public ForgeDirection getOutputDirection() - { - return this.outputFace; - } - - @Override - public void setInputDirection(ForgeDirection direction) - { - this.inputFace = direction; - } - - @Override - public void setOutputDirection(ForgeDirection direction) - { - this.outputFace = direction; - } - - public static int getIntForForgeDirection(ForgeDirection direction) - { - switch (direction) - { - case DOWN: - return 0; - - case UP: - return 1; - - case NORTH: - return 2; - - case SOUTH: - return 3; - - case WEST: - return 4; - - case EAST: - return 5; - - default: - return 0; - } - } - - @Override - public Packet getDescriptionPacket() - { - return PacketHandler.getBlockOrientationPacket(this); - } - - public boolean isSideRendered(ForgeDirection side) - { - if(side.equals(this.getInputDirection()) || side.equals(this.getOutputDirection())) - { - return true; - } - return false; - } - - public String getResourceLocationForMeta(int meta) - { - return ""; - } -} diff --git a/BM_src/WayofTime/alchemicalWizardry/common/tileEntity/TEPedestal.java b/BM_src/WayofTime/alchemicalWizardry/common/tileEntity/TEPedestal.java deleted file mode 100644 index 0f88106f..00000000 --- a/BM_src/WayofTime/alchemicalWizardry/common/tileEntity/TEPedestal.java +++ /dev/null @@ -1,263 +0,0 @@ -package WayofTime.alchemicalWizardry.common.tileEntity; - -import WayofTime.alchemicalWizardry.common.PacketHandler; -import cpw.mods.fml.common.network.PacketDispatcher; -import net.minecraft.entity.effect.EntityLightningBolt; -import net.minecraft.entity.player.EntityPlayer; -import net.minecraft.inventory.IInventory; -import net.minecraft.item.ItemStack; -import net.minecraft.nbt.NBTTagCompound; -import net.minecraft.nbt.NBTTagList; -import net.minecraft.network.packet.Packet; -import net.minecraft.tileentity.TileEntity; - -public class TEPedestal extends TileEntity implements IInventory -{ - private ItemStack[] inv; - private int resultID; - private int resultDamage; - - private boolean isActive; - - public TEPedestal() - { - this.inv = new ItemStack[1]; - resultID = 0; - resultDamage = 0; - isActive = false; - } - - @Override - public void readFromNBT(NBTTagCompound par1NBTTagCompound) - { - super.readFromNBT(par1NBTTagCompound); - NBTTagList tagList = par1NBTTagCompound.getTagList("Inventory"); - - for (int i = 0; i < tagList.tagCount(); i++) - { - NBTTagCompound tag = (NBTTagCompound) tagList.tagAt(i); - int slot = tag.getByte("Slot"); - - if (slot >= 0 && slot < inv.length) - { - inv[slot] = ItemStack.loadItemStackFromNBT(tag); - } - } - - resultID = par1NBTTagCompound.getInteger("resultID"); - resultDamage = par1NBTTagCompound.getInteger("resultDamage"); - isActive = par1NBTTagCompound.getBoolean("isActive"); - } - - @Override - public void writeToNBT(NBTTagCompound par1NBTTagCompound) - { - super.writeToNBT(par1NBTTagCompound); - NBTTagList itemList = new NBTTagList(); - - for (int i = 0; i < inv.length; i++) - { - ItemStack stack = inv[i]; - - if (inv[i] != null) - { - NBTTagCompound tag = new NBTTagCompound(); - tag.setByte("Slot", (byte) i); - inv[i].writeToNBT(tag); - itemList.appendTag(tag); - } - } - - par1NBTTagCompound.setInteger("resultID", resultID); - par1NBTTagCompound.setInteger("resultDamage", resultDamage); - par1NBTTagCompound.setTag("Inventory", itemList); - par1NBTTagCompound.setBoolean("isActive", isActive); - } - - @Override - public int getSizeInventory() - { - return 1; - } - - @Override - public ItemStack getStackInSlot(int slot) - { - return inv[slot]; - } - - @Override - public ItemStack decrStackSize(int slot, int amt) - { - ItemStack stack = getStackInSlot(slot); - - if (stack != null) - { - if (stack.stackSize <= amt) - { - setInventorySlotContents(slot, null); - } else - { - stack = stack.splitStack(amt); - - if (stack.stackSize == 0) - { - setInventorySlotContents(slot, null); - } - } - } - - return stack; - } - - @Override - public ItemStack getStackInSlotOnClosing(int slot) - { - ItemStack stack = getStackInSlot(slot); - - if (stack != null) - { - setInventorySlotContents(slot, null); - } - - return stack; - } - - @Override - public void setInventorySlotContents(int slot, ItemStack itemStack) - { - inv[slot] = itemStack; - - if (itemStack != null && itemStack.stackSize > getInventoryStackLimit()) - { - itemStack.stackSize = getInventoryStackLimit(); - } - } - - @Override - public String getInvName() - { - return "TEPedestal"; - } - - @Override - public boolean isInvNameLocalized() - { - return false; - } - - @Override - public int getInventoryStackLimit() - { - return 1; - } - - @Override - public boolean isUseableByPlayer(EntityPlayer entityPlayer) - { - return worldObj.getBlockTileEntity(xCoord, yCoord, zCoord) == this && entityPlayer.getDistanceSq(xCoord + 0.5, yCoord + 0.5, zCoord + 0.5) < 64; - } - - @Override - public void openChest() - { - // TODO Auto-generated method stub - } - - @Override - public void closeChest() - { - // TODO Auto-generated method stub - } - - //Logic for the actual block is under here - @Override - public void updateEntity() - { - super.updateEntity(); - } - - public void setActive() - { - isActive = false; - } - - public boolean isActive() - { - return isActive; - } - - @Override - public Packet getDescriptionPacket() - { - return PacketHandler.getPacket(this); - } - - public void handlePacketData(int[] intData) - { - if (intData == null) - { - return; - } - - if (intData.length == 3) - { - for (int i = 0; i < 1; i++) - { - if (intData[i * 3 + 2] != 0) - { - ItemStack is = new ItemStack(intData[i * 3], intData[i * 3 + 2], intData[i * 3 + 1]); - inv[i] = is; - } else - { - inv[i] = null; - } - } - } - } - - public int[] buildIntDataList() - { - int[] sortList = new int[1 * 3]; - int pos = 0; - - for (ItemStack is : inv) - { - if (is != null) - { - sortList[pos++] = is.itemID; - sortList[pos++] = is.getItemDamage(); - sortList[pos++] = is.stackSize; - } else - { - sortList[pos++] = 0; - sortList[pos++] = 0; - sortList[pos++] = 0; - } - } - - return sortList; - } - - @Override - public boolean isItemValidForSlot(int slot, ItemStack itemstack) - { - if (slot == 0) - { - return true; - } - - return false; - } - - public void onItemDeletion() - { - //worldObj.createExplosion(null, xCoord+0.5, yCoord+0.5, zCoord+0.5, 1, false); - worldObj.addWeatherEffect(new EntityLightningBolt(worldObj, xCoord, yCoord, zCoord)); - - for (int i = 0; i < 16; i++) - { - PacketDispatcher.sendPacketToAllAround(xCoord, yCoord, zCoord, 20, worldObj.provider.dimensionId, TEAltar.getParticlePacket(xCoord, yCoord, zCoord, (short) 2)); - } - } -} diff --git a/BM_src/WayofTime/alchemicalWizardry/common/tileEntity/TEPlinth.java b/BM_src/WayofTime/alchemicalWizardry/common/tileEntity/TEPlinth.java deleted file mode 100644 index 07f2f01f..00000000 --- a/BM_src/WayofTime/alchemicalWizardry/common/tileEntity/TEPlinth.java +++ /dev/null @@ -1,684 +0,0 @@ -package WayofTime.alchemicalWizardry.common.tileEntity; - -import WayofTime.alchemicalWizardry.api.summoningRegistry.SummoningRegistry; -import WayofTime.alchemicalWizardry.api.summoningRegistry.SummoningRegistryComponent; -import WayofTime.alchemicalWizardry.common.IDemon; -import WayofTime.alchemicalWizardry.common.PacketHandler; -import WayofTime.alchemicalWizardry.common.PlinthComponent; -import WayofTime.alchemicalWizardry.common.items.EnergyBattery; -import cpw.mods.fml.common.network.PacketDispatcher; -import net.minecraft.entity.EntityLivingBase; -import net.minecraft.entity.player.EntityPlayer; -import net.minecraft.inventory.IInventory; -import net.minecraft.item.ItemBlock; -import net.minecraft.item.ItemStack; -import net.minecraft.nbt.NBTTagCompound; -import net.minecraft.nbt.NBTTagList; -import net.minecraft.network.packet.Packet; -import net.minecraft.tileentity.TileEntity; -import net.minecraftforge.oredict.OreDictionary; - -import java.util.ArrayList; -import java.util.List; - -public class TEPlinth extends TileEntity implements IInventory -{ - private ItemStack[] inv; - - private boolean isActive; - private boolean paradigm; - - private ItemStack[] ring1Inv; - private ItemStack[] ring2Inv; - private ItemStack[] ring3Inv; - - private int progressInterval; - private int progress; - - public static List pedestalPositions = new ArrayList(); - - public TEPlinth() - { - this.inv = new ItemStack[1]; - this.ring1Inv = new ItemStack[6]; - this.ring2Inv = new ItemStack[6]; - this.ring3Inv = new ItemStack[6]; - isActive = false; - progress = 0; - progressInterval = 50; - } - - @Override - public void readFromNBT(NBTTagCompound par1NBTTagCompound) - { - super.readFromNBT(par1NBTTagCompound); - NBTTagList tagList = par1NBTTagCompound.getTagList("Inventory"); - - for (int i = 0; i < tagList.tagCount(); i++) - { - NBTTagCompound tag = (NBTTagCompound) tagList.tagAt(i); - int slot = tag.getByte("Slot"); - - if (slot >= 0 && slot < inv.length) - { - inv[slot] = ItemStack.loadItemStackFromNBT(tag); - } - } - - NBTTagList ring1TagList = par1NBTTagCompound.getTagList("ring1Inv"); - - for (int i = 0; i < ring1TagList.tagCount(); i++) - { - NBTTagCompound tag = (NBTTagCompound) ring1TagList.tagAt(i); - int slot = tag.getByte("Slot"); - - if (slot >= 0 && slot < inv.length) - { - ring1Inv[slot] = ItemStack.loadItemStackFromNBT(tag); - } - } - - NBTTagList ring2TagList = par1NBTTagCompound.getTagList("ring2Inv"); - - for (int i = 0; i < ring2TagList.tagCount(); i++) - { - NBTTagCompound tag = (NBTTagCompound) ring2TagList.tagAt(i); - int slot = tag.getByte("Slot"); - - if (slot >= 0 && slot < inv.length) - { - ring2Inv[slot] = ItemStack.loadItemStackFromNBT(tag); - } - } - - NBTTagList ring3TagList = par1NBTTagCompound.getTagList("ring3Inv"); - - for (int i = 0; i < ring3TagList.tagCount(); i++) - { - NBTTagCompound tag = (NBTTagCompound) ring3TagList.tagAt(i); - int slot = tag.getByte("Slot"); - - if (slot >= 0 && slot < inv.length) - { - ring3Inv[slot] = ItemStack.loadItemStackFromNBT(tag); - } - } - - progress = par1NBTTagCompound.getInteger("progress"); - progressInterval = par1NBTTagCompound.getInteger("progressInterval"); - isActive = par1NBTTagCompound.getBoolean("isActive"); - } - - @Override - public void writeToNBT(NBTTagCompound par1NBTTagCompound) - { - super.writeToNBT(par1NBTTagCompound); - NBTTagList itemList = new NBTTagList(); - - for (int i = 0; i < inv.length; i++) - { - ItemStack stack = inv[i]; - - if (inv[i] != null) - { - NBTTagCompound tag = new NBTTagCompound(); - tag.setByte("Slot", (byte) i); - inv[i].writeToNBT(tag); - itemList.appendTag(tag); - } - } - - par1NBTTagCompound.setTag("Inventory", itemList); - NBTTagList ring1ItemList = new NBTTagList(); - - for (int i = 0; i < ring1Inv.length; i++) - { - ItemStack stack = ring1Inv[i]; - - if (ring1Inv[i] != null) - { - NBTTagCompound tag = new NBTTagCompound(); - tag.setByte("Slot", (byte) i); - ring1Inv[i].writeToNBT(tag); - ring1ItemList.appendTag(tag); - } - } - - par1NBTTagCompound.setTag("ring1Inv", ring1ItemList); - NBTTagList ring2ItemList = new NBTTagList(); - - for (int i = 0; i < ring2Inv.length; i++) - { - ItemStack stack = ring2Inv[i]; - - if (ring2Inv[i] != null) - { - NBTTagCompound tag = new NBTTagCompound(); - tag.setByte("Slot", (byte) i); - ring2Inv[i].writeToNBT(tag); - ring2ItemList.appendTag(tag); - } - } - - par1NBTTagCompound.setTag("ring2Inv", ring1ItemList); - NBTTagList ring3ItemList = new NBTTagList(); - - for (int i = 0; i < ring3Inv.length; i++) - { - ItemStack stack = ring3Inv[i]; - - if (ring3Inv[i] != null) - { - NBTTagCompound tag = new NBTTagCompound(); - tag.setByte("Slot", (byte) i); - ring3Inv[i].writeToNBT(tag); - ring3ItemList.appendTag(tag); - } - } - - par1NBTTagCompound.setTag("ring3Inv", ring1ItemList); - par1NBTTagCompound.setInteger("progress", progress); - par1NBTTagCompound.setInteger("progressInterval", progressInterval); - par1NBTTagCompound.setBoolean("isActive", isActive); - } - - @Override - public int getSizeInventory() - { - return 1; - } - - @Override - public ItemStack getStackInSlot(int slot) - { - return inv[slot]; - } - - @Override - public ItemStack decrStackSize(int slot, int amt) - { - ItemStack stack = getStackInSlot(slot); - - if (stack != null) - { - if (stack.stackSize <= amt) - { - setInventorySlotContents(slot, null); - } else - { - stack = stack.splitStack(amt); - - if (stack.stackSize == 0) - { - setInventorySlotContents(slot, null); - } - } - } - - return stack; - } - - @Override - public ItemStack getStackInSlotOnClosing(int slot) - { - ItemStack stack = getStackInSlot(slot); - - if (stack != null) - { - setInventorySlotContents(slot, null); - } - - return stack; - } - - @Override - public void setInventorySlotContents(int slot, ItemStack itemStack) - { - inv[slot] = itemStack; - - if (itemStack != null && itemStack.stackSize > getInventoryStackLimit()) - { - itemStack.stackSize = getInventoryStackLimit(); - } - } - - @Override - public String getInvName() - { - return "TEPlinth"; - } - - @Override - public boolean isInvNameLocalized() - { - return false; - } - - @Override - public int getInventoryStackLimit() - { - return 1; - } - - @Override - public boolean isUseableByPlayer(EntityPlayer entityPlayer) - { - return worldObj.getBlockTileEntity(xCoord, yCoord, zCoord) == this && entityPlayer.getDistanceSq(xCoord + 0.5, yCoord + 0.5, zCoord + 0.5) < 64; - } - - @Override - public void openChest() - { - // TODO Auto-generated method stub - } - - @Override - public void closeChest() - { - // TODO Auto-generated method stub - } - - //Logic for the actual block is under here - @Override - public void updateEntity() - { - super.updateEntity(); - - if (worldObj.isRemote) - { - return; - } - - if (!isActive()) - { - if (getStackInSlot(0) != null && getStackInSlot(0).getItem() instanceof EnergyBattery) - { - int bloodOrbLevel = ((EnergyBattery) getStackInSlot(0).getItem()).getOrbLevel(); - - if (SummoningRegistry.isRecipeValid(bloodOrbLevel, composeItemsForRingAndParadigm(1, true), composeItemsForRingAndParadigm(2, true), composeItemsForRingAndParadigm(3, true))) - { - SummoningRegistryComponent src = SummoningRegistry.getRegistryComponent(bloodOrbLevel, composeItemsForRingAndParadigm(1, true), composeItemsForRingAndParadigm(2, true), composeItemsForRingAndParadigm(3, true)); - isActive = true; - paradigm = true; - progress = 0; - ring1Inv = src.getRingRecipeForRing(1); - ring2Inv = src.getRingRecipeForRing(2); - ring3Inv = src.getRingRecipeForRing(3); - } else if (SummoningRegistry.isRecipeValid(bloodOrbLevel, composeItemsForRingAndParadigm(1, false), composeItemsForRingAndParadigm(2, false), composeItemsForRingAndParadigm(3, false))) - { - SummoningRegistryComponent src = SummoningRegistry.getRegistryComponent(bloodOrbLevel, composeItemsForRingAndParadigm(1, false), composeItemsForRingAndParadigm(2, false), composeItemsForRingAndParadigm(3, false)); - isActive = true; - paradigm = false; - progress = 0; - ring1Inv = src.getRingRecipeForRing(1); - ring2Inv = src.getRingRecipeForRing(2); - ring3Inv = src.getRingRecipeForRing(3); - } else - { - isActive = false; - progress = 0; - } - } - } else - { - if (getStackInSlot(0) != null && getStackInSlot(0).getItem() instanceof EnergyBattery) - { - if (progress % progressInterval == 0) - { - int ring = (progress / progressInterval) / 6 + 1; - int slot = (progress / progressInterval) % 6; - ItemStack itemStack; - - switch (ring) - { - case 1: - itemStack = this.ring1Inv[slot]; - break; - - case 2: - itemStack = this.ring2Inv[slot]; - break; - - case 3: - itemStack = this.ring3Inv[slot]; - break; - - default: - itemStack = null; - } - - if (itemStack == null) - { - progress += progressInterval; - } else - { - if (this.deleteItemStackInRing(ring, itemStack)) - { - progress++; - } - } - } else - { - progress++; - } - - if (progress >= progressInterval * 18) - { - int bloodOrbLevel = ((EnergyBattery) getStackInSlot(0).getItem()).getOrbLevel(); - EntityLivingBase entity = SummoningRegistry.getEntity(worldObj, bloodOrbLevel, ring1Inv, ring2Inv, ring3Inv); - //EntityLivingBase entity = new EntityFallenAngel(worldObj); - - if (entity != null) - { - //entity.worldObj = worldObj; - entity.setPosition(xCoord + 0.5, yCoord + 1, zCoord + 0.5); - worldObj.spawnEntityInWorld(entity); - - if (entity instanceof IDemon) - { - ((IDemon) entity).setSummonedConditions(); - } - - worldObj.createExplosion(entity, entity.posX, entity.posY, entity.posZ, 3, false); - deleteItemsInRing(1); - isActive = false; - progress = 0; - - if (worldObj != null) - { - worldObj.markBlockForUpdate(xCoord, yCoord, zCoord); - } - } - } - } - } - } - - public void deleteItemsInRing(int ring) - { - if (paradigm) - { - int i = 0; - - for (PlinthComponent pc : pedestalPositions) - { - if (i < 6 && pc.getRing() == ring) - { - TileEntity tileEntity = worldObj.getBlockTileEntity(xCoord + pc.xOffset, yCoord + pc.yOffset, zCoord + pc.zOffset); - - if (tileEntity instanceof TEPedestal) - { - ((TEPedestal) tileEntity).setInventorySlotContents(0, null); - PacketDispatcher.sendPacketToAllInDimension(((TEPedestal) tileEntity).getDescriptionPacket(), worldObj.provider.dimensionId); - i++; - } - } - } - } else - { - int i = 0; - - for (PlinthComponent pc : pedestalPositions) - { - if (i < 6 && pc.getRing() == ring) - { - TileEntity tileEntity = worldObj.getBlockTileEntity(xCoord + pc.zOffset, yCoord + pc.yOffset, zCoord + pc.xOffset); - - if (tileEntity instanceof TEPedestal) - { - ((TEPedestal) tileEntity).setInventorySlotContents(0, null); - PacketDispatcher.sendPacketToAllInDimension(((TEPedestal) tileEntity).getDescriptionPacket(), worldObj.provider.dimensionId); - i++; - } - } - } - } - } - - public boolean deleteItemStackInRing(int ring, ItemStack itemStack) - { - if (itemStack == null) - { - return true; - } - - if (paradigm) - { - int i = 0; - - for (PlinthComponent pc : pedestalPositions) - { - if (i < 6 && pc.getRing() == ring) - { - TileEntity tileEntity = worldObj.getBlockTileEntity(xCoord + pc.xOffset, yCoord + pc.yOffset, zCoord + pc.zOffset); - - if (tileEntity instanceof TEPedestal) - { - ItemStack possibleItem = ((TEPedestal) tileEntity).getStackInSlot(0); - - if (possibleItem == null) - { - i++; - continue; - } - - boolean test = false; - - if (possibleItem.getItem() instanceof ItemBlock) - { - if (itemStack.getItem() instanceof ItemBlock) - { - test = true; - } - } else if (!(itemStack.getItem() instanceof ItemBlock)) - { - test = true; - } - - if (test) - { - if (itemStack.itemID == possibleItem.itemID && (itemStack.getItemDamage() == possibleItem.getItemDamage() || itemStack.getItemDamage() == OreDictionary.WILDCARD_VALUE)) - { - ((TEPedestal) tileEntity).decrStackSize(0, 1); - ((TEPedestal) tileEntity).onItemDeletion(); - PacketDispatcher.sendPacketToAllInDimension(((TEPedestal) tileEntity).getDescriptionPacket(), worldObj.provider.dimensionId); - return true; - } - } - - i++; - } - } - } - } else - { - int i = 0; - - for (PlinthComponent pc : pedestalPositions) - { - if (i < 6 && pc.getRing() == ring) - { - TileEntity tileEntity = worldObj.getBlockTileEntity(xCoord + pc.zOffset, yCoord + pc.yOffset, zCoord + pc.xOffset); - - if (tileEntity instanceof TEPedestal) - { - ItemStack possibleItem = ((TEPedestal) tileEntity).getStackInSlot(0); - - if (possibleItem == null) - { - i++; - continue; - } - - boolean test = false; - - if (possibleItem.getItem() instanceof ItemBlock) - { - if (itemStack.getItem() instanceof ItemBlock) - { - test = true; - } - } else if (!(itemStack.getItem() instanceof ItemBlock)) - { - test = true; - } - - if (test) - { - if (itemStack.itemID == possibleItem.itemID && (itemStack.getItemDamage() == possibleItem.getItemDamage() || itemStack.getItemDamage() == OreDictionary.WILDCARD_VALUE)) - { - ((TEPedestal) tileEntity).decrStackSize(0, 1); - ((TEPedestal) tileEntity).onItemDeletion(); - //worldObj.markBlockForUpdate(xCoord + pc.xOffset, yCoord + pc.yOffset, zCoord + pc.zOffset); - PacketDispatcher.sendPacketToAllInDimension(((TEPedestal) tileEntity).getDescriptionPacket(), worldObj.provider.dimensionId); - return true; - } - } - - i++; - } - } - } - } - - return false; - } - - public ItemStack[] composeItemsForRingAndParadigm(int ring, boolean paradigm) - { - ItemStack[] composed = new ItemStack[6]; - - if (paradigm) - { - int i = 0; - - for (PlinthComponent pc : pedestalPositions) - { - if (i < 6 && pc.getRing() == ring) - { - TileEntity tileEntity = worldObj.getBlockTileEntity(xCoord + pc.xOffset, yCoord + pc.yOffset, zCoord + pc.zOffset); - - if (tileEntity instanceof TEPedestal) - { - composed[i] = ((TEPedestal) tileEntity).getStackInSlot(0); - i++; - } - } - } - } else - { - int i = 0; - - for (PlinthComponent pc : pedestalPositions) - { - if (i < 6 && pc.getRing() == ring) - { - TileEntity tileEntity = worldObj.getBlockTileEntity(xCoord + pc.zOffset, yCoord + pc.yOffset, zCoord + pc.xOffset); - - if (tileEntity instanceof TEPedestal) - { - composed[i] = ((TEPedestal) tileEntity).getStackInSlot(0); - i++; - } - } - } - } - - return composed; - } - - public void setActive() - { - isActive = false; - } - - public boolean isActive() - { - return isActive; - } - - @Override - public Packet getDescriptionPacket() - { - return PacketHandler.getPacket(this); - } - - public void handlePacketData(int[] intData) - { - if (intData == null) - { - return; - } - - if (intData.length == 3) - { - for (int i = 0; i < 1; i++) - { - if (intData[i * 3 + 2] != 0) - { - ItemStack is = new ItemStack(intData[i * 3], intData[i * 3 + 2], intData[i * 3 + 1]); - inv[i] = is; - } else - { - inv[i] = null; - } - } - } - } - - public int[] buildIntDataList() - { - int[] sortList = new int[1 * 3]; - int pos = 0; - - for (ItemStack is : inv) - { - if (is != null) - { - sortList[pos++] = is.itemID; - sortList[pos++] = is.getItemDamage(); - sortList[pos++] = is.stackSize; - } else - { - sortList[pos++] = 0; - sortList[pos++] = 0; - sortList[pos++] = 0; - } - } - - return sortList; - } - - @Override - public boolean isItemValidForSlot(int slot, ItemStack itemstack) - { - if (slot == 0) - { - return true; - } - - return false; - } - - public static void initialize() - { - pedestalPositions.add(new PlinthComponent(1, 0, -2, 1)); - pedestalPositions.add(new PlinthComponent(2, 0, 0, 1)); - pedestalPositions.add(new PlinthComponent(1, 0, +2, 1)); - pedestalPositions.add(new PlinthComponent(-1, 0, -2, 1)); - pedestalPositions.add(new PlinthComponent(-2, 0, 0, 1)); - pedestalPositions.add(new PlinthComponent(-1, 0, +2, 1)); - pedestalPositions.add(new PlinthComponent(3, 1, -5, 2)); - pedestalPositions.add(new PlinthComponent(6, 1, 0, 2)); - pedestalPositions.add(new PlinthComponent(3, 1, +5, 2)); - pedestalPositions.add(new PlinthComponent(-3, 1, -5, 2)); - pedestalPositions.add(new PlinthComponent(-6, 1, 0, 2)); - pedestalPositions.add(new PlinthComponent(-3, 1, +5, 2)); - pedestalPositions.add(new PlinthComponent(0, 2, -9, 3)); - pedestalPositions.add(new PlinthComponent(7, 2, -4, 3)); - pedestalPositions.add(new PlinthComponent(7, 2, +4, 3)); - pedestalPositions.add(new PlinthComponent(0, 2, +9, 3)); - pedestalPositions.add(new PlinthComponent(-7, 2, -4, 3)); - pedestalPositions.add(new PlinthComponent(-7, 2, 4, 3)); - } -} diff --git a/BM_src/WayofTime/alchemicalWizardry/common/tileEntity/TESocket.java b/BM_src/WayofTime/alchemicalWizardry/common/tileEntity/TESocket.java deleted file mode 100644 index ec7019c8..00000000 --- a/BM_src/WayofTime/alchemicalWizardry/common/tileEntity/TESocket.java +++ /dev/null @@ -1,250 +0,0 @@ -package WayofTime.alchemicalWizardry.common.tileEntity; - -import WayofTime.alchemicalWizardry.common.PacketHandler; -import net.minecraft.entity.player.EntityPlayer; -import net.minecraft.inventory.IInventory; -import net.minecraft.item.ItemStack; -import net.minecraft.nbt.NBTTagCompound; -import net.minecraft.nbt.NBTTagList; -import net.minecraft.network.packet.Packet; -import net.minecraft.tileentity.TileEntity; - -public class TESocket extends TileEntity implements IInventory -{ - private ItemStack[] inv; - private int resultID; - private int resultDamage; - - private boolean isActive; - - public TESocket() - { - this.inv = new ItemStack[1]; - resultID = 0; - resultDamage = 0; - isActive = false; - } - - @Override - public void readFromNBT(NBTTagCompound par1NBTTagCompound) - { - super.readFromNBT(par1NBTTagCompound); - NBTTagList tagList = par1NBTTagCompound.getTagList("Inventory"); - - for (int i = 0; i < tagList.tagCount(); i++) - { - NBTTagCompound tag = (NBTTagCompound) tagList.tagAt(i); - int slot = tag.getByte("Slot"); - - if (slot >= 0 && slot < inv.length) - { - inv[slot] = ItemStack.loadItemStackFromNBT(tag); - } - } - - resultID = par1NBTTagCompound.getInteger("resultID"); - resultDamage = par1NBTTagCompound.getInteger("resultDamage"); - isActive = par1NBTTagCompound.getBoolean("isActive"); - } - - @Override - public void writeToNBT(NBTTagCompound par1NBTTagCompound) - { - super.writeToNBT(par1NBTTagCompound); - NBTTagList itemList = new NBTTagList(); - - for (int i = 0; i < inv.length; i++) - { - ItemStack stack = inv[i]; - - if (inv[i] != null) - { - NBTTagCompound tag = new NBTTagCompound(); - tag.setByte("Slot", (byte) i); - inv[i].writeToNBT(tag); - itemList.appendTag(tag); - } - } - - par1NBTTagCompound.setInteger("resultID", resultID); - par1NBTTagCompound.setInteger("resultDamage", resultDamage); - par1NBTTagCompound.setTag("Inventory", itemList); - par1NBTTagCompound.setBoolean("isActive", isActive); - } - - @Override - public int getSizeInventory() - { - return 1; - } - - @Override - public ItemStack getStackInSlot(int slot) - { - return inv[slot]; - } - - @Override - public ItemStack decrStackSize(int slot, int amt) - { - ItemStack stack = getStackInSlot(slot); - - if (stack != null) - { - if (stack.stackSize <= amt) - { - setInventorySlotContents(slot, null); - } else - { - stack = stack.splitStack(amt); - - if (stack.stackSize == 0) - { - setInventorySlotContents(slot, null); - } - } - } - - return stack; - } - - @Override - public ItemStack getStackInSlotOnClosing(int slot) - { - ItemStack stack = getStackInSlot(slot); - - if (stack != null) - { - setInventorySlotContents(slot, null); - } - - return stack; - } - - @Override - public void setInventorySlotContents(int slot, ItemStack itemStack) - { - inv[slot] = itemStack; - - if (itemStack != null && itemStack.stackSize > getInventoryStackLimit()) - { - itemStack.stackSize = getInventoryStackLimit(); - } - } - - @Override - public String getInvName() - { - return "TESocket"; - } - - @Override - public boolean isInvNameLocalized() - { - return false; - } - - @Override - public int getInventoryStackLimit() - { - return 1; - } - - @Override - public boolean isUseableByPlayer(EntityPlayer entityPlayer) - { - return worldObj.getBlockTileEntity(xCoord, yCoord, zCoord) == this && entityPlayer.getDistanceSq(xCoord + 0.5, yCoord + 0.5, zCoord + 0.5) < 64; - } - - @Override - public void openChest() - { - // TODO Auto-generated method stub - } - - @Override - public void closeChest() - { - // TODO Auto-generated method stub - } - - //Logic for the actual block is under here - @Override - public void updateEntity() - { - super.updateEntity(); - } - - public void setActive() - { - isActive = false; - } - - public boolean isActive() - { - return isActive; - } - - @Override - public Packet getDescriptionPacket() - { - return PacketHandler.getPacket(this); - } - - public void handlePacketData(int[] intData) - { - if (intData == null) - { - return; - } - - if (intData.length == 3) - { - for (int i = 0; i < 1; i++) - { - if (intData[i * 3 + 2] != 0) - { - ItemStack is = new ItemStack(intData[i * 3], intData[i * 3 + 2], intData[i * 3 + 1]); - inv[i] = is; - } else - { - inv[i] = null; - } - } - } - } - - public int[] buildIntDataList() - { - int[] sortList = new int[1 * 3]; - int pos = 0; - - for (ItemStack is : inv) - { - if (is != null) - { - sortList[pos++] = is.itemID; - sortList[pos++] = is.getItemDamage(); - sortList[pos++] = is.stackSize; - } else - { - sortList[pos++] = 0; - sortList[pos++] = 0; - sortList[pos++] = 0; - } - } - - return sortList; - } - - @Override - public boolean isItemValidForSlot(int slot, ItemStack itemstack) - { - if (slot == 0) - { - return true; - } - - return false; - } -} diff --git a/BM_src/WayofTime/alchemicalWizardry/common/tileEntity/TESpectralContainer.java b/BM_src/WayofTime/alchemicalWizardry/common/tileEntity/TESpectralContainer.java deleted file mode 100644 index 0e77fbd1..00000000 --- a/BM_src/WayofTime/alchemicalWizardry/common/tileEntity/TESpectralContainer.java +++ /dev/null @@ -1,143 +0,0 @@ -package WayofTime.alchemicalWizardry.common.tileEntity; - -import net.minecraft.block.Block; -import net.minecraft.item.ItemStack; -import net.minecraft.nbt.NBTTagCompound; -import net.minecraft.nbt.NBTTagList; -import net.minecraft.tileentity.TileEntity; -import net.minecraft.world.World; -import net.minecraftforge.fluids.IFluidBlock; -import WayofTime.alchemicalWizardry.ModBlocks; - -public class TESpectralContainer extends TileEntity -{ - private ItemStack[] inv; - - private int ticksRemaining; - - public TESpectralContainer() - { - this.inv = new ItemStack[1]; - - ticksRemaining = 0; - } - - @Override - public void readFromNBT(NBTTagCompound par1NBTTagCompound) - { - super.readFromNBT(par1NBTTagCompound); - NBTTagList tagList = par1NBTTagCompound.getTagList("Inventory"); - - for (int i = 0; i < tagList.tagCount(); i++) - { - NBTTagCompound tag = (NBTTagCompound) tagList.tagAt(i); - int slot = tag.getByte("Slot"); - - if (slot >= 0 && slot < inv.length) - { - inv[slot] = ItemStack.loadItemStackFromNBT(tag); - } - } - - ticksRemaining = par1NBTTagCompound.getInteger("ticksRemaining"); - } - - @Override - public void writeToNBT(NBTTagCompound par1NBTTagCompound) - { - super.writeToNBT(par1NBTTagCompound); - NBTTagList itemList = new NBTTagList(); - - for (int i = 0; i < inv.length; i++) - { - ItemStack stack = inv[i]; - - if (inv[i] != null) - { - NBTTagCompound tag = new NBTTagCompound(); - tag.setByte("Slot", (byte) i); - inv[i].writeToNBT(tag); - itemList.appendTag(tag); - } - } - - par1NBTTagCompound.setTag("Inventory", itemList); - par1NBTTagCompound.setInteger("ticksRemaining", ticksRemaining); - } - - @Override - public void updateEntity() - { - super.updateEntity(); - - this.ticksRemaining--; - - if(this.ticksRemaining<=0) - { - this.returnContainedBlock(); - } - } - - public static boolean createSpectralBlockAtLocation(World world, int x, int y, int z, int duration) - { - Block block = Block.blocksList[world.getBlockId(x, y, z)]; - - if(block==null) - { - return false; - } - - if(world.getBlockTileEntity(x, y, z)==null || block instanceof IFluidBlock) - { - int meta = world.getBlockMetadata(x, y, z); - ItemStack item = new ItemStack(block, 1, meta); - - world.setBlock(x, y, z, ModBlocks.blockSpectralContainer.blockID); - TileEntity tile = world.getBlockTileEntity(x, y, z); - if(tile instanceof TESpectralContainer) - { - ((TESpectralContainer) tile).setContainedItem(item); - ((TESpectralContainer) tile).setDuration(duration); - return true; - } - } - - return false; - } - - public void setDuration(int dur) - { - this.ticksRemaining = dur; - } - - public void resetDuration(int dur) - { - if(this.ticksRemaining stringList = parad.effectList; -// SpellParadigmSelf spellParadSelf = SpellParadigmSelf.getParadigmForStringArray(stringList); -// for(String str : stringList) -// { -// ChatMessageComponent chat = new ChatMessageComponent(); -// chat.addText(str); -// entity.sendChatToPlayer(chat); -// } -// spellParadSelf.castSpell(world, entity, spellCasterStack); -// } -// else if(parad instanceof SpellParadigmProjectile) -// { -// List stringList = parad.effectList; -// SpellParadigmProjectile spellParadSelf = SpellParadigmProjectile.getParadigmForStringArray(stringList); -// for(String str : stringList) -// { -// ChatMessageComponent chat = new ChatMessageComponent(); -// chat.addText(str); -// entity.sendChatToPlayer(chat); -// } -// spellParadSelf.castSpell(world, entity, spellCasterStack); -// }else - { - parad.applyAllSpellEffects(); - parad.castSpell(world, entity, spellCasterStack); - } - - } - - @Override - public String getResourceLocationForMeta(int meta) - { - switch(meta) - { - case 0: return "alchemicalwizardry:textures/models/SpellParadigmProjectile.png"; - case 1: return "alchemicalwizardry:textures/models/SpellParadigmSelf.png"; - case 2: return "alchemicalwizardry:textures/models/SpellParadigmMelee.png"; - } - return "alchemicalwizardry:textures/models/SpellParadigmProjectile.png"; - } - - @Override - public void setInputDirection(ForgeDirection direction) - { - - } - - @Override - public ForgeDirection getInputDirection() - { - return ForgeDirection.UNKNOWN; - } -} diff --git a/BM_src/WayofTime/alchemicalWizardry/common/tileEntity/TETeleposer.java b/BM_src/WayofTime/alchemicalWizardry/common/tileEntity/TETeleposer.java deleted file mode 100644 index 2a360796..00000000 --- a/BM_src/WayofTime/alchemicalWizardry/common/tileEntity/TETeleposer.java +++ /dev/null @@ -1,368 +0,0 @@ -package WayofTime.alchemicalWizardry.common.tileEntity; - -import WayofTime.alchemicalWizardry.common.PacketHandler; -import WayofTime.alchemicalWizardry.common.block.BlockTeleposer; -import WayofTime.alchemicalWizardry.common.items.EnergyItems; -import WayofTime.alchemicalWizardry.common.items.TelepositionFocus; -import net.minecraft.entity.EntityLivingBase; -import net.minecraft.entity.player.EntityPlayer; -import net.minecraft.inventory.IInventory; -import net.minecraft.item.ItemStack; -import net.minecraft.nbt.NBTTagCompound; -import net.minecraft.nbt.NBTTagList; -import net.minecraft.network.packet.Packet; -import net.minecraft.tileentity.TileEntity; -import net.minecraft.util.AxisAlignedBB; -import net.minecraft.world.World; - -import java.util.Iterator; -import java.util.List; - -public class TETeleposer extends TileEntity implements IInventory -{ - private ItemStack[] inv; - private int resultID; - private int resultDamage; - private int previousInput; - - private boolean isActive; - - public TETeleposer() - { - this.inv = new ItemStack[1]; - resultID = 0; - resultDamage = 0; - isActive = false; - previousInput = 0; - } - - @Override - public void readFromNBT(NBTTagCompound par1NBTTagCompound) - { - super.readFromNBT(par1NBTTagCompound); - NBTTagList tagList = par1NBTTagCompound.getTagList("Inventory"); - - for (int i = 0; i < tagList.tagCount(); i++) - { - NBTTagCompound tag = (NBTTagCompound) tagList.tagAt(i); - int slot = tag.getByte("Slot"); - - if (slot >= 0 && slot < inv.length) - { - inv[slot] = ItemStack.loadItemStackFromNBT(tag); - } - } - - resultID = par1NBTTagCompound.getInteger("resultID"); - resultDamage = par1NBTTagCompound.getInteger("resultDamage"); - isActive = par1NBTTagCompound.getBoolean("isActive"); - previousInput = par1NBTTagCompound.getInteger("previousInput"); - } - - @Override - public void writeToNBT(NBTTagCompound par1NBTTagCompound) - { - super.writeToNBT(par1NBTTagCompound); - NBTTagList itemList = new NBTTagList(); - - for (int i = 0; i < inv.length; i++) - { - ItemStack stack = inv[i]; - - if (inv[i] != null) - { - NBTTagCompound tag = new NBTTagCompound(); - tag.setByte("Slot", (byte) i); - inv[i].writeToNBT(tag); - itemList.appendTag(tag); - } - } - - par1NBTTagCompound.setInteger("resultID", resultID); - par1NBTTagCompound.setInteger("resultDamage", resultDamage); - par1NBTTagCompound.setTag("Inventory", itemList); - par1NBTTagCompound.setBoolean("isActive", isActive); - par1NBTTagCompound.setInteger("previousInput", previousInput); - } - - @Override - public int getSizeInventory() - { - return 1; - } - - @Override - public ItemStack getStackInSlot(int slot) - { - return inv[slot]; - } - - @Override - public ItemStack decrStackSize(int slot, int amt) - { - ItemStack stack = getStackInSlot(slot); - - if (stack != null) - { - if (stack.stackSize <= amt) - { - setInventorySlotContents(slot, null); - } else - { - stack = stack.splitStack(amt); - - if (stack.stackSize == 0) - { - setInventorySlotContents(slot, null); - } - } - } - - return stack; - } - - @Override - public ItemStack getStackInSlotOnClosing(int slot) - { - ItemStack stack = getStackInSlot(slot); - - if (stack != null) - { - setInventorySlotContents(slot, null); - } - - return stack; - } - - @Override - public void setInventorySlotContents(int slot, ItemStack itemStack) - { - inv[slot] = itemStack; - - if (itemStack != null && itemStack.stackSize > getInventoryStackLimit()) - { - itemStack.stackSize = getInventoryStackLimit(); - } - } - - @Override - public String getInvName() - { - return "TETeleposer"; - } - - @Override - public boolean isInvNameLocalized() - { - return false; - } - - @Override - public int getInventoryStackLimit() - { - return 1; - } - - @Override - public boolean isUseableByPlayer(EntityPlayer entityPlayer) - { - return worldObj.getBlockTileEntity(xCoord, yCoord, zCoord) == this && entityPlayer.getDistanceSq(xCoord + 0.5, yCoord + 0.5, zCoord + 0.5) < 64; - } - - @Override - public void openChest() - { - // TODO Auto-generated method stub - } - - @Override - public void closeChest() - { - // TODO Auto-generated method stub - } - - //Logic for the actual block is under here - @Override - public void updateEntity() - { - super.updateEntity(); - - if (worldObj.isRemote) - { - return; - } - - int currentInput = worldObj.getBlockPowerInput(xCoord, yCoord, zCoord); - - if (previousInput == 0 && currentInput != 0) - { - ItemStack focus = this.getStackInSlot(0); - - if (focus != null && focus.getItem() instanceof TelepositionFocus) - { - TelepositionFocus focusItem = (TelepositionFocus) (focus.getItem()); - int xf = focusItem.xCoord(focus); - int yf = focusItem.yCoord(focus); - int zf = focusItem.zCoord(focus); - World worldF = focusItem.getWorld(focus); - int damage = (int) (0.5f * Math.sqrt((xCoord - xf) * (xCoord - xf) + (yCoord - yf + 1) * (yCoord - yf + 1) + (zCoord - zf) * (zCoord - zf))); - int focusLevel = ((TelepositionFocus) focusItem).getFocusLevel(); - int transportCount = 0; - int entityCount = 0; - - if (worldF != null && worldF.getBlockTileEntity(xf, yf, zf) instanceof TETeleposer && !worldF.getBlockTileEntity(xf, yf, zf).equals(this)) - { - //Prime the teleportation - int d0 = focusLevel - 1; - AxisAlignedBB axisalignedbb1 = AxisAlignedBB.getAABBPool().getAABB((double) this.xCoord, (double) this.yCoord + d0 + 1, (double) this.zCoord, (double) (this.xCoord + 1), (double) (this.yCoord + 2 + d0), (double) (this.zCoord + 1)).expand(d0, d0, d0); - axisalignedbb1.maxY = Math.min((double) this.worldObj.getHeight(), this.yCoord + 2 + d0 + d0); - List list1 = this.worldObj.getEntitiesWithinAABB(EntityLivingBase.class, axisalignedbb1); - Iterator iterator1 = list1.iterator(); - EntityLivingBase entityplayer1; - - while (iterator1.hasNext()) - { - entityplayer1 = (EntityLivingBase) iterator1.next(); - entityCount++; - } - - //int d0 = focusLevel-1; - AxisAlignedBB axisalignedbb2 = AxisAlignedBB.getAABBPool().getAABB(xf, yf + d0 + 1, zf, xf + 1, yf + 2 + d0, zf).expand(d0, d0, d0); - //axisalignedbb2.maxY = Math.min((double)worldF.getHeight(),yf+1+d0+d0); - List list2 = worldF.getEntitiesWithinAABB(EntityLivingBase.class, axisalignedbb2); - Iterator iterator2 = list2.iterator(); - EntityLivingBase entityplayer2; - - while (iterator2.hasNext()) - { - entityplayer2 = (EntityLivingBase) iterator2.next(); - entityCount++; - } - - if (EnergyItems.canSyphonInContainer(focus, damage * (focusLevel * 2 - 1) * (focusLevel * 2 - 1) * (focusLevel * 2 - 1) + damage * entityCount)) - { - for (int k = 0; k <= (focusLevel * 2 - 2); k++) - //for(int k=(focusLevel*2-1);k>=0;k--) - { - for (int i = -(focusLevel - 1); i <= (focusLevel - 1); i++) - { - for (int j = -(focusLevel - 1); j <= (focusLevel - 1); j++) - { - { - if (BlockTeleposer.swapBlocks(worldObj, worldF, xCoord + i, yCoord + 1 + k, zCoord + j, xf + i, yf + 1 + k, zf + j)) - { - transportCount++; - } - } - } - } - } - - if (!worldF.equals(worldObj)) - { - entityCount = 0; - } - - EnergyItems.syphonWhileInContainer(focus, damage * transportCount + damage * entityCount); - //Teleport - - if (worldF.equals(worldObj)) - { - iterator1 = list1.iterator(); - iterator2 = list2.iterator(); - - while (iterator1.hasNext()) - { - entityplayer1 = (EntityLivingBase) iterator1.next(); - entityplayer1.worldObj = worldF; - entityplayer1.setPositionAndUpdate(entityplayer1.posX - this.xCoord + xf, entityplayer1.posY - this.yCoord + yf, entityplayer1.posZ - this.zCoord + zf); - } - - while (iterator2.hasNext()) - { - entityplayer2 = (EntityLivingBase) iterator2.next(); - entityplayer2.worldObj = worldF; - entityplayer2.setPositionAndUpdate(entityplayer2.posX + this.xCoord - xf, entityplayer2.posY + this.yCoord - yf, entityplayer2.posZ + this.zCoord - zf); - } - } - } - } - } - } - - previousInput = currentInput; - } - - public void setActive() - { - isActive = false; - } - - public boolean isActive() - { - return isActive; - } - - @Override - public Packet getDescriptionPacket() - { - return PacketHandler.getPacket(this); - } - - public void handlePacketData(int[] intData) - { - if (intData == null) - { - return; - } - - if (intData.length == 3) - { - for (int i = 0; i < 1; i++) - { - if (intData[i * 3 + 2] != 0) - { - ItemStack is = new ItemStack(intData[i * 3], intData[i * 3 + 2], intData[i * 3 + 1]); - inv[i] = is; - } else - { - inv[i] = null; - } - } - } - } - - public int[] buildIntDataList() - { - int[] sortList = new int[1 * 3]; - int pos = 0; - - for (ItemStack is : inv) - { - if (is != null) - { - sortList[pos++] = is.itemID; - sortList[pos++] = is.getItemDamage(); - sortList[pos++] = is.stackSize; - } else - { - sortList[pos++] = 0; - sortList[pos++] = 0; - sortList[pos++] = 0; - } - } - - return sortList; - } - - @Override - public boolean isItemValidForSlot(int slot, ItemStack itemstack) - { - if (slot == 0) - { - return true; - } - - return false; - } -} diff --git a/BM_src/WayofTime/alchemicalWizardry/common/tileEntity/TEWritingTable.java b/BM_src/WayofTime/alchemicalWizardry/common/tileEntity/TEWritingTable.java deleted file mode 100644 index d5046c66..00000000 --- a/BM_src/WayofTime/alchemicalWizardry/common/tileEntity/TEWritingTable.java +++ /dev/null @@ -1,915 +0,0 @@ -package WayofTime.alchemicalWizardry.common.tileEntity; - -import java.io.ByteArrayOutputStream; -import java.io.DataOutputStream; -import java.io.IOException; - -import net.minecraft.entity.player.EntityPlayer; -import net.minecraft.inventory.ISidedInventory; -import net.minecraft.item.ItemBlock; -import net.minecraft.item.ItemStack; -import net.minecraft.nbt.NBTTagCompound; -import net.minecraft.nbt.NBTTagList; -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; -import WayofTime.alchemicalWizardry.common.PacketHandler; -import WayofTime.alchemicalWizardry.common.items.EnergyBattery; -import WayofTime.alchemicalWizardry.common.items.EnergyItems; -import WayofTime.alchemicalWizardry.common.items.potion.AlchemyFlask; -import cpw.mods.fml.common.network.PacketDispatcher; - -public class TEWritingTable extends TileEntity implements ISidedInventory -{ - private ItemStack[] inv; - private int progress; - private int progressNeeded = 100; - private int amountUsed; - - public TEWritingTable() - { - inv = new ItemStack[7]; - } - - @Override - public int getSizeInventory() - { - return inv.length; - } - - @Override - public ItemStack getStackInSlot(int slot) - { - return inv[slot]; - } - - @Override - public void setInventorySlotContents(int slot, ItemStack stack) - { - inv[slot] = stack; - - if (stack != null && stack.stackSize > getInventoryStackLimit()) - { - stack.stackSize = getInventoryStackLimit(); - } - } - - @Override - public ItemStack decrStackSize(int slot, int amt) - { - ItemStack stack = getStackInSlot(slot); - - if (stack != null) - { - if (stack.stackSize <= amt) - { - setInventorySlotContents(slot, null); - } else - { - stack = stack.splitStack(amt); - - if (stack.stackSize == 0) - { - setInventorySlotContents(slot, null); - } - } - } - - return stack; - } - - public ItemStack decrStackSizeLeaveContainer(int slot, int amt) - { - ItemStack stack = getStackInSlot(slot); - - if (stack != null) - { - ItemStack containedStack = stack.getItem().getContainerItemStack(stack); - if(containedStack!=null) - { - setInventorySlotContents(slot,containedStack); - } - else - { - if (stack.stackSize <= amt) - { - setInventorySlotContents(slot, null); - } else - { - stack = stack.splitStack(amt); - - if (stack.stackSize == 0) - { - setInventorySlotContents(slot, null); - } - } - } - } - - return stack; - } - - @Override - public ItemStack getStackInSlotOnClosing(int slot) - { - ItemStack stack = getStackInSlot(slot); - - if (stack != null) - { - setInventorySlotContents(slot, null); - } - - return stack; - } - - @Override - public int getInventoryStackLimit() - { - return 64; - } - - @Override - public boolean isUseableByPlayer(EntityPlayer player) - { - return worldObj.getBlockTileEntity(xCoord, yCoord, zCoord) == this && player.getDistanceSq(xCoord + 0.5, yCoord + 0.5, zCoord + 0.5) < 64; - } - - @Override - public void openChest() - { - } - - @Override - public void closeChest() - { - } - - @Override - public void readFromNBT(NBTTagCompound tagCompound) - { - super.readFromNBT(tagCompound); - NBTTagList tagList = tagCompound.getTagList("Inventory"); - - for (int i = 0; i < tagList.tagCount(); i++) - { - NBTTagCompound tag = (NBTTagCompound) tagList.tagAt(i); - byte slot = tag.getByte("Slot"); - - if (slot >= 0 && slot < inv.length) - { - inv[slot] = ItemStack.loadItemStackFromNBT(tag); - } - } - - progress = tagCompound.getInteger("progress"); - amountUsed = tagCompound.getInteger("amountUsed"); - } - - @Override - public void writeToNBT(NBTTagCompound tagCompound) - { - super.writeToNBT(tagCompound); - NBTTagList itemList = new NBTTagList(); - - for (int i = 0; i < inv.length; i++) - { - ItemStack stack = inv[i]; - - if (stack != null) - { - NBTTagCompound tag = new NBTTagCompound(); - tag.setByte("Slot", (byte) i); - stack.writeToNBT(tag); - itemList.appendTag(tag); - } - } - - tagCompound.setTag("Inventory", itemList); - tagCompound.setInteger("progress", progress); - tagCompound.setInteger("amountUsed", amountUsed); - } - - @Override - public String getInvName() - { - return "aw.TEWritingTable"; - } - - @Override - public boolean isInvNameLocalized() - { - // TODO Auto-generated method stub - return false; - } - - @Override - public boolean isItemValidForSlot(int i, ItemStack itemstack) - { - // TODO Auto-generated method stub - return false; - } - - @Override - public Packet getDescriptionPacket() - { - return PacketHandler.getPacket(this); - } - - public static Packet250CustomPayload getParticlePacket(double x, double y, double z, short particleType) - { - ByteArrayOutputStream bos = new ByteArrayOutputStream(); - DataOutputStream dos = new DataOutputStream(bos); - - try - { - dos.writeDouble(x); - dos.writeDouble(y); - dos.writeDouble(z); - dos.writeShort(particleType); - } catch (IOException e) - { - e.printStackTrace(); - } - - return new Packet250CustomPayload("particle", bos.toByteArray()); - } - - public void handlePacketData(int[] intData) - { - if (intData == null) - { - return; - } - - if (intData.length == 3 * 7) - { - for (int i = 0; i < 7; i++) - { - if (intData[i * 3 + 2] != 0) - { - ItemStack is = new ItemStack(intData[i * 3], intData[i * 3 + 2], intData[i * 3 + 1]); - inv[i] = is; - } else - { - inv[i] = null; - } - } - } - } - - public int[] buildIntDataList() - { - int[] sortList = new int[7 * 3]; - int pos = 0; - - for (ItemStack is : inv) - { - if (is != null) - { - sortList[pos++] = is.itemID; - sortList[pos++] = is.getItemDamage(); - sortList[pos++] = is.stackSize; - } else - { - sortList[pos++] = 0; - sortList[pos++] = 0; - sortList[pos++] = 0; - } - } - - return sortList; - } - - public ItemStack getResultingItemStack() - { - ItemStack[] composedRecipe = new ItemStack[5]; - - for (int i = 0; i < 5; i++) - { - composedRecipe[i] = inv[i + 1]; - } - - return AlchemyRecipeRegistry.getResult(composedRecipe, inv[0]); - } - - public boolean isRecipeValid() - { - return (getResultingItemStack() != null); - } - - public int getAmountNeeded(ItemStack bloodOrb) - { - ItemStack[] composedRecipe = new ItemStack[5]; - - for (int i = 0; i < 5; i++) - { - composedRecipe[i] = inv[i + 1]; - } - - return AlchemyRecipeRegistry.getAmountNeeded(composedRecipe, bloodOrb); - } - - public boolean containsPotionFlask() - { - if (getPotionFlaskPosition() != -1) - { - return true; - } else - { - return false; - } - } - - public int getPotionFlaskPosition() - { - for (int i = 1; i <= 5; i++) - { - if (inv[i] != null && !(inv[i].getItem() instanceof ItemBlock) && inv[i].itemID == ModItems.alchemyFlask.itemID) - { - return i; - } - } - - return -1; - } - - public boolean containsRegisteredPotionIngredient() - { - if (getRegisteredPotionIngredientPosition() != -1) - { - return true; - } else - { - return false; - } - } - - public int getRegisteredPotionIngredientPosition() - { - ItemStack[] composedRecipe = new ItemStack[5]; - - for (int i = 0; i < 5; i++) - { - composedRecipe[i] = inv[i + 1]; - } - - int location = AlchemicalPotionCreationHandler.getRegisteredPotionIngredientPosition(composedRecipe); - - if (location != -1) - { - return location + 1; - } - - return -1; - } - - public boolean containsCatalyst() - { - if (getCatalystPosition() != -1) - { - return true; - } - - return false; - } - - public int getCatalystPosition() - { - for (int i = 0; i < 5; i++) - { - if (inv[i + 1] != null && inv[i + 1].getItem() instanceof ICatalyst) - { - return i + 1; - } - } - - return -1; - } - - public boolean containsBindingAgent() - { - if (getBindingAgentPosition() != -1) - { - return true; - } - - return false; - } - - public int getBindingAgentPosition() - { - for (int i = 0; i < 5; i++) - { - if (inv[i + 1] != null && inv[i + 1].getItem() instanceof IBindingAgent) - { - return i + 1; - } - } - - return -1; - } - - public boolean containsFillingAgent() - { - if (getFillingAgentPosition() != -1) - { - return true; - } - - return false; - } - - public int getFillingAgentPosition() - { - for (int i = 0; i < 5; i++) - { - if (inv[i + 1] != null && inv[i + 1].getItem() instanceof IFillingAgent) - { - return i + 1; - } - } - - return -1; - } - - public boolean containsBlankSlate() - { - if (getBlankSlatePosition() != -1) - { - return true; - } - - return false; - } - - public int getBlankSlatePosition() - { - for (int i = 0; i < 5; i++) - { - if (inv[i + 1] != null && inv[i + 1].itemID == ModItems.blankSlate.itemID) - { - return i + 1; - } - } - - return -1; - } - - @Override - public void updateEntity() - { - long worldTime = worldObj.getWorldTime(); - - if (worldObj.isRemote) - { - return; - } - -// if(worldTime%100==0) -// { -// if (worldObj != null) -// { -// worldObj.markBlockForUpdate(xCoord, yCoord, zCoord); -// } -// } - - if (containsPotionFlask() && containsRegisteredPotionIngredient()) - { - if (containsCatalyst()) - { - if (getStackInSlot(6) == null) - { - progress++; - - if (worldTime % 4 == 0) - { - PacketDispatcher.sendPacketToAllAround(xCoord, yCoord, zCoord, 20, worldObj.provider.dimensionId, getParticlePacket(xCoord, yCoord, zCoord, (short) 1)); - } - - if (progress >= progressNeeded) - { - ItemStack flaskStack = inv[this.getPotionFlaskPosition()]; - ItemStack ingredientStack = inv[this.getRegisteredPotionIngredientPosition()]; - ItemStack catalystStack = inv[this.getCatalystPosition()]; - - if (flaskStack == null || ingredientStack == null || catalystStack == null) - { - progress = 0; - - if (worldObj != null) - { - worldObj.markBlockForUpdate(xCoord, yCoord, zCoord); - } - - return; - } - - int potionID = AlchemicalPotionCreationHandler.getPotionIDForStack(ingredientStack); - int catalystLevel = ((ICatalyst) catalystStack.getItem()).getCatalystLevel(); - boolean isConcentration = ((ICatalyst) catalystStack.getItem()).isConcentration(); - - if (potionID == -1 || catalystLevel < 0) - { - progress = 0; - - if (worldObj != null) - { - worldObj.markBlockForUpdate(xCoord, yCoord, zCoord); - } - - return; - } - - if (isConcentration) - { - ((AlchemyFlask) flaskStack.getItem()).setConcentrationOfPotion(flaskStack, potionID, catalystLevel); - } else - { - ((AlchemyFlask) flaskStack.getItem()).setDurationFactorOfPotion(flaskStack, potionID, catalystLevel); - } - - //((AlchemyFlask)flaskStack.getItem()).setConcentrationOfPotion(flaskStack, Potion.regeneration.id, 2); - this.setInventorySlotContents(6, flaskStack); - this.decrStackSize(this.getPotionFlaskPosition(), 1); - this.decrStackSize(this.getCatalystPosition(), 1); - this.decrStackSize(this.getRegisteredPotionIngredientPosition(), 1); - progress = 0; - - if (worldObj != null) - { - worldObj.markBlockForUpdate(xCoord, yCoord, zCoord); - } - } - } - } else if (containsBindingAgent()) - { - if (getStackInSlot(6) == null) - { - progress++; - - if (worldTime % 4 == 0) - { - PacketDispatcher.sendPacketToAllAround(xCoord, yCoord, zCoord, 20, worldObj.provider.dimensionId, getParticlePacket(xCoord, yCoord, zCoord, (short) 1)); - } - - if (progress >= progressNeeded) - { - ItemStack flaskStack = inv[this.getPotionFlaskPosition()]; - ItemStack ingredientStack = inv[this.getRegisteredPotionIngredientPosition()]; - ItemStack agentStack = inv[this.getBindingAgentPosition()]; - - if (flaskStack == null || ingredientStack == null || agentStack == null) - { - progress = 0; - - if (worldObj != null) - { - worldObj.markBlockForUpdate(xCoord, yCoord, zCoord); - } - - return; - } - - int potionEffectNumber = ((AlchemyFlask) flaskStack.getItem()).getNumberOfPotionEffects(flaskStack); - int potionID = AlchemicalPotionCreationHandler.getPotionIDForStack(ingredientStack); - int tickDuration = AlchemicalPotionCreationHandler.getPotionTickDurationForStack(ingredientStack); - float successChance = ((IBindingAgent) agentStack.getItem()).getSuccessRateForPotionNumber(potionEffectNumber); - //boolean isConcentration = ((ICatalyst)catalystStack.getItem()).isConcentration(); - - if (potionID == -1) - { - progress = 0; - - if (worldObj != null) - { - worldObj.markBlockForUpdate(xCoord, yCoord, zCoord); - } - - return; - } - - ((AlchemyFlask) flaskStack.getItem()).addPotionEffect(flaskStack, potionID, tickDuration); - - //((AlchemyFlask)flaskStack.getItem()).addPotionEffect(flaskStack, Potion.regeneration.id, 1000); - - if (successChance > worldObj.rand.nextFloat()) - { - this.setInventorySlotContents(6, flaskStack); - } else - { - worldObj.createExplosion(null, xCoord + 0.5, yCoord + 1, zCoord + 0.5, 2, false); - } - - this.decrStackSize(this.getPotionFlaskPosition(), 1); - this.decrStackSize(this.getBindingAgentPosition(), 1); - this.decrStackSize(this.getRegisteredPotionIngredientPosition(), 1); - progress = 0; - - if (worldObj != null) - { - worldObj.markBlockForUpdate(xCoord, yCoord, zCoord); - } - } - } - } - } else if (this.containsBlankSlate() && this.containsPotionFlask()) - { - if (getStackInSlot(6) == null) - { - progress++; - - if (worldTime % 4 == 0) - { - PacketDispatcher.sendPacketToAllAround(xCoord, yCoord, zCoord, 20, worldObj.provider.dimensionId, getParticlePacket(xCoord, yCoord, zCoord, (short) 1)); - } - - if (progress >= progressNeeded) - { - ItemStack flaskStack = inv[this.getPotionFlaskPosition()]; - //ItemStack ingredientStack = inv[this.getRegisteredPotionIngredientPosition()]; - ItemStack blankSlate = inv[this.getBlankSlatePosition()]; - - if (flaskStack == null || blankSlate == null) - { - progress = 0; - - if (worldObj != null) - { - worldObj.markBlockForUpdate(xCoord, yCoord, zCoord); - } - - return; - } - - //boolean isConcentration = ((ICatalyst)catalystStack.getItem()).isConcentration(); - ((AlchemyFlask) flaskStack.getItem()).setIsPotionThrowable(true, flaskStack); - //((AlchemyFlask)flaskStack.getItem()).addPotionEffect(flaskStack, Potion.regeneration.id, 1000); - //if(successChance>worldObj.rand.nextFloat()) - this.setInventorySlotContents(6, flaskStack); - this.decrStackSize(this.getPotionFlaskPosition(), 1); - this.decrStackSize(this.getBlankSlatePosition(), 1); - //this.decrStackSize(this.getRegisteredPotionIngredientPosition(), 1); - progress = 0; - - if (worldObj != null) - { - worldObj.markBlockForUpdate(xCoord, yCoord, zCoord); - } - } - } - } else if (this.containsFillingAgent() && this.containsPotionFlask()) - { - //TODO - if (getStackInSlot(6) == null) - { - progress++; - - if (worldTime % 4 == 0) - { - PacketDispatcher.sendPacketToAllAround(xCoord, yCoord, zCoord, 20, worldObj.provider.dimensionId, getParticlePacket(xCoord, yCoord, zCoord, (short) 1)); - } - - if (progress >= progressNeeded) - { - ItemStack flaskStack = inv[this.getPotionFlaskPosition()]; - //ItemStack ingredientStack = inv[this.getRegisteredPotionIngredientPosition()]; - ItemStack fillingAgent = inv[this.getFillingAgentPosition()]; - - if (flaskStack == null || fillingAgent == null) - { - progress = 0; - - if (worldObj != null) - { - worldObj.markBlockForUpdate(xCoord, yCoord, zCoord); - } - - return; - } - - //boolean isConcentration = ((ICatalyst)catalystStack.getItem()).isConcentration(); - int potionEffects = ((AlchemyFlask) flaskStack.getItem()).getNumberOfPotionEffects(flaskStack); - int potionFillAmount = ((IFillingAgent) fillingAgent.getItem()).getFilledAmountForPotionNumber(potionEffects); - flaskStack.setItemDamage(Math.max(0, flaskStack.getItemDamage() - potionFillAmount)); - //((AlchemyFlask)flaskStack.getItem()).addPotionEffect(flaskStack, Potion.regeneration.id, 1000); - //if(successChance>worldObj.rand.nextFloat()) - this.setInventorySlotContents(6, flaskStack); - this.decrStackSize(this.getPotionFlaskPosition(), 1); - this.decrStackSize(this.getFillingAgentPosition(), 1); - //this.decrStackSize(this.getRegisteredPotionIngredientPosition(), 1); - progress = 0; - - if (worldObj != null) - { - worldObj.markBlockForUpdate(xCoord, yCoord, zCoord); - } - } - } - } else - { - if (!isRecipeValid()) - { - progress = 0; - return; - } - - if (progress <= 0) - { - progress = 0; - amountUsed = this.getAmountNeeded(getStackInSlot(0)); - - if (worldObj != null) - { - worldObj.markBlockForUpdate(xCoord, yCoord, zCoord); - } - } - - if (getStackInSlot(6) == null) - { - - if (worldTime % 4 == 0) - { - PacketDispatcher.sendPacketToAllAround(xCoord, yCoord, zCoord, 20, worldObj.provider.dimensionId, getParticlePacket(xCoord, yCoord, zCoord, (short) 1)); - } - - if (!EnergyItems.syphonWhileInContainer(getStackInSlot(0), amountUsed)) - { - return; - } - - progress++; - - if (progress >= progressNeeded) - { - progress = 0; - this.setInventorySlotContents(6, 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) - { - worldObj.markBlockForUpdate(xCoord, yCoord, zCoord); - } - } - } else if (getStackInSlot(6).getItem().itemID == getResultingItemStack().itemID && getResultingItemStack().stackSize <= (getStackInSlot(6).getMaxStackSize() - getStackInSlot(6).stackSize)) - { - if (worldTime % 4 == 0) - { - PacketDispatcher.sendPacketToAllAround(xCoord, yCoord, zCoord, 20, worldObj.provider.dimensionId, getParticlePacket(xCoord, yCoord, zCoord, (short) 1)); - } - - if (!EnergyItems.syphonWhileInContainer(getStackInSlot(0), amountUsed)) - { - return; - } - - progress++; - - if (progress >= progressNeeded) - { - progress = 0; - ItemStack result = getResultingItemStack().copy(); - result.stackSize += getStackInSlot(6).stackSize; - this.setInventorySlotContents(6, result); - - 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) - { - worldObj.markBlockForUpdate(xCoord, yCoord, zCoord); - } - } - } - } - - //worldObj.markBlockForUpdate(xCoord, yCoord, zCoord); - } - - @Override - public int[] getAccessibleSlotsFromSide(int var1) - { - ForgeDirection dir = ForgeDirection.getOrientation(var1); - - switch(dir) - { - case DOWN: - return new int[]{0}; - case UP: - return new int[]{6}; - case NORTH: - case SOUTH: - case EAST: - case WEST: - return new int[]{1,2,3,4,5}; - default: - return new int[]{}; - } - } - - @Override - public boolean canInsertItem(int i, ItemStack itemStack, int j) - { - ForgeDirection dir = ForgeDirection.getOrientation(j); - - if(itemStack == null) - { - return false; - } - - if(dir.equals(ForgeDirection.DOWN) && !(itemStack.getItem() instanceof EnergyBattery)) - { - return false; - } - - return true; - } - - @Override - public boolean canExtractItem(int i, ItemStack itemstack, int j) - { - return true; - } - - public void decrementSlots(ItemStack[] recipe) //TODO Fix this. This doesn't work. - { - boolean[] decrementedList = new boolean[]{false,false,false,false,false}; - - for(int i=0; i<(Math.min(recipe.length,5)); i++) - { - ItemStack decStack = recipe[i]; - - if(decStack == null) - { - continue; - } - - for(int j=0; j<5; j++) - { - ItemStack testStack = this.getStackInSlot(j+1); - - if(testStack != null && (testStack.isItemEqual(decStack) || (testStack.getItem() == decStack.getItem() && decStack.getItemDamage() == OreDictionary.WILDCARD_VALUE)) && !(decrementedList[j])) - { - 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 diff --git a/BM_src/WayofTime/alchemicalWizardry/common/tileEntity/container/ContainerAltar.java b/BM_src/WayofTime/alchemicalWizardry/common/tileEntity/container/ContainerAltar.java deleted file mode 100644 index 9f926427..00000000 --- a/BM_src/WayofTime/alchemicalWizardry/common/tileEntity/container/ContainerAltar.java +++ /dev/null @@ -1,96 +0,0 @@ -package WayofTime.alchemicalWizardry.common.tileEntity.container; - -import WayofTime.alchemicalWizardry.common.tileEntity.TEAltar; -import net.minecraft.entity.player.EntityPlayer; -import net.minecraft.entity.player.InventoryPlayer; -import net.minecraft.inventory.Container; -import net.minecraft.inventory.Slot; -import net.minecraft.item.ItemStack; - -public class ContainerAltar extends Container -{ - protected TEAltar tileEntity; - - public ContainerAltar(InventoryPlayer inventoryPlayer, TEAltar te) - { - tileEntity = te; - - for (int i = 0; i < 3; i++) - { - for (int j = 0; j < 3; j++) - { - addSlotToContainer(new Slot(tileEntity, j + i * 3, 62 + j * 18, 17 + i * 18)); - } - } - - bindPlayerInventory(inventoryPlayer); - } - - @Override - public boolean canInteractWith(EntityPlayer entityplayer) - { - return tileEntity.isUseableByPlayer(entityplayer); - } - - protected void bindPlayerInventory(InventoryPlayer inventoryPlayer) - { - for (int i = 0; i < 3; i++) - { - for (int j = 0; j < 9; j++) - { - addSlotToContainer(new Slot(inventoryPlayer, j + i * 9 + 9, - 8 + j * 18, 84 + i * 18)); - } - } - - for (int i = 0; i < 9; i++) - { - addSlotToContainer(new Slot(inventoryPlayer, i, 8 + i * 18, 142)); - } - } - - @Override - public ItemStack transferStackInSlot(EntityPlayer player, int slot) - { - ItemStack stack = null; - Slot slotObject = (Slot) inventorySlots.get(slot); - - //null checks and checks if the item can be stacked (maxStackSize > 1) - if (slotObject != null && slotObject.getHasStack()) - { - ItemStack stackInSlot = slotObject.getStack(); - stack = stackInSlot.copy(); - - //merges the item into player inventory since its in the tileEntity - if (slot < 9) - { - if (!this.mergeItemStack(stackInSlot, 0, 35, true)) - { - return null; - } - } - //places it into the tileEntity is possible since its in the player inventory - else if (!this.mergeItemStack(stackInSlot, 0, 9, false)) - { - return null; - } - - if (stackInSlot.stackSize == 0) - { - slotObject.putStack(null); - } else - { - slotObject.onSlotChanged(); - } - - if (stackInSlot.stackSize == stack.stackSize) - { - return null; - } - - slotObject.onPickupFromSlot(player, stackInSlot); - } - - return stack; - } -} diff --git a/BM_src/WayofTime/alchemicalWizardry/common/tileEntity/container/ContainerTeleposer.java b/BM_src/WayofTime/alchemicalWizardry/common/tileEntity/container/ContainerTeleposer.java deleted file mode 100644 index 09104284..00000000 --- a/BM_src/WayofTime/alchemicalWizardry/common/tileEntity/container/ContainerTeleposer.java +++ /dev/null @@ -1,106 +0,0 @@ -package WayofTime.alchemicalWizardry.common.tileEntity.container; - -import WayofTime.alchemicalWizardry.common.tileEntity.TETeleposer; -import net.minecraft.entity.player.EntityPlayer; -import net.minecraft.entity.player.InventoryPlayer; -import net.minecraft.inventory.Container; -import net.minecraft.inventory.Slot; -import net.minecraft.item.ItemStack; - -public class ContainerTeleposer extends Container -{ - protected TETeleposer tileEntity; - - public ContainerTeleposer(InventoryPlayer inventoryPlayer, TETeleposer te) - { - tileEntity = te; - //the Slot constructor takes the IInventory and the slot number in that it binds to - //and the x-y coordinates it resides on-screen -// addSlotToContainer(new Slot(tileEntity, 0, 152, 110)); -// addSlotToContainer(new Slot(tileEntity, 1, 80, 18)); -// addSlotToContainer(new Slot(tileEntity, 2, 33, 52)); -// addSlotToContainer(new Slot(tileEntity, 3, 51, 110)); -// addSlotToContainer(new Slot(tileEntity, 4, 109, 110)); -// addSlotToContainer(new Slot(tileEntity, 5, 127, 52)); - addSlotToContainer(new Slot(tileEntity, 0, 80, 67)); - //commonly used vanilla code that adds the player's inventory - bindPlayerInventory(inventoryPlayer); - } - - @Override - public boolean canInteractWith(EntityPlayer player) - { - return tileEntity.isUseableByPlayer(player); - } - - protected void bindPlayerInventory(InventoryPlayer inventoryPlayer) - { - for (int i = 0; i < 3; i++) - { - for (int j = 0; j < 9; j++) - { - addSlotToContainer(new Slot(inventoryPlayer, j + i * 9 + 9, 8 + j * 18, 140 + i * 18)); - } - } - - for (int i = 0; i < 9; i++) - { - addSlotToContainer(new Slot(inventoryPlayer, i, 8 + i * 18, 198)); - } - } - - @Override - public ItemStack transferStackInSlot(EntityPlayer player, int slot) - { - ItemStack stack = null; - Slot slotObject = (Slot) inventorySlots.get(slot); - - //null checks and checks if the item can be stacked (maxStackSize > 1) - if (slotObject != null && slotObject.getHasStack()) - { - ItemStack stackInSlot = slotObject.getStack(); - stack = stackInSlot.copy(); - - if (slot == 7) - { - if (!this.mergeItemStack(stackInSlot, 7, 35, true)) - { - return null; - } - - slotObject.onSlotChange(stackInSlot, stack); - } - - //merges the item into player inventory since its in the tileEntity - if (slot < 1) - { - if (!this.mergeItemStack(stackInSlot, 7, 35, true)) - { - return null; - } - } - //places it into the tileEntity is possible since its in the player inventory - else if (!this.mergeItemStack(stackInSlot, 0, 0, false)) - { - return null; - } - - if (stackInSlot.stackSize == 0) - { - slotObject.putStack(null); - } else - { - slotObject.onSlotChanged(); - } - - if (stackInSlot.stackSize == stack.stackSize) - { - return null; - } - - slotObject.onPickupFromSlot(player, stackInSlot); - } - - return stack; - } -} \ No newline at end of file diff --git a/BM_src/WayofTime/alchemicalWizardry/common/tileEntity/container/ContainerWritingTable.java b/BM_src/WayofTime/alchemicalWizardry/common/tileEntity/container/ContainerWritingTable.java deleted file mode 100644 index 4f505bff..00000000 --- a/BM_src/WayofTime/alchemicalWizardry/common/tileEntity/container/ContainerWritingTable.java +++ /dev/null @@ -1,104 +0,0 @@ -package WayofTime.alchemicalWizardry.common.tileEntity.container; - -import net.minecraft.entity.player.EntityPlayer; -import net.minecraft.entity.player.InventoryPlayer; -import net.minecraft.inventory.Container; -import net.minecraft.inventory.Slot; -import net.minecraft.item.ItemStack; -import WayofTime.alchemicalWizardry.api.items.interfaces.IBloodOrb; -import WayofTime.alchemicalWizardry.common.tileEntity.TEWritingTable; - -public class ContainerWritingTable extends Container -{ - protected TEWritingTable tileEntity; - - public ContainerWritingTable(InventoryPlayer inventoryPlayer, TEWritingTable te) - { - tileEntity = te; - //the Slot constructor takes the IInventory and the slot number in that it binds to - //and the x-y coordinates it resides on-screen - addSlotToContainer(new Slot(tileEntity, 0, 152, 110)); - addSlotToContainer(new Slot(tileEntity, 1, 80, 18)); - addSlotToContainer(new Slot(tileEntity, 2, 33, 52)); - addSlotToContainer(new Slot(tileEntity, 3, 51, 110)); - addSlotToContainer(new Slot(tileEntity, 4, 109, 110)); - addSlotToContainer(new Slot(tileEntity, 5, 127, 52)); - addSlotToContainer(new Slot(tileEntity, 6, 80, 67)); - //commonly used vanilla code that adds the player's inventory - bindPlayerInventory(inventoryPlayer); - } - - @Override - public boolean canInteractWith(EntityPlayer player) - { - return tileEntity.isUseableByPlayer(player); - } - - protected void bindPlayerInventory(InventoryPlayer inventoryPlayer) - { - for (int i = 0; i < 3; i++) - { - for (int j = 0; j < 9; j++) - { - addSlotToContainer(new Slot(inventoryPlayer, j + i * 9 + 9, 8 + j * 18, 140 + i * 18)); - } - } - - for (int i = 0; i < 9; i++) - { - addSlotToContainer(new Slot(inventoryPlayer, i, 8 + i * 18, 198)); - } - } - - @Override - public ItemStack transferStackInSlot(EntityPlayer player, int slot) - { - ItemStack stack = null; - Slot slotObject = (Slot) inventorySlots.get(slot); - - //null checks and checks if the item can be stacked (maxStackSize > 1) - if (slotObject != null && slotObject.getHasStack()) - { - ItemStack stackInSlot = slotObject.getStack(); - stack = stackInSlot.copy(); - - //merges the item into player inventory since its in the tileEntity - if (slot <= 6) - { - if (!this.mergeItemStack(stackInSlot, 7, 43, true)) - { - return null; - } - } - else if(stack.getItem() instanceof IBloodOrb) - { - if (!this.mergeItemStack(stackInSlot, 0, 1, false)) - { - return null; - } - } - //places it into the tileEntity is possible since its in the player inventory - else if (!this.mergeItemStack(stackInSlot, 1, 6, false)) - { - return null; - } - - if (stackInSlot.stackSize == 0) - { - slotObject.putStack(null); - } else - { - slotObject.onSlotChanged(); - } - - if (stackInSlot.stackSize == stack.stackSize) - { - return null; - } - - slotObject.onPickupFromSlot(player, stackInSlot); - } - - return stack; - } -} \ No newline at end of file diff --git a/BM_src/WayofTime/alchemicalWizardry/common/tileEntity/gui/GuiHandler.java b/BM_src/WayofTime/alchemicalWizardry/common/tileEntity/gui/GuiHandler.java deleted file mode 100644 index 0184a9c3..00000000 --- a/BM_src/WayofTime/alchemicalWizardry/common/tileEntity/gui/GuiHandler.java +++ /dev/null @@ -1,89 +0,0 @@ -package WayofTime.alchemicalWizardry.common.tileEntity.gui; - -import net.minecraft.entity.player.EntityPlayer; -import net.minecraft.item.ItemStack; -import net.minecraft.tileentity.TileEntity; -import net.minecraft.world.World; -import WayofTime.alchemicalWizardry.client.ClientProxy; -import WayofTime.alchemicalWizardry.client.GuiManual; -import WayofTime.alchemicalWizardry.common.tileEntity.TETeleposer; -import WayofTime.alchemicalWizardry.common.tileEntity.TEWritingTable; -import WayofTime.alchemicalWizardry.common.tileEntity.container.ContainerTeleposer; -import WayofTime.alchemicalWizardry.common.tileEntity.container.ContainerWritingTable; -import cpw.mods.fml.common.network.IGuiHandler; - -public class GuiHandler implements IGuiHandler -{ - //returns an instance of the Container you made earlier - @Override - public Object getServerGuiElement(int id, EntityPlayer player, World world, int x, int y, int z) - { - TileEntity tileEntity; - - switch (id) - { - case 0: - tileEntity = world.getBlockTileEntity(x, y, z); - - if (tileEntity instanceof TEWritingTable) - { - return new ContainerWritingTable(player.inventory, (TEWritingTable) tileEntity); - } - - case 1: - tileEntity = world.getBlockTileEntity(x, y, z); - - if (tileEntity instanceof TETeleposer) - { - return new ContainerTeleposer(player.inventory, (TETeleposer) tileEntity); - } - -// case 2: -// { -// ItemStack stack = player.getCurrentEquippedItem(); -// return new GuiManual(stack, ClientProxy.getManualFromStack(stack)); -// } - - } - - return null; - } - - //returns an instance of the Gui you made earlier - @Override - public Object getClientGuiElement(int id, EntityPlayer player, World world, int x, int y, int z) - { - TileEntity tileEntity; - - switch (id) - { - case 0: - tileEntity = world.getBlockTileEntity(x, y, z); - - if (tileEntity instanceof TEWritingTable) - { - return new GuiWritingTable(player.inventory, (TEWritingTable) tileEntity); - } - - break; - - case 1: - tileEntity = world.getBlockTileEntity(x, y, z); - - if (tileEntity instanceof TETeleposer) - { - return new GuiTeleposer(player.inventory, (TETeleposer) tileEntity); - } - - break; - - case 2: - { - ItemStack stack = player.getCurrentEquippedItem(); - return new GuiManual(stack, ClientProxy.getManualFromStack(stack)); - } - } - - return null; - } -} \ No newline at end of file diff --git a/BM_src/WayofTime/alchemicalWizardry/common/tileEntity/gui/GuiTeleposer.java b/BM_src/WayofTime/alchemicalWizardry/common/tileEntity/gui/GuiTeleposer.java deleted file mode 100644 index 230037b0..00000000 --- a/BM_src/WayofTime/alchemicalWizardry/common/tileEntity/gui/GuiTeleposer.java +++ /dev/null @@ -1,45 +0,0 @@ -package WayofTime.alchemicalWizardry.common.tileEntity.gui; - -import WayofTime.alchemicalWizardry.common.tileEntity.TETeleposer; -import WayofTime.alchemicalWizardry.common.tileEntity.container.ContainerTeleposer; -import net.minecraft.client.gui.inventory.GuiBrewingStand; -import net.minecraft.client.gui.inventory.GuiContainer; -import net.minecraft.entity.player.InventoryPlayer; -import net.minecraft.util.ResourceLocation; -import net.minecraft.util.StatCollector; -import org.lwjgl.opengl.GL11; - -public class GuiTeleposer extends GuiContainer -{ - public GuiTeleposer(InventoryPlayer inventoryPlayer, TETeleposer tileEntity) - { - //the container is instanciated and passed to the superclass for handling - super(new ContainerTeleposer(inventoryPlayer, tileEntity)); - xSize = 176; - ySize = 222; - } - - @Override - protected void drawGuiContainerForegroundLayer(int param1, int param2) - { - //draw text and stuff here - //the parameters for drawString are: string, x, y, color - fontRenderer.drawString("Teleposer", 8, 6, 4210752); - //draws "Inventory" or your regional equivalent - fontRenderer.drawString(StatCollector.translateToLocal("container.inventory"), 8, 130, 4210752); - } - - @Override - protected void drawGuiContainerBackgroundLayer(float par1, int par2, int par3) - { - //draw your Gui here, only thing you need to change is the path - //ResourceLocation texture = mc.renderEngine.getTexture("/gui/trap.png"); - ResourceLocation test = new ResourceLocation("alchemicalwizardry", "gui/Teleposer.png"); - GL11.glColor4f(1.0F, 1.0F, 1.0F, 1.0F); - this.mc.getTextureManager().bindTexture(test); - int x = (width - xSize) / 2; - int y = (height - ySize) / 2; - this.drawTexturedModalRect(x, y, 0, 0, xSize, ySize); - GuiBrewingStand d; - } -} \ No newline at end of file diff --git a/BM_src/WayofTime/alchemicalWizardry/common/tileEntity/gui/GuiWritingTable.java b/BM_src/WayofTime/alchemicalWizardry/common/tileEntity/gui/GuiWritingTable.java deleted file mode 100644 index 1157e4a1..00000000 --- a/BM_src/WayofTime/alchemicalWizardry/common/tileEntity/gui/GuiWritingTable.java +++ /dev/null @@ -1,45 +0,0 @@ -package WayofTime.alchemicalWizardry.common.tileEntity.gui; - -import WayofTime.alchemicalWizardry.common.tileEntity.TEWritingTable; -import WayofTime.alchemicalWizardry.common.tileEntity.container.ContainerWritingTable; -import net.minecraft.client.gui.inventory.GuiBrewingStand; -import net.minecraft.client.gui.inventory.GuiContainer; -import net.minecraft.entity.player.InventoryPlayer; -import net.minecraft.util.ResourceLocation; -import net.minecraft.util.StatCollector; -import org.lwjgl.opengl.GL11; - -public class GuiWritingTable extends GuiContainer -{ - public GuiWritingTable(InventoryPlayer inventoryPlayer, TEWritingTable tileEntity) - { - //the container is instanciated and passed to the superclass for handling - super(new ContainerWritingTable(inventoryPlayer, tileEntity)); - xSize = 176; - ySize = 222; - } - - @Override - protected void drawGuiContainerForegroundLayer(int param1, int param2) - { - //draw text and stuff here - //the parameters for drawString are: string, x, y, color - fontRenderer.drawString("Alchemic Chemistry Set", 8, 6, 4210752); - //draws "Inventory" or your regional equivalent - fontRenderer.drawString(StatCollector.translateToLocal("container.inventory"), 8, 130, 4210752); - } - - @Override - protected void drawGuiContainerBackgroundLayer(float par1, int par2, int par3) - { - //draw your Gui here, only thing you need to change is the path - //ResourceLocation texture = mc.renderEngine.getTexture("/gui/trap.png"); - ResourceLocation test = new ResourceLocation("alchemicalwizardry", "gui/WritingTable.png"); - GL11.glColor4f(1.0F, 1.0F, 1.0F, 1.0F); - this.mc.getTextureManager().bindTexture(test); - int x = (width - xSize) / 2; - int y = (height - ySize) / 2; - this.drawTexturedModalRect(x, y, 0, 0, xSize, ySize); - GuiBrewingStand d; - } -} \ No newline at end of file diff --git a/BM_src/WayofTime/mcmod.info b/BM_src/WayofTime/mcmod.info deleted file mode 100644 index 03fe5817..00000000 --- a/BM_src/WayofTime/mcmod.info +++ /dev/null @@ -1,22 +0,0 @@ -[ -{ - "modid": "AWWayofTime", - "name": "XAlchemical Wizardry", - "description": "Two words: magical swag. Oh, and a gun.", - "version": "0.0.1", - "url": "http://www.minecraftforum.net/topic/1596973-", - "updateUrl": "", - "logoFile": "", - "mcversion": "1.5.x", - "authorList": [ - "WayofTime" - ], - "credits": "", - "screenshots": [ - ], - "parent": "", - "dependencies": [ - ] -} -] - diff --git a/BM_src/forestry/api/apiculture/BeeManager.java b/BM_src/forestry/api/apiculture/BeeManager.java deleted file mode 100644 index 81a666b9..00000000 --- a/BM_src/forestry/api/apiculture/BeeManager.java +++ /dev/null @@ -1,40 +0,0 @@ -package forestry.api.apiculture; - -import java.util.ArrayList; -import java.util.HashMap; - -import net.minecraft.item.ItemStack; -import forestry.api.genetics.IMutation; -/** - * - * Some miscellaneous lists and settings for bees. - * - * @author SirSengir - */ -public class BeeManager { - - /** - * Get your own reference to this via AlleleManager.alleleRegistry.getSpeciesRoot("rootBees") and save it somewhere. - */ - @Deprecated - public static IBeeRoot beeInterface; - - /** - * Species templates for bees that can drop from hives. - * - * 0 - Forest 1 - Meadows 2 - Desert 3 - Jungle 4 - End 5 - Snow 6 - Swamp - * - * see {@link IMutation} for template format - */ - public static ArrayList[] hiveDrops; - - /** - * 0 - Common Village Bees 1 - Uncommon Village Bees (20 % of spawns) - */ - public static ArrayList[] villageBees; - - /** - * List of items that can induce swarming. Integer denotes x in 1000 chance. - */ - public static HashMap inducers = new HashMap(); -} diff --git a/BM_src/forestry/api/apiculture/EnumBeeChromosome.java b/BM_src/forestry/api/apiculture/EnumBeeChromosome.java deleted file mode 100644 index a7c6e6a5..00000000 --- a/BM_src/forestry/api/apiculture/EnumBeeChromosome.java +++ /dev/null @@ -1,98 +0,0 @@ -package forestry.api.apiculture; - -import forestry.api.genetics.AlleleManager; -import forestry.api.genetics.IAllele; -import forestry.api.genetics.IAlleleArea; -import forestry.api.genetics.IAlleleBoolean; -import forestry.api.genetics.IAlleleFloat; -import forestry.api.genetics.IAlleleFlowers; -import forestry.api.genetics.IAlleleInteger; -import forestry.api.genetics.IAlleleTolerance; -import forestry.api.genetics.IChromosomeType; -import forestry.api.genetics.ISpeciesRoot; - -/** - * Enum representing the order of chromosomes in a bee's genome and what they control. - * - * @author SirSengir - */ -public enum EnumBeeChromosome implements IChromosomeType { - /** - * Species of the bee. Alleles here must implement {@link IAlleleBeeSpecies}. - */ - SPECIES(IAlleleBeeSpecies.class), - /** - * (Production) Speed of the bee. - */ - SPEED(IAlleleFloat.class), - /** - * Lifespan of the bee. - */ - LIFESPAN(IAlleleInteger.class), - /** - * Fertility of the bee. Determines number of offspring. - */ - FERTILITY(IAlleleInteger.class), - /** - * Temperature difference to its native supported one the bee can tolerate. - */ - TEMPERATURE_TOLERANCE(IAlleleTolerance.class), - /** - * Slightly incorrectly named. If true, a naturally dirunal bee can work during the night. If true, a naturally nocturnal bee can work during the day. - */ - NOCTURNAL(IAlleleBoolean.class), - /** - * Not used / superseded by fixed values for the species. Probably going to be replaced with a boolean for FIRE_RESIST. - */ - @Deprecated - HUMIDITY(IAllele.class), - /** - * Humidity difference to its native supported one the bee can tolerate. - */ - HUMIDITY_TOLERANCE(IAlleleTolerance.class), - /** - * If true the bee can work during rain. - */ - TOLERANT_FLYER(IAlleleBoolean.class), - /** - * If true, the bee can work without a clear view of the sky. - */ - CAVE_DWELLING(IAlleleBoolean.class), - /** - * Contains the supported flower provider. - */ - FLOWER_PROVIDER(IAlleleFlowers.class), - /** - * Determines pollination speed. - */ - FLOWERING(IAlleleInteger.class), - /** - * Determines the size of the bee's territory. - */ - TERRITORY(IAlleleArea.class), - /** - * Determines the bee's effect. - */ - EFFECT(IAlleleBeeEffect.class); - - Class clss; - - EnumBeeChromosome(Class clss) { - this.clss = clss; - } - - @Override - public Class getAlleleClass() { - return clss; - } - - @Override - public String getName() { - return this.toString().toLowerCase(); - } - - @Override - public ISpeciesRoot getSpeciesRoot() { - return AlleleManager.alleleRegistry.getSpeciesRoot("rootBees"); - } -} diff --git a/BM_src/forestry/api/apiculture/EnumBeeType.java b/BM_src/forestry/api/apiculture/EnumBeeType.java deleted file mode 100644 index 849432b3..00000000 --- a/BM_src/forestry/api/apiculture/EnumBeeType.java +++ /dev/null @@ -1,19 +0,0 @@ -package forestry.api.apiculture; - -import java.util.Locale; - -public enum EnumBeeType { - DRONE, PRINCESS, QUEEN, LARVAE, NONE; - - public static final EnumBeeType[] VALUES = values(); - - String name; - - private EnumBeeType() { - this.name = "bees." + this.toString().toLowerCase(Locale.ENGLISH); - } - - public String getName() { - return name; - } -} diff --git a/BM_src/forestry/api/apiculture/FlowerManager.java b/BM_src/forestry/api/apiculture/FlowerManager.java deleted file mode 100644 index 1a32f6db..00000000 --- a/BM_src/forestry/api/apiculture/FlowerManager.java +++ /dev/null @@ -1,14 +0,0 @@ -package forestry.api.apiculture; - -import java.util.ArrayList; - -import forestry.api.genetics.IFlowerProvider; - -import net.minecraft.item.ItemStack; - -public class FlowerManager { - /** - * ItemStacks representing simple flower blocks. Meta-sensitive, processed by the basic {@link IFlowerProvider}. - */ - public static ArrayList plainFlowers = new ArrayList(); -} diff --git a/BM_src/forestry/api/apiculture/IAlleleBeeEffect.java b/BM_src/forestry/api/apiculture/IAlleleBeeEffect.java deleted file mode 100644 index 64525464..00000000 --- a/BM_src/forestry/api/apiculture/IAlleleBeeEffect.java +++ /dev/null @@ -1,31 +0,0 @@ -package forestry.api.apiculture; - -import forestry.api.genetics.IAlleleEffect; -import forestry.api.genetics.IEffectData; - -public interface IAlleleBeeEffect extends IAlleleEffect { - - /** - * Called by apiaries to cause an effect in the world. - * - * @param genome - * Genome of the bee queen causing this effect - * @param storedData - * Object containing the stored effect data for the apiary/hive the bee is in. - * @param housing {@link IBeeHousing} the bee currently resides in. - * @return storedData, may have been manipulated. - */ - IEffectData doEffect(IBeeGenome genome, IEffectData storedData, IBeeHousing housing); - - /** - * Is called to produce bee effects. - * - * @param genome - * @param storedData - * Object containing the stored effect data for the apiary/hive the bee is in. - * @param housing {@link IBeeHousing} the bee currently resides in. - * @return storedData, may have been manipulated. - */ - IEffectData doFX(IBeeGenome genome, IEffectData storedData, IBeeHousing housing); - -} diff --git a/BM_src/forestry/api/apiculture/IAlleleBeeSpecies.java b/BM_src/forestry/api/apiculture/IAlleleBeeSpecies.java deleted file mode 100644 index dafb6477..00000000 --- a/BM_src/forestry/api/apiculture/IAlleleBeeSpecies.java +++ /dev/null @@ -1,46 +0,0 @@ -package forestry.api.apiculture; - -import java.util.Map; - -import net.minecraft.item.ItemStack; -import net.minecraft.util.Icon; -import cpw.mods.fml.relauncher.Side; -import cpw.mods.fml.relauncher.SideOnly; -import forestry.api.genetics.IAlleleSpecies; - -public interface IAlleleBeeSpecies extends IAlleleSpecies { - - /** - * @return the IBeeRoot - */ - IBeeRoot getRoot(); - - /** - * @return true if this species is only active at night. - */ - boolean isNocturnal(); - - /** - * @return Map of possible products with the chance for drop each bee cycle. (0 - 100) - */ - Map getProducts(); - - /** - * @return Map of possible specialities with the chance for drop each bee cycle. (0 - 100) - */ - Map getSpecialty(); - - /** - * Only jubilant bees produce specialities. - * @return true if the bee is jubilant, false otherwise. - */ - boolean isJubilant(IBeeGenome genome, IBeeHousing housing); - - @SideOnly(Side.CLIENT) - Icon getIcon(EnumBeeType type, int renderPass); - - /** - * @return Path of the texture to use for entity rendering. - */ - String getEntityTexture(); -} diff --git a/BM_src/forestry/api/apiculture/IAlvearyComponent.java b/BM_src/forestry/api/apiculture/IAlvearyComponent.java deleted file mode 100644 index 2e6df0a0..00000000 --- a/BM_src/forestry/api/apiculture/IAlvearyComponent.java +++ /dev/null @@ -1,27 +0,0 @@ -package forestry.api.apiculture; - -import forestry.api.core.ITileStructure; - -/** - * Needs to be implemented by TileEntities that want to be part of an alveary. - */ -public interface IAlvearyComponent extends ITileStructure { - - void registerBeeModifier(IBeeModifier modifier); - - void removeBeeModifier(IBeeModifier modifier); - - void registerBeeListener(IBeeListener event); - - void removeBeeListener(IBeeListener event); - - void addTemperatureChange(float change, float boundaryDown, float boundaryUp); - - void addHumidityChange(float change, float boundaryDown, float boundaryUp); - - /** - * @return true if this TE has a function other than a plain alveary block. Returning true prevents the TE from becoming master. - */ - boolean hasFunction(); - -} diff --git a/BM_src/forestry/api/apiculture/IApiaristTracker.java b/BM_src/forestry/api/apiculture/IApiaristTracker.java deleted file mode 100644 index 314638d9..00000000 --- a/BM_src/forestry/api/apiculture/IApiaristTracker.java +++ /dev/null @@ -1,52 +0,0 @@ -package forestry.api.apiculture; - -import forestry.api.genetics.IBreedingTracker; -import forestry.api.genetics.IIndividual; - -/** - * Can be used to garner information on bee breeding. See {@link forestry.api.genetics.ISpeciesRoot} for retrieval functions. - * - * @author SirSengir - */ -public interface IApiaristTracker extends IBreedingTracker { - - /** - * Register the birth of a queen. Will mark species as discovered. - * - * @param queen - * Created queen. - */ - void registerQueen(IIndividual queen); - - /** - * @return Amount of queens bred with this tracker. - */ - int getQueenCount(); - - /** - * Register the birth of a princess. Will mark species as discovered. - * - * @param princess - * Created princess. - */ - void registerPrincess(IIndividual princess); - - /** - * @return Amount of princesses bred with this tracker. - */ - int getPrincessCount(); - - /** - * Register the birth of a drone. Will mark species as discovered. - * - * @param drone - * Created drone. - */ - void registerDrone(IIndividual drone); - - /** - * @return Amount of drones bred with this tracker. - */ - int getDroneCount(); - -} diff --git a/BM_src/forestry/api/apiculture/IArmorApiarist.java b/BM_src/forestry/api/apiculture/IArmorApiarist.java deleted file mode 100644 index b2e5518d..00000000 --- a/BM_src/forestry/api/apiculture/IArmorApiarist.java +++ /dev/null @@ -1,24 +0,0 @@ -package forestry.api.apiculture; - -import net.minecraft.entity.player.EntityPlayer; -import net.minecraft.item.ItemStack; - -/** - * When implemented by armor piece items, allows them to act as apiarist's armor. - */ -public interface IArmorApiarist { - /** - * Called when the apiarist's armor acts as protection against an attack. - * - * @param player - * Player being attacked - * @param armor - * Armor item - * @param cause - * Optional cause of attack, such as a bee effect identifier - * @param doProtect - * Whether or not to actually do the side effects of protection - * @return Whether or not the armor should protect the player from that attack - */ - public boolean protectPlayer(EntityPlayer player, ItemStack armor, String cause, boolean doProtect); -} diff --git a/BM_src/forestry/api/apiculture/IBee.java b/BM_src/forestry/api/apiculture/IBee.java deleted file mode 100644 index dc4e09fb..00000000 --- a/BM_src/forestry/api/apiculture/IBee.java +++ /dev/null @@ -1,85 +0,0 @@ -package forestry.api.apiculture; - -import java.util.ArrayList; - -import net.minecraft.item.ItemStack; -import forestry.api.genetics.IEffectData; -import forestry.api.genetics.IIndividual; -import forestry.api.genetics.IIndividualLiving; - -/** - * Other implementations than Forestry's default one are not supported. - * - * @author SirSengir - */ -public interface IBee extends IIndividualLiving { - - /** - * @return Bee's genetic information. - */ - IBeeGenome getGenome(); - - /** - * @return Genetic information of the bee's mate, null if unmated. - */ - IBeeGenome getMate(); - - /** - * @return true if the individual is originally of natural origin. - */ - boolean isNatural(); - - /** - * @return generation this individual is removed from the original individual. - */ - int getGeneration(); - - /** - * Set the natural flag on this bee. - * @param flag - */ - void setIsNatural(boolean flag); - - /** - * @return true if the bee is mated with another whose isNatural() doesn't match. - */ - boolean isIrregularMating(); - - IEffectData[] doEffect(IEffectData[] storedData, IBeeHousing housing); - - IEffectData[] doFX(IEffectData[] storedData, IBeeHousing housing); - - /** - * @return true if the bee may spawn offspring - */ - boolean canSpawn(); - - /** - * Determines whether the queen can work. - * - * @param housing the {@link IBeeHousing} the bee currently resides in. - * @return Ordinal of the error code encountered. 0 - EnumErrorCode.OK - */ - int isWorking(IBeeHousing housing); - - boolean hasFlower(IBeeHousing housing); - - ArrayList getSuitableBiomeIds(); - - ItemStack[] getProduceList(); - - ItemStack[] getSpecialtyList(); - - ItemStack[] produceStacks(IBeeHousing housing); - - IBee spawnPrincess(IBeeHousing housing); - - IBee[] spawnDrones(IBeeHousing housing); - - void plantFlowerRandom(IBeeHousing housing); - - IIndividual retrievePollen(IBeeHousing housing); - - boolean pollinateRandom(IBeeHousing housing, IIndividual pollen); - -} diff --git a/BM_src/forestry/api/apiculture/IBeeGenome.java b/BM_src/forestry/api/apiculture/IBeeGenome.java deleted file mode 100644 index b8ef85b9..00000000 --- a/BM_src/forestry/api/apiculture/IBeeGenome.java +++ /dev/null @@ -1,43 +0,0 @@ -package forestry.api.apiculture; - -import forestry.api.genetics.EnumTolerance; -import forestry.api.genetics.IFlowerProvider; -import forestry.api.genetics.IGenome; - -/** - * Only the default implementation is supported. - * - * @author SirSengir - * - */ -public interface IBeeGenome extends IGenome { - - IAlleleBeeSpecies getPrimary(); - - IAlleleBeeSpecies getSecondary(); - - float getSpeed(); - - int getLifespan(); - - int getFertility(); - - EnumTolerance getToleranceTemp(); - - EnumTolerance getToleranceHumid(); - - boolean getNocturnal(); - - boolean getTolerantFlyer(); - - boolean getCaveDwelling(); - - IFlowerProvider getFlowerProvider(); - - int getFlowering(); - - int[] getTerritory(); - - IAlleleBeeEffect getEffect(); - -} diff --git a/BM_src/forestry/api/apiculture/IBeeHousing.java b/BM_src/forestry/api/apiculture/IBeeHousing.java deleted file mode 100644 index b3840147..00000000 --- a/BM_src/forestry/api/apiculture/IBeeHousing.java +++ /dev/null @@ -1,21 +0,0 @@ -package forestry.api.apiculture; - -import net.minecraft.item.ItemStack; -import forestry.api.genetics.IHousing; - -public interface IBeeHousing extends IBeeModifier, IBeeListener, IHousing { - - ItemStack getQueen(); - - ItemStack getDrone(); - - void setQueen(ItemStack itemstack); - - void setDrone(ItemStack itemstack); - - /** - * @return true if princesses and drones can (currently) mate in this housing to generate queens. - */ - boolean canBreed(); - -} diff --git a/BM_src/forestry/api/apiculture/IBeeListener.java b/BM_src/forestry/api/apiculture/IBeeListener.java deleted file mode 100644 index 37eb58ce..00000000 --- a/BM_src/forestry/api/apiculture/IBeeListener.java +++ /dev/null @@ -1,40 +0,0 @@ -package forestry.api.apiculture; - -import net.minecraft.item.ItemStack; -import forestry.api.genetics.IIndividual; - -public interface IBeeListener { - - /** - * Called on queen update. - * - * @param queen - */ - void onQueenChange(ItemStack queen); - - /** - * Called when the bees wear out the housing's equipment. - * - * @param amount - * Integer indicating the amount worn out. - */ - void wearOutEquipment(int amount); - - /** - * Called just before the children are generated, and the queen removed. - * - * @param queen - */ - void onQueenDeath(IBee queen); - - /** - * Called after the children have been spawned, but before the queen appears - * - * @param queen - */ - void onPostQueenDeath(IBee queen); - - boolean onPollenRetrieved(IBee queen, IIndividual pollen, boolean isHandled); - - boolean onEggLaid(IBee queen); -} diff --git a/BM_src/forestry/api/apiculture/IBeeModifier.java b/BM_src/forestry/api/apiculture/IBeeModifier.java deleted file mode 100644 index f025d8ab..00000000 --- a/BM_src/forestry/api/apiculture/IBeeModifier.java +++ /dev/null @@ -1,66 +0,0 @@ -package forestry.api.apiculture; - -public interface IBeeModifier { - - /** - * @param genome Genome of the bee this modifier is called for. - * @param currentModifier Current modifier. - * @return Float used to modify the base territory. - */ - float getTerritoryModifier(IBeeGenome genome, float currentModifier); - - /** - * @param genome Genome of the bee this modifier is called for. - * @param mate - * @param currentModifier Current modifier. - * @return Float used to modify the base mutation chance. - */ - float getMutationModifier(IBeeGenome genome, IBeeGenome mate, float currentModifier); - - /** - * @param genome Genome of the bee this modifier is called for. - * @param currentModifier Current modifier. - * @return Float used to modify the life span of queens. - */ - float getLifespanModifier(IBeeGenome genome, IBeeGenome mate, float currentModifier); - - /** - * @param genome Genome of the bee this modifier is called for. - * @param currentModifier Current modifier. - * @return Float modifying the production speed of queens. - */ - float getProductionModifier(IBeeGenome genome, float currentModifier); - - /** - * @param genome Genome of the bee this modifier is called for. - * @return Float modifying the flowering of queens. - */ - float getFloweringModifier(IBeeGenome genome, float currentModifier); - - /** - * @param genome Genome of the bee this modifier is called for. - * @return Float modifying the chance for a swarmer queen to die off. - */ - float getGeneticDecay(IBeeGenome genome, float currentModifier); - - /** - * @return Boolean indicating if housing can ignore rain - */ - boolean isSealed(); - - /** - * @return Boolean indicating if housing can ignore darkness/night - */ - boolean isSelfLighted(); - - /** - * @return Boolean indicating if housing can ignore not seeing the sky - */ - boolean isSunlightSimulated(); - - /** - * @return Boolean indicating whether this housing simulates the nether - */ - boolean isHellish(); - -} diff --git a/BM_src/forestry/api/apiculture/IBeeMutation.java b/BM_src/forestry/api/apiculture/IBeeMutation.java deleted file mode 100644 index def04e56..00000000 --- a/BM_src/forestry/api/apiculture/IBeeMutation.java +++ /dev/null @@ -1,20 +0,0 @@ -package forestry.api.apiculture; - -import forestry.api.genetics.IAllele; -import forestry.api.genetics.IGenome; -import forestry.api.genetics.IMutation; - -public interface IBeeMutation extends IMutation { - - IBeeRoot getRoot(); - - /** - * @param housing - * @param allele0 - * @param allele1 - * @param genome0 - * @param genome1 - * @return float representing the chance for mutation to occur. note that this is 0 - 100 based, since it was an integer previously! - */ - float getChance(IBeeHousing housing, IAllele allele0, IAllele allele1, IGenome genome0, IGenome genome1); -} diff --git a/BM_src/forestry/api/apiculture/IBeeRoot.java b/BM_src/forestry/api/apiculture/IBeeRoot.java deleted file mode 100644 index 8057e20e..00000000 --- a/BM_src/forestry/api/apiculture/IBeeRoot.java +++ /dev/null @@ -1,111 +0,0 @@ -package forestry.api.apiculture; - -import java.util.ArrayList; -import java.util.Collection; - -import net.minecraft.item.ItemStack; -import net.minecraft.nbt.NBTTagCompound; -import net.minecraft.world.World; -import forestry.api.core.IStructureLogic; -import forestry.api.genetics.IAllele; -import forestry.api.genetics.ISpeciesRoot; - -public interface IBeeRoot extends ISpeciesRoot { - - /** - * @return true if passed item is a Forestry bee. Equal to getType(ItemStack stack) != EnumBeeType.NONE - */ - boolean isMember(ItemStack stack); - - /** - * @return {@link IBee} pattern parsed from the passed stack's nbt data. - */ - IBee getMember(ItemStack stack); - - IBee getMember(NBTTagCompound compound); - - /* GENOME CONVERSION */ - IBee templateAsIndividual(IAllele[] template); - - IBee templateAsIndividual(IAllele[] templateActive, IAllele[] templateInactive); - - IBeeGenome templateAsGenome(IAllele[] template); - - IBeeGenome templateAsGenome(IAllele[] templateActive, IAllele[] templateInactive); - - /* BREEDING TRACKER */ - /** - * @param world - * @return {@link IApiaristTracker} associated with the passed world. - */ - IApiaristTracker getBreedingTracker(World world, String player); - - /* BEE SPECIFIC */ - /** - * @return type of bee encoded on the itemstack. EnumBeeType.NONE if it isn't a bee. - */ - EnumBeeType getType(ItemStack stack); - - /** - * @return true if passed item is a drone. Equal to getType(ItemStack stack) == EnumBeeType.DRONE - */ - boolean isDrone(ItemStack stack); - - /** - * @return true if passed item is mated (i.e. a queen) - */ - boolean isMated(ItemStack stack); - - /** - * @param genome - * Valid {@link IBeeGenome} - * @return {@link IBee} from the passed genome - */ - IBee getBee(World world, IBeeGenome genome); - - /** - * Creates an IBee suitable for a queen containing the necessary second genome for the mate. - * - * @param genome - * Valid {@link IBeeGenome} - * @param mate - * Valid {@link IBee} representing the mate. - * @return Mated {@link IBee} from the passed genomes. - */ - IBee getBee(World world, IBeeGenome genome, IBee mate); - - /* TEMPLATES */ - ArrayList getIndividualTemplates(); - - /* MUTATIONS */ - Collection getMutations(boolean shuffle); - - /* GAME MODE */ - void resetBeekeepingMode(); - - ArrayList getBeekeepingModes(); - - IBeekeepingMode getBeekeepingMode(World world); - - IBeekeepingMode getBeekeepingMode(String name); - - void registerBeekeepingMode(IBeekeepingMode mode); - - void setBeekeepingMode(World world, String name); - - /* MISC */ - /** - * @param housing - * Object implementing IBeeHousing. - * @return IBeekeepingLogic - */ - IBeekeepingLogic createBeekeepingLogic(IBeeHousing housing); - - /** - * TileEntities wanting to function as alveary components need to implement structure logic for validation. - * - * @return IStructureLogic for alvearies. - */ - IStructureLogic createAlvearyStructureLogic(IAlvearyComponent structure); - -} diff --git a/BM_src/forestry/api/apiculture/IBeekeepingLogic.java b/BM_src/forestry/api/apiculture/IBeekeepingLogic.java deleted file mode 100644 index b2953a04..00000000 --- a/BM_src/forestry/api/apiculture/IBeekeepingLogic.java +++ /dev/null @@ -1,22 +0,0 @@ -package forestry.api.apiculture; - -import forestry.api.core.INBTTagable; -import forestry.api.genetics.IEffectData; - -public interface IBeekeepingLogic extends INBTTagable { - - /* STATE INFORMATION */ - int getBreedingTime(); - - int getTotalBreedingTime(); - - IBee getQueen(); - - IBeeHousing getHousing(); - - IEffectData[] getEffectData(); - - /* UPDATING */ - void update(); - -} diff --git a/BM_src/forestry/api/apiculture/IBeekeepingMode.java b/BM_src/forestry/api/apiculture/IBeekeepingMode.java deleted file mode 100644 index c788fee2..00000000 --- a/BM_src/forestry/api/apiculture/IBeekeepingMode.java +++ /dev/null @@ -1,65 +0,0 @@ -package forestry.api.apiculture; - -import java.util.ArrayList; - -import net.minecraft.world.World; - -public interface IBeekeepingMode extends IBeeModifier { - - /** - * @return Localized name of this beekeeping mode. - */ - String getName(); - - /** - * @return Localized list of strings outlining the behaviour of this beekeeping mode. - */ - ArrayList getDescription(); - - /** - * @return Float used to modify the wear on comb frames. - */ - float getWearModifier(); - - /** - * @param queen - * @return fertility taking into account the birthing queen and surroundings. - */ - int getFinalFertility(IBee queen, World world, int x, int y, int z); - - /** - * @param queen - * @return true if the queen is genetically "fatigued" and should not be reproduced anymore. - */ - boolean isFatigued(IBee queen, IBeeHousing housing); - - /** - * @param queen - * @param housing - * @return true if the queen is being overworked in the bee housing (with chance). will trigger a negative effect. - */ - boolean isOverworked(IBee queen, IBeeHousing housing); - - /** - * - * @param queen - * @param offspring - * @param housing - * @return true if the genetic structure of the queen is breaking down during spawning of the offspring (with chance). will trigger a negative effect. - */ - boolean isDegenerating(IBee queen, IBee offspring, IBeeHousing housing); - - /** - * @param queen - * @return true if an offspring of this queen is considered a natural - */ - boolean isNaturalOffspring(IBee queen); - - /** - * @param queen - * @return true if this mode allows the passed queen or princess to be multiplied - */ - boolean mayMultiplyPrincess(IBee queen); - - -} diff --git a/BM_src/forestry/api/apiculture/IHiveDrop.java b/BM_src/forestry/api/apiculture/IHiveDrop.java deleted file mode 100644 index 2604bd72..00000000 --- a/BM_src/forestry/api/apiculture/IHiveDrop.java +++ /dev/null @@ -1,33 +0,0 @@ -package forestry.api.apiculture; - -import java.util.Collection; - -import net.minecraft.item.ItemStack; -import net.minecraft.world.World; - -/** - * Bees can be seeded either as hive drops or as mutation results. - * - * Add IHiveDrops to BeeManager.hiveDrops - * - * @author SirSengir - */ -public interface IHiveDrop { - - ItemStack getPrincess(World world, int x, int y, int z, int fortune); - - Collection getDrones(World world, int x, int y, int z, int fortune); - - Collection getAdditional(World world, int x, int y, int z, int fortune); - - /** - * Chance to drop. Default drops have 80 (= 80 %). - * - * @param world Minecraft world this is called for. - * @param x x-Coordinate of the broken hive. - * @param y y-Coordinate of the broken hive. - * @param z z-Coordinate of the broken hive. - * @return Chance for drop as an integer of 0 - 100. - */ - int getChance(World world, int x, int y, int z); -} diff --git a/BM_src/forestry/api/apiculture/IHiveFrame.java b/BM_src/forestry/api/apiculture/IHiveFrame.java deleted file mode 100644 index 50417c4a..00000000 --- a/BM_src/forestry/api/apiculture/IHiveFrame.java +++ /dev/null @@ -1,22 +0,0 @@ -package forestry.api.apiculture; - -import net.minecraft.item.ItemStack; - -public interface IHiveFrame extends IBeeModifier { - - /** - * Wears out a frame. - * - * @param housing - * IBeeHousing the frame is contained in. - * @param frame - * ItemStack containing the actual frame. - * @param queen - * Current queen in the caller. - * @param wear - * Integer denoting the amount worn out. The wear modifier of the current beekeeping mode has already been taken into account. - * @return ItemStack containing the actual frame with adjusted damage. - */ - ItemStack frameUsed(IBeeHousing housing, ItemStack frame, IBee queen, int wear); - -} diff --git a/BM_src/forestry/api/apiculture/package-info.java b/BM_src/forestry/api/apiculture/package-info.java deleted file mode 100644 index aefc81f5..00000000 --- a/BM_src/forestry/api/apiculture/package-info.java +++ /dev/null @@ -1,3 +0,0 @@ -@API(apiVersion="1.0", owner="ForestryAPI|core", provides="ForestryAPI|apiculture") -package forestry.api.apiculture; -import cpw.mods.fml.common.API; \ No newline at end of file diff --git a/BM_src/forestry/api/arboriculture/EnumGermlingType.java b/BM_src/forestry/api/arboriculture/EnumGermlingType.java deleted file mode 100644 index b6bb0e9a..00000000 --- a/BM_src/forestry/api/arboriculture/EnumGermlingType.java +++ /dev/null @@ -1,18 +0,0 @@ -package forestry.api.arboriculture; - -public enum EnumGermlingType { - SAPLING("Sapling"), BLOSSOM("Blossom"), POLLEN("Pollen"), GERMLING("Germling"), NONE("None"); - - public static final EnumGermlingType[] VALUES = values(); - - String name; - - private EnumGermlingType(String name) { - this.name = name; - } - - public String getName() { - return name; - } - -} diff --git a/BM_src/forestry/api/arboriculture/EnumGrowthConditions.java b/BM_src/forestry/api/arboriculture/EnumGrowthConditions.java deleted file mode 100644 index 99e117b4..00000000 --- a/BM_src/forestry/api/arboriculture/EnumGrowthConditions.java +++ /dev/null @@ -1,5 +0,0 @@ -package forestry.api.arboriculture; - -public enum EnumGrowthConditions { - HOSTILE, PALTRY, NORMAL, GOOD, EXCELLENT -} diff --git a/BM_src/forestry/api/arboriculture/EnumTreeChromosome.java b/BM_src/forestry/api/arboriculture/EnumTreeChromosome.java deleted file mode 100644 index 0caccf80..00000000 --- a/BM_src/forestry/api/arboriculture/EnumTreeChromosome.java +++ /dev/null @@ -1,86 +0,0 @@ -package forestry.api.arboriculture; - -import net.minecraftforge.common.EnumPlantType; -import forestry.api.genetics.AlleleManager; -import forestry.api.genetics.IAllele; -import forestry.api.genetics.IAlleleArea; -import forestry.api.genetics.IAlleleFloat; -import forestry.api.genetics.IAlleleInteger; -import forestry.api.genetics.IAllelePlantType; -import forestry.api.genetics.IChromosomeType; -import forestry.api.genetics.IFruitFamily; -import forestry.api.genetics.ISpeciesRoot; - -public enum EnumTreeChromosome implements IChromosomeType { - - /** - * Determines the following: - WorldGen, including the used wood blocks - {@link IFruitFamily}s supported. Limits which {@link IFruitProvider} - * will actually yield fruit with this species. - Native {@link EnumPlantType} for this tree. Combines with the PLANT chromosome. - */ - SPECIES(IAlleleTreeSpecies.class), - /** - * {@link IGrowthProvider}, determines conditions required by the tree to grow. - */ - GROWTH(IAlleleGrowth.class), - /** - * A float modifying the height of the tree. Taken into account at worldgen. - */ - HEIGHT(IAlleleFloat.class), - /** - * Chance for saplings. - */ - FERTILITY(IAlleleFloat.class), - /** - * {@link IFruitProvider}, determines if and what fruits are grown on the tree. Limited by the {@link IFruitFamily}s the species supports. - */ - FRUITS(IAlleleFruit.class), - /** - * Chance for fruit leaves and/or drops. - */ - YIELD(IAlleleFloat.class), - /** - * May add additional tolerances for {@link EnumPlantTypes}. - */ - PLANT(IAllelePlantType.class), - /** - * Determines the speed at which fruit will ripen on this tree. - */ - SAPPINESS(IAlleleFloat.class), - /** - * Territory for leaf effects. Unused. - */ - TERRITORY(IAlleleArea.class), - /** - * Leaf effect. Unused. - */ - EFFECT(IAlleleLeafEffect.class), - /** - * Amount of random ticks which need to elapse before a sapling will grow into a tree. - */ - MATURATION(IAlleleInteger.class), - - GIRTH(IAlleleInteger.class), - ; - - Class clss; - - EnumTreeChromosome(Class clss) { - this.clss = clss; - } - - @Override - public Class getAlleleClass() { - return clss; - } - - @Override - public String getName() { - return this.toString().toLowerCase(); - } - - @Override - public ISpeciesRoot getSpeciesRoot() { - return AlleleManager.alleleRegistry.getSpeciesRoot("rootTrees"); - } - -} diff --git a/BM_src/forestry/api/arboriculture/IAlleleFruit.java b/BM_src/forestry/api/arboriculture/IAlleleFruit.java deleted file mode 100644 index f468af08..00000000 --- a/BM_src/forestry/api/arboriculture/IAlleleFruit.java +++ /dev/null @@ -1,12 +0,0 @@ -package forestry.api.arboriculture; - -import forestry.api.genetics.IAllele; - -/** - * Simple allele encapsulating an {@link IFruitProvider}. - */ -public interface IAlleleFruit extends IAllele { - - IFruitProvider getProvider(); - -} diff --git a/BM_src/forestry/api/arboriculture/IAlleleGrowth.java b/BM_src/forestry/api/arboriculture/IAlleleGrowth.java deleted file mode 100644 index 60b34a63..00000000 --- a/BM_src/forestry/api/arboriculture/IAlleleGrowth.java +++ /dev/null @@ -1,12 +0,0 @@ -package forestry.api.arboriculture; - -import forestry.api.genetics.IAllele; - -/** - * Simple allele encapsulating an {@link IGrowthProvider}. - */ -public interface IAlleleGrowth extends IAllele { - - IGrowthProvider getProvider(); - -} diff --git a/BM_src/forestry/api/arboriculture/IAlleleLeafEffect.java b/BM_src/forestry/api/arboriculture/IAlleleLeafEffect.java deleted file mode 100644 index b904be26..00000000 --- a/BM_src/forestry/api/arboriculture/IAlleleLeafEffect.java +++ /dev/null @@ -1,14 +0,0 @@ -package forestry.api.arboriculture; - -import net.minecraft.world.World; -import forestry.api.genetics.IAlleleEffect; -import forestry.api.genetics.IEffectData; - -/** - * Simple allele encapsulating a leaf effect. (Not implemented) - */ -public interface IAlleleLeafEffect extends IAlleleEffect { - - IEffectData doEffect(ITreeGenome genome, IEffectData storedData, World world, int x, int y, int z); - -} diff --git a/BM_src/forestry/api/arboriculture/IAlleleTreeSpecies.java b/BM_src/forestry/api/arboriculture/IAlleleTreeSpecies.java deleted file mode 100644 index 8154121f..00000000 --- a/BM_src/forestry/api/arboriculture/IAlleleTreeSpecies.java +++ /dev/null @@ -1,67 +0,0 @@ -package forestry.api.arboriculture; - -import java.util.Collection; - -import net.minecraft.item.ItemStack; -import net.minecraft.util.Icon; -import net.minecraft.world.World; -import net.minecraft.world.gen.feature.WorldGenerator; -import net.minecraftforge.common.EnumPlantType; -import cpw.mods.fml.relauncher.Side; -import cpw.mods.fml.relauncher.SideOnly; -import forestry.api.genetics.IAlleleSpecies; -import forestry.api.genetics.IFruitFamily; - -public interface IAlleleTreeSpecies extends IAlleleSpecies { - - ITreeRoot getRoot(); - - /** - * @return Native plant type of this species. - */ - EnumPlantType getPlantType(); - - /** - * @return List of all {@link IFruitFamily}s which can grow on leaves generated by this species. - */ - Collection getSuitableFruit(); - - /** - * @return Trunk girth. 1 = 1x1, 2 = 2x2, etc. - */ - @Deprecated - int getGirth(); - - /** - * @param tree - * @param world - * @param x - * @param y - * @param z - * @return Tree generator for the tree at the given location. - */ - WorldGenerator getGenerator(ITree tree, World world, int x, int y, int z); - - /** - * @return All available generator classes for this species. - */ - Class[] getGeneratorClasses(); - - /* TEXTURES AND OVERRIDES */ - int getLeafColour(ITree tree); - - short getLeafIconIndex(ITree tree, boolean fancy); - - @SideOnly(Side.CLIENT) - Icon getGermlingIcon(EnumGermlingType type, int renderPass); - - @SideOnly(Side.CLIENT) - int getGermlingColour(EnumGermlingType type, int renderPass); - - /** - * - * @return Array of ItemStacks representing logs that these tree produces, the first one being the primary one - */ - ItemStack[] getLogStacks(); - -} diff --git a/BM_src/forestry/api/arboriculture/IArboristTracker.java b/BM_src/forestry/api/arboriculture/IArboristTracker.java deleted file mode 100644 index 8e7ce8a9..00000000 --- a/BM_src/forestry/api/arboriculture/IArboristTracker.java +++ /dev/null @@ -1,7 +0,0 @@ -package forestry.api.arboriculture; - -import forestry.api.genetics.IBreedingTracker; - -public interface IArboristTracker extends IBreedingTracker { - -} diff --git a/BM_src/forestry/api/arboriculture/IFruitProvider.java b/BM_src/forestry/api/arboriculture/IFruitProvider.java deleted file mode 100644 index 1b00e25d..00000000 --- a/BM_src/forestry/api/arboriculture/IFruitProvider.java +++ /dev/null @@ -1,67 +0,0 @@ -package forestry.api.arboriculture; - -import cpw.mods.fml.relauncher.Side; -import cpw.mods.fml.relauncher.SideOnly; -import net.minecraft.client.renderer.texture.IconRegister; -import net.minecraft.item.ItemStack; -import net.minecraft.world.IBlockAccess; -import net.minecraft.world.World; -import forestry.api.genetics.IFruitFamily; - -public interface IFruitProvider { - - IFruitFamily getFamily(); - - int getColour(ITreeGenome genome, IBlockAccess world, int x, int y, int z, int ripeningTime); - - boolean markAsFruitLeaf(ITreeGenome genome, World world, int x, int y, int z); - - int getRipeningPeriod(); - - // / Products, Chance - ItemStack[] getProducts(); - - // / Specialty, Chance - ItemStack[] getSpecialty(); - - ItemStack[] getFruits(ITreeGenome genome, World world, int x, int y, int z, int ripeningTime); - - /** - * @return Short, human-readable identifier used in the treealyzer. - */ - String getDescription(); - - /* TEXTURE OVERLAY */ - /** - * @param genome - * @param world - * @param x - * @param y - * @param z - * @param ripeningTime - * Elapsed ripening time for the fruit. - * @param fancy - * @return Icon index of the texture to overlay on the leaf block. - */ - short getIconIndex(ITreeGenome genome, IBlockAccess world, int x, int y, int z, int ripeningTime, boolean fancy); - - /** - * @return true if this fruit provider requires fruit blocks to spawn, false otherwise. - */ - boolean requiresFruitBlocks(); - - /** - * Tries to spawn a fruit block at the potential position when the tree generates. - * - * @param genome - * @param world - * @param x - * @param y - * @param z - * @return true if a fruit block was spawned, false otherwise. - */ - boolean trySpawnFruitBlock(ITreeGenome genome, World world, int x, int y, int z); - - @SideOnly(Side.CLIENT) - void registerIcons(IconRegister register); -} diff --git a/BM_src/forestry/api/arboriculture/IGrowthProvider.java b/BM_src/forestry/api/arboriculture/IGrowthProvider.java deleted file mode 100644 index c6e1b3f2..00000000 --- a/BM_src/forestry/api/arboriculture/IGrowthProvider.java +++ /dev/null @@ -1,33 +0,0 @@ -package forestry.api.arboriculture; - -import net.minecraft.world.World; - -public interface IGrowthProvider { - - /** - * Check to see whether a sapling at the given location with the given genome can grow into a tree. - * - * @param genome Genome of the tree this is called for. - * @param world Minecraft world the tree will inhabit. - * @param xPos x-Coordinate to attempt growth at. - * @param yPos y-Coordinate to attempt growth at. - * @param zPos z-Coordinate to attempt growth at. - * @param expectedGirth Trunk size of the tree to generate. - * @param expectedHeight Height of the tree to generate. - * @return true if the tree can grow at the given coordinates, false otherwise. - */ - boolean canGrow(ITreeGenome genome, World world, int xPos, int yPos, int zPos, int expectedGirth, int expectedHeight); - - EnumGrowthConditions getGrowthConditions(ITreeGenome genome, World world, int xPos, int yPos, int zPos); - - /** - * @return Short, human-readable identifier used in the treealyzer. - */ - String getDescription(); - - /** - * @return Detailed description of growth behaviour used in the treealyzer. - */ - String[] getInfo(); - -} diff --git a/BM_src/forestry/api/arboriculture/ILeafTickHandler.java b/BM_src/forestry/api/arboriculture/ILeafTickHandler.java deleted file mode 100644 index ce9cdcfa..00000000 --- a/BM_src/forestry/api/arboriculture/ILeafTickHandler.java +++ /dev/null @@ -1,7 +0,0 @@ -package forestry.api.arboriculture; - -import net.minecraft.world.World; - -public interface ILeafTickHandler { - boolean onRandomLeafTick(ITree tree, World world, int biomeId, int x, int y, int z, boolean isDestroyed); -} diff --git a/BM_src/forestry/api/arboriculture/IToolGrafter.java b/BM_src/forestry/api/arboriculture/IToolGrafter.java deleted file mode 100644 index 0de513b4..00000000 --- a/BM_src/forestry/api/arboriculture/IToolGrafter.java +++ /dev/null @@ -1,19 +0,0 @@ -package forestry.api.arboriculture; - -import net.minecraft.entity.player.EntityPlayer; -import net.minecraft.item.ItemStack; -import net.minecraft.world.World; - -public interface IToolGrafter { - /** - * Called by leaves to determine the increase in sapling droprate. - * - * @param stack ItemStack containing the grafter. - * @param world Minecraft world the player and the target block inhabit. - * @param x x-Coordinate of the broken leaf block. - * @param y y-Coordinate of the broken leaf block. - * @param z z-Coordinate of the broken leaf block. - * @return Float representing the factor the usual drop chance is to be multiplied by. - */ - float getSaplingModifier(ItemStack stack, World world, EntityPlayer player, int x, int y, int z); -} diff --git a/BM_src/forestry/api/arboriculture/ITree.java b/BM_src/forestry/api/arboriculture/ITree.java deleted file mode 100644 index 33b9c256..00000000 --- a/BM_src/forestry/api/arboriculture/ITree.java +++ /dev/null @@ -1,92 +0,0 @@ -package forestry.api.arboriculture; - -import java.util.EnumSet; - -import net.minecraft.item.ItemStack; -import net.minecraft.world.World; -import net.minecraft.world.gen.feature.WorldGenerator; -import net.minecraftforge.common.EnumPlantType; -import forestry.api.genetics.IEffectData; -import forestry.api.genetics.IIndividual; - -public interface ITree extends IIndividual { - - void mate(ITree other); - - IEffectData[] doEffect(IEffectData[] storedData, World world, int biomeid, int x, int y, int z); - - IEffectData[] doFX(IEffectData[] storedData, World world, int biomeid, int x, int y, int z); - - ITreeGenome getGenome(); - - ITreeGenome getMate(); - - EnumSet getPlantTypes(); - - ITree[] getSaplings(World world, int x, int y, int z, float modifier); - - ItemStack[] getProduceList(); - - ItemStack[] getSpecialtyList(); - - ItemStack[] produceStacks(World world, int x, int y, int z, int ripeningTime); - - /** - * - * @param world - * @param x - * @param y - * @param z - * @return Boolean indicating whether a sapling can stay planted at the given position. - */ - boolean canStay(World world, int x, int y, int z); - - /** - * - * @param world - * @param x - * @param y - * @param z - * @return Boolean indicating whether a sapling at the given position can grow into a tree. - */ - boolean canGrow(World world, int x, int y, int z, int expectedGirth, int expectedHeight); - - /** - * @return Integer denoting the maturity (block ticks) required for a sapling to attempt to grow into a tree. - */ - int getRequiredMaturity(); - - /** - * @return Integer denoting how resilient leaf blocks are against adverse influences (i.e. caterpillars). - */ - int getResilience(); - - /** - * @param world - * @param x - * @param y - * @param z - * @return Integer denoting the size of the tree trunk. - */ - int getGirth(World world, int x, int y, int z); - - - - /** - * - * @param world - * @param x - * @param y - * @param z - * @return Growth conditions at the given position. - */ - EnumGrowthConditions getGrowthCondition(World world, int x, int y, int z); - - WorldGenerator getTreeGenerator(World world, int x, int y, int z, boolean wasBonemealed); - - ITree copy(); - - boolean isPureBred(EnumTreeChromosome chromosome); - - boolean canBearFruit(); -} diff --git a/BM_src/forestry/api/arboriculture/ITreeGenome.java b/BM_src/forestry/api/arboriculture/ITreeGenome.java deleted file mode 100644 index f636d010..00000000 --- a/BM_src/forestry/api/arboriculture/ITreeGenome.java +++ /dev/null @@ -1,40 +0,0 @@ -package forestry.api.arboriculture; - -import java.util.EnumSet; - -import net.minecraftforge.common.EnumPlantType; -import forestry.api.genetics.IGenome; - -public interface ITreeGenome extends IGenome { - - IAlleleTreeSpecies getPrimary(); - - IAlleleTreeSpecies getSecondary(); - - IFruitProvider getFruitProvider(); - - IGrowthProvider getGrowthProvider(); - - float getHeight(); - - float getFertility(); - - /** - * @return Determines either a) how many fruit leaves there are or b) the chance for any fruit leave to drop a sapling. Exact usage determined by the - * IFruitProvider - */ - float getYield(); - - float getSappiness(); - - EnumSet getPlantTypes(); - - /** - * @return Amount of random block ticks required for a sapling to mature into a fully grown tree. - */ - int getMaturationTime(); - - int getGirth(); - - IAlleleLeafEffect getEffect(); -} diff --git a/BM_src/forestry/api/arboriculture/ITreeModifier.java b/BM_src/forestry/api/arboriculture/ITreeModifier.java deleted file mode 100644 index 18a12a54..00000000 --- a/BM_src/forestry/api/arboriculture/ITreeModifier.java +++ /dev/null @@ -1,40 +0,0 @@ -package forestry.api.arboriculture; - -public interface ITreeModifier { - - /** - * - * @param genome - * @return Float used to modify the height. - */ - float getHeightModifier(ITreeGenome genome, float currentModifier); - - /** - * - * @param genome - * @return Float used to modify the yield. - */ - float getYieldModifier(ITreeGenome genome, float currentModifier); - - /** - * - * @param genome - * @return Float used to modify the sappiness. - */ - float getSappinessModifier(ITreeGenome genome, float currentModifier); - - /** - * - * @param genome - * @return Float used to modify the maturation. - */ - float getMaturationModifier(ITreeGenome genome, float currentModifier); - - /** - * @param genome0 - * @param genome1 - * @return Float used to modify the base mutation chance. - */ - float getMutationModifier(ITreeGenome genome0, ITreeGenome genome1, float currentModifier); - -} diff --git a/BM_src/forestry/api/arboriculture/ITreeMutation.java b/BM_src/forestry/api/arboriculture/ITreeMutation.java deleted file mode 100644 index 538f2c5e..00000000 --- a/BM_src/forestry/api/arboriculture/ITreeMutation.java +++ /dev/null @@ -1,28 +0,0 @@ -package forestry.api.arboriculture; - -import net.minecraft.world.World; -import forestry.api.genetics.IAllele; -import forestry.api.genetics.IGenome; -import forestry.api.genetics.IMutation; -import forestry.api.genetics.ISpeciesRoot; - -public interface ITreeMutation extends IMutation { - - /** - * @return {@link ISpeciesRoot} this mutation is associated with. - */ - ITreeRoot getRoot(); - - /** - * @param world - * @param x - * @param y - * @param z - * @param allele0 - * @param allele1 - * @param genome0 - * @param genome1 - * @return float representing the chance for mutation to occur. note that this is 0 - 100 based, since it was an integer previously! - */ - float getChance(World world, int x, int y, int z, IAllele allele0, IAllele allele1, IGenome genome0, IGenome genome1); -} diff --git a/BM_src/forestry/api/arboriculture/ITreeRoot.java b/BM_src/forestry/api/arboriculture/ITreeRoot.java deleted file mode 100644 index e26bc7b0..00000000 --- a/BM_src/forestry/api/arboriculture/ITreeRoot.java +++ /dev/null @@ -1,77 +0,0 @@ -package forestry.api.arboriculture; - -import java.util.ArrayList; -import java.util.Collection; - -import net.minecraft.item.ItemStack; -import net.minecraft.nbt.NBTTagCompound; -import net.minecraft.world.World; -import forestry.api.genetics.IAllele; -import forestry.api.genetics.IChromosome; -import forestry.api.genetics.IIndividual; -import forestry.api.genetics.ISpeciesRoot; - -public interface ITreeRoot extends ISpeciesRoot { - - boolean isMember(ItemStack itemstack); - - ITree getMember(ItemStack itemstack); - - ITree getMember(NBTTagCompound compound); - - ITreeGenome templateAsGenome(IAllele[] template); - - ITreeGenome templateAsGenome(IAllele[] templateActive, IAllele[] templateInactive); - - /** - * @param world - * @return {@link IArboristTracker} associated with the passed world. - */ - IArboristTracker getBreedingTracker(World world, String player); - - /* TREE SPECIFIC */ - /** - * Register a leaf tick handler. - * @param handler the {@link ILeafTickHandler} to register. - */ - void registerLeafTickHandler(ILeafTickHandler handler); - - Collection getLeafTickHandlers(); - - /** - * @return type of tree encoded on the itemstack. EnumBeeType.NONE if it isn't a tree. - */ - EnumGermlingType getType(ItemStack stack); - - ITree getTree(World world, int x, int y, int z); - - ITree getTree(World world, ITreeGenome genome); - - boolean plantSapling(World world, ITree tree, String owner, int x, int y, int z); - - boolean setLeaves(World world, IIndividual tree, String owner, int x, int y, int z); - - IChromosome[] templateAsChromosomes(IAllele[] template); - - IChromosome[] templateAsChromosomes(IAllele[] templateActive, IAllele[] templateInactive); - - boolean setFruitBlock(World world, IAlleleFruit allele, float sappiness, short[] indices, int x, int y, int z); - - /* GAME MODE */ - ArrayList getTreekeepingModes(); - - ITreekeepingMode getTreekeepingMode(World world); - - ITreekeepingMode getTreekeepingMode(String name); - - void registerTreekeepingMode(ITreekeepingMode mode); - - void setTreekeepingMode(World world, String name); - - /* TEMPLATES */ - ArrayList getIndividualTemplates(); - - /* MUTATIONS */ - Collection getMutations(boolean shuffle); - -} diff --git a/BM_src/forestry/api/arboriculture/ITreekeepingMode.java b/BM_src/forestry/api/arboriculture/ITreekeepingMode.java deleted file mode 100644 index 92e65cc3..00000000 --- a/BM_src/forestry/api/arboriculture/ITreekeepingMode.java +++ /dev/null @@ -1,17 +0,0 @@ -package forestry.api.arboriculture; - -import java.util.ArrayList; - -public interface ITreekeepingMode extends ITreeModifier { - - /** - * @return Localized name of this treekeeping mode. - */ - String getName(); - - /** - * @return Localized list of strings outlining the behaviour of this treekeeping mode. - */ - ArrayList getDescription(); - -} diff --git a/BM_src/forestry/api/arboriculture/TreeManager.java b/BM_src/forestry/api/arboriculture/TreeManager.java deleted file mode 100644 index 2ae534a1..00000000 --- a/BM_src/forestry/api/arboriculture/TreeManager.java +++ /dev/null @@ -1,11 +0,0 @@ -package forestry.api.arboriculture; - -public class TreeManager { - public static int treeSpeciesCount = 0; - - /** - * Get your own reference to this via AlleleManager.alleleRegistry.getSpeciesRoot("rootTrees") and save it somewhere. - */ - @Deprecated - public static ITreeRoot treeInterface; -} diff --git a/BM_src/forestry/api/arboriculture/package-info.java b/BM_src/forestry/api/arboriculture/package-info.java deleted file mode 100644 index 928619af..00000000 --- a/BM_src/forestry/api/arboriculture/package-info.java +++ /dev/null @@ -1,3 +0,0 @@ -@API(apiVersion="1.0", owner="ForestryAPI|core", provides="ForestryAPI|arboriculture") -package forestry.api.arboriculture; -import cpw.mods.fml.common.API; \ No newline at end of file diff --git a/BM_src/forestry/api/circuits/ChipsetManager.java b/BM_src/forestry/api/circuits/ChipsetManager.java deleted file mode 100644 index 8baa4c95..00000000 --- a/BM_src/forestry/api/circuits/ChipsetManager.java +++ /dev/null @@ -1,8 +0,0 @@ -package forestry.api.circuits; - -public class ChipsetManager { - - public static ISolderManager solderManager; - public static ICircuitRegistry circuitRegistry; - -} diff --git a/BM_src/forestry/api/circuits/ICircuit.java b/BM_src/forestry/api/circuits/ICircuit.java deleted file mode 100644 index 1607036d..00000000 --- a/BM_src/forestry/api/circuits/ICircuit.java +++ /dev/null @@ -1,27 +0,0 @@ -package forestry.api.circuits; - -import java.util.List; - -import net.minecraft.tileentity.TileEntity; - -public interface ICircuit { - String getUID(); - - boolean requiresDiscovery(); - - int getLimit(); - - String getName(); - - boolean isCircuitable(TileEntity tile); - - void onInsertion(int slot, TileEntity tile); - - void onLoad(int slot, TileEntity tile); - - void onRemoval(int slot, TileEntity tile); - - void onTick(int slot, TileEntity tile); - - void addTooltip(List list); -} diff --git a/BM_src/forestry/api/circuits/ICircuitBoard.java b/BM_src/forestry/api/circuits/ICircuitBoard.java deleted file mode 100644 index dbd79461..00000000 --- a/BM_src/forestry/api/circuits/ICircuitBoard.java +++ /dev/null @@ -1,26 +0,0 @@ -package forestry.api.circuits; - -import java.util.List; - -import net.minecraft.tileentity.TileEntity; -import forestry.api.core.INBTTagable; - -public interface ICircuitBoard extends INBTTagable { - - int getPrimaryColor(); - - int getSecondaryColor(); - - void addTooltip(List list); - - void onInsertion(TileEntity tile); - - void onLoad(TileEntity tile); - - void onRemoval(TileEntity tile); - - void onTick(TileEntity tile); - - ICircuit[] getCircuits(); - -} diff --git a/BM_src/forestry/api/circuits/ICircuitLayout.java b/BM_src/forestry/api/circuits/ICircuitLayout.java deleted file mode 100644 index 5dc73187..00000000 --- a/BM_src/forestry/api/circuits/ICircuitLayout.java +++ /dev/null @@ -1,11 +0,0 @@ -package forestry.api.circuits; - -public interface ICircuitLayout { - - String getUID(); - - String getName(); - - String getUsage(); - -} diff --git a/BM_src/forestry/api/circuits/ICircuitLibrary.java b/BM_src/forestry/api/circuits/ICircuitLibrary.java deleted file mode 100644 index 1f38d6cc..00000000 --- a/BM_src/forestry/api/circuits/ICircuitLibrary.java +++ /dev/null @@ -1,5 +0,0 @@ -package forestry.api.circuits; - -public interface ICircuitLibrary { - -} diff --git a/BM_src/forestry/api/circuits/ICircuitRegistry.java b/BM_src/forestry/api/circuits/ICircuitRegistry.java deleted file mode 100644 index 4fe690f1..00000000 --- a/BM_src/forestry/api/circuits/ICircuitRegistry.java +++ /dev/null @@ -1,37 +0,0 @@ -package forestry.api.circuits; - -import java.util.HashMap; - -import net.minecraft.item.ItemStack; -import net.minecraft.world.World; - -public interface ICircuitRegistry { - - /* CIRCUITS */ - HashMap getRegisteredCircuits(); - - void registerCircuit(ICircuit circuit); - - ICircuit getCircuit(String uid); - - ICircuitLibrary getCircuitLibrary(World world, String playername); - - void registerLegacyMapping(int id, String uid); - - ICircuit getFromLegacyMap(int id); - - /* LAYOUTS */ - HashMap getRegisteredLayouts(); - - void registerLayout(ICircuitLayout layout); - - ICircuitLayout getLayout(String uid); - - ICircuitLayout getDefaultLayout(); - - - ICircuitBoard getCircuitboard(ItemStack itemstack); - - boolean isChipset(ItemStack itemstack); - -} diff --git a/BM_src/forestry/api/circuits/ISolderManager.java b/BM_src/forestry/api/circuits/ISolderManager.java deleted file mode 100644 index e9420ffb..00000000 --- a/BM_src/forestry/api/circuits/ISolderManager.java +++ /dev/null @@ -1,9 +0,0 @@ -package forestry.api.circuits; - -import net.minecraft.item.ItemStack; - -public interface ISolderManager { - - void addRecipe(ICircuitLayout layout, ItemStack resource, ICircuit circuit); - -} diff --git a/BM_src/forestry/api/circuits/package-info.java b/BM_src/forestry/api/circuits/package-info.java deleted file mode 100644 index 597af6a8..00000000 --- a/BM_src/forestry/api/circuits/package-info.java +++ /dev/null @@ -1,3 +0,0 @@ -@API(apiVersion="1.0", owner="ForestryAPI|core", provides="ForestryAPI|circuits") -package forestry.api.circuits; -import cpw.mods.fml.common.API; \ No newline at end of file diff --git a/BM_src/forestry/api/core/BlockInterface.java b/BM_src/forestry/api/core/BlockInterface.java deleted file mode 100644 index 08a246a4..00000000 --- a/BM_src/forestry/api/core/BlockInterface.java +++ /dev/null @@ -1,34 +0,0 @@ -package forestry.api.core; - -import net.minecraft.block.Block; -import net.minecraft.item.ItemStack; -import cpw.mods.fml.common.FMLLog; - -public class BlockInterface { - /** - * Rather limited function to retrieve block ids. - * - * @param ident - * @return ItemStack representing the block. - */ - @Deprecated - public static ItemStack getBlock(String ident) { - ItemStack item = null; - - try { - String pack = ItemInterface.class.getPackage().getName(); - pack = pack.substring(0, pack.lastIndexOf('.')); - String itemClass = pack.substring(0, pack.lastIndexOf('.')) + ".core.config.ForestryBlock"; - Object obj = Class.forName(itemClass).getField(ident).get(null); - if (obj instanceof Block) - item = new ItemStack((Block) obj); - else if (obj instanceof ItemStack) - item = (ItemStack) obj; - } catch (Exception ex) { - FMLLog.warning("Could not retrieve Forestry block identified by: " + ident); - } - - return item; - } - -} diff --git a/BM_src/forestry/api/core/EnumHumidity.java b/BM_src/forestry/api/core/EnumHumidity.java deleted file mode 100644 index f45c4290..00000000 --- a/BM_src/forestry/api/core/EnumHumidity.java +++ /dev/null @@ -1,72 +0,0 @@ -package forestry.api.core; - -import java.util.ArrayList; - -/** - * Many things Forestry use temperature and humidity of a biome to determine whether they can or how they can work or spawn at a given location. - * - * This enum concerns humidity. - */ -public enum EnumHumidity { - ARID("Arid"), NORMAL("Normal"), DAMP("Damp"); - - /** - * Populated by Forestry with vanilla biomes. Add additional arid biomes here. (ex. desert) - * @deprecated Biomes will be checked live rather than relying on cached values, so you don't have to register them. - */ - @Deprecated - public static ArrayList aridBiomeIds = new ArrayList(); - /** - * Populated by Forestry with vanilla biomes. Add additional damp biomes here. (ex. jungle) - * @deprecated Biomes will be checked live rather than relying on cached values, so you don't have to register them. - */ - @Deprecated - public static ArrayList dampBiomeIds = new ArrayList(); - /** - * Populated by Forestry with vanilla biomes. Add additional normal biomes here. - * @deprecated Biomes will be checked live rather than relying on cached values, so you don't have to register them. - */ - @Deprecated - public static ArrayList normalBiomeIds = new ArrayList(); - - public final String name; - - private EnumHumidity(String name) { - this.name = name; - } - - public String getName() { - return this.name; - } - - @Deprecated - public static ArrayList getBiomeIds(EnumHumidity humidity) { - switch (humidity) { - case ARID: - return aridBiomeIds; - case DAMP: - return dampBiomeIds; - case NORMAL: - default: - return normalBiomeIds; - } - } - - /** - * Determines the EnumHumidity given a floating point representation of Minecraft Rainfall - * @param rawHumidity raw rainfall value - * @return EnumHumidity corresponding to rainfall value - */ - public static EnumHumidity getFromValue(float rawHumidity) { - EnumHumidity value = EnumHumidity.ARID; - - if (rawHumidity >= 0.9f) { - value = EnumHumidity.DAMP; - } - else if (rawHumidity >= 0.3f) { - value = EnumHumidity.NORMAL; - } - - return value; - } -} diff --git a/BM_src/forestry/api/core/EnumTemperature.java b/BM_src/forestry/api/core/EnumTemperature.java deleted file mode 100644 index 30de6e24..00000000 --- a/BM_src/forestry/api/core/EnumTemperature.java +++ /dev/null @@ -1,142 +0,0 @@ -package forestry.api.core; - -import java.util.ArrayList; - -import net.minecraft.util.Icon; -import net.minecraft.world.biome.BiomeGenBase; -import net.minecraftforge.common.BiomeDictionary; -import cpw.mods.fml.relauncher.Side; -import cpw.mods.fml.relauncher.SideOnly; - -/** - * Many things Forestry use temperature and humidity of a biome to determine whether they can or how they can work or spawn at a given location. - * - * This enum concerns temperature. - */ -public enum EnumTemperature { - NONE("None", "habitats/ocean"), ICY("Icy", "habitats/snow"), COLD("Cold", "habitats/taiga"), - NORMAL("Normal", "habitats/plains"), WARM("Warm", "habitats/jungle"), HOT("Hot", "habitats/desert"), HELLISH("Hellish", "habitats/nether"); - - /** - * Populated by Forestry with vanilla biomes. Add additional icy/snow biomes here. (ex. snow plains) - * @deprecated Biomes will be checked live rather than relying on cached values, so you don't have to register them. - */ - @Deprecated - public static ArrayList icyBiomeIds = new ArrayList(); - /** - * Populated by Forestry with vanilla biomes. Add additional cold biomes here. (ex. taiga) - * @deprecated Biomes will be checked live rather than relying on cached values, so you don't have to register them. - */ - @Deprecated - public static ArrayList coldBiomeIds = new ArrayList(); - /** - * Populated by Forestry with vanilla biomes. Add additional normal biomes here. (ex. forest, plains) - * @deprecated Biomes will be checked live rather than relying on cached values, so you don't have to register them. - */ - @Deprecated - public static ArrayList normalBiomeIds = new ArrayList(); - /** - * Populated by Forestry with vanilla biomes. Add additional warm biomes here. (ex. jungle) - * @deprecated Biomes will be checked live rather than relying on cached values, so you don't have to register them. - */ - @Deprecated - public static ArrayList warmBiomeIds = new ArrayList(); - /** - * Populated by Forestry with vanilla biomes. Add additional hot biomes here. (ex. desert) - * @deprecated Biomes will be checked live rather than relying on cached values, so you don't have to register them. - */ - @Deprecated - public static ArrayList hotBiomeIds = new ArrayList(); - /** - * Populated by Forestry with vanilla biomes. Add additional hellish biomes here. (ex. nether) - * @deprecated Biomes will be checked live rather than relying on cached values, so you don't have to register them. - */ - @Deprecated - public static ArrayList hellishBiomeIds = new ArrayList(); - - public final String name; - public final String iconIndex; - - private EnumTemperature(String name, String iconIndex) { - this.name = name; - this.iconIndex = iconIndex; - } - - public String getName() { - return this.name; - } - - @SideOnly(Side.CLIENT) - public Icon getIcon() { - return ForestryAPI.textureManager.getDefault(iconIndex); - } - /** - * @deprecated Switching most internals to use getFromValue to not rely on cached values. - */ - public static ArrayList getBiomeIds(EnumTemperature temperature) { - - switch (temperature) { - case ICY: - return icyBiomeIds; - case COLD: - return coldBiomeIds; - case WARM: - return warmBiomeIds; - case HOT: - return hotBiomeIds; - case HELLISH: - return hellishBiomeIds; - case NORMAL: - default: - return normalBiomeIds; - } - - } - - /** - * Determines if a given BiomeGenBase is of HELLISH temperature, since it is treated seperatly from actual temperature values. - * Uses the BiomeDictionary. - * @param biomeGen BiomeGenBase of the biome in question - * @return true, if the BiomeGenBase is a Nether-type biome; false otherwise. - */ - public static boolean isBiomeHellish(BiomeGenBase biomeGen) { - return BiomeDictionary.isBiomeOfType(biomeGen, BiomeDictionary.Type.NETHER); - } - - /** - * Determines if a given biomeID is of HELLISH temperature, since it is treated seperatly from actual temperature values. - * Uses the BiomeDictionary. - * @param biomeID ID of the BiomeGenBase in question - * @return true, if the biomeID is a Nether-type biome; false otherwise. - */ - public static boolean isBiomeHellish(int biomeID) { - return BiomeDictionary.isBiomeRegistered(biomeID) && BiomeDictionary.isBiomeOfType(BiomeGenBase.biomeList[biomeID], BiomeDictionary.Type.NETHER); - } - - /** - * Determines the EnumTemperature given a floating point representation of - * Minecraft temperature. Hellish biomes are handled based on their biome - * type - check isBiomeHellish. - * @param rawTemp raw temperature value - * @return EnumTemperature corresponding to value of rawTemp - */ - public static EnumTemperature getFromValue(float rawTemp) { - EnumTemperature value = EnumTemperature.ICY; - - if (rawTemp >= 2.0f) { - value = EnumTemperature.HOT; - } - else if (rawTemp >= 1.2f) { - value = EnumTemperature.WARM; - } - else if (rawTemp >= 0.2f) { - value = EnumTemperature.NORMAL; - } - else if (rawTemp >= 0.05f) { - value = EnumTemperature.COLD; - } - - return value; - } - -} diff --git a/BM_src/forestry/api/core/ForestryAPI.java b/BM_src/forestry/api/core/ForestryAPI.java deleted file mode 100644 index ac5471ca..00000000 --- a/BM_src/forestry/api/core/ForestryAPI.java +++ /dev/null @@ -1,47 +0,0 @@ -package forestry.api.core; - -import cpw.mods.fml.relauncher.Side; -import cpw.mods.fml.relauncher.SideOnly; - -/** - * Forestry's API is divided into several subcategories to make it easier to understand. - * - * If you need to distribute API files, try to only include the parts you are actually - * using to minimize conflicts due to API changes. - * - * .core - Miscallenous base classes and interfaces as well as some basics for tools, armor, game modes and stuff needed by biome mods. - * .fuels - Managers and classes to facilitate adding fuels to various engines and machines. - * .recipes - Managers and helpers to facilitate adding new recipes to various machines. - * .storage - Managers, events and interfaces for defining new backpacks and handling backpack behaviour. - * .mail - Anything related to handling letters and adding new mail carrier systems. - * .genetics - Shared code for all genetic subclasses. - * \ .apiculture - Bees. - * \ .arboriculture - Trees. - * \ .lepidopterology - Butterflies. - * - * Note that if Forestry is not present, all these references will be null. - */ -public class ForestryAPI { - - /** - * The main mod instance for Forestry. - */ - public static Object instance; - - /** - * A {@link ITextureManager} needed for some things in the API. - */ - @SideOnly(Side.CLIENT) - public static ITextureManager textureManager; - - /** - * The currently active {@link IGameMode}. - */ - public static IGameMode activeMode; - - /** - * Provides information on certain Forestry constants (Villager IDs, Chest gen keys, etc) - */ - public static IForestryConstants forestryConstants; - -} diff --git a/BM_src/forestry/api/core/ForestryEvent.java b/BM_src/forestry/api/core/ForestryEvent.java deleted file mode 100644 index 476d5342..00000000 --- a/BM_src/forestry/api/core/ForestryEvent.java +++ /dev/null @@ -1,51 +0,0 @@ -package forestry.api.core; - -import net.minecraft.entity.player.EntityPlayer; -import net.minecraftforge.event.Event; -import forestry.api.genetics.IAlleleSpecies; -import forestry.api.genetics.IBreedingTracker; -import forestry.api.genetics.IMutation; -import forestry.api.genetics.ISpeciesRoot; - -public abstract class ForestryEvent extends Event { - - private static abstract class BreedingEvent extends ForestryEvent { - public final ISpeciesRoot root; - public final IBreedingTracker tracker; - public final String username; - - private BreedingEvent(ISpeciesRoot root, String username, IBreedingTracker tracker) { - super(); - this.root = root; - this.username = username; - this.tracker = tracker; - } - } - - public static class SpeciesDiscovered extends BreedingEvent { - public final IAlleleSpecies species; - public SpeciesDiscovered(ISpeciesRoot root, String username, IAlleleSpecies species, IBreedingTracker tracker) { - super(root, username, tracker); - this.species = species; - } - } - - public static class MutationDiscovered extends BreedingEvent { - public final IMutation allele; - public MutationDiscovered(ISpeciesRoot root, String username, IMutation allele, IBreedingTracker tracker) { - super(root, username, tracker); - this.allele = allele; - } - } - - public static class SyncedBreedingTracker extends ForestryEvent { - public final IBreedingTracker tracker; - public final EntityPlayer player; - public SyncedBreedingTracker(IBreedingTracker tracker, EntityPlayer player) { - super(); - this.tracker = tracker; - this.player = player; - } - - } -} diff --git a/BM_src/forestry/api/core/GlobalManager.java b/BM_src/forestry/api/core/GlobalManager.java deleted file mode 100644 index 354d9e34..00000000 --- a/BM_src/forestry/api/core/GlobalManager.java +++ /dev/null @@ -1,35 +0,0 @@ -package forestry.api.core; - -import java.util.ArrayList; - -/** - * Used mostly by hives to determine whether they can spawn at a certain - * position. Rather limited and hackish. - * @depreciated there are better ways now - */ -@Deprecated -public class GlobalManager { - - /** - * @deprecated use Block.isGenMineableReplaceable(), anything that accepts - * dirt will be accepted - */ - @Deprecated - public static ArrayList dirtBlockIds = new ArrayList(); - /** - * @deprecated use Block.isGenMineableReplaceable(), anything that accepts - * sand will be accepted - */ - @Deprecated - public static ArrayList sandBlockIds = new ArrayList(); - /** - * @deprecated why is this needed? - */ - @Deprecated - public static ArrayList snowBlockIds = new ArrayList(); - /** - * @deprecated Ensure your block's isLeaves function returns true instead. - */ - @Deprecated - public static ArrayList leafBlockIds = new ArrayList(); -} diff --git a/BM_src/forestry/api/core/IArmorNaturalist.java b/BM_src/forestry/api/core/IArmorNaturalist.java deleted file mode 100644 index 893b7fc3..00000000 --- a/BM_src/forestry/api/core/IArmorNaturalist.java +++ /dev/null @@ -1,20 +0,0 @@ -package forestry.api.core; - -import net.minecraft.entity.player.EntityPlayer; -import net.minecraft.item.ItemStack; - -public interface IArmorNaturalist { - - /** - * Called when the naturalist's armor acts as spectacles for seeing pollinated tree leaves/flowers. - * - * @param player - * Player doing the viewing - * @param armor - * Armor item - * @param doSee - * Whether or not to actually do the side effects of viewing - * @return true if the armor actually allows the player to see pollination. - */ - public boolean canSeePollination(EntityPlayer player, ItemStack armor, boolean doSee); -} diff --git a/BM_src/forestry/api/core/IForestryConstants.java b/BM_src/forestry/api/core/IForestryConstants.java deleted file mode 100644 index 1db60dc9..00000000 --- a/BM_src/forestry/api/core/IForestryConstants.java +++ /dev/null @@ -1,19 +0,0 @@ -package forestry.api.core; - -public interface IForestryConstants { - - /** - * @return The villager ID for the Apiarist Villager. - */ - public int getApicultureVillagerID(); - - /** - * @return The villager ID for the Arborist Villager. - */ - public int getArboricultureVillagerID(); - - /** - * @return The ChestGenHooks key for adding items to the Forestry Villager chest. - */ - public String getVillagerChestGenKey(); -} diff --git a/BM_src/forestry/api/core/IGameMode.java b/BM_src/forestry/api/core/IGameMode.java deleted file mode 100644 index 8b77983b..00000000 --- a/BM_src/forestry/api/core/IGameMode.java +++ /dev/null @@ -1,36 +0,0 @@ -package forestry.api.core; - -import net.minecraft.item.ItemStack; - -public interface IGameMode { - - /** - * @return Human-readable identifier for the game mode. (i.e. 'EASY', 'NORMAL', 'HARD') - */ - String getIdentifier(); - - /** - * @param ident Identifier for the setting. (See the gamemode config.) - * @return Value of the requested setting, false if unknown setting. - */ - boolean getBooleanSetting(String ident); - - /** - * @param ident Identifier for the setting. (See the gamemode config.) - * @return Value of the requested setting, 0 if unknown setting. - */ - int getIntegerSetting(String ident); - - /** - * @param ident Identifier for the setting. (See the gamemode config.) - * @return Value of the requested setting, 0 if unknown setting. - */ - float getFloatSetting(String ident); - - /** - * @param ident Identifier for the setting. (See the gamemode config.) - * @return Value of the requested setting, an itemstack containing an apple if unknown setting. - */ - ItemStack getStackSetting(String ident); - -} diff --git a/BM_src/forestry/api/core/IIconProvider.java b/BM_src/forestry/api/core/IIconProvider.java deleted file mode 100644 index 9a868021..00000000 --- a/BM_src/forestry/api/core/IIconProvider.java +++ /dev/null @@ -1,19 +0,0 @@ -package forestry.api.core; - -import net.minecraft.client.renderer.texture.IconRegister; -import net.minecraft.util.Icon; -import cpw.mods.fml.relauncher.Side; -import cpw.mods.fml.relauncher.SideOnly; - -/** - * Provides icons, needed in some interfaces, most notably for bees and trees. - */ -public interface IIconProvider { - - @SideOnly(Side.CLIENT) - Icon getIcon(short texUID); - - @SideOnly(Side.CLIENT) - void registerIcons(IconRegister register); - -} diff --git a/BM_src/forestry/api/core/INBTTagable.java b/BM_src/forestry/api/core/INBTTagable.java deleted file mode 100644 index c2e71ec5..00000000 --- a/BM_src/forestry/api/core/INBTTagable.java +++ /dev/null @@ -1,9 +0,0 @@ -package forestry.api.core; - -import net.minecraft.nbt.NBTTagCompound; - -public interface INBTTagable { - void readFromNBT(NBTTagCompound nbttagcompound); - - void writeToNBT(NBTTagCompound nbttagcompound); -} diff --git a/BM_src/forestry/api/core/IPlugin.java b/BM_src/forestry/api/core/IPlugin.java deleted file mode 100644 index c0fdbd42..00000000 --- a/BM_src/forestry/api/core/IPlugin.java +++ /dev/null @@ -1,32 +0,0 @@ -package forestry.api.core; - -/** - * Optional way to hook into Forestry. - * - * Plugin classes can reside in any package, their class name however has to start with 'Plugin', i.e. 'PluginMyStuff'. - * - * @author SirSengir - */ -public interface IPlugin { - - /** - * @return true if the plugin is to be loaded. - */ - public boolean isAvailable(); - - /** - * Called during Forestry's @PreInit. - */ - public void preInit(); - - /** - * Called at the start of Forestry's @PostInit. - */ - public void doInit(); - - /** - * Called at the end of Forestry's @PostInit. - */ - public void postInit(); - -} diff --git a/BM_src/forestry/api/core/IStructureLogic.java b/BM_src/forestry/api/core/IStructureLogic.java deleted file mode 100644 index 500613a9..00000000 --- a/BM_src/forestry/api/core/IStructureLogic.java +++ /dev/null @@ -1,15 +0,0 @@ -package forestry.api.core; - -public interface IStructureLogic extends INBTTagable { - - /** - * @return String unique to the type of structure controlled by this structure logic. - */ - String getTypeUID(); - - /** - * Called by {@link ITileStructure}'s validateStructure(). - */ - void validateStructure(); - -} diff --git a/BM_src/forestry/api/core/ITextureManager.java b/BM_src/forestry/api/core/ITextureManager.java deleted file mode 100644 index 93347b35..00000000 --- a/BM_src/forestry/api/core/ITextureManager.java +++ /dev/null @@ -1,15 +0,0 @@ -package forestry.api.core; - -import net.minecraft.util.Icon; -import cpw.mods.fml.relauncher.Side; -import cpw.mods.fml.relauncher.SideOnly; - -@SideOnly(Side.CLIENT) -public interface ITextureManager { - - void registerIconProvider(IIconProvider provider); - - Icon getIcon(short texUID); - - Icon getDefault(String ident); -} diff --git a/BM_src/forestry/api/core/ITileStructure.java b/BM_src/forestry/api/core/ITileStructure.java deleted file mode 100644 index f89fdc11..00000000 --- a/BM_src/forestry/api/core/ITileStructure.java +++ /dev/null @@ -1,58 +0,0 @@ -package forestry.api.core; - -import net.minecraft.inventory.IInventory; -import net.minecraft.tileentity.TileEntity; - -/** - * The basis for multiblock components. - */ -public interface ITileStructure { - - /** - * @return String unique to the type of structure controlled by this structure logic. Should map to {@link IStructureLogic} - */ - String getTypeUID(); - - /** - * Should map to {@link IStructureLogic} - */ - void validateStructure(); - - /** - * Called when the structure resets. - */ - void onStructureReset(); - - /** - * @return TileEntity that is the master in this structure, null if no structure exists. - */ - ITileStructure getCentralTE(); - - /** - * Called to set the master TileEntity. Implementing TileEntity should keep track of the master's coordinates, not refer to the TE object itself. - * - * @param tile - */ - void setCentralTE(TileEntity tile); - - /** - * @return IInventory representing the TE's inventory. - */ - IInventory getInventory(); - - /** - * Only called on Forestry's own blocks. - */ - void makeMaster(); - - /** - * @return true if this TE is the master in a structure, false otherwise. - */ - boolean isMaster(); - - /** - * @return true if the TE is master or has a master. - */ - boolean isIntegratedIntoStructure(); - -} diff --git a/BM_src/forestry/api/core/IToolScoop.java b/BM_src/forestry/api/core/IToolScoop.java deleted file mode 100644 index 574a6edf..00000000 --- a/BM_src/forestry/api/core/IToolScoop.java +++ /dev/null @@ -1,8 +0,0 @@ -package forestry.api.core; - -/** - * Marks a tool as a scoop. - */ -public interface IToolScoop { - -} diff --git a/BM_src/forestry/api/core/ItemInterface.java b/BM_src/forestry/api/core/ItemInterface.java deleted file mode 100644 index 1d669076..00000000 --- a/BM_src/forestry/api/core/ItemInterface.java +++ /dev/null @@ -1,42 +0,0 @@ -package forestry.api.core; - -import net.minecraft.item.ItemStack; -import cpw.mods.fml.common.FMLLog; -import java.lang.reflect.Method; - -/** - * This is going away someday, use FML's GameRegistry instead. - * @deprecated - */ -@Deprecated -public class ItemInterface { - - /** - * Get items here! - * - * Blocks currently not supported. - * - * @param ident - * @return ItemStack representing the item, null if not found. - */ - public static ItemStack getItem(String ident) { - ItemStack item = null; - - try { - String pack = ItemInterface.class.getPackage().getName(); - pack = pack.substring(0, pack.lastIndexOf('.')); - String itemClass = pack.substring(0, pack.lastIndexOf('.')) + ".core.config.ForestryItem"; - Object[] enums = Class.forName(itemClass).getEnumConstants(); - for (Object e : enums) { - if (e.toString().equals(ident)) { - Method m = e.getClass().getMethod("getItemStack"); - return (ItemStack) m.invoke(e); - } - } - } catch (Exception ex) { - FMLLog.warning("Could not retrieve Forestry item identified by: " + ident); - } - - return item; - } -} diff --git a/BM_src/forestry/api/core/PluginInfo.java b/BM_src/forestry/api/core/PluginInfo.java deleted file mode 100644 index 16827d9f..00000000 --- a/BM_src/forestry/api/core/PluginInfo.java +++ /dev/null @@ -1,49 +0,0 @@ -package forestry.api.core; - -import java.lang.annotation.Retention; -import java.lang.annotation.RetentionPolicy; - -/** - * Optional annotation to provide additional information on IPlugins. This information will be available via the "/forestry plugin info $pluginID" command ingame. - * - * @author SirSengir - */ -@Retention(RetentionPolicy.RUNTIME) -public @interface PluginInfo { - - /** - * @return Unique identifier for the plugin, no spaces! - */ - String pluginID(); - - /** - * @return Nice and readable plugin name. - */ - String name(); - - /** - * @return Plugin author's name. - */ - String author() default ""; - - /** - * @return URL of plugin homepage. - */ - String url() default ""; - - /** - * @return Version of the plugin, if any. - */ - String version() default ""; - - /** - * @return Short description what the plugin does. - */ - String description() default ""; - - /** - * @return Not used (yet?). - */ - String help() default ""; - -} diff --git a/BM_src/forestry/api/core/Tabs.java b/BM_src/forestry/api/core/Tabs.java deleted file mode 100644 index b43f7a4c..00000000 --- a/BM_src/forestry/api/core/Tabs.java +++ /dev/null @@ -1,14 +0,0 @@ -package forestry.api.core; - -import net.minecraft.creativetab.CreativeTabs; - -/** - * References to the specialised tabs added by Forestry to creative inventory. - */ -public class Tabs { - - public static CreativeTabs tabApiculture; - public static CreativeTabs tabArboriculture; - public static CreativeTabs tabLepidopterology; - -} diff --git a/BM_src/forestry/api/core/package-info.java b/BM_src/forestry/api/core/package-info.java deleted file mode 100644 index fde2e5f9..00000000 --- a/BM_src/forestry/api/core/package-info.java +++ /dev/null @@ -1,3 +0,0 @@ -@API(apiVersion="1.0", owner="Forestry", provides="ForestryAPI|core") -package forestry.api.core; -import cpw.mods.fml.common.API; \ No newline at end of file diff --git a/BM_src/forestry/api/farming/Farmables.java b/BM_src/forestry/api/farming/Farmables.java deleted file mode 100644 index b307c378..00000000 --- a/BM_src/forestry/api/farming/Farmables.java +++ /dev/null @@ -1,15 +0,0 @@ -package forestry.api.farming; - -import java.util.Collection; -import java.util.HashMap; - -public class Farmables { - /** - * Can be used to add IFarmables to some of the vanilla farm logics. - * - * Identifiers: farmArboreal farmWheat farmGourd farmInfernal farmPoales farmSucculentes farmVegetables farmShroom - */ - public static HashMap> farmables = new HashMap>(); - - public static IFarmInterface farmInterface; -} diff --git a/BM_src/forestry/api/farming/ICrop.java b/BM_src/forestry/api/farming/ICrop.java deleted file mode 100644 index bad171ae..00000000 --- a/BM_src/forestry/api/farming/ICrop.java +++ /dev/null @@ -1,16 +0,0 @@ -package forestry.api.farming; - -import java.util.Collection; - -import net.minecraft.item.ItemStack; - -public interface ICrop { - - /** - * Harvests this crop. Performs the necessary manipulations to set the crop into a "harvested" state. - * - * @return Products harvested. - */ - Collection harvest(); - -} diff --git a/BM_src/forestry/api/farming/IFarmComponent.java b/BM_src/forestry/api/farming/IFarmComponent.java deleted file mode 100644 index bf30de49..00000000 --- a/BM_src/forestry/api/farming/IFarmComponent.java +++ /dev/null @@ -1,12 +0,0 @@ -package forestry.api.farming; - -import forestry.api.core.ITileStructure; - -public interface IFarmComponent extends ITileStructure { - - boolean hasFunction(); - - void registerListener(IFarmListener listener); - - void removeListener(IFarmListener listener); -} diff --git a/BM_src/forestry/api/farming/IFarmHousing.java b/BM_src/forestry/api/farming/IFarmHousing.java deleted file mode 100644 index a6895228..00000000 --- a/BM_src/forestry/api/farming/IFarmHousing.java +++ /dev/null @@ -1,68 +0,0 @@ -package forestry.api.farming; - -import net.minecraft.item.ItemStack; -import net.minecraft.world.World; -import net.minecraftforge.common.ForgeDirection; -import net.minecraftforge.fluids.FluidStack; - -public interface IFarmHousing { - - int[] getCoords(); - - int[] getArea(); - - int[] getOffset(); - - World getWorld(); - - /** - * Will run the work cycle on a master TE. Will do nothing on any other farm component. - * - * @return true if any work was done, false otherwise. - */ - boolean doWork(); - - boolean hasLiquid(FluidStack liquid); - - void removeLiquid(FluidStack liquid); - - boolean hasResources(ItemStack[] resources); - - void removeResources(ItemStack[] resources); - - /** - * Callback for {@link IFarmLogic}s to plant a sapling, seed, germling, stem. Will remove the appropriate germling from the farm's inventory. It's up to the - * logic to only call this on a valid location. - * - * @param farmable - * @param world - * @param x - * @param y - * @param z - * @return true if planting was successful, false otherwise. - */ - boolean plantGermling(IFarmable farmable, World world, int x, int y, int z); - - /* INTERACTION WITH HATCHES */ - boolean acceptsAsGermling(ItemStack itemstack); - - boolean acceptsAsResource(ItemStack itemstack); - - boolean acceptsAsFertilizer(ItemStack itemstack); - - /* LOGIC */ - /** - * Set a farm logic for the given direction. UP/DOWN/UNKNOWN are invalid! - * - * @param direction - * @param logic - */ - void setFarmLogic(ForgeDirection direction, IFarmLogic logic); - - /** - * Reset the farm logic for the given direction to default. UP/DOWN/UNKNOWN are invalid! - * - * @param direction - */ - void resetFarmLogic(ForgeDirection direction); -} diff --git a/BM_src/forestry/api/farming/IFarmInterface.java b/BM_src/forestry/api/farming/IFarmInterface.java deleted file mode 100644 index d784876f..00000000 --- a/BM_src/forestry/api/farming/IFarmInterface.java +++ /dev/null @@ -1,15 +0,0 @@ -package forestry.api.farming; - -import forestry.api.core.IStructureLogic; - -public interface IFarmInterface { - - /** - * Creates {@link IStructureLogic} for use in farm components. - * - * @param structure - * {@link IFarmComponent} to create the logic for. - * @return {@link IStructureLogic} for use in farm components - */ - IStructureLogic createFarmStructureLogic(IFarmComponent structure); -} diff --git a/BM_src/forestry/api/farming/IFarmListener.java b/BM_src/forestry/api/farming/IFarmListener.java deleted file mode 100644 index f3c1069b..00000000 --- a/BM_src/forestry/api/farming/IFarmListener.java +++ /dev/null @@ -1,71 +0,0 @@ -package forestry.api.farming; - -import java.util.Collection; - -import net.minecraft.item.ItemStack; -import net.minecraftforge.common.ForgeDirection; - -public interface IFarmListener { - - /** - * Called before a crop is harvested. - * - * @param crop - * ICrop about to be harvested. - * @return true to cancel further processing of this crop. - */ - boolean beforeCropHarvest(ICrop crop); - - /** - * Called after a crop has been harvested, but before harvested items are stowed in the farms inventory. - * - * @param harvested - * Collection of harvested stacks. May be manipulated. Ensure removal of stacks with 0 or less items! - * @param crop - * Harvested {@link ICrop} - */ - void afterCropHarvest(Collection harvested, ICrop crop); - - /** - * Called after the stack of collected items has been returned by the farm logic, but before it is added to the farm's pending queue. - * - * @param collected - * Collection of collected stacks. May be manipulated. Ensure removal of stacks with 0 or less items! - * @param logic - */ - void hasCollected(Collection collected, IFarmLogic logic); - - /** - * Called after farmland has successfully been cultivated by a farm logic. - * - * @param logic - * @param x - * @param y - * @param z - * @param direction - * @param extent - */ - void hasCultivated(IFarmLogic logic, int x, int y, int z, ForgeDirection direction, int extent); - - /** - * Called after the stack of harvested crops has been returned by the farm logic, but before it is added to the farm's pending queue. - * - * @param harvested - * @param logic - * @param x - * @param y - * @param z - * @param direction - * @param extent - */ - void hasScheduledHarvest(Collection harvested, IFarmLogic logic, int x, int y, int z, ForgeDirection direction, int extent); - - /** - * Can be used to cancel farm task on a per side/{@link IFarmLogic} basis. - * - * @param logic - * @param direction - * @return true to skip any work action on the given logic and direction for this work cycle. - */ - boolean cancelTask(IFarmLogic logic, ForgeDirection direction); -} diff --git a/BM_src/forestry/api/farming/IFarmLogic.java b/BM_src/forestry/api/farming/IFarmLogic.java deleted file mode 100644 index 7313a7ca..00000000 --- a/BM_src/forestry/api/farming/IFarmLogic.java +++ /dev/null @@ -1,34 +0,0 @@ -package forestry.api.farming; - -import java.util.Collection; - -import net.minecraft.item.ItemStack; -import net.minecraft.util.Icon; -import net.minecraft.util.ResourceLocation; -import net.minecraftforge.common.ForgeDirection; -import cpw.mods.fml.relauncher.Side; -import cpw.mods.fml.relauncher.SideOnly; - -public interface IFarmLogic { - - int getFertilizerConsumption(); - - int getWaterConsumption(float hydrationModifier); - - boolean isAcceptedResource(ItemStack itemstack); - - boolean isAcceptedGermling(ItemStack itemstack); - - Collection collect(); - - boolean cultivate(int x, int y, int z, ForgeDirection direction, int extent); - - Collection harvest(int x, int y, int z, ForgeDirection direction, int extent); - - @SideOnly(Side.CLIENT) - Icon getIcon(); - - ResourceLocation getSpriteSheet(); - - String getName(); -} diff --git a/BM_src/forestry/api/farming/IFarmable.java b/BM_src/forestry/api/farming/IFarmable.java deleted file mode 100644 index e3110ca4..00000000 --- a/BM_src/forestry/api/farming/IFarmable.java +++ /dev/null @@ -1,54 +0,0 @@ -package forestry.api.farming; - -import net.minecraft.item.ItemStack; -import net.minecraft.world.World; - -/** - * IGermling describes a crop or other harvestable object and can be used to inspect item stacks and blocks for matches. - */ -public interface IFarmable { - - /** - * @param world - * @param x - * @param y - * @param z - * @return true if the block at the given location is a "sapling" for this type, i.e. a non-harvestable immature version of the crop. - */ - boolean isSaplingAt(World world, int x, int y, int z); - - /** - * @param world - * @param x - * @param y - * @param z - * @return {@link ICrop} if the block at the given location is a harvestable and mature crop, null otherwise. - */ - ICrop getCropAt(World world, int x, int y, int z); - - /** - * @param itemstack - * @return true if the item is a valid germling (plantable sapling, seed, etc.) for this type. - */ - boolean isGermling(ItemStack itemstack); - - /** - * @param itemstack - * @return true if the item is something that can drop from this type without actually being harvested as a crop. (Apples or sapling from decaying leaves.) - */ - boolean isWindfall(ItemStack itemstack); - - /** - * Plants a sapling by manipulating the world. The {@link IFarmLogic} should have verified the given location as valid. Called by the {@link IFarmHousing} - * which handles resources. - * - * @param germling - * @param world - * @param x - * @param y - * @param z - * @return true on success, false otherwise. - */ - boolean plantSaplingAt(ItemStack germling, World world, int x, int y, int z); - -} diff --git a/BM_src/forestry/api/farming/package-info.java b/BM_src/forestry/api/farming/package-info.java deleted file mode 100644 index bc3d2ce3..00000000 --- a/BM_src/forestry/api/farming/package-info.java +++ /dev/null @@ -1,3 +0,0 @@ -@API(apiVersion="1.0", owner="ForestryAPI|core", provides="ForestryAPI|farming") -package forestry.api.farming; -import cpw.mods.fml.common.API; \ No newline at end of file diff --git a/BM_src/forestry/api/food/BeverageManager.java b/BM_src/forestry/api/food/BeverageManager.java deleted file mode 100644 index 35efb5d6..00000000 --- a/BM_src/forestry/api/food/BeverageManager.java +++ /dev/null @@ -1,8 +0,0 @@ -package forestry.api.food; - -public class BeverageManager { - public static IBeverageEffect[] effectList = new IBeverageEffect[128]; - - public static IInfuserManager infuserManager; - public static IIngredientManager ingredientManager; -} diff --git a/BM_src/forestry/api/food/IBeverageEffect.java b/BM_src/forestry/api/food/IBeverageEffect.java deleted file mode 100644 index 14b91b13..00000000 --- a/BM_src/forestry/api/food/IBeverageEffect.java +++ /dev/null @@ -1,12 +0,0 @@ -package forestry.api.food; - -import net.minecraft.entity.player.EntityPlayer; -import net.minecraft.world.World; - -public interface IBeverageEffect { - int getId(); - - void doEffect(World world, EntityPlayer player); - - String getDescription(); -} diff --git a/BM_src/forestry/api/food/IInfuserManager.java b/BM_src/forestry/api/food/IInfuserManager.java deleted file mode 100644 index 87527731..00000000 --- a/BM_src/forestry/api/food/IInfuserManager.java +++ /dev/null @@ -1,17 +0,0 @@ -package forestry.api.food; - -import net.minecraft.item.ItemStack; - -public interface IInfuserManager { - - void addMixture(int meta, ItemStack ingredient, IBeverageEffect effect); - - void addMixture(int meta, ItemStack[] ingredients, IBeverageEffect effect); - - ItemStack getSeasoned(ItemStack base, ItemStack[] ingredients); - - boolean hasMixtures(ItemStack[] ingredients); - - ItemStack[] getRequired(ItemStack[] ingredients); - -} diff --git a/BM_src/forestry/api/food/IIngredientManager.java b/BM_src/forestry/api/food/IIngredientManager.java deleted file mode 100644 index a7851c97..00000000 --- a/BM_src/forestry/api/food/IIngredientManager.java +++ /dev/null @@ -1,11 +0,0 @@ -package forestry.api.food; - -import net.minecraft.item.ItemStack; - -public interface IIngredientManager { - - String getDescription(ItemStack itemstack); - - void addIngredient(ItemStack ingredient, String description); - -} diff --git a/BM_src/forestry/api/food/package-info.java b/BM_src/forestry/api/food/package-info.java deleted file mode 100644 index 3731563a..00000000 --- a/BM_src/forestry/api/food/package-info.java +++ /dev/null @@ -1,3 +0,0 @@ -@API(apiVersion="1.0", owner="ForestryAPI|core", provides="ForestryAPI|food") -package forestry.api.food; -import cpw.mods.fml.common.API; \ No newline at end of file diff --git a/BM_src/forestry/api/fuels/EngineBronzeFuel.java b/BM_src/forestry/api/fuels/EngineBronzeFuel.java deleted file mode 100644 index 4a07e054..00000000 --- a/BM_src/forestry/api/fuels/EngineBronzeFuel.java +++ /dev/null @@ -1,30 +0,0 @@ -package forestry.api.fuels; - -import net.minecraft.item.ItemStack; -import net.minecraftforge.fluids.Fluid; - -public class EngineBronzeFuel { - /** - * Item that is valid fuel for a biogas engine. - */ - public final Fluid liquid; - /** - * Power produced by this fuel per work cycle of the engine. - */ - public final int powerPerCycle; - /** - * How many work cycles a single "stack" of this type lasts. - */ - public final int burnDuration; - /** - * By how much the normal heat dissipation rate of 1 is multiplied when using this fuel type. - */ - public final int dissipationMultiplier; - - public EngineBronzeFuel(Fluid liquid, int powerPerCycle, int burnDuration, int dissipationMultiplier) { - this.liquid = liquid; - this.powerPerCycle = powerPerCycle; - this.burnDuration = burnDuration; - this.dissipationMultiplier = dissipationMultiplier; - } -} diff --git a/BM_src/forestry/api/fuels/EngineCopperFuel.java b/BM_src/forestry/api/fuels/EngineCopperFuel.java deleted file mode 100644 index bb2d817b..00000000 --- a/BM_src/forestry/api/fuels/EngineCopperFuel.java +++ /dev/null @@ -1,26 +0,0 @@ -package forestry.api.fuels; - -import net.minecraft.item.ItemStack; - -public class EngineCopperFuel { - - /** - * Item that is valid fuel for a peat-fired engine. - */ - public final ItemStack fuel; - /** - * Power produced by this fuel per work cycle. - */ - public final int powerPerCycle; - /** - * Amount of work cycles this item lasts before being consumed. - */ - public final int burnDuration; - - public EngineCopperFuel(ItemStack fuel, int powerPerCycle, int burnDuration) { - this.fuel = fuel; - this.powerPerCycle = powerPerCycle; - this.burnDuration = burnDuration; - } - -} diff --git a/BM_src/forestry/api/fuels/FermenterFuel.java b/BM_src/forestry/api/fuels/FermenterFuel.java deleted file mode 100644 index 6d7cf379..00000000 --- a/BM_src/forestry/api/fuels/FermenterFuel.java +++ /dev/null @@ -1,24 +0,0 @@ -package forestry.api.fuels; - -import net.minecraft.item.ItemStack; - -public class FermenterFuel { - /** - * Item that is a valid fuel for the fermenter (i.e. fertilizer). - */ - public final ItemStack item; - /** - * How much is fermeted per work cycle, i.e. how much biomass is produced per cycle. - */ - public final int fermentPerCycle; - /** - * Amount of work cycles a single item of this fuel lasts before expiring. - */ - public final int burnDuration; - - public FermenterFuel(ItemStack item, int fermentPerCycle, int burnDuration) { - this.item = item; - this.fermentPerCycle = fermentPerCycle; - this.burnDuration = burnDuration; - } -} diff --git a/BM_src/forestry/api/fuels/FuelManager.java b/BM_src/forestry/api/fuels/FuelManager.java deleted file mode 100644 index 969fb872..00000000 --- a/BM_src/forestry/api/fuels/FuelManager.java +++ /dev/null @@ -1,29 +0,0 @@ -package forestry.api.fuels; - -import java.util.HashMap; - - -public class FuelManager { - /** - * Add new fuels for the fermenter here (i.e. fertilizer). Will accept Items, ItemStacks and Strings (Ore Dictionary) - */ - public static HashMap fermenterFuel; - /** - * Add new resources for the moistener here (i.e. wheat) - */ - public static HashMap moistenerResource; - /** - * Add new substrates for the rainmaker here - */ - public static HashMap rainSubstrate; - /** - * Add new fuels for EngineBronze (= biogas engine) here - */ - public static HashMap bronzeEngineFuel; - /** - * Add new fuels for EngineCopper (= peat-fired engine) here - */ - public static HashMap copperEngineFuel; - - // Generator fuel list in GeneratorFuel.class -} diff --git a/BM_src/forestry/api/fuels/GeneratorFuel.java b/BM_src/forestry/api/fuels/GeneratorFuel.java deleted file mode 100644 index 032f8e4c..00000000 --- a/BM_src/forestry/api/fuels/GeneratorFuel.java +++ /dev/null @@ -1,31 +0,0 @@ -package forestry.api.fuels; - -import java.util.HashMap; - -import net.minecraftforge.fluids.Fluid; -import net.minecraftforge.fluids.FluidStack; - -public class GeneratorFuel { - - public static HashMap fuels = new HashMap(); - - /** - * LiquidStack representing the fuel type and amount consumed per triggered cycle. - */ - public final FluidStack fuelConsumed; - /** - * EU emitted per tick while this fuel is being consumed in the generator (i.e. biofuel = 32, biomass = 8). - */ - public final int eu; - /** - * Rate at which the fuel is consumed. 1 - Every tick 2 - Every second tick 3 - Every third tick etc. - */ - public final int rate; - - public GeneratorFuel(FluidStack fuelConsumed, int eu, int rate) { - this.fuelConsumed = fuelConsumed; - this.eu = eu; - this.rate = rate; - } - -} diff --git a/BM_src/forestry/api/fuels/MoistenerFuel.java b/BM_src/forestry/api/fuels/MoistenerFuel.java deleted file mode 100644 index 15bbb1b8..00000000 --- a/BM_src/forestry/api/fuels/MoistenerFuel.java +++ /dev/null @@ -1,29 +0,0 @@ -package forestry.api.fuels; - -import net.minecraft.item.ItemStack; - -public class MoistenerFuel { - /** - * The item to use - */ - public final ItemStack item; - /** - * The item that leaves the moistener's working slot (i.e. mouldy wheat, decayed wheat, mulch) - */ - public final ItemStack product; - /** - * How much this item contributes to the final product of the moistener (i.e. mycelium) - */ - public final int moistenerValue; - /** - * What stage this product represents. Resources with lower stage value will be consumed first. - */ - public final int stage; - - public MoistenerFuel(ItemStack item, ItemStack product, int stage, int moistenerValue) { - this.item = item; - this.product = product; - this.stage = stage; - this.moistenerValue = moistenerValue; - } -} diff --git a/BM_src/forestry/api/fuels/RainSubstrate.java b/BM_src/forestry/api/fuels/RainSubstrate.java deleted file mode 100644 index 7aac5bce..00000000 --- a/BM_src/forestry/api/fuels/RainSubstrate.java +++ /dev/null @@ -1,35 +0,0 @@ -package forestry.api.fuels; - -import net.minecraft.item.ItemStack; - -public class RainSubstrate { - /** - * Rain substrate capable of activating the rainmaker. - */ - public ItemStack item; - /** - * Duration of the rain shower triggered by this substrate in Minecraft ticks. - */ - public int duration; - /** - * Speed of activation sequence triggered. - */ - public float speed; - - public boolean reverse; - - public RainSubstrate(ItemStack item, int duration, float speed) { - this(item, duration, speed, false); - } - - public RainSubstrate(ItemStack item, float speed) { - this(item, 0, speed, true); - } - - public RainSubstrate(ItemStack item, int duration, float speed, boolean reverse) { - this.item = item; - this.duration = duration; - this.speed = speed; - this.reverse = reverse; - } -} diff --git a/BM_src/forestry/api/fuels/package-info.java b/BM_src/forestry/api/fuels/package-info.java deleted file mode 100644 index a1c1324b..00000000 --- a/BM_src/forestry/api/fuels/package-info.java +++ /dev/null @@ -1,3 +0,0 @@ -@API(apiVersion="1.0", owner="ForestryAPI|core", provides="ForestryAPI|fuels") -package forestry.api.fuels; -import cpw.mods.fml.common.API; \ No newline at end of file diff --git a/BM_src/forestry/api/genetics/AlleleManager.java b/BM_src/forestry/api/genetics/AlleleManager.java deleted file mode 100644 index 24fda425..00000000 --- a/BM_src/forestry/api/genetics/AlleleManager.java +++ /dev/null @@ -1,24 +0,0 @@ -package forestry.api.genetics; - -import java.util.HashMap; - -import net.minecraft.item.ItemStack; - -/** - * Holds a static reference to the {@link IAlleleRegistry}. - */ -public class AlleleManager { - /** - * Main access point for all things related to genetics. See {@link IAlleleRegistry} for details. - */ - public static IAlleleRegistry alleleRegistry; - /** - * Translates plain leaf blocks into genetic data. Used by bees and butterflies to convert and pollinate foreign leaf blocks. - */ - public static HashMap ersatzSpecimen = new HashMap(); - /** - * Translates plain saplings into genetic data. Used by the treealyzer and the farm to convert foreign saplings. - */ - public static HashMap ersatzSaplings = new HashMap(); - -} diff --git a/BM_src/forestry/api/genetics/EnumTolerance.java b/BM_src/forestry/api/genetics/EnumTolerance.java deleted file mode 100644 index a30f64f2..00000000 --- a/BM_src/forestry/api/genetics/EnumTolerance.java +++ /dev/null @@ -1,11 +0,0 @@ -package forestry.api.genetics; - -public enum EnumTolerance { - NONE, - - BOTH_1, BOTH_2, BOTH_3, BOTH_4, BOTH_5, - - UP_1, UP_2, UP_3, UP_4, UP_5, - - DOWN_1, DOWN_2, DOWN_3, DOWN_4, DOWN_5 -} diff --git a/BM_src/forestry/api/genetics/IAllele.java b/BM_src/forestry/api/genetics/IAllele.java deleted file mode 100644 index 1b03d6dc..00000000 --- a/BM_src/forestry/api/genetics/IAllele.java +++ /dev/null @@ -1,29 +0,0 @@ -package forestry.api.genetics; - -/** - * An {@link IIndividual}'s {@link IGenome} is composed of {@link IChromosome}s consisting each of a primary and secondary {@link IAllele}. - * - * {@link IAllele}s hold all information regarding an {@link IIndividual}'s traits, from species to size, temperature tolerances, etc. - * - * Should be extended for different types of alleles. ISpeciesAllele, IBiomeAllele, etc. - * - * @author SirSengir - */ -public interface IAllele { - - /** - * @return A unique string identifier for this allele. - */ - String getUID(); - - /** - * @return true if the allele is dominant, false otherwise. - */ - boolean isDominant(); - - /** - * @return Localized short, human-readable identifier used in tooltips and beealyzer. - */ - String getName(); - -} diff --git a/BM_src/forestry/api/genetics/IAlleleArea.java b/BM_src/forestry/api/genetics/IAlleleArea.java deleted file mode 100644 index 308d98ca..00000000 --- a/BM_src/forestry/api/genetics/IAlleleArea.java +++ /dev/null @@ -1,10 +0,0 @@ -package forestry.api.genetics; - -/** - * Simple interface to allow adding additional alleles containing float values. - */ -public interface IAlleleArea extends IAllele { - - int[] getValue(); - -} \ No newline at end of file diff --git a/BM_src/forestry/api/genetics/IAlleleBoolean.java b/BM_src/forestry/api/genetics/IAlleleBoolean.java deleted file mode 100644 index a60c8e72..00000000 --- a/BM_src/forestry/api/genetics/IAlleleBoolean.java +++ /dev/null @@ -1,11 +0,0 @@ -package forestry.api.genetics; - -/** - * Simple interface to allow adding additional alleles containing float values. - */ -public interface IAlleleBoolean extends IAllele { - - boolean getValue(); - - -} diff --git a/BM_src/forestry/api/genetics/IAlleleEffect.java b/BM_src/forestry/api/genetics/IAlleleEffect.java deleted file mode 100644 index 3de0e4a8..00000000 --- a/BM_src/forestry/api/genetics/IAlleleEffect.java +++ /dev/null @@ -1,21 +0,0 @@ -package forestry.api.genetics; - -/** - * Basic effect allele. - */ -public interface IAlleleEffect extends IAllele { - /** - * @return true if this effect can combine with the effect on other allele (i.e. run before or after). combination can only occur if both effects are - * combinable. - */ - boolean isCombinable(); - - /** - * Returns the passed data storage if it is valid for this effect or a new one if the passed storage object was invalid for this effect. - * - * @param storedData - * @return {@link IEffectData} for the next cycle. - */ - IEffectData validateStorage(IEffectData storedData); - -} diff --git a/BM_src/forestry/api/genetics/IAlleleFloat.java b/BM_src/forestry/api/genetics/IAlleleFloat.java deleted file mode 100644 index 2ace6d1d..00000000 --- a/BM_src/forestry/api/genetics/IAlleleFloat.java +++ /dev/null @@ -1,10 +0,0 @@ -package forestry.api.genetics; - -/** - * Simple interface to allow adding additional alleles containing float values. - */ -public interface IAlleleFloat extends IAllele { - - float getValue(); - -} diff --git a/BM_src/forestry/api/genetics/IAlleleFlowers.java b/BM_src/forestry/api/genetics/IAlleleFlowers.java deleted file mode 100644 index c35f485b..00000000 --- a/BM_src/forestry/api/genetics/IAlleleFlowers.java +++ /dev/null @@ -1,11 +0,0 @@ -package forestry.api.genetics; - - -public interface IAlleleFlowers extends IAllele { - - /** - * @return FlowerProvider - */ - IFlowerProvider getProvider(); - -} diff --git a/BM_src/forestry/api/genetics/IAlleleHandler.java b/BM_src/forestry/api/genetics/IAlleleHandler.java deleted file mode 100644 index 593351b2..00000000 --- a/BM_src/forestry/api/genetics/IAlleleHandler.java +++ /dev/null @@ -1,36 +0,0 @@ -package forestry.api.genetics; - -/** - * @author Alex Binnie - * - * Handler for events that occur in IAlleleRegistry, such as registering alleles, branches etc. Useful for handling plugin specific behavior (i.e. - * creating a list of all bee species etc.) - * - */ -public interface IAlleleHandler { - - /** - * Called when an allele is registered with {@link IAlleleRegistry}. - * - * @param allele - * Allele which was registered. - */ - public void onRegisterAllele(IAllele allele); - - /** - * Called when a classification is registered with {@link IAlleleRegistry}. - * - * @param classification - * Classification which was registered. - */ - public void onRegisterClassification(IClassification classification); - - /** - * Called when a fruit family is registered with {@link IAlleleRegistry}. - * - * @param family - * Fruit family which was registered. - */ - public void onRegisterFruitFamily(IFruitFamily family); - -} diff --git a/BM_src/forestry/api/genetics/IAlleleInteger.java b/BM_src/forestry/api/genetics/IAlleleInteger.java deleted file mode 100644 index 61e089e3..00000000 --- a/BM_src/forestry/api/genetics/IAlleleInteger.java +++ /dev/null @@ -1,10 +0,0 @@ -package forestry.api.genetics; - -/** - * Simple interface to allow adding additional alleles containing integer values. - */ -public interface IAlleleInteger extends IAllele { - - int getValue(); - -} diff --git a/BM_src/forestry/api/genetics/IAllelePlantType.java b/BM_src/forestry/api/genetics/IAllelePlantType.java deleted file mode 100644 index 345f4e7d..00000000 --- a/BM_src/forestry/api/genetics/IAllelePlantType.java +++ /dev/null @@ -1,11 +0,0 @@ -package forestry.api.genetics; - -import java.util.EnumSet; - -import net.minecraftforge.common.EnumPlantType; - -public interface IAllelePlantType extends IAllele { - - public EnumSet getPlantTypes(); - -} diff --git a/BM_src/forestry/api/genetics/IAlleleRegistry.java b/BM_src/forestry/api/genetics/IAlleleRegistry.java deleted file mode 100644 index 56ee2174..00000000 --- a/BM_src/forestry/api/genetics/IAlleleRegistry.java +++ /dev/null @@ -1,221 +0,0 @@ -package forestry.api.genetics; - -import java.util.Collection; -import java.util.Map; - -import net.minecraft.item.ItemStack; -import net.minecraft.world.World; -import forestry.api.genetics.IClassification.EnumClassLevel; - -/** - * Manages {@link ISpeciesRoot}, {@link IAllele}s, {@link IFruitFamily}s, {@link IClassification}, the blacklist and allows creation of research notes. - * - * @author SirSengir - */ -public interface IAlleleRegistry { - - /* SPECIES ROOT CLASSES */ - /** - * Register a {@link ISpeciesRoot}. - * @param root {@link ISpeciesRoot} to register. - */ - void registerSpeciesRoot(ISpeciesRoot root); - - /** - * @return Map of all registered {@link ISpeciesRoot}. - */ - Map getSpeciesRoot(); - - /** - * Retrieve the {@link ISpeciesRoot} with the given uid. - * @param uid Unique id for the species class, i.e. "rootBees", "rootTrees", "rootButterflies". - * @return {@link ISpeciesRoot} if it exists, null otherwise. - */ - ISpeciesRoot getSpeciesRoot(String uid); - - /** - * Retrieve a matching {@link ISpeciesRoot} for the given itemstack. - * @param stack An itemstack possibly containing NBT data which can be converted by a species root. - * @return {@link ISpeciesRoot} if found, null otherwise. - */ - ISpeciesRoot getSpeciesRoot(ItemStack stack); - - /** - * Retrieve a matching {@link ISpeciesRoot} for the given {@link IIndividual}-class. - * @param clz Class extending {@link IIndividual}. - * @return {@link ISpeciesRoot} if found, null otherwise. - */ - ISpeciesRoot getSpeciesRoot(Class clz); - - /* INDIVIDUAL */ - /** - * Tests the itemstack for genetic information. - * - * @param stack - * @return true if the itemstack is an individual. - */ - boolean isIndividual(ItemStack stack); - - /** - * Retrieve genetic information from an itemstack. - * - * @param stack - * Stack to retrieve genetic information for. - * @return IIndividual containing genetic information, null if none could be extracted. - */ - IIndividual getIndividual(ItemStack stack); - - /* ALLELES */ - - /** - * @return HashMap of all currently registered alleles. - */ - Map getRegisteredAlleles(); - - /** - * Registers an allele. - * - * @param allele - * IAllele to register. - */ - void registerAllele(IAllele allele); - - /** - * @return HashMap of all registered deprecated alleles and their corresponding replacements - */ - Map getDeprecatedAlleleReplacements(); - - /** - * Registers an old allele UID and the new IAllele to replace instances of it with. - * - * @param deprecatedAlleleUID - * the old allele's UID - * @param replacement - * the IAllele that the deprecated Allele will be replaced with. - */ - void registerDeprecatedAlleleReplacement(String deprecatedAlleleUID, IAllele replacement); - - /** - * Gets an allele - * - * @param uid - * String based unique identifier of the allele to retrieve. - * @return IAllele if found or a replacement is found in the Deprecated Allele map, null otherwise. - */ - IAllele getAllele(String uid); - - /* THIS SHOULD BE PHASED OUT */ - @Deprecated - void reloadMetaMap(World world); - - @Deprecated - IAllele getFromMetaMap(int meta); - - @Deprecated - int getFromUIDMap(String uid); - - /* CLASSIFICATIONS */ - /** - * @return HashMap of all currently registered classifications. - */ - Map getRegisteredClassifications(); - - /** - * Registers a classification. - * - * @param classification - * IClassification to register. - */ - void registerClassification(IClassification classification); - - /** - * Creates and returns a classification. - * - * @param level - * EnumClassLevel of the classification to create. - * @param uid - * String based unique identifier. Implementation will throw an exception if the key is already taken. - * @param scientific - * Binomial for the given classification. - * @return Created {@link IClassification} for easier chaining. - */ - IClassification createAndRegisterClassification(EnumClassLevel level, String uid, String scientific); - - /** - * Gets a classification. - * - * @param uid - * String based unique identifier of the classification to retrieve. - * @return {@link IClassification} if found, null otherwise. - */ - IClassification getClassification(String uid); - - /* FRUIT FAMILIES */ - /** - * Get all registered fruit families. - * - * @return A map of registered fruit families and their UIDs. - */ - Map getRegisteredFruitFamilies(); - - /** - * Registers a new fruit family. - * - * @param family - */ - void registerFruitFamily(IFruitFamily family); - - /** - * Retrieves a fruit family identified by uid. - * - * @param uid - * @return {IFruitFamily} if found, false otherwise. - */ - IFruitFamily getFruitFamily(String uid); - - /* ALLELE HANDLERS */ - /** - * Registers a new IAlleleHandler - * - * @param handler - * IAlleleHandler to register. - */ - void registerAlleleHandler(IAlleleHandler handler); - - /* BLACKLIST */ - /** - * Blacklist an allele identified by its UID from mutation. - * - * @param uid - * UID of the allele to blacklist. - */ - void blacklistAllele(String uid); - - /** - * @return Current blacklisted alleles. - */ - Collection getAlleleBlacklist(); - - /** - * @param uid - * UID of the species to vet. - * @return true if the allele is blacklisted. - */ - boolean isBlacklisted(String uid); - - /* RESEARCH */ - /** - * @param researcher Username of the player who researched this note. - * @param species {@link IAlleleSpecies} to encode on the research note. - * @return An itemstack containing a research note with the given species encoded onto it. - */ - ItemStack getSpeciesNoteStack(String researcher, IAlleleSpecies species); - - /** - * @param researcher Username of the player who researched this note. - * @param mutation {@link IMutation} to encode on the research note. - * @return An itemstack containing a research note with the given mutation encoded onto it. - */ - ItemStack getMutationNoteStack(String researcher, IMutation mutation); - -} diff --git a/BM_src/forestry/api/genetics/IAlleleSpecies.java b/BM_src/forestry/api/genetics/IAlleleSpecies.java deleted file mode 100644 index 5e6850d1..00000000 --- a/BM_src/forestry/api/genetics/IAlleleSpecies.java +++ /dev/null @@ -1,106 +0,0 @@ -package forestry.api.genetics; - -import net.minecraft.item.ItemStack; -import net.minecraft.world.World; -import cpw.mods.fml.relauncher.Side; -import cpw.mods.fml.relauncher.SideOnly; -import forestry.api.core.EnumHumidity; -import forestry.api.core.EnumTemperature; -import forestry.api.core.IIconProvider; - -/** - * Basic species allele. - */ -public interface IAlleleSpecies extends IAllele { - - /** - * @return the {@link ISpeciesRoot} associated with this species. - */ - ISpeciesRoot getRoot(); - - /** - * @return Localized short description of this species. (May be null.) - */ - String getDescription(); - - /** - * Binomial name of the species sans genus ("Apis"). Returning "humboldti" will have the bee species flavour name be "Apis humboldti". Feel free to use fun - * names or return null. - * - * @return flavour text (may be null) - */ - String getBinomial(); - - /** - * Authority for the binomial name, e.g. "Sengir" on species of base Forestry. - * - * @return flavour text (may be null) - */ - String getAuthority(); - - /** - * @return Branch this species is associated with. - */ - IClassification getBranch(); - - /* RESEARCH */ - /** - * Complexity determines the difficulty researching a species. The values of primary and secondary are - * added together (and rounded) to determine the amount of pairs needed for successful research. - * @return Values between 3 - 11 are useful. - */ - int getComplexity(); - - /** - * @param itemstack - * @return A float signifying the chance for the passed itemstack to yield a research success. - */ - float getResearchSuitability(ItemStack itemstack); - - /** - * @param world - * @param researcher - * @param individual - * @param bountyLevel - * @return Array of itemstacks representing the bounty for this research success. - */ - ItemStack[] getResearchBounty(World world, String researcher, IIndividual individual, int bountyLevel); - - /* CLIMATE */ - /** - * @return Preferred temperature - */ - EnumTemperature getTemperature(); - - /** - * @return Preferred humidity - */ - EnumHumidity getHumidity(); - - /* MISC */ - /** - * @return true if the species icon should have a glowing effect. - */ - boolean hasEffect(); - - /** - * @return true if the species should not be displayed in NEI or creative inventory. - */ - boolean isSecret(); - - /** - * @return true to have the species count against the species total. - */ - boolean isCounted(); - - /* APPEARANCE */ - /** - * @param renderPass Render pass to get the colour for. - * @return Colour to use for the render pass. - */ - int getIconColour(int renderPass); - - @SideOnly(Side.CLIENT) - IIconProvider getIconProvider(); - -} diff --git a/BM_src/forestry/api/genetics/IAlleleTolerance.java b/BM_src/forestry/api/genetics/IAlleleTolerance.java deleted file mode 100644 index 11d5c688..00000000 --- a/BM_src/forestry/api/genetics/IAlleleTolerance.java +++ /dev/null @@ -1,10 +0,0 @@ -package forestry.api.genetics; - -/** - * Simple interface to allow adding additional alleles containing float values. - */ -public interface IAlleleTolerance extends IAllele { - - EnumTolerance getValue(); - -} diff --git a/BM_src/forestry/api/genetics/IBreedingTracker.java b/BM_src/forestry/api/genetics/IBreedingTracker.java deleted file mode 100644 index e51e58ba..00000000 --- a/BM_src/forestry/api/genetics/IBreedingTracker.java +++ /dev/null @@ -1,93 +0,0 @@ -package forestry.api.genetics; - -import net.minecraft.entity.player.EntityPlayer; -import net.minecraft.nbt.NBTTagCompound; -import forestry.api.apiculture.IBeekeepingMode; - -/** - * Keeps track of who bred and/or discovered which species in a world. - * - * @author SirSengir - */ -public interface IBreedingTracker { - - /** - * @return Name of the current {@link IBeekeepingMode}. - */ - String getModeName(); - - /** - * Set the current {@link IBeekeepingMode}. - */ - void setModeName(String name); - - /** - * @return Amount of species discovered. - */ - int getSpeciesBred(); - - /** - * Register the birth of an individual. Will mark it as discovered. - * - * @param individual - */ - void registerBirth(IIndividual individual); - - /** - * Register the pickup of an individual. - * - * @param individual - */ - void registerPickup(IIndividual individual); - - /** - * Marks a species as discovered. Should only be called from registerIndividual normally. - * - * @param species - */ - void registerSpecies(IAlleleSpecies species); - - /** - * Register a successful mutation. Will mark it as discovered. - */ - @Deprecated - void registerMutation(IAllele allele0, IAllele allele1); - - /** - * Register a successful mutation. Will mark it as discovered. - * - * @param mutation - */ - void registerMutation(IMutation mutation); - - /** - * Queries the tracker for discovered species. - * - * @param mutation - * Mutation to query for. - * @return true if the mutation has been discovered. - */ - boolean isDiscovered(IMutation mutation); - - /** - * Queries the tracker for discovered species. - * - * @param species - * Species to check. - * @return true if the species has been bred. - */ - boolean isDiscovered(IAlleleSpecies species); - - /** - * Synchronizes the tracker to the client side. Should be called before opening any gui needing that information. - * - * @param player - */ - void synchToPlayer(EntityPlayer player); - - /* LOADING & SAVING */ - void decodeFromNBT(NBTTagCompound nbttagcompound); - - void encodeToNBT(NBTTagCompound nbttagcompound); - -} diff --git a/BM_src/forestry/api/genetics/IChromosome.java b/BM_src/forestry/api/genetics/IChromosome.java deleted file mode 100644 index 1a6668a1..00000000 --- a/BM_src/forestry/api/genetics/IChromosome.java +++ /dev/null @@ -1,20 +0,0 @@ -package forestry.api.genetics; - -import forestry.api.core.INBTTagable; - -/** - * Implementations other than Forestry's default one are not supported! - * - * @author SirSengir - */ -public interface IChromosome extends INBTTagable { - - IAllele getPrimaryAllele(); - - IAllele getSecondaryAllele(); - - IAllele getInactiveAllele(); - - IAllele getActiveAllele(); - -} diff --git a/BM_src/forestry/api/genetics/IChromosomeType.java b/BM_src/forestry/api/genetics/IChromosomeType.java deleted file mode 100644 index c0a27f8b..00000000 --- a/BM_src/forestry/api/genetics/IChromosomeType.java +++ /dev/null @@ -1,19 +0,0 @@ -package forestry.api.genetics; - -/* - * Interface to be implemented by the enums representing the various chromosomes - */ -public interface IChromosomeType { - - /* - * Get class which all alleles on this chromosome must interface - */ - Class getAlleleClass(); - - String getName(); - - ISpeciesRoot getSpeciesRoot(); - - int ordinal(); - -} \ No newline at end of file diff --git a/BM_src/forestry/api/genetics/IClassification.java b/BM_src/forestry/api/genetics/IClassification.java deleted file mode 100644 index 56f15a0a..00000000 --- a/BM_src/forestry/api/genetics/IClassification.java +++ /dev/null @@ -1,102 +0,0 @@ -package forestry.api.genetics; - -/** - * Biological classifications from domain down to genus. - * - * Used by the *alyzers to display hierarchies. - */ -public interface IClassification { - - public enum EnumClassLevel { - - DOMAIN(0x777fff, true), KINGDOM(0x77c3ff), PHYLUM(0x77ffb6, true), DIVISION(0x77ffb6, true), CLASS(0x7bff77), ORDER(0xbeff77), FAMILY(0xfffd77), - SUBFAMILY(0xfffd77), TRIBE(0xfffd77), GENUS(0xffba77); - - private int colour; - private boolean isDroppable; - - private EnumClassLevel(int colour) { - this(colour, false); - } - - private EnumClassLevel(int colour, boolean isDroppable) { - this.colour = colour; - this.isDroppable = isDroppable; - } - - /** - * @return Colour to use for displaying this classification. - */ - public int getColour() { - return colour; - } - - /** - * @return Indicates whether display of this classification level can be ommitted in case of space constraints. - */ - public boolean isDroppable() { - return isDroppable; - } - } - - /** - * @return Level inside the full hierarchy this particular classification is located at. - */ - EnumClassLevel getLevel(); - - /** - * @return Unique String identifier. - */ - String getUID(); - - /** - * @return Localized branch name for user display. - */ - String getName(); - - /** - * A branch approximates a "genus" in real life. Real life examples: "Micrapis", "Megapis" - * - * @return flavour text (may be null) - */ - String getScientific(); - - /** - * @return Localized description of this branch. (May be null.) - */ - String getDescription(); - - /** - * @return Member groups of this one. - */ - IClassification[] getMemberGroups(); - - /** - * Adds subgroups to this group. - */ - void addMemberGroup(IClassification group); - - /** - * @return Member species of this group. - */ - IAlleleSpecies[] getMemberSpecies(); - - /** - * Used by the allele registry to populate internal collection of branch members on the fly. - * - * @param species - */ - void addMemberSpecies(IAlleleSpecies species); - - /** - * @return Parent classification, null if this is root. - */ - IClassification getParent(); - - /** - * Only used internally by the AlleleRegistry if this classification has been added to another one. - * - * @param parent - */ - void setParent(IClassification parent); -} diff --git a/BM_src/forestry/api/genetics/IEffectData.java b/BM_src/forestry/api/genetics/IEffectData.java deleted file mode 100644 index 89c396ad..00000000 --- a/BM_src/forestry/api/genetics/IEffectData.java +++ /dev/null @@ -1,22 +0,0 @@ -package forestry.api.genetics; - -import forestry.api.core.INBTTagable; - -/** - * Container to hold some temporary data for bee, tree and butterfly effects. - * - * @author SirSengir - */ -public interface IEffectData extends INBTTagable { - void setInteger(int index, int val); - - void setFloat(int index, float val); - - void setBoolean(int index, boolean val); - - int getInteger(int index); - - float getFloat(int index); - - boolean getBoolean(int index); -} diff --git a/BM_src/forestry/api/genetics/IFlowerProvider.java b/BM_src/forestry/api/genetics/IFlowerProvider.java deleted file mode 100644 index dd7f4072..00000000 --- a/BM_src/forestry/api/genetics/IFlowerProvider.java +++ /dev/null @@ -1,51 +0,0 @@ -package forestry.api.genetics; - -import net.minecraft.item.ItemStack; -import net.minecraft.world.World; - -public interface IFlowerProvider { - /** - * @param world - * @param individual - * @param x - * @param y - * @param z - * @return True if the block at the passed coordinates is a valid flower for the species. - */ - boolean isAcceptedFlower(World world, IIndividual individual, int x, int y, int z); - - boolean isAcceptedPollinatable(World world, IPollinatable pollinatable); - - /** - * @param world - * @param individual - * @param x - * @param y - * @param z - * @return True if a flower was planted. - */ - boolean growFlower(World world, IIndividual individual, int x, int y, int z); - - /** - * @return Short, human-readable identifier used in the beealyzer. - */ - String getDescription(); - - /** - * Allows the flower provider to affect the produce at the given location. - * @param world - * @param individual - * @param x - * @param y - * @param z - * @param products - * @return Array of itemstacks being the (modified or unmodified) produce. - */ - ItemStack[] affectProducts(World world, IIndividual individual, int x, int y, int z, ItemStack[] products); - - /** - * @return Array of itemstacks representing valid flowers for the flower provider. The first in the array is for use as an icon Return null or an empty - * array if the flower does not have an itemstack - */ - ItemStack[] getItemStacks(); -} diff --git a/BM_src/forestry/api/genetics/IFruitBearer.java b/BM_src/forestry/api/genetics/IFruitBearer.java deleted file mode 100644 index 3db6c1c6..00000000 --- a/BM_src/forestry/api/genetics/IFruitBearer.java +++ /dev/null @@ -1,45 +0,0 @@ -package forestry.api.genetics; - -import java.util.Collection; - -import net.minecraft.item.ItemStack; - -/** - * Can be implemented by tile entities which can bear fruit. - * - * @author SirSengir - */ -public interface IFruitBearer { - - /** - * @return true if the actual tile can bear fruits. - */ - boolean hasFruit(); - - /** - * @return Family of the potential fruits on this tile. - */ - IFruitFamily getFruitFamily(); - - /** - * Picks the fruits of this tile, resetting it to unripe fruits. - * - * @param tool - * Tool used in picking the fruits. May be null. - * @return Picked fruits. - */ - Collection pickFruit(ItemStack tool); - - /** - * @return float indicating the ripeness of the fruit with >= 1.0f indicating full ripeness. - */ - float getRipeness(); - - /** - * Increases the ripeness of the fruit. - * - * @param add - * Float to add to the ripeness. Will truncate to valid values. - */ - void addRipeness(float add); -} diff --git a/BM_src/forestry/api/genetics/IFruitFamily.java b/BM_src/forestry/api/genetics/IFruitFamily.java deleted file mode 100644 index 10393b72..00000000 --- a/BM_src/forestry/api/genetics/IFruitFamily.java +++ /dev/null @@ -1,27 +0,0 @@ -package forestry.api.genetics; - -public interface IFruitFamily { - - /** - * @return Unique String identifier. - */ - String getUID(); - - /** - * @return Localized family name for user display. - */ - String getName(); - - /** - * A scientific-y name for this fruit family - * - * @return flavour text (may be null) - */ - String getScientific(); - - /** - * @return Localized description of this fruit family. (May be null.) - */ - String getDescription(); - -} diff --git a/BM_src/forestry/api/genetics/IGenome.java b/BM_src/forestry/api/genetics/IGenome.java deleted file mode 100644 index 866c0851..00000000 --- a/BM_src/forestry/api/genetics/IGenome.java +++ /dev/null @@ -1,25 +0,0 @@ -package forestry.api.genetics; - -import forestry.api.core.INBTTagable; - -/** - * Holds the {@link IChromosome}s which comprise the traits of a given individual. - * - * Only the default implementation is supported. - */ -public interface IGenome extends INBTTagable { - - IAlleleSpecies getPrimary(); - - IAlleleSpecies getSecondary(); - - IChromosome[] getChromosomes(); - - IAllele getActiveAllele(int chromosome); - - IAllele getInactiveAllele(int chromosome); - - boolean isGeneticEqual(IGenome other); - - ISpeciesRoot getSpeciesRoot(); -} diff --git a/BM_src/forestry/api/genetics/IHousing.java b/BM_src/forestry/api/genetics/IHousing.java deleted file mode 100644 index fe59233c..00000000 --- a/BM_src/forestry/api/genetics/IHousing.java +++ /dev/null @@ -1,46 +0,0 @@ -package forestry.api.genetics; - -import forestry.api.core.EnumHumidity; -import forestry.api.core.EnumTemperature; -import net.minecraft.item.ItemStack; -import net.minecraft.world.World; - -/** - * Any housing, hatchery or nest which is a fixed location in the world. - */ -public interface IHousing { - - /** - * @return String containing the login of this housing's owner. - */ - String getOwnerName(); - - World getWorld(); - - int getXCoord(); - - int getYCoord(); - - int getZCoord(); - - int getBiomeId(); - - EnumTemperature getTemperature(); - - EnumHumidity getHumidity(); - - void setErrorState(int state); - - int getErrorOrdinal(); - - /** - * Adds products to the housing's inventory. - * - * @param product - * ItemStack with the product to add. - * @param all - * @return Boolean indicating success or failure. - */ - boolean addProduct(ItemStack product, boolean all); - -} diff --git a/BM_src/forestry/api/genetics/IIndividual.java b/BM_src/forestry/api/genetics/IIndividual.java deleted file mode 100644 index f538036b..00000000 --- a/BM_src/forestry/api/genetics/IIndividual.java +++ /dev/null @@ -1,52 +0,0 @@ -package forestry.api.genetics; - -import java.util.List; - -import forestry.api.core.INBTTagable; - -/** - * An actual individual with genetic information. - * - * Only the default implementation is supported. - */ -public interface IIndividual extends INBTTagable { - - String getIdent(); - - String getDisplayName(); - - void addTooltip(List list); - - /** - * Call to mark the IIndividual as analyzed. - * @return true if the IIndividual has not been analyzed previously. - */ - boolean analyze(); - - boolean isAnalyzed(); - - boolean hasEffect(); - - boolean isSecret(); - - IGenome getGenome(); - - /** - * Check whether the genetic makeup of two IIndividuals is identical. Ignores additional data like generations, irregular mating, etc.. - * @param other - * @return true if the given other IIndividual has the amount of chromosomes and their alleles are identical. - */ - boolean isGeneticEqual(IIndividual other); - - /** - * @return A deep copy of this individual. - */ - IIndividual copy(); - - /** - * @param chromosomeOrdinal Ordinal of the chromosome to check. - * @return true if both primary and secondary allele on the given chromosome match. - */ - boolean isPureBred(int chromosomeOrdinal); - -} diff --git a/BM_src/forestry/api/genetics/IIndividualLiving.java b/BM_src/forestry/api/genetics/IIndividualLiving.java deleted file mode 100644 index 093e9292..00000000 --- a/BM_src/forestry/api/genetics/IIndividualLiving.java +++ /dev/null @@ -1,40 +0,0 @@ -package forestry.api.genetics; - -import net.minecraft.world.World; - -public interface IIndividualLiving extends IIndividual { - - /** - * @return Genetic information of the mate, null if unmated. - */ - IGenome getMate(); - - /** - * @return Current health of the individual. - */ - int getHealth(); - - /** - * @return Maximum health of the individual. - */ - int getMaxHealth(); - - /** - * Age the individual. - * @param world - * @param ageModifier - */ - void age(World world, float ageModifier); - - /** - * Mate with the given individual. - * @param individual the {@link IIndividual} to mate this one with. - */ - void mate(IIndividual individual); - - /** - * @return true if the individual is among the living. - */ - boolean isAlive(); - -} diff --git a/BM_src/forestry/api/genetics/ILegacyHandler.java b/BM_src/forestry/api/genetics/ILegacyHandler.java deleted file mode 100644 index 18412e85..00000000 --- a/BM_src/forestry/api/genetics/ILegacyHandler.java +++ /dev/null @@ -1,10 +0,0 @@ -package forestry.api.genetics; - -/** - * AlleleManager.alleleRegistry can be cast to this type. - */ -public interface ILegacyHandler { - void registerLegacyMapping(int id, String uid); - - IAllele getFromLegacyMap(int id); -} diff --git a/BM_src/forestry/api/genetics/IMutation.java b/BM_src/forestry/api/genetics/IMutation.java deleted file mode 100644 index 5eb6dc51..00000000 --- a/BM_src/forestry/api/genetics/IMutation.java +++ /dev/null @@ -1,63 +0,0 @@ -package forestry.api.genetics; - -import java.util.Collection; - -/** - * Individuals can be seeded either as hive drops or as mutation results. - * - * {@link IAlleleRegistry} manages these. - * - * @author SirSengir - */ -public interface IMutation { - - /** - * @return {@link ISpeciesRoot} this mutation is associated with. - */ - ISpeciesRoot getRoot(); - - /** - * @return first of the alleles implementing IAlleleSpecies required for this mutation. - */ - IAllele getAllele0(); - - /** - * @return second of the alleles implementing IAlleleSpecies required for this mutation. - */ - IAllele getAllele1(); - - /** - * @return Array of {@link IAllele} representing the full default genome of the mutated side. - * - * Make sure to return a proper array for the species class. Returning an allele of the wrong type will cause cast errors on runtime. - */ - IAllele[] getTemplate(); - - /** - * @return Unmodified base chance for mutation to fire. - */ - float getBaseChance(); - - /** - * @return Collection of localized, human-readable strings describing special mutation conditions, if any. - */ - Collection getSpecialConditions(); - - /** - * @param allele - * @return true if the passed allele is one of the alleles participating in this mutation. - */ - boolean isPartner(IAllele allele); - - /** - * @param allele - * @return the other allele which was not passed as argument. - */ - IAllele getPartner(IAllele allele); - - /** - * @return true if the mutation should not be displayed in the beealyzer. - */ - boolean isSecret(); - -} diff --git a/BM_src/forestry/api/genetics/IPollinatable.java b/BM_src/forestry/api/genetics/IPollinatable.java deleted file mode 100644 index 6ce41959..00000000 --- a/BM_src/forestry/api/genetics/IPollinatable.java +++ /dev/null @@ -1,43 +0,0 @@ -package forestry.api.genetics; - -import java.util.EnumSet; - -import net.minecraftforge.common.EnumPlantType; - -/** - * Can be implemented by tile entities, if they wish to be pollinatable. - * - * @author SirSengir - */ -public interface IPollinatable { - - /** - * @return plant types this pollinatable is classified as. (Can be used by bees to determine whether to interact or not. - */ - EnumSet getPlantType(); - - /** - * @return IIndividual containing the genetic information of this IPollinatable - */ - IIndividual getPollen(); - - /** - * Checks whether this {@link IPollinatable} can mate with the given pollen. - * - * Must be the one to check genetic equivalency. - * - * @param pollen - * IIndividual representing the pollen. - * @return true if mating is possible, false otherwise. - */ - boolean canMateWith(IIndividual pollen); - - /** - * Pollinates this entity. - * - * @param pollen - * IIndividual representing the pollen. - */ - void mateWith(IIndividual pollen); - -} diff --git a/BM_src/forestry/api/genetics/ISpeciesRoot.java b/BM_src/forestry/api/genetics/ISpeciesRoot.java deleted file mode 100644 index 9e281a25..00000000 --- a/BM_src/forestry/api/genetics/ISpeciesRoot.java +++ /dev/null @@ -1,160 +0,0 @@ -package forestry.api.genetics; - -import java.util.ArrayList; -import java.util.Collection; -import java.util.Map; -import java.util.Random; - -import net.minecraft.item.ItemStack; -import net.minecraft.nbt.NBTTagCompound; -import net.minecraft.world.World; - -/** - * Describes a class of species (i.e. bees, trees, butterflies), provides helper functions and access to common functionality. - */ -public interface ISpeciesRoot { - - /** - * @return A unique identifier for the species class. Should consist of "root" + a common name for the species class in camel-case, i.e. "rootBees", "rootTrees", "rootButterflies". - */ - String getUID(); - - /** - * @return Class of the sub-interface inheriting from {@link IIndividual}. - */ - Class getMemberClass(); - - /** - * @return Integer denoting the number of (counted) species of this type in the world. - */ - int getSpeciesCount(); - - /** - * Used to check whether a given itemstack contains genetic data corresponding to an {@link IIndividual} of this class. - * @param stack itemstack to check. - * @return true if the itemstack contains an {@link IIndividual} of this class, false otherwise. - */ - boolean isMember(ItemStack stack); - - /** - * Used to check whether a given itemstack contains genetic data corresponding to an {@link IIndividual} of this class and matches the given type. - * @param stack itemstack to check. - * @param type Integer denoting the type needed to match. (i.e. butterfly vs. butterfly serum; bee queens, princesses, drones; etc.) - * @return true if the itemstack contains an {@link IIndividual} of this class, false otherwise. - */ - boolean isMember(ItemStack stack, int type); - - /** - * Used to check whether the given {@link IIndividual} is member of this class. - * @param individual {@link IIndividual} to check. - * @return true if the individual is member of this class, false otherwise. - */ - boolean isMember(IIndividual individual); - - IIndividual getMember(ItemStack stack); - - IIndividual getMember(NBTTagCompound compound); - - ItemStack getMemberStack(IIndividual individual, int type); - - /* BREEDING TRACKER */ - IBreedingTracker getBreedingTracker(World world, String player); - - /* GENOME MANIPULATION */ - IIndividual templateAsIndividual(IAllele[] template); - - IIndividual templateAsIndividual(IAllele[] templateActive, IAllele[] templateInactive); - - IChromosome[] templateAsChromosomes(IAllele[] template); - - IChromosome[] templateAsChromosomes(IAllele[] templateActive, IAllele[] templateInactive); - - IGenome templateAsGenome(IAllele[] template); - - IGenome templateAsGenome(IAllele[] templateActive, IAllele[] templateInactive); - - /* TEMPLATES */ - /** - * Registers a bee template using the UID of the first allele as identifier. - * - * @param template - */ - void registerTemplate(IAllele[] template); - - /** - * Registers a bee template using the passed identifier. - * - * @param template - */ - void registerTemplate(String identifier, IAllele[] template); - - /** - * Retrieves a registered template using the passed identifier. - * - * @param identifier - * @return Array of {@link IAllele} representing a genome. - */ - IAllele[] getTemplate(String identifier); - - /** - * @return Default individual template for use when stuff breaks. - */ - IAllele[] getDefaultTemplate(); - - /** - * @param rand Random to use. - * @return A random template from the pool of registered species templates. - */ - IAllele[] getRandomTemplate(Random rand); - - Map getGenomeTemplates(); - ArrayList getIndividualTemplates(); - - /* MUTATIONS */ - /** - * Use to register mutations. - * - * @param mutation - */ - void registerMutation(IMutation mutation); - - /** - * @return All registered mutations. - */ - Collection getMutations(boolean shuffle); - - /** - * @param other Allele to match mutations against. - * @return All registered mutations the given allele is part of. - */ - Collection getCombinations(IAllele other); - - /** - * @param result {@link IAllele} to search for. - * @return All registered mutations the given {@link IAllele} is the result of. - */ - Collection getPaths(IAllele result, int chromosomeOrdinal); - - /* RESEARCH */ - /** - * @return List of generic catalysts which should be accepted for research by species of this class. - */ - Map getResearchCatalysts(); - - /** - * Sets an item stack as a valid (generic) research catalyst for this class. - * @param itemstack ItemStack to set as suitable. - * @param suitability Float between 0 and 1 to indicate suitability. - */ - void setResearchSuitability(ItemStack itemstack, float suitability); - - /** - * @return Array of {@link IChromosomeType} which are in this species genome - */ - IChromosomeType[] getKaryotype(); - - /** - * @return {@link IChromosomeType} which is the "key" for this species class, usually the species chromosome. - */ - IChromosomeType getKaryotypeKey(); -} diff --git a/BM_src/forestry/api/genetics/package-info.java b/BM_src/forestry/api/genetics/package-info.java deleted file mode 100644 index b7663473..00000000 --- a/BM_src/forestry/api/genetics/package-info.java +++ /dev/null @@ -1,3 +0,0 @@ -@API(apiVersion="1.0", owner="ForestryAPI|core", provides="ForestryAPI|genetics") -package forestry.api.genetics; -import cpw.mods.fml.common.API; \ No newline at end of file diff --git a/BM_src/forestry/api/lepidopterology/EnumButterflyChromosome.java b/BM_src/forestry/api/lepidopterology/EnumButterflyChromosome.java deleted file mode 100644 index c019af21..00000000 --- a/BM_src/forestry/api/lepidopterology/EnumButterflyChromosome.java +++ /dev/null @@ -1,93 +0,0 @@ -package forestry.api.lepidopterology; - -import forestry.api.genetics.AlleleManager; -import forestry.api.genetics.IAllele; -import forestry.api.genetics.IAlleleArea; -import forestry.api.genetics.IAlleleBoolean; -import forestry.api.genetics.IAlleleFloat; -import forestry.api.genetics.IAlleleFlowers; -import forestry.api.genetics.IAlleleInteger; -import forestry.api.genetics.IAlleleTolerance; -import forestry.api.genetics.IChromosomeType; -import forestry.api.genetics.ISpeciesRoot; - -public enum EnumButterflyChromosome implements IChromosomeType { - /** - * Species of the bee. Alleles here must implement {@link IAlleleButterflySpecies}. - */ - SPECIES(IAlleleButterflySpecies.class), - /** - * Physical size. - */ - SIZE(IAlleleFloat.class), - /** - * Flight speed. - */ - SPEED(IAlleleFloat.class), - /** - * How long the butterfly can last without access to matching pollinatables. - */ - LIFESPAN(IAlleleInteger.class), - /** - * Species with a higher metabolism have a higher appetite and may cause more damage to their environment. - */ - METABOLISM(IAlleleInteger.class), - /** - * Determines likelyhood of caterpillars and length of caterpillar/pupation phase. Also: Number of max caterpillars after mating? - */ - FERTILITY(IAlleleInteger.class), - /** - * Not sure yet. - */ - TEMPERATURE_TOLERANCE(IAlleleTolerance.class), - /** - * Not sure yet. - */ - HUMIDITY_TOLERANCE(IAlleleTolerance.class), - /** - * Only nocturnal butterflys/moths will fly at night. Allows daylight activity for naturally nocturnal species. - */ - NOCTURNAL(IAlleleBoolean.class), - /** - * Only tolerant flyers will fly in the rain. - */ - TOLERANT_FLYER(IAlleleBoolean.class), - /** - * Fire resistance. - */ - FIRE_RESIST(IAlleleBoolean.class), - /** - * Required flowers/leaves. - */ - FLOWER_PROVIDER(IAlleleFlowers.class), - /** - * Extra effect to surroundings. (?) - */ - EFFECT(IAlleleButterflyEffect.class), - /** - * Not used yet - */ - TERRITORY(IAlleleArea.class), - ; - - Class clss; - - EnumButterflyChromosome(Class clss) { - this.clss = clss; - } - - @Override - public Class getAlleleClass() { - return clss; - } - - @Override - public String getName() { - return this.toString().toLowerCase(); - } - - @Override - public ISpeciesRoot getSpeciesRoot() { - return AlleleManager.alleleRegistry.getSpeciesRoot("rootButterflies"); - } -} diff --git a/BM_src/forestry/api/lepidopterology/EnumFlutterType.java b/BM_src/forestry/api/lepidopterology/EnumFlutterType.java deleted file mode 100644 index b7f5f597..00000000 --- a/BM_src/forestry/api/lepidopterology/EnumFlutterType.java +++ /dev/null @@ -1,10 +0,0 @@ -package forestry.api.lepidopterology; - -public enum EnumFlutterType { - BUTTERFLY, - SERUM, - CATERPILLAR, - NONE; - - public static final EnumFlutterType[] VALUES = values(); -} \ No newline at end of file diff --git a/BM_src/forestry/api/lepidopterology/IAlleleButterflyEffect.java b/BM_src/forestry/api/lepidopterology/IAlleleButterflyEffect.java deleted file mode 100644 index e7d76e64..00000000 --- a/BM_src/forestry/api/lepidopterology/IAlleleButterflyEffect.java +++ /dev/null @@ -1,16 +0,0 @@ -package forestry.api.lepidopterology; - -import forestry.api.genetics.IAlleleEffect; -import forestry.api.genetics.IEffectData; - -public interface IAlleleButterflyEffect extends IAlleleEffect { - - /** - * Used by butterflies to trigger effects in the world. - * @param butterfly {@link IEntityButterfly} - * @param storedData - * @return {@link forestry.api.genetics.IEffectData} for the next cycle. - */ - IEffectData doEffect(IEntityButterfly butterfly, IEffectData storedData); - -} diff --git a/BM_src/forestry/api/lepidopterology/IAlleleButterflySpecies.java b/BM_src/forestry/api/lepidopterology/IAlleleButterflySpecies.java deleted file mode 100644 index fb0cbe6a..00000000 --- a/BM_src/forestry/api/lepidopterology/IAlleleButterflySpecies.java +++ /dev/null @@ -1,53 +0,0 @@ -package forestry.api.lepidopterology; - -import java.util.EnumSet; -import java.util.Map; - -import net.minecraft.item.ItemStack; -import net.minecraftforge.common.BiomeDictionary; - -import forestry.api.genetics.IAlleleSpecies; - -public interface IAlleleButterflySpecies extends IAlleleSpecies { - - /** - * @return the IBeeRoot - */ - IButterflyRoot getRoot(); - - /** - * @return Path of the texture to use for entity rendering. - */ - String getEntityTexture(); - - /** - * Allows butterflies to restrict random spawns beyond the restrictions set by getTemperature() and getHumidity(). - * - * @return EnumSet of biome tags this butterfly species can be spawned in. - */ - EnumSet getSpawnBiomes(); - - /** - * @return true if a prospective spawn biome must not match a biome tag outside of getSpawnBiomes. - */ - boolean strictSpawnMatch(); - - /** - * @return Float between 0 and 1 representing the rarity of the species, will affect spawn rate. - */ - float getRarity(); - - /** - * @return Float representing the distance below which this butterfly will take flight if it detects a player which is not sneaking. - */ - float getFlightDistance(); - - /** - * @return true if this species is only active at night. - */ - boolean isNocturnal(); - - Map getButterflyLoot(); - - Map getCaterpillarLoot(); -} diff --git a/BM_src/forestry/api/lepidopterology/IButterfly.java b/BM_src/forestry/api/lepidopterology/IButterfly.java deleted file mode 100644 index c21f87a3..00000000 --- a/BM_src/forestry/api/lepidopterology/IButterfly.java +++ /dev/null @@ -1,71 +0,0 @@ -package forestry.api.lepidopterology; - -import net.minecraft.item.ItemStack; -import net.minecraft.world.World; -import forestry.api.genetics.IIndividualLiving; - -public interface IButterfly extends IIndividualLiving { - - IButterflyGenome getGenome(); - - /** - * @return Genetic information of the mate, null if unmated. - */ - IButterflyGenome getMate(); - - /** - * @return Physical size of the butterfly. - */ - float getSize(); - - /** - * @param world - * @param x - * @param y - * @param z - * @return true if the butterfly can naturally spawn at the given location at this time. (Used to auto-spawn butterflies from tree leaves.) - */ - boolean canSpawn(World world, double x, double y, double z); - - /** - * @param world - * @param x - * @param y - * @param z - * @return true if the butterfly can take flight at the given location at this time. (Used to auto-spawn butterflies from dropped items.) - */ - boolean canTakeFlight(World world, double x, double y, double z); - - /** - * @param world - * @param x - * @param y - * @param z - * @return true if the environment (temperature, humidity) is valid for the butterfly at the given location. - */ - boolean isAcceptedEnvironment(World world, double x, double y, double z); - - IButterfly spawnCaterpillar(IButterflyNursery nursery); - - /** - * @param entity - * @param playerKill Whether or not the butterfly was killed by a player. - * @param lootLevel Loot level according to the weapon used to kill the butterfly. - * @return Array of itemstacks to drop on death of the given entity. - */ - ItemStack[] getLootDrop(IEntityButterfly entity, boolean playerKill, int lootLevel); - - /** - * @param nursery - * @param playerKill Whether or not the nursery was broken by a player. - * @param lootLevel Fortune level. - * @return Array of itemstacks to drop on breaking of the nursery. - */ - ItemStack[] getCaterpillarDrop(IButterflyNursery nursery, boolean playerKill, int lootLevel); - - /** - * Create an exact copy of this butterfly. - */ - IButterfly copy(); - -} diff --git a/BM_src/forestry/api/lepidopterology/IButterflyGenome.java b/BM_src/forestry/api/lepidopterology/IButterflyGenome.java deleted file mode 100644 index e7251d23..00000000 --- a/BM_src/forestry/api/lepidopterology/IButterflyGenome.java +++ /dev/null @@ -1,37 +0,0 @@ -package forestry.api.lepidopterology; - -import forestry.api.genetics.EnumTolerance; -import forestry.api.genetics.IFlowerProvider; -import forestry.api.genetics.IGenome; - -public interface IButterflyGenome extends IGenome { - - IAlleleButterflySpecies getPrimary(); - - IAlleleButterflySpecies getSecondary(); - - float getSize(); - - int getLifespan(); - - int getMetabolism(); - - int getFertility(); - - float getSpeed(); - - EnumTolerance getToleranceTemp(); - - EnumTolerance getToleranceHumid(); - - boolean getNocturnal(); - - boolean getTolerantFlyer(); - - boolean getFireResist(); - - IFlowerProvider getFlowerProvider(); - - IAlleleButterflyEffect getEffect(); - -} diff --git a/BM_src/forestry/api/lepidopterology/IButterflyMutation.java b/BM_src/forestry/api/lepidopterology/IButterflyMutation.java deleted file mode 100644 index 8bbb077e..00000000 --- a/BM_src/forestry/api/lepidopterology/IButterflyMutation.java +++ /dev/null @@ -1,9 +0,0 @@ -package forestry.api.lepidopterology; - -import forestry.api.genetics.IAllele; -import forestry.api.genetics.IGenome; -import forestry.api.genetics.IMutation; - -public interface IButterflyMutation extends IMutation { - float getChance(IButterflyNursery housing, IAllele allele0, IAllele allele1, IGenome genome0, IGenome genome1); -} diff --git a/BM_src/forestry/api/lepidopterology/IButterflyNursery.java b/BM_src/forestry/api/lepidopterology/IButterflyNursery.java deleted file mode 100644 index ebffb1fb..00000000 --- a/BM_src/forestry/api/lepidopterology/IButterflyNursery.java +++ /dev/null @@ -1,16 +0,0 @@ -package forestry.api.lepidopterology; - -import forestry.api.genetics.IHousing; -import forestry.api.genetics.IIndividual; - -public interface IButterflyNursery extends IHousing { - - IButterfly getCaterpillar(); - - IIndividual getNanny(); - - void setCaterpillar(IButterfly butterfly); - - boolean canNurse(IButterfly butterfly); - -} diff --git a/BM_src/forestry/api/lepidopterology/IButterflyRoot.java b/BM_src/forestry/api/lepidopterology/IButterflyRoot.java deleted file mode 100644 index 2618faee..00000000 --- a/BM_src/forestry/api/lepidopterology/IButterflyRoot.java +++ /dev/null @@ -1,54 +0,0 @@ -package forestry.api.lepidopterology; - -import java.util.ArrayList; -import java.util.Collection; - -import net.minecraft.entity.EntityLiving; -import net.minecraft.item.ItemStack; -import net.minecraft.nbt.NBTTagCompound; -import net.minecraft.world.World; -import forestry.api.genetics.IAllele; -import forestry.api.genetics.IIndividual; -import forestry.api.genetics.ISpeciesRoot; - -public interface IButterflyRoot extends ISpeciesRoot { - - boolean isMember(ItemStack stack); - - IButterfly getMember(ItemStack stack); - - IButterfly getMember(NBTTagCompound compound); - - ItemStack getMemberStack(IIndividual butterfly, int type); - - /* GENOME CONVERSION */ - IButterfly templateAsIndividual(IAllele[] template); - - IButterfly templateAsIndividual(IAllele[] templateActive, IAllele[] templateInactive); - - IButterflyGenome templateAsGenome(IAllele[] template); - - IButterflyGenome templateAsGenome(IAllele[] templateActive, IAllele[] templateInactive); - - /* BUTTERFLY SPECIFIC */ - ILepidopteristTracker getBreedingTracker(World world, String player); - - /** - * Spawns the given butterfly in the world. - * @param butterfly - * @return butterfly entity on success, null otherwise. - */ - EntityLiving spawnButterflyInWorld(World world, IButterfly butterfly, double x, double y, double z); - - /** - * @return true if passed item is mated. - */ - boolean isMated(ItemStack stack); - - /* TEMPLATES */ - ArrayList getIndividualTemplates(); - - /* MUTATIONS */ - Collection getMutations(boolean shuffle); - -} diff --git a/BM_src/forestry/api/lepidopterology/IEntityButterfly.java b/BM_src/forestry/api/lepidopterology/IEntityButterfly.java deleted file mode 100644 index 52ad6d77..00000000 --- a/BM_src/forestry/api/lepidopterology/IEntityButterfly.java +++ /dev/null @@ -1,23 +0,0 @@ -package forestry.api.lepidopterology; - -import forestry.api.genetics.IIndividual; -import net.minecraft.entity.EntityCreature; -import net.minecraft.entity.passive.IAnimals; - -public interface IEntityButterfly extends IAnimals { - - void changeExhaustion(int change); - - int getExhaustion(); - - IButterfly getButterfly(); - - /** - * @return The entity as an EntityCreature to save casting. - */ - EntityCreature getEntity(); - - IIndividual getPollen(); - - void setPollen(IIndividual pollen); -} diff --git a/BM_src/forestry/api/lepidopterology/ILepidopteristTracker.java b/BM_src/forestry/api/lepidopterology/ILepidopteristTracker.java deleted file mode 100644 index 78c9e2ca..00000000 --- a/BM_src/forestry/api/lepidopterology/ILepidopteristTracker.java +++ /dev/null @@ -1,9 +0,0 @@ -package forestry.api.lepidopterology; - -import forestry.api.genetics.IBreedingTracker; - -public interface ILepidopteristTracker extends IBreedingTracker { - - void registerCatch(IButterfly butterfly); - -} diff --git a/BM_src/forestry/api/lepidopterology/package-info.java b/BM_src/forestry/api/lepidopterology/package-info.java deleted file mode 100644 index eae8648f..00000000 --- a/BM_src/forestry/api/lepidopterology/package-info.java +++ /dev/null @@ -1,3 +0,0 @@ -@API(apiVersion="1.0", owner="ForestryAPI|core", provides="ForestryAPI|lepidopterology") -package forestry.api.lepidopterology; -import cpw.mods.fml.common.API; \ No newline at end of file diff --git a/BM_src/forestry/api/mail/EnumPostage.java b/BM_src/forestry/api/mail/EnumPostage.java deleted file mode 100644 index c61b703d..00000000 --- a/BM_src/forestry/api/mail/EnumPostage.java +++ /dev/null @@ -1,15 +0,0 @@ -package forestry.api.mail; - -public enum EnumPostage { - P_0(0), P_1(1), P_2(2), P_5(5), P_10(10), P_20(20), P_50(50), P_100(100), P_200(200); - - private final int value; - - private EnumPostage(int value) { - this.value = value; - } - - public int getValue() { - return this.value; - } -} diff --git a/BM_src/forestry/api/mail/ILetter.java b/BM_src/forestry/api/mail/ILetter.java deleted file mode 100644 index 3541e138..00000000 --- a/BM_src/forestry/api/mail/ILetter.java +++ /dev/null @@ -1,53 +0,0 @@ -package forestry.api.mail; - -import java.util.List; - -import net.minecraft.inventory.IInventory; -import net.minecraft.item.ItemStack; -import forestry.api.core.INBTTagable; - -public interface ILetter extends IInventory, INBTTagable { - - ItemStack[] getPostage(); - - void setProcessed(boolean flag); - - boolean isProcessed(); - - boolean isMailable(); - - void setSender(MailAddress address); - - MailAddress getSender(); - - boolean hasRecipient(); - - void setRecipient(MailAddress address); - - MailAddress[] getRecipients(); - - String getRecipientString(); - - void setText(String text); - - String getText(); - - void addTooltip(List list); - - boolean isPostPaid(); - - int requiredPostage(); - - void invalidatePostage(); - - ItemStack[] getAttachments(); - - void addAttachment(ItemStack itemstack); - - void addAttachments(ItemStack[] itemstacks); - - int countAttachments(); - - void addStamps(ItemStack stamps); - -} diff --git a/BM_src/forestry/api/mail/ILetterHandler.java b/BM_src/forestry/api/mail/ILetterHandler.java deleted file mode 100644 index 2270ff68..00000000 --- a/BM_src/forestry/api/mail/ILetterHandler.java +++ /dev/null @@ -1,8 +0,0 @@ -package forestry.api.mail; - -import net.minecraft.item.ItemStack; -import net.minecraft.world.World; - -public interface ILetterHandler { - IPostalState handleLetter(World world, String recipient, ItemStack letterStack, boolean doLodge); -} diff --git a/BM_src/forestry/api/mail/IPostOffice.java b/BM_src/forestry/api/mail/IPostOffice.java deleted file mode 100644 index 0c8c48fc..00000000 --- a/BM_src/forestry/api/mail/IPostOffice.java +++ /dev/null @@ -1,25 +0,0 @@ -package forestry.api.mail; - -import java.util.Map; - -import net.minecraft.item.ItemStack; -import net.minecraft.world.World; - -public interface IPostOffice { - - void collectPostage(ItemStack[] stamps); - - IPostalState lodgeLetter(World world, ItemStack itemstack, boolean doLodge); - - ItemStack getAnyStamp(int max); - - ItemStack getAnyStamp(EnumPostage postage, int max); - - ItemStack getAnyStamp(EnumPostage[] postages, int max); - - void registerTradeStation(ITradeStation trade); - - void deregisterTradeStation(ITradeStation trade); - - Map getActiveTradeStations(World world); -} diff --git a/BM_src/forestry/api/mail/IPostRegistry.java b/BM_src/forestry/api/mail/IPostRegistry.java deleted file mode 100644 index 5977d9e4..00000000 --- a/BM_src/forestry/api/mail/IPostRegistry.java +++ /dev/null @@ -1,47 +0,0 @@ -package forestry.api.mail; - -import java.util.Map; - -import net.minecraft.item.ItemStack; -import net.minecraft.world.World; - -public interface IPostRegistry { - - /* POST OFFICE */ - IPostOffice getPostOffice(World world); - - /* LETTERS */ - boolean isLetter(ItemStack itemstack); - - ILetter createLetter(MailAddress sender, MailAddress recipient); - - ILetter getLetter(ItemStack itemstack); - - ItemStack createLetterStack(ILetter letter); - - /* CARRIERS */ - /** - * Registers a new {@link IPostalCarrier}. See {@link IPostalCarrier} for details. - * @param carrier {@link IPostalCarrier} to register. - */ - void registerCarrier(IPostalCarrier carrier); - - IPostalCarrier getCarrier(String uid); - - Map getRegisteredCarriers(); - - /* TRADE STATIONS */ - void deleteTradeStation(World world, String moniker); - - ITradeStation getOrCreateTradeStation(World world, String owner, String moniker); - - ITradeStation getTradeStation(World world, String moniker); - - boolean isAvailableTradeMoniker(World world, String moniker); - - boolean isValidTradeMoniker(World world, String moniker); - - /* PO BOXES */ - boolean isValidPOBox(World world, String username); - -} diff --git a/BM_src/forestry/api/mail/IPostalCarrier.java b/BM_src/forestry/api/mail/IPostalCarrier.java deleted file mode 100644 index ee80e865..00000000 --- a/BM_src/forestry/api/mail/IPostalCarrier.java +++ /dev/null @@ -1,42 +0,0 @@ -package forestry.api.mail; - -import cpw.mods.fml.relauncher.Side; -import cpw.mods.fml.relauncher.SideOnly; -import net.minecraft.item.ItemStack; -import net.minecraft.util.Icon; -import net.minecraft.world.World; - -/** - * Postal Carriers are systems which can be hooked into Forestry's mail system to handle mail delivery. - * - * The two available carriers in vanilla Forestry are - * "player" - Delivers mail to individual players. - * "trader" - Handles mail addressed to trade stations. - */ -public interface IPostalCarrier { - - /** - * @return A lower-case identifier without spaces. - */ - String getUID(); - - /** - * @return A human-readable name for this carrier. - */ - String getName(); - - @SideOnly(Side.CLIENT) - Icon getIcon(); - - /** - * Handle delivery of a letter addressed to this carrier. - * @param world The world the {@link IPostOffice} handles. - * @param office {link @IPostOffice} which received this letter and handed it to the carrier. - * @param recipient An identifier for the recipient as typed by the player into the address field. - * @param letterstack ItemStack representing the letter. See {@link IPostRegistry} for helper functions to validate and extract it. - * @param doDeliver Whether or not the letter is supposed to actually be delivered or if delivery is only to be simulated. - * @return {link IPostalState} holding information on success or failure for delivery. - */ - IPostalState deliverLetter(World world, IPostOffice office, String recipient, ItemStack letterstack, boolean doDeliver); - -} diff --git a/BM_src/forestry/api/mail/IPostalState.java b/BM_src/forestry/api/mail/IPostalState.java deleted file mode 100644 index 0d6d7e12..00000000 --- a/BM_src/forestry/api/mail/IPostalState.java +++ /dev/null @@ -1,9 +0,0 @@ -package forestry.api.mail; - -public interface IPostalState { - boolean isOk(); - - String getIdentifier(); - - int ordinal(); -} diff --git a/BM_src/forestry/api/mail/IStamps.java b/BM_src/forestry/api/mail/IStamps.java deleted file mode 100644 index 63201887..00000000 --- a/BM_src/forestry/api/mail/IStamps.java +++ /dev/null @@ -1,9 +0,0 @@ -package forestry.api.mail; - -import net.minecraft.item.ItemStack; - -public interface IStamps { - - EnumPostage getPostage(ItemStack itemstack); - -} diff --git a/BM_src/forestry/api/mail/ITradeStation.java b/BM_src/forestry/api/mail/ITradeStation.java deleted file mode 100644 index caf8018d..00000000 --- a/BM_src/forestry/api/mail/ITradeStation.java +++ /dev/null @@ -1,19 +0,0 @@ -package forestry.api.mail; - -import net.minecraft.inventory.IInventory; - -public interface ITradeStation extends ILetterHandler, IInventory { - - String getMoniker(); - - boolean isValid(); - - void invalidate(); - - void setVirtual(boolean isVirtual); - - boolean isVirtual(); - - TradeStationInfo getTradeInfo(); - -} diff --git a/BM_src/forestry/api/mail/MailAddress.java b/BM_src/forestry/api/mail/MailAddress.java deleted file mode 100644 index c20596dc..00000000 --- a/BM_src/forestry/api/mail/MailAddress.java +++ /dev/null @@ -1,54 +0,0 @@ -package forestry.api.mail; - -import net.minecraft.nbt.NBTTagCompound; -import forestry.api.core.INBTTagable; - -public class MailAddress implements INBTTagable { - private String type; - private String identifier; - - private MailAddress() { - } - - public MailAddress(String identifier) { - this(identifier, "player"); - } - - public MailAddress(String identifier, String type) { - this.identifier = identifier; - this.type = type; - } - - public String getType() { - return type; - } - - public String getIdentifier() { - return identifier; - } - - public boolean isPlayer() { - return "player".equals(type); - } - - @Override - public void readFromNBT(NBTTagCompound nbttagcompound) { - if(nbttagcompound.hasKey("TP")) - type = nbttagcompound.getString("TP"); - else - type = nbttagcompound.getShort("TYP") == 0 ? "player" : "trader"; - identifier = nbttagcompound.getString("ID"); - } - - @Override - public void writeToNBT(NBTTagCompound nbttagcompound) { - nbttagcompound.setString("TP", type); - nbttagcompound.setString("ID", identifier); - } - - public static MailAddress loadFromNBT(NBTTagCompound nbttagcompound) { - MailAddress address = new MailAddress(); - address.readFromNBT(nbttagcompound); - return address; - } -} diff --git a/BM_src/forestry/api/mail/PostManager.java b/BM_src/forestry/api/mail/PostManager.java deleted file mode 100644 index b97735ac..00000000 --- a/BM_src/forestry/api/mail/PostManager.java +++ /dev/null @@ -1,6 +0,0 @@ -package forestry.api.mail; - - -public class PostManager { - public static IPostRegistry postRegistry; -} diff --git a/BM_src/forestry/api/mail/TradeStationInfo.java b/BM_src/forestry/api/mail/TradeStationInfo.java deleted file mode 100644 index 00bd8d30..00000000 --- a/BM_src/forestry/api/mail/TradeStationInfo.java +++ /dev/null @@ -1,19 +0,0 @@ -package forestry.api.mail; - -import net.minecraft.item.ItemStack; - -public class TradeStationInfo { - public final String moniker; - public final String owner; - public final ItemStack tradegood; - public final ItemStack[] required; - public final IPostalState state; - - public TradeStationInfo(String moniker, String owner, ItemStack tradegood, ItemStack[] required, IPostalState state) { - this.moniker = moniker; - this.owner = owner; - this.tradegood = tradegood; - this.required = required; - this.state = state; - } -} diff --git a/BM_src/forestry/api/mail/package-info.java b/BM_src/forestry/api/mail/package-info.java deleted file mode 100644 index e452a0a4..00000000 --- a/BM_src/forestry/api/mail/package-info.java +++ /dev/null @@ -1,3 +0,0 @@ -@API(apiVersion="1.0", owner="ForestryAPI|core", provides="ForestryAPI|mail") -package forestry.api.mail; -import cpw.mods.fml.common.API; \ No newline at end of file diff --git a/BM_src/forestry/api/package-info.java b/BM_src/forestry/api/package-info.java deleted file mode 100644 index 9bce2166..00000000 --- a/BM_src/forestry/api/package-info.java +++ /dev/null @@ -1,3 +0,0 @@ -@API(apiVersion="1.0", owner="Forestry", provides="ForestryAPI|core") -package forestry.api; -import cpw.mods.fml.common.API; \ No newline at end of file diff --git a/BM_src/forestry/api/recipes/IBottlerManager.java b/BM_src/forestry/api/recipes/IBottlerManager.java deleted file mode 100644 index 79e166cc..00000000 --- a/BM_src/forestry/api/recipes/IBottlerManager.java +++ /dev/null @@ -1,34 +0,0 @@ -package forestry.api.recipes; - -import net.minecraft.item.ItemStack; -import net.minecraftforge.fluids.FluidStack; - -/** - * Provides an interface to the recipe manager of the bottler. - * - * The manager is initialized at the beginning of Forestry's BaseMod.load() cycle. Begin adding recipes in BaseMod.ModsLoaded() and this shouldn't be null even - * if your mod loads before Forestry. - * - * Accessible via {@link RecipeManagers} - * - * Note that this is untested with anything other than biofuel->fuelcan conversion. - * - * @author SirSengir - */ -public interface IBottlerManager extends ICraftingProvider { - /** - * Add a recipe to the bottler. - * The bottler will populate its recipe list dynamically from the LiquidContainerRegistry. Recipes added explicitely will take precedence. - * - * @param cyclesPerUnit - * Amount of work cycles required to run through the conversion once. - * @param input - * LiquidStack representing the input liquid. - * @param can - * ItemStack representing the cans, capsules and/or cells required - * @param bottled - * ItemStack representing the finished product - */ - @Deprecated - public void addRecipe(int cyclesPerUnit, FluidStack input, ItemStack can, ItemStack bottled); -} diff --git a/BM_src/forestry/api/recipes/ICarpenterManager.java b/BM_src/forestry/api/recipes/ICarpenterManager.java deleted file mode 100644 index 655a97b2..00000000 --- a/BM_src/forestry/api/recipes/ICarpenterManager.java +++ /dev/null @@ -1,65 +0,0 @@ -package forestry.api.recipes; - -import net.minecraft.item.ItemStack; -import net.minecraft.item.crafting.ShapedRecipes; -import net.minecraftforge.fluids.FluidStack; - -/** - * Provides an interface to the recipe manager of the carpenter. - * - * The manager is initialized at the beginning of Forestry's BaseMod.load() cycle. Begin adding recipes in BaseMod.ModsLoaded() and this shouldn't be null even - * if your mod loads before Forestry. - * - * Accessible via {@link RecipeManagers} - * - * Only shaped recipes can be added currently. - * - * @author SirSengir - */ -public interface ICarpenterManager extends ICraftingProvider { - /** - * Add a shaped recipe to the carpenter. - * - * @param box - * ItemStack of one item representing the required box (carton, crate) for this recipe. May be null. - * @param product - * Crafting result. - * @param materials - * Materials needed in the crafting matrix. This gets passed directly to {@link ShapedRecipes}. Notation is the same. - */ - public void addRecipe(ItemStack box, ItemStack product, Object materials[]); - - /** - * Add a shaped recipe to the carpenter. - * - * @param packagingTime - * Number of work cycles required to craft the recipe once. - * @param box - * ItemStack of one item representing the required box (carton, crate) for this recipe. May be null. - * @param product - * Crafting result. - * @param materials - * Materials needed in the crafting matrix. This gets passed directly to {@link ShapedRecipes}. Notation is the same. - */ - public void addRecipe(int packagingTime, ItemStack box, ItemStack product, Object materials[]); - - /** - * Add a shaped recipe to the carpenter. - * - * @param packagingTime - * Number of work cycles required to craft the recipe once. - * @param liquid - * Liquid required in carpenter's tank. - * @param box - * ItemStack of one item representing the required box (carton, crate) for this recipe. May be null. - * @param product - * Crafting result. - * @param materials - * Materials needed in the crafting matrix. This gets passed directly to {@link ShapedRecipes}. Notation is the same. - */ - public void addRecipe(int packagingTime, FluidStack liquid, ItemStack box, ItemStack product, Object materials[]); - - public void addCrating(String toCrate, ItemStack unpack, ItemStack crated); - - public void addCrating(ItemStack itemStack); -} diff --git a/BM_src/forestry/api/recipes/ICentrifugeManager.java b/BM_src/forestry/api/recipes/ICentrifugeManager.java deleted file mode 100644 index 66020b1d..00000000 --- a/BM_src/forestry/api/recipes/ICentrifugeManager.java +++ /dev/null @@ -1,74 +0,0 @@ -package forestry.api.recipes; - -import java.util.HashMap; - -import net.minecraft.item.ItemStack; - -/** - * Provides an interface to the recipe manager of the centrifuge. - * - * The manager is initialized at the beginning of Forestry's BaseMod.load() cycle. Begin adding recipes in BaseMod.ModsLoaded() and this shouldn't be null even - * if your mod loads before Forestry. - * - * Accessible via {@link RecipeManagers} - * - * @author SirSengir - */ -public interface ICentrifugeManager extends ICraftingProvider { - - /** - * Add a recipe to the centrifuge - * - * @param timePerItem - * Time to centrifugate one item of the given type - * @param resource - * ItemStack containing information on item id and damage. Stack size will be ignored. - * @param products - * HashMap specifying the possible products and the chances of them resulting from centrifugation. - */ - public void addRecipe(int timePerItem, ItemStack resource, HashMap products); - - /** - * Add a recipe to the centrifuge - * - * @param timePerItem - * Time to centrifugate one item of the given type - * @param resource - * ItemStack containing information on item id and damage. Stack size will be ignored. - * @param produce - * Array of ItemStacks that can be the result of this recipe. - * @param chances - * Array of integers corresponding and matching to produce providing the chance (0-100) for the ItemStack at the given index to be - * produced. - */ - public void addRecipe(int timePerItem, ItemStack resource, ItemStack[] produce, int[] chances); - - /** - * Add a recipe to the centrifuge - * - * @param timePerItem - * Time to centrifugate one item of the given type - * @param resource - * ItemStack containing information on item id and damage. Stack size will be ignored. - * @param primary - * Primary product produced by centrifugating one item. Yield 100 %. - * @param secondary - * Secondary product that may be produced when centrifugating the given item. May be null. - * @param chance - * Chance (1 - 100) for centrifugation to yield the secondary product. - */ - public void addRecipe(int timePerItem, ItemStack resource, ItemStack primary, ItemStack secondary, int chance); - - /** - * Add a recipe to the centrifuge - * - * @param timePerItem - * Time to centrifugate one item of the given type - * @param resource - * ItemStack containing information on item id and damage. Stack size will be ignored. - * @param primary - * Primary product produced by centrifugating one item. Yield 100 %. - */ - public void addRecipe(int timePerItem, ItemStack resource, ItemStack primary); - -} diff --git a/BM_src/forestry/api/recipes/ICraftingProvider.java b/BM_src/forestry/api/recipes/ICraftingProvider.java deleted file mode 100644 index 79af3c4e..00000000 --- a/BM_src/forestry/api/recipes/ICraftingProvider.java +++ /dev/null @@ -1,12 +0,0 @@ -package forestry.api.recipes; - -import java.util.Map; - -public interface ICraftingProvider { - /** - * Access to the full list of recipes contained in the crafting provider. - * - * @return List of the given format where the first array represents inputs and the second outputs. Objects can be either ItemStack or LiquidStack. - */ - public Map getRecipes(); -} diff --git a/BM_src/forestry/api/recipes/IFabricatorManager.java b/BM_src/forestry/api/recipes/IFabricatorManager.java deleted file mode 100644 index b48e04b7..00000000 --- a/BM_src/forestry/api/recipes/IFabricatorManager.java +++ /dev/null @@ -1,12 +0,0 @@ -package forestry.api.recipes; - -import net.minecraft.item.ItemStack; -import net.minecraftforge.fluids.FluidStack; - -public interface IFabricatorManager extends ICraftingProvider { - - void addRecipe(ItemStack plan, FluidStack molten, ItemStack result, Object[] pattern); - - void addSmelting(ItemStack resource, FluidStack molten, int meltingPoint); - -} diff --git a/BM_src/forestry/api/recipes/IFermenterManager.java b/BM_src/forestry/api/recipes/IFermenterManager.java deleted file mode 100644 index 744f6ff3..00000000 --- a/BM_src/forestry/api/recipes/IFermenterManager.java +++ /dev/null @@ -1,48 +0,0 @@ -package forestry.api.recipes; - -import net.minecraft.item.ItemStack; -import net.minecraftforge.fluids.FluidStack; - -/** - * Provides an interface to the recipe manager of the fermenter. - * - * The manager is initialized at the beginning of Forestry's BaseMod.load() cycle. Begin adding recipes in BaseMod.ModsLoaded() and this shouldn't be null even - * if your mod loads before Forestry. - * - * Accessible via {@link RecipeManagers} - * - * @author SirSengir - */ -public interface IFermenterManager extends ICraftingProvider { - - /** - * Add a recipe to the fermenter - * - * @param resource - * ItemStack representing the resource. - * @param fermentationValue - * Value of the given resource, i.e. how much needs to be fermented for the output to be deposited into the product tank. - * @param modifier - * Modifies the amount of liquid output per work cycle. (water = 1.0f, honey = 1.5f) - * @param output - * LiquidStack representing output liquid. Amount is determined by fermentationValue*modifier. - * @param liquid - * LiquidStack representing resource liquid and amount. - */ - public void addRecipe(ItemStack resource, int fermentationValue, float modifier, FluidStack output, FluidStack liquid); - - /** - * Add a recipe to the fermenter. Defaults to water as input liquid. - * - * @param resource - * ItemStack representing the resource. - * @param modifier - * Modifies the amount of liquid output per work cycle. (water = 1.0f, honey = 1.5f) - * @param fermentationValue - * Value of the given resource, i.e. how much needs to be fermented for the output to be deposited into the product tank. - * @param output - * LiquidStack representing output liquid. Amount is determined by fermentationValue*modifier. - */ - public void addRecipe(ItemStack resource, int fermentationValue, float modifier, FluidStack output); - -} diff --git a/BM_src/forestry/api/recipes/IGenericCrate.java b/BM_src/forestry/api/recipes/IGenericCrate.java deleted file mode 100644 index 814cb83a..00000000 --- a/BM_src/forestry/api/recipes/IGenericCrate.java +++ /dev/null @@ -1,11 +0,0 @@ -package forestry.api.recipes; - -import net.minecraft.item.ItemStack; - -public interface IGenericCrate { - - void setContained(ItemStack crate, ItemStack contained); - - ItemStack getContained(ItemStack crate); - -} diff --git a/BM_src/forestry/api/recipes/IMoistenerManager.java b/BM_src/forestry/api/recipes/IMoistenerManager.java deleted file mode 100644 index 4273102f..00000000 --- a/BM_src/forestry/api/recipes/IMoistenerManager.java +++ /dev/null @@ -1,28 +0,0 @@ -package forestry.api.recipes; - -import net.minecraft.item.ItemStack; - -/** - * Provides an interface to the recipe manager of the moistener. - * - * The manager is initialized at the beginning of Forestry's BaseMod.load() cycle. Begin adding recipes in BaseMod.ModsLoaded() and this shouldn't be null even - * if your mod loads before Forestry. - * - * Accessible via {@link RecipeManagers} - * - * @author SirSengir - */ -public interface IMoistenerManager extends ICraftingProvider { - - /** - * Add a recipe to the moistener - * - * @param resource - * Item required in resource stack. Will be reduced by one per produced item. - * @param product - * Item to produce per resource processed. - * @param timePerItem - * Moistener runs at 1 - 4 time ticks per ingame tick depending on light level. For mycelium this value is currently 5000. - */ - public void addRecipe(ItemStack resource, ItemStack product, int timePerItem); -} diff --git a/BM_src/forestry/api/recipes/ISqueezerManager.java b/BM_src/forestry/api/recipes/ISqueezerManager.java deleted file mode 100644 index b70e19fa..00000000 --- a/BM_src/forestry/api/recipes/ISqueezerManager.java +++ /dev/null @@ -1,45 +0,0 @@ -package forestry.api.recipes; - -import net.minecraft.item.ItemStack; -import net.minecraftforge.fluids.FluidStack; - -/** - * Provides an interface to the recipe manager of the suqeezer. - * - * The manager is initialized at the beginning of Forestry's BaseMod.load() cycle. Begin adding recipes in BaseMod.ModsLoaded() and this shouldn't be null even - * if your mod loads before Forestry. - * - * Accessible via {@link RecipeManagers} - * - * @author SirSengir - */ -public interface ISqueezerManager extends ICraftingProvider { - - /** - * Add a recipe to the squeezer. - * - * @param timePerItem - * Number of work cycles required to squeeze one set of resources. - * @param resources - * Array of item stacks representing the required resources for one process. Stack size will be taken into account. - * @param liquid - * {@link FluidStack} representing the output of this recipe. - * @param remnants - * Item stack representing the possible remnants from this recipe. - * @param chance - * Chance remnants will be produced by a single recipe cycle. - */ - public void addRecipe(int timePerItem, ItemStack[] resources, FluidStack liquid, ItemStack remnants, int chance); - - /** - * Add a recipe to the squeezer. - * - * @param timePerItem - * Number of work cycles required to squeeze one set of resources. - * @param resources - * Array of item stacks representing the required resources for one process. Stack size will be taken into account. - * @param liquid - * {@link FluidStack} representing the output of this recipe. - */ - public void addRecipe(int timePerItem, ItemStack[] resources, FluidStack liquid); -} diff --git a/BM_src/forestry/api/recipes/IStillManager.java b/BM_src/forestry/api/recipes/IStillManager.java deleted file mode 100644 index 75ed02bd..00000000 --- a/BM_src/forestry/api/recipes/IStillManager.java +++ /dev/null @@ -1,29 +0,0 @@ -package forestry.api.recipes; - -import net.minecraftforge.fluids.FluidStack; - -/** - * Provides an interface to the recipe manager of the still. - * - * The manager is initialized at the beginning of Forestry's BaseMod.load() cycle. Begin adding recipes in BaseMod.ModsLoaded() and this shouldn't be null even - * if your mod loads before Forestry. - * - * Accessible via {@link RecipeManagers} - * - * Note that this is untested with anything other than biomass->biofuel conversion. - * - * @author SirSengir - */ -public interface IStillManager extends ICraftingProvider { - /** - * Add a recipe to the still - * - * @param cyclesPerUnit - * Amount of work cycles required to run through the conversion once. - * @param input - * ItemStack representing the input liquid. - * @param output - * ItemStack representing the output liquid - */ - public void addRecipe(int cyclesPerUnit, FluidStack input, FluidStack output); -} diff --git a/BM_src/forestry/api/recipes/IVariableFermentable.java b/BM_src/forestry/api/recipes/IVariableFermentable.java deleted file mode 100644 index ce51b1f6..00000000 --- a/BM_src/forestry/api/recipes/IVariableFermentable.java +++ /dev/null @@ -1,16 +0,0 @@ -package forestry.api.recipes; - -import net.minecraft.item.ItemStack; - -/** - * Fermenter checks any valid fermentation item for an implementation of this interface. - * This does not supersede adding a proper recipe to the fermenter! - */ -public interface IVariableFermentable { - - /** - * @param itemstack - * @return Float representing the modification to be applied to the matching recipe's biomass output. - */ - float getFermentationModifier(ItemStack itemstack); -} diff --git a/BM_src/forestry/api/recipes/RecipeManagers.java b/BM_src/forestry/api/recipes/RecipeManagers.java deleted file mode 100644 index fbf68670..00000000 --- a/BM_src/forestry/api/recipes/RecipeManagers.java +++ /dev/null @@ -1,44 +0,0 @@ -package forestry.api.recipes; - -import java.util.Collection; - -/** - * Contains all available recipe managers for Forestry machines and items. - * - * @author SirSengir - */ -public class RecipeManagers { - - public static Collection craftingProviders; - - /** - * Allows you to add recipes to the bottler. See {@link IBottlerManager} for details. - */ - public static IBottlerManager bottlerManager; - /** - * Allows you to add recipes to the carpenter. See {@link ICarpenterManager} for details. - */ - public static ICarpenterManager carpenterManager; - /** - * Allows you to add recipes to the centrifuge. See {@link ICentrifugeManager} for details. - */ - public static ICentrifugeManager centrifugeManager; - /** - * Allows you to add recipes to the fermenter. See {@link IFermenterManager} for details. - */ - public static IFermenterManager fermenterManager; - /** - * Allows you to add recipes to the moistener. See {@link IMoistenerManager} for details. - */ - public static IMoistenerManager moistenerManager; - /** - * Allows you to add recipes to the squeezer. See {@link ISqueezerManager} for details. - */ - public static ISqueezerManager squeezerManager; - /** - * Allows you to add recipes to the still. See {@link IStillManager} for details. - */ - public static IStillManager stillManager; - - public static IFabricatorManager fabricatorManager; -} diff --git a/BM_src/forestry/api/recipes/package-info.java b/BM_src/forestry/api/recipes/package-info.java deleted file mode 100644 index 34b9abb9..00000000 --- a/BM_src/forestry/api/recipes/package-info.java +++ /dev/null @@ -1,3 +0,0 @@ -@API(apiVersion="1.0", owner="ForestryAPI|core", provides="ForestryAPI|recipes") -package forestry.api.recipes; -import cpw.mods.fml.common.API; \ No newline at end of file diff --git a/BM_src/forestry/api/storage/BackpackEvent.java b/BM_src/forestry/api/storage/BackpackEvent.java deleted file mode 100644 index 83d06e70..00000000 --- a/BM_src/forestry/api/storage/BackpackEvent.java +++ /dev/null @@ -1,18 +0,0 @@ -package forestry.api.storage; - -import net.minecraft.entity.player.EntityPlayer; -import net.minecraft.inventory.IInventory; -import net.minecraftforge.event.Event; - -public abstract class BackpackEvent extends Event { - - public final EntityPlayer player; - public final IBackpackDefinition backpackDefinition; - public final IInventory backpackInventory; - - public BackpackEvent(EntityPlayer player, IBackpackDefinition backpackDefinition, IInventory backpackInventory) { - this.player = player; - this.backpackDefinition = backpackDefinition; - this.backpackInventory = backpackInventory; - } -} diff --git a/BM_src/forestry/api/storage/BackpackManager.java b/BM_src/forestry/api/storage/BackpackManager.java deleted file mode 100644 index 64af8cd0..00000000 --- a/BM_src/forestry/api/storage/BackpackManager.java +++ /dev/null @@ -1,22 +0,0 @@ -package forestry.api.storage; - -import java.util.ArrayList; -import java.util.HashMap; - -import net.minecraft.item.ItemStack; - -public class BackpackManager { - /** - * 0 - Miner's Backpack 1 - Digger's Backpack 2 - Forester's Backpack 3 - Hunter's Backpack 4 - Adventurer's Backpack - * - * Use IMC messages to achieve the same effect! - */ - public static ArrayList[] backpackItems; - - public static IBackpackInterface backpackInterface; - - /** - * Only use this if you know what you are doing. Prefer backpackInterface. - */ - public static HashMap definitions = new HashMap(); -} diff --git a/BM_src/forestry/api/storage/BackpackResupplyEvent.java b/BM_src/forestry/api/storage/BackpackResupplyEvent.java deleted file mode 100644 index caa74377..00000000 --- a/BM_src/forestry/api/storage/BackpackResupplyEvent.java +++ /dev/null @@ -1,18 +0,0 @@ -package forestry.api.storage; - -import net.minecraft.entity.player.EntityPlayer; -import net.minecraft.inventory.IInventory; -import net.minecraftforge.event.Cancelable; - -/** - * Use @ForgeSubscribe on a method taking this event as an argument. Will fire whenever a backpack tries to resupply to a player inventory. Processing will stop - * if the event is canceled. - */ -@Cancelable -public class BackpackResupplyEvent extends BackpackEvent { - - public BackpackResupplyEvent(EntityPlayer player, IBackpackDefinition backpackDefinition, IInventory backpackInventory) { - super(player, backpackDefinition, backpackInventory); - } - -} diff --git a/BM_src/forestry/api/storage/BackpackStowEvent.java b/BM_src/forestry/api/storage/BackpackStowEvent.java deleted file mode 100644 index 94c837a3..00000000 --- a/BM_src/forestry/api/storage/BackpackStowEvent.java +++ /dev/null @@ -1,21 +0,0 @@ -package forestry.api.storage; - -import net.minecraft.entity.player.EntityPlayer; -import net.minecraft.inventory.IInventory; -import net.minecraft.item.ItemStack; -import net.minecraftforge.event.Cancelable; - -/** - * Use @ForgeSubscribe on a method taking this event as an argument. Will fire whenever a backpack tries to store an item. Processing will stop if the stacksize - * of stackToStow drops to 0 or less or the event is canceled. - */ -@Cancelable -public class BackpackStowEvent extends BackpackEvent { - - public final ItemStack stackToStow; - - public BackpackStowEvent(EntityPlayer player, IBackpackDefinition backpackDefinition, IInventory backpackInventory, ItemStack stackToStow) { - super(player, backpackDefinition, backpackInventory); - this.stackToStow = stackToStow; - } -} diff --git a/BM_src/forestry/api/storage/EnumBackpackType.java b/BM_src/forestry/api/storage/EnumBackpackType.java deleted file mode 100644 index 13faf87b..00000000 --- a/BM_src/forestry/api/storage/EnumBackpackType.java +++ /dev/null @@ -1,5 +0,0 @@ -package forestry.api.storage; - -public enum EnumBackpackType { - T1, T2 -} diff --git a/BM_src/forestry/api/storage/IBackpackDefinition.java b/BM_src/forestry/api/storage/IBackpackDefinition.java deleted file mode 100644 index c05031e6..00000000 --- a/BM_src/forestry/api/storage/IBackpackDefinition.java +++ /dev/null @@ -1,54 +0,0 @@ -package forestry.api.storage; - -import java.util.Collection; - -import net.minecraft.entity.player.EntityPlayer; -import net.minecraft.item.ItemStack; - -public interface IBackpackDefinition { - - /** - * @return A unique string identifier - */ - String getKey(); - - /** - * @return Human-readable name of the backpack. - */ - String getName(); - - /** - * @return Primary colour for the backpack icon. - */ - int getPrimaryColour(); - - /** - * @return Secondary colour for backpack icon. - */ - int getSecondaryColour(); - - /** - * Adds an item as valid for this backpack. - * - * @param validItem - */ - void addValidItem(ItemStack validItem); - - /** - * Returns an arraylist of all items valid for this backpack type. - * - * @param player - * @return Collection of itemstack which are valid items for this backpack type. May be empty or null and does not necessarily include all valid items. - */ - Collection getValidItems(EntityPlayer player); - - /** - * Returns true if the itemstack is a valid item for this backpack type. - * - * @param player - * @param itemstack - * @return true if the given itemstack is valid for this backpack, false otherwise. - */ - boolean isValidItem(EntityPlayer player, ItemStack itemstack); - -} \ No newline at end of file diff --git a/BM_src/forestry/api/storage/IBackpackInterface.java b/BM_src/forestry/api/storage/IBackpackInterface.java deleted file mode 100644 index 0012fab1..00000000 --- a/BM_src/forestry/api/storage/IBackpackInterface.java +++ /dev/null @@ -1,19 +0,0 @@ -package forestry.api.storage; - -import net.minecraft.item.Item; - -public interface IBackpackInterface { - - /** - * Adds a backpack with the given id, definition and type, returning the item. - * - * @param itemID - * Item id to use. - * @param definition - * Definition of backpack behaviour. - * @param type - * Type of backpack. (T1 or T2 (= Woven) - * @return Created backpack item. - */ - Item addBackpack(int itemID, IBackpackDefinition definition, EnumBackpackType type); -} diff --git a/BM_src/forestry/api/storage/package-info.java b/BM_src/forestry/api/storage/package-info.java deleted file mode 100644 index 8917b785..00000000 --- a/BM_src/forestry/api/storage/package-info.java +++ /dev/null @@ -1,3 +0,0 @@ -@API(apiVersion="1.0", owner="ForestryAPI|core", provides="ForestryAPI|storage") -package forestry.api.storage; -import cpw.mods.fml.common.API; \ No newline at end of file diff --git a/BM_src/forestry/api/world/ITreeGenData.java b/BM_src/forestry/api/world/ITreeGenData.java deleted file mode 100644 index c43d8bb8..00000000 --- a/BM_src/forestry/api/world/ITreeGenData.java +++ /dev/null @@ -1,18 +0,0 @@ -package forestry.api.world; - -import net.minecraft.world.World; - -public interface ITreeGenData { - - int getGirth(World world, int x, int y, int z); - - float getHeightModifier(); - - boolean canGrow(World world, int x, int y, int z, int expectedGirth, int expectedHeight); - - void setLeaves(World world, String owner, int x, int y, int z); - - boolean allowsFruitBlocks(); - - boolean trySpawnFruitBlock(World world, int x, int y, int z); -} diff --git a/BM_src/forestry/api/world/IWorldGenInterface.java b/BM_src/forestry/api/world/IWorldGenInterface.java deleted file mode 100644 index bff24664..00000000 --- a/BM_src/forestry/api/world/IWorldGenInterface.java +++ /dev/null @@ -1,17 +0,0 @@ -package forestry.api.world; - -import net.minecraft.world.gen.feature.WorldGenerator; - -public interface IWorldGenInterface { - - /** - * Retrieves generators for trees identified by a given string. - * - * Returned generator classes take an {@link ITreeGenData} in the constructor. - * - * @param ident - * Unique identifier for tree type. Forestry's convention is 'treeSpecies', i.e. 'treeBaobab', 'treeSequoia'. - * @return All generators matching the given ident. - */ - Class[] getTreeGenerators(String ident); -} diff --git a/BM_src/forestry/api/world/WorldGenManager.java b/BM_src/forestry/api/world/WorldGenManager.java deleted file mode 100644 index b2147a64..00000000 --- a/BM_src/forestry/api/world/WorldGenManager.java +++ /dev/null @@ -1,5 +0,0 @@ -package forestry.api.world; - -public class WorldGenManager { - public static IWorldGenInterface worldgenInterface; -} diff --git a/BM_src/forestry/api/world/package-info.java b/BM_src/forestry/api/world/package-info.java deleted file mode 100644 index bd377554..00000000 --- a/BM_src/forestry/api/world/package-info.java +++ /dev/null @@ -1,3 +0,0 @@ -@API(apiVersion="1.0", owner="ForestryAPI|core", provides="ForestryAPI|world") -package forestry.api.world; -import cpw.mods.fml.common.API; \ No newline at end of file diff --git a/BM_src/joshie/alchemicalWizardy/nei/NEIAlchemyRecipeHandler.java b/BM_src/joshie/alchemicalWizardy/nei/NEIAlchemyRecipeHandler.java deleted file mode 100644 index 13fa27c1..00000000 --- a/BM_src/joshie/alchemicalWizardy/nei/NEIAlchemyRecipeHandler.java +++ /dev/null @@ -1,132 +0,0 @@ -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 = Math.max(0, 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/BM_src/joshie/alchemicalWizardy/nei/NEIAltarRecipeHandler.java b/BM_src/joshie/alchemicalWizardy/nei/NEIAltarRecipeHandler.java deleted file mode 100644 index b1f0b3bc..00000000 --- a/BM_src/joshie/alchemicalWizardy/nei/NEIAltarRecipeHandler.java +++ /dev/null @@ -1,161 +0,0 @@ -package joshie.alchemicalWizardy.nei; - -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.item.ItemStack; -import net.minecraft.util.ResourceLocation; -import net.minecraft.util.StatCollector; -import WayofTime.alchemicalWizardry.api.altarRecipeRegistry.AltarRecipe; -import WayofTime.alchemicalWizardry.api.altarRecipeRegistry.AltarRecipeRegistry; -import codechicken.core.gui.GuiDraw; -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 = GuiDraw.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(); - } -} diff --git a/BM_src/joshie/alchemicalWizardy/nei/NEIConfig.java b/BM_src/joshie/alchemicalWizardy/nei/NEIConfig.java deleted file mode 100644 index e4dcdf36..00000000 --- a/BM_src/joshie/alchemicalWizardy/nei/NEIConfig.java +++ /dev/null @@ -1,35 +0,0 @@ -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/BM_src/thaumcraft/api/LICENSE b/BM_src/thaumcraft/api/LICENSE deleted file mode 100644 index 11823298..00000000 --- a/BM_src/thaumcraft/api/LICENSE +++ /dev/null @@ -1,20 +0,0 @@ -The MIT License (MIT) - -Copyright (c) 2013 Azanor - -Permission is hereby granted, free of charge, to any person obtaining a copy of -this software and associated documentation files (the "Software"), to deal in -the Software without restriction, including without limitation the rights to -use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of -the Software, and to permit persons to whom the Software is furnished to do so, -subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS -FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR -COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER -IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN -CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. diff --git a/BM_src/thaumcraft/api/README.md b/BM_src/thaumcraft/api/README.md deleted file mode 100644 index b88c1cc6..00000000 --- a/BM_src/thaumcraft/api/README.md +++ /dev/null @@ -1,10 +0,0 @@ -thaumcraft-api -============== - -Thaumcraft Api - - - -This is just to create an easy to access place for the api code. - -I will still place the zips on the minecraft forum post for the "official" version of the api - the code here will usually be for dev versions. diff --git a/BM_src/thaumcraft/api/nodes/NodeModifier.java b/BM_src/thaumcraft/api/nodes/NodeModifier.java deleted file mode 100644 index 885b8678..00000000 --- a/BM_src/thaumcraft/api/nodes/NodeModifier.java +++ /dev/null @@ -1,6 +0,0 @@ -package thaumcraft.api.nodes; - -public enum NodeModifier -{ - BRIGHT, PALE, FADING -} \ No newline at end of file diff --git a/BM_src/thaumcraft/api/nodes/NodeType.java b/BM_src/thaumcraft/api/nodes/NodeType.java deleted file mode 100644 index 355324b5..00000000 --- a/BM_src/thaumcraft/api/nodes/NodeType.java +++ /dev/null @@ -1,6 +0,0 @@ -package thaumcraft.api.nodes; - -public enum NodeType -{ - NORMAL, UNSTABLE, DARK, TAINTED, HUNGRY, PURE -} \ No newline at end of file diff --git a/1.7.10 Build Files/CREDITS-fml.txt b/CREDITS-fml.txt similarity index 100% rename from 1.7.10 Build Files/CREDITS-fml.txt rename to CREDITS-fml.txt diff --git a/1.7.10 Build Files/LICENSE-fml.txt b/LICENSE-fml.txt similarity index 100% rename from 1.7.10 Build Files/LICENSE-fml.txt rename to LICENSE-fml.txt diff --git a/1.7.10 Build Files/MinecraftForge-Credits.txt b/MinecraftForge-Credits.txt similarity index 100% rename from 1.7.10 Build Files/MinecraftForge-Credits.txt rename to MinecraftForge-Credits.txt diff --git a/1.7.10 Build Files/MinecraftForge-License.txt b/MinecraftForge-License.txt similarity index 100% rename from 1.7.10 Build Files/MinecraftForge-License.txt rename to MinecraftForge-License.txt diff --git a/1.7.10 Build Files/README.txt b/README.txt similarity index 100% rename from 1.7.10 Build Files/README.txt rename to README.txt diff --git a/1.7.10 Build Files/build.gradle b/build.gradle similarity index 100% rename from 1.7.10 Build Files/build.gradle rename to build.gradle diff --git a/1.7.10 Build Files/build.properties b/build.properties similarity index 100% rename from 1.7.10 Build Files/build.properties rename to build.properties diff --git a/1.7.10 Build Files/forge-1.7.10-10.13.0.1152-changelog.txt b/forge-1.7.10-10.13.0.1152-changelog.txt similarity index 100% rename from 1.7.10 Build Files/forge-1.7.10-10.13.0.1152-changelog.txt rename to forge-1.7.10-10.13.0.1152-changelog.txt diff --git a/1.7.10 Build Files/gradlew b/gradlew similarity index 100% rename from 1.7.10 Build Files/gradlew rename to gradlew diff --git a/1.7.10 Build Files/gradlew.bat b/gradlew.bat similarity index 100% rename from 1.7.10 Build Files/gradlew.bat rename to gradlew.bat diff --git a/libs/MineTweaker3-Dev-1.7.10-3.0.9.jar b/libs/MineTweaker3-Dev-1.7.10-3.0.9.jar new file mode 100644 index 0000000000000000000000000000000000000000..df7fea082086038966cebed4a7eba7978111180e GIT binary patch literal 768838 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≶qNp+16}fcT-NC6>j@s6r<*h**?6DAvj4F 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˅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