1.0.1d push

This commit is contained in:
WayofTime 2014-05-04 18:11:09 -04:00
parent e13818e2da
commit 1c0deadfc6
129 changed files with 4403 additions and 2247 deletions

View file

@ -20,6 +20,13 @@ import net.minecraftforge.fluids.Fluid;
import net.minecraftforge.fluids.FluidContainerRegistry; import net.minecraftforge.fluids.FluidContainerRegistry;
import net.minecraftforge.fluids.FluidRegistry; import net.minecraftforge.fluids.FluidRegistry;
import net.minecraftforge.oredict.OreDictionary; 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.AlchemicalWizardryEventHooks;
import WayofTime.alchemicalWizardry.common.AlchemicalWizardryFuelHandler; import WayofTime.alchemicalWizardry.common.AlchemicalWizardryFuelHandler;
import WayofTime.alchemicalWizardry.common.CommonProxy; import WayofTime.alchemicalWizardry.common.CommonProxy;
@ -28,9 +35,6 @@ import WayofTime.alchemicalWizardry.common.LifeBucketHandler;
import WayofTime.alchemicalWizardry.common.LifeEssence; import WayofTime.alchemicalWizardry.common.LifeEssence;
import WayofTime.alchemicalWizardry.common.ModLivingDropsEvent; import WayofTime.alchemicalWizardry.common.ModLivingDropsEvent;
import WayofTime.alchemicalWizardry.common.NewPacketHandler; import WayofTime.alchemicalWizardry.common.NewPacketHandler;
import WayofTime.alchemicalWizardry.common.alchemy.AlchemicalPotionCreationHandler;
import WayofTime.alchemicalWizardry.common.alchemy.AlchemyRecipeRegistry;
import WayofTime.alchemicalWizardry.common.altarRecipeRegistry.AltarRecipeRegistry;
import WayofTime.alchemicalWizardry.common.block.ArmourForge; import WayofTime.alchemicalWizardry.common.block.ArmourForge;
import WayofTime.alchemicalWizardry.common.bloodAltarUpgrade.UpgradedAltars; import WayofTime.alchemicalWizardry.common.bloodAltarUpgrade.UpgradedAltars;
import WayofTime.alchemicalWizardry.common.entity.mob.EntityBileDemon; import WayofTime.alchemicalWizardry.common.entity.mob.EntityBileDemon;
@ -48,6 +52,7 @@ import WayofTime.alchemicalWizardry.common.entity.mob.EntityWaterElemental;
import WayofTime.alchemicalWizardry.common.entity.mob.EntityWingedFireDemon; import WayofTime.alchemicalWizardry.common.entity.mob.EntityWingedFireDemon;
import WayofTime.alchemicalWizardry.common.items.ItemRitualDiviner; import WayofTime.alchemicalWizardry.common.items.ItemRitualDiviner;
import WayofTime.alchemicalWizardry.common.items.sigil.SigilOfHolding; 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.PotionBoost;
import WayofTime.alchemicalWizardry.common.potion.PotionDrowning; import WayofTime.alchemicalWizardry.common.potion.PotionDrowning;
import WayofTime.alchemicalWizardry.common.potion.PotionFireFuse; import WayofTime.alchemicalWizardry.common.potion.PotionFireFuse;
@ -59,7 +64,28 @@ import WayofTime.alchemicalWizardry.common.potion.PotionInhibit;
import WayofTime.alchemicalWizardry.common.potion.PotionPlanarBinding; import WayofTime.alchemicalWizardry.common.potion.PotionPlanarBinding;
import WayofTime.alchemicalWizardry.common.potion.PotionProjectileProtect; import WayofTime.alchemicalWizardry.common.potion.PotionProjectileProtect;
import WayofTime.alchemicalWizardry.common.potion.PotionReciprocation; import WayofTime.alchemicalWizardry.common.potion.PotionReciprocation;
import WayofTime.alchemicalWizardry.common.rituals.Rituals; 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.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.HomSpellRegistry;
import WayofTime.alchemicalWizardry.common.spell.simple.SpellEarthBender; import WayofTime.alchemicalWizardry.common.spell.simple.SpellEarthBender;
import WayofTime.alchemicalWizardry.common.spell.simple.SpellExplosions; import WayofTime.alchemicalWizardry.common.spell.simple.SpellExplosions;
@ -70,8 +96,7 @@ import WayofTime.alchemicalWizardry.common.spell.simple.SpellLightningBolt;
import WayofTime.alchemicalWizardry.common.spell.simple.SpellTeleport; import WayofTime.alchemicalWizardry.common.spell.simple.SpellTeleport;
import WayofTime.alchemicalWizardry.common.spell.simple.SpellWateryGrave; import WayofTime.alchemicalWizardry.common.spell.simple.SpellWateryGrave;
import WayofTime.alchemicalWizardry.common.spell.simple.SpellWindGust; import WayofTime.alchemicalWizardry.common.spell.simple.SpellWindGust;
import WayofTime.alchemicalWizardry.common.summoning.SummoningHelper; import WayofTime.alchemicalWizardry.common.summoning.SummoningHelperAW;
import WayofTime.alchemicalWizardry.common.summoning.SummoningRegistry;
import WayofTime.alchemicalWizardry.common.summoning.meteor.MeteorRegistry; import WayofTime.alchemicalWizardry.common.summoning.meteor.MeteorRegistry;
import WayofTime.alchemicalWizardry.common.tileEntity.TEAltar; import WayofTime.alchemicalWizardry.common.tileEntity.TEAltar;
import WayofTime.alchemicalWizardry.common.tileEntity.TEConduit; import WayofTime.alchemicalWizardry.common.tileEntity.TEConduit;
@ -99,8 +124,9 @@ import cpw.mods.fml.common.event.FMLPreInitializationEvent;
import cpw.mods.fml.common.network.NetworkRegistry; import cpw.mods.fml.common.network.NetworkRegistry;
import cpw.mods.fml.common.registry.EntityRegistry; import cpw.mods.fml.common.registry.EntityRegistry;
import cpw.mods.fml.common.registry.GameRegistry; import cpw.mods.fml.common.registry.GameRegistry;
import cpw.mods.fml.common.registry.LanguageRegistry;
@Mod(modid = "AWWayofTime", name = "AlchemicalWizardry", version = "v1.0.0b") @Mod(modid = "AWWayofTime", name = "AlchemicalWizardry", version = "v1.0.1d")
//@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) //@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 class AlchemicalWizardry
@ -143,6 +169,8 @@ public class AlchemicalWizardry
public static boolean isThaumcraftLoaded; public static boolean isThaumcraftLoaded;
public static boolean isForestryLoaded; public static boolean isForestryLoaded;
public static boolean wimpySettings;
public static CreativeTabs tabBloodMagic = new CreativeTabs("tabBloodMagic") public static CreativeTabs tabBloodMagic = new CreativeTabs("tabBloodMagic")
{ {
@ -496,13 +524,16 @@ public class AlchemicalWizardry
//Gui registration //Gui registration
// NetworkRegistry.instance().registerGuiHandler(this, new GuiHandlerAltar()); // NetworkRegistry.instance().registerGuiHandler(this, new GuiHandlerAltar());
Rituals.loadRituals();
UpgradedAltars.loadAltars(); UpgradedAltars.loadAltars();
SigilOfHolding.initiateSigilOfHolding(); SigilOfHolding.initiateSigilOfHolding();
ArmourForge.initializeRecipes(); ArmourForge.initializeRecipes();
TEPlinth.initialize(); TEPlinth.initialize();
AlchemicalPotionCreationHandler.initializePotions();
AltarRecipeRegistry.initRecipes(); this.initAlchemyPotionRecipes();
this.initAltarRecipes();
this.initRituals();
this.initBindingRecipes();
//MinecraftForge.setToolClass(ModItems.boundPickaxe, "pickaxe", 5); //MinecraftForge.setToolClass(ModItems.boundPickaxe, "pickaxe", 5);
//MinecraftForge.setToolClass(ModItems.boundAxe, "axe", 5); //MinecraftForge.setToolClass(ModItems.boundAxe, "axe", 5);
//MinecraftForge.setToolClass(ModItems.boundShovel, "shovel", 5); //MinecraftForge.setToolClass(ModItems.boundShovel, "shovel", 5);
@ -579,20 +610,20 @@ public class AlchemicalWizardry
HomSpellRegistry.registerBasicSpell(new ItemStack(Items.water_bucket), new SpellWateryGrave()); HomSpellRegistry.registerBasicSpell(new ItemStack(Items.water_bucket), new SpellWateryGrave());
HomSpellRegistry.registerBasicSpell(new ItemStack(Blocks.obsidian), new SpellEarthBender()); HomSpellRegistry.registerBasicSpell(new ItemStack(Blocks.obsidian), new SpellEarthBender());
HomSpellRegistry.registerBasicSpell(new ItemStack(Items.ender_pearl), new SpellTeleport()); HomSpellRegistry.registerBasicSpell(new ItemStack(Items.ender_pearl), new SpellTeleport());
SummoningRegistry.registerSummon(new SummoningHelper(this.entityFallenAngelID), new ItemStack[]{sanctusStack, sanctusStack, sanctusStack, aetherStack, tennebraeStack, terraeStack}, new ItemStack[]{}, new ItemStack[]{}, 0, 4); SummoningRegistry.registerSummon(new SummoningHelperAW(this.entityFallenAngelID), new ItemStack[]{sanctusStack, sanctusStack, sanctusStack, aetherStack, tennebraeStack, terraeStack}, new ItemStack[]{}, new ItemStack[]{}, 0, 4);
SummoningRegistry.registerSummon(new SummoningHelper(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.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 SummoningHelper(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.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 SummoningHelper(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.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 SummoningHelper(this.entitySmallEarthGolemID), new ItemStack[]{new ItemStack(Items.clay_ball), terraeStack, terraeStack}, new ItemStack[]{}, new ItemStack[]{}, 0, 4); SummoningRegistry.registerSummon(new SummoningHelperAW(this.entitySmallEarthGolemID), new ItemStack[]{new ItemStack(Items.clay_ball), terraeStack, terraeStack}, new ItemStack[]{}, new ItemStack[]{}, 0, 4);
SummoningRegistry.registerSummon(new SummoningHelper(this.entityIceDemonID), new ItemStack[]{crystallosStack, crystallosStack, aquasalusStack, crystallosStack, sanctusStack, 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 SummoningHelper(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.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 SummoningHelper(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.entityShadeID), new ItemStack[]{tennebraeStack, tennebraeStack, tennebraeStack, aetherStack, glassStack, new ItemStack(Items.glass_bottle)}, new ItemStack[]{}, new ItemStack[]{}, 0, 4);
SummoningRegistry.registerSummon(new SummoningHelper(this.entityAirElementalID), new ItemStack[]{aetherStack, aetherStack, aetherStack, aetherStack, aetherStack, aetherStack}, 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 SummoningHelper(this.entityWaterElementalID), new ItemStack[]{aquasalusStack, aquasalusStack, aquasalusStack, aquasalusStack, aquasalusStack, aquasalusStack}, 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 SummoningHelper(this.entityEarthElementalID), new ItemStack[]{terraeStack, terraeStack, terraeStack, terraeStack, terraeStack, terraeStack}, 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 SummoningHelper(this.entityFireElementalID), new ItemStack[]{incendiumStack, incendiumStack, incendiumStack, incendiumStack, incendiumStack, incendiumStack}, 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 SummoningHelper(this.entityShadeElementalID), new ItemStack[]{tennebraeStack,tennebraeStack,tennebraeStack,tennebraeStack,tennebraeStack,tennebraeStack}, 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 SummoningHelper(this.entityHolyElementalID), new ItemStack[]{sanctusStack, sanctusStack, sanctusStack, sanctusStack, sanctusStack, sanctusStack}, 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 //Custom mobs
EntityRegistry.registerModEntity(EntityFallenAngel.class, "FallenAngel", this.entityFallenAngelID, this, 80, 3, true); EntityRegistry.registerModEntity(EntityFallenAngel.class, "FallenAngel", this.entityFallenAngelID, this, 80, 3, true);
EntityRegistry.registerModEntity(EntityLowerGuardian.class, "LowerGuardian", this.entityLowerGuardianID, this, 80, 3, true); EntityRegistry.registerModEntity(EntityLowerGuardian.class, "LowerGuardian", this.entityLowerGuardianID, this, 80, 3, true);
@ -718,6 +749,9 @@ public class AlchemicalWizardry
GameRegistry.addShapelessRecipe(new ItemStack(Items.dye,5,15),fracturedBoneStack); GameRegistry.addShapelessRecipe(new ItemStack(Items.dye,5,15),fracturedBoneStack);
GameRegistry.addRecipe(new ItemStack(ModItems.itemSigilOfSupression),"wtl","wvl","wol",'v',new ItemStack(ModItems.voidSigil),'t',new ItemStack(ModBlocks.blockTeleposer),'o',masterBloodOrbStack,'l',lavaBucketStack,'w',waterBucketStack);
AlchemyRecipeRegistry.registerRecipe(new ItemStack(Items.flint,2,0), 1, new ItemStack[]{new ItemStack(Blocks.gravel),new ItemStack(Items.flint)}, 1); 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(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.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);
@ -742,29 +776,26 @@ public class AlchemicalWizardry
{ {
this.isThaumcraftLoaded = true; this.isThaumcraftLoaded = true;
// try try
// { {
// //do stuff //do stuff
// ModItems.sanguineHelmet = new ItemSanguineArmour(sanguineHelmetItemID).setUnlocalizedName("sanguineHelmet"); ModItems.sanguineHelmet = new ItemSanguineArmour().setUnlocalizedName("sanguineHelmet");
// LanguageRegistry.addName(ModItems.sanguineHelmet, "Sanguine Helmet"); GameRegistry.registerItem(ModItems.sanguineHelmet, "sanguineHelmet");
//// focusBloodBlast = new FocusBloodBlast(focusBloodBlastItemID);
//// LanguageRegistry.addName(focusBloodBlast,"Wand Focus: Blood Blast"); ItemStack itemGoggles = ItemApi.getItem("itemGoggles", 0);
////
//// focusGravityWell = new FocusGravityWell(focusGravityWellItemID); if (itemGoggles != null)
//// LanguageRegistry.addName(focusGravityWell,"Wand Focus: Gravity Well"); {
// ItemStack itemGoggles = ItemApi.getItem("itemGoggles", 0); BindingRegistry.registerRecipe(new ItemStack(ModItems.sanguineHelmet), itemGoggles);
//
// if (itemGoggles != null) }
// {
// //GameRegistry.addShapelessRecipe(new ItemStack(this.sanguineHelmet), itemGoggles); //LogHelper.log(Level.INFO, "Loaded RP2 World addon");
// } } catch (Exception e)
// {
// //LogHelper.log(Level.INFO, "Loaded RP2 World addon"); //LogHelper.log(Level.SEVERE, "Could not load RP2 World addon");
// } catch (Exception e) e.printStackTrace(System.err);
// { }
// //LogHelper.log(Level.SEVERE, "Could not load RP2 World addon");
// e.printStackTrace(System.err);
// }
} else } else
{ {
this.isThaumcraftLoaded = false; this.isThaumcraftLoaded = false;
@ -787,4 +818,100 @@ public class AlchemicalWizardry
this.isForestryLoaded = false; 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.ritualList.add(new Rituals(1, 500, new RitualEffectWater(), "Ritual of the Full Spring"));
Rituals.ritualList.add(new Rituals(1, 10000, new RitualEffectLava(), "Serenade of the Nether"));
Rituals.ritualList.add(new Rituals(1, 1000, new RitualEffectGrowth(), "Ritual of the Green Grove"));
Rituals.ritualList.add(new Rituals(1, 1000, new RitualEffectInterdiction(), "Interdiction Ritual"));
Rituals.ritualList.add(new Rituals(1, 2000, new RitualEffectContainment(), "Ritual of Containment"));
Rituals.ritualList.add(new Rituals(1, 5000, new RitualEffectSoulBound(), "Ritual of Binding"));
Rituals.ritualList.add(new Rituals(1, 30000, new RitualEffectUnbinding(), "Ritual of Unbinding"));
Rituals.ritualList.add(new Rituals(1, 1000, new RitualEffectJumping(), "Ritual of the High Jump"));
Rituals.ritualList.add(new Rituals(1, 5000, new RitualEffectMagnetic(), "Ritual of Magnetism"));
Rituals.ritualList.add(new Rituals(1, 2500, new RitualEffectCrushing(), "Ritual of the Crusher"));
Rituals.ritualList.add(new Rituals(1, 1000, new RitualEffectLeap(), "Ritual of Speed"));
Rituals.ritualList.add(new Rituals(1, 10000, new RitualEffectAnimalGrowth(), "Ritual of the Shepherd"));
Rituals.ritualList.add(new Rituals(1, 50000, new RitualEffectWellOfSuffering(), "Well of Suffering"));
Rituals.ritualList.add(new Rituals(1, 25000, new RitualEffectHealing(), "Ritual of Regeneration"));
Rituals.ritualList.add(new Rituals(1, 50000, new RitualEffectFeatheredKnife(), "Ritual of the Feathered Knife"));
Rituals.ritualList.add(new Rituals(2, 100000, new RitualEffectFeatheredEarth(), "Ritual of the Feathered Earth"));
Rituals.ritualList.add(new Rituals(2, 1000000, new RitualEffectBiomeChanger(), "Ritual of Gaia's Transformation"));
Rituals.ritualList.add(new Rituals(2, 1000000, new RitualEffectFlight(), "Reverence of the Condor"));
Rituals.ritualList.add(new Rituals(2, 1000000, new RitualEffectSummonMeteor(), "Mark of the Falling Tower"));
Rituals.ritualList.add(new Rituals(1, 20000,new RitualEffectAutoAlchemy(), "Ballad of Alchemy"));
Rituals.ritualList.add(new Rituals(1, 1000000,new RitualEffectExpulsion(), "Aura of Expulsion"));
Rituals.ritualList.add(new Rituals(1, 10000,new RitualEffectSupression(), "Dome of Supression"));
//Rituals.ritualList.add(new Rituals(1,100,new RitualEffectApiaryOverclock(),"Apiary Overclock"));
}
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));
}
} }

View file

@ -62,125 +62,8 @@ public class BloodMagicConfiguration
AlchemicalWizardry.netherStarMeteorRadius = config.get("meteor", "netherStarMeteorRadius", 3).getInt(); 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.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.wimpySettings = config.get("WimpySettings","IDontLikeFun",false).getBoolean(false);
// 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();
// //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();
} catch (Exception e) } catch (Exception e)
{ {

View file

@ -51,6 +51,7 @@ public class ModBlocks
public static Block blockSpellParadigm; public static Block blockSpellParadigm;
public static Block blockSpellModifier; public static Block blockSpellModifier;
public static Block blockSpellEnhancement; public static Block blockSpellEnhancement;
public static Block blockSpectralContainer;
public static void init() public static void init()
{ {
@ -81,6 +82,7 @@ public class ModBlocks
blockSpellParadigm = new BlockSpellParadigm(); blockSpellParadigm = new BlockSpellParadigm();
blockSpellModifier = new BlockSpellModifier(); blockSpellModifier = new BlockSpellModifier();
blockSpellEnhancement = new BlockSpellEnhancement(); blockSpellEnhancement = new BlockSpellEnhancement();
blockSpectralContainer = new BlockSpectralContainer();
blockLifeEssence = new LifeEssenceBlock(); blockLifeEssence = new LifeEssenceBlock();
} }
@ -117,6 +119,8 @@ public class ModBlocks
GameRegistry.registerBlock(ModBlocks.blockSpellModifier, ItemSpellModifierBlock.class,"AlchemicalWizardry" + (ModBlocks.blockSpellModifier.getUnlocalizedName())); GameRegistry.registerBlock(ModBlocks.blockSpellModifier, ItemSpellModifierBlock.class,"AlchemicalWizardry" + (ModBlocks.blockSpellModifier.getUnlocalizedName()));
GameRegistry.registerBlock(ModBlocks.blockSpellEffect, ItemSpellEffectBlock.class,"AlchemicalWizardry" + (ModBlocks.blockSpellEffect.getUnlocalizedName())); GameRegistry.registerBlock(ModBlocks.blockSpellEffect, ItemSpellEffectBlock.class,"AlchemicalWizardry" + (ModBlocks.blockSpellEffect.getUnlocalizedName()));
GameRegistry.registerBlock(ModBlocks.blockSpectralContainer, "spectralContainer");
} }
public static void registerBlocksInInit() public static void registerBlocksInInit()

View file

@ -57,6 +57,7 @@ import WayofTime.alchemicalWizardry.common.items.sigil.AirSigil;
import WayofTime.alchemicalWizardry.common.items.sigil.DivinationSigil; import WayofTime.alchemicalWizardry.common.items.sigil.DivinationSigil;
import WayofTime.alchemicalWizardry.common.items.sigil.ItemBloodLightSigil; import WayofTime.alchemicalWizardry.common.items.sigil.ItemBloodLightSigil;
import WayofTime.alchemicalWizardry.common.items.sigil.ItemSigilOfEnderSeverance; 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.LavaSigil;
import WayofTime.alchemicalWizardry.common.items.sigil.SigilOfElementalAffinity; import WayofTime.alchemicalWizardry.common.items.sigil.SigilOfElementalAffinity;
import WayofTime.alchemicalWizardry.common.items.sigil.SigilOfGrowth; import WayofTime.alchemicalWizardry.common.items.sigil.SigilOfGrowth;
@ -165,6 +166,7 @@ public class ModItems
public static Item itemBloodFrame; public static Item itemBloodFrame;
public static Item itemSigilOfEnderSeverance; public static Item itemSigilOfEnderSeverance;
public static Item itemSigilOfSupression;
public static Item bucketLife; public static Item bucketLife;
@ -251,6 +253,7 @@ public class ModItems
itemSigilOfEnderSeverance = (new ItemSigilOfEnderSeverance()).setUnlocalizedName("itemSigilOfEnderSeverance"); itemSigilOfEnderSeverance = (new ItemSigilOfEnderSeverance()).setUnlocalizedName("itemSigilOfEnderSeverance");
baseItems = new ItemComponents().setUnlocalizedName("baseItems"); baseItems = new ItemComponents().setUnlocalizedName("baseItems");
baseAlchemyItems = new ItemAlchemyBase().setUnlocalizedName("baseAlchemyItems"); baseAlchemyItems = new ItemAlchemyBase().setUnlocalizedName("baseAlchemyItems");
itemSigilOfSupression = new ItemSigilOfSupression().setUnlocalizedName("itemSigilOfSupression");
} }
public static void registerItems() public static void registerItems()
@ -337,6 +340,7 @@ public class ModItems
GameRegistry.registerItem(ModItems.energyBazooka, "energyBazooka"); GameRegistry.registerItem(ModItems.energyBazooka, "energyBazooka");
GameRegistry.registerItem(ModItems.itemBloodLightSigil, "itemBloodLightSigil"); GameRegistry.registerItem(ModItems.itemBloodLightSigil, "itemBloodLightSigil");
GameRegistry.registerItem(ModItems.itemComplexSpellCrystal, "itemComplexSpellCrystal"); GameRegistry.registerItem(ModItems.itemComplexSpellCrystal, "itemComplexSpellCrystal");
GameRegistry.registerItem(ModItems.itemSigilOfSupression, "sigilOfSupression");
GameRegistry.registerItem(ModItems.itemSigilOfEnderSeverance, "sigilOfEnderSeverance"); GameRegistry.registerItem(ModItems.itemSigilOfEnderSeverance, "sigilOfEnderSeverance");
GameRegistry.registerItem(ModItems.bucketLife, "bucketLife"); GameRegistry.registerItem(ModItems.bucketLife, "bucketLife");

View file

@ -0,0 +1,79 @@
package WayofTime.alchemicalWizardry.api.alchemy;
import java.util.ArrayList;
import net.minecraft.item.ItemStack;
public class AlchemicalPotionCreationHandler
{
public static ArrayList<AlchemyPotionHandlerComponent> 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;
}
}

View file

@ -1,4 +1,4 @@
package WayofTime.alchemicalWizardry.common.alchemy; package WayofTime.alchemicalWizardry.api.alchemy;
import net.minecraft.item.ItemBlock; import net.minecraft.item.ItemBlock;
import net.minecraft.item.ItemStack; import net.minecraft.item.ItemStack;

View file

@ -1,4 +1,4 @@
package WayofTime.alchemicalWizardry.common.alchemy; package WayofTime.alchemicalWizardry.api.alchemy;
import net.minecraft.nbt.NBTTagCompound; import net.minecraft.nbt.NBTTagCompound;
import net.minecraft.potion.Potion; import net.minecraft.potion.Potion;

View file

@ -1,4 +1,4 @@
package WayofTime.alchemicalWizardry.common.alchemy; package WayofTime.alchemicalWizardry.api.alchemy;
import net.minecraft.item.ItemBlock; import net.minecraft.item.ItemBlock;
import net.minecraft.item.ItemStack; import net.minecraft.item.ItemStack;

View file

@ -1,11 +1,11 @@
package WayofTime.alchemicalWizardry.common.alchemy; package WayofTime.alchemicalWizardry.api.alchemy;
import WayofTime.alchemicalWizardry.common.items.EnergyBattery;
import net.minecraft.item.ItemStack;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.List; import java.util.List;
import net.minecraft.item.ItemStack;
import WayofTime.alchemicalWizardry.api.items.interfaces.IBloodOrb;
public class AlchemyRecipeRegistry public class AlchemyRecipeRegistry
{ {
public static List<AlchemyRecipe> recipes = new ArrayList(); public static List<AlchemyRecipe> recipes = new ArrayList();
@ -22,12 +22,12 @@ public class AlchemyRecipeRegistry
return null; return null;
} }
if (!(bloodOrb.getItem() instanceof EnergyBattery)) if (!(bloodOrb.getItem() instanceof IBloodOrb))
{ {
return null; return null;
} }
int bloodOrbLevel = ((EnergyBattery) bloodOrb.getItem()).getOrbLevel(); int bloodOrbLevel = ((IBloodOrb) bloodOrb.getItem()).getOrbLevel();
for (AlchemyRecipe ar : recipes) for (AlchemyRecipe ar : recipes)
{ {
@ -47,12 +47,12 @@ public class AlchemyRecipeRegistry
return 0; return 0;
} }
if (!(bloodOrb.getItem() instanceof EnergyBattery)) if (!(bloodOrb.getItem() instanceof IBloodOrb))
{ {
return 0; return 0;
} }
int bloodOrbLevel = ((EnergyBattery) bloodOrb.getItem()).getOrbLevel(); int bloodOrbLevel = ((IBloodOrb) bloodOrb.getItem()).getOrbLevel();
for (AlchemyRecipe ar : recipes) for (AlchemyRecipe ar : recipes)
{ {

View file

@ -1,4 +1,4 @@
package WayofTime.alchemicalWizardry.common.altarRecipeRegistry; package WayofTime.alchemicalWizardry.api.altarRecipeRegistry;
import net.minecraft.item.ItemStack; import net.minecraft.item.ItemStack;

View file

@ -0,0 +1,60 @@
package WayofTime.alchemicalWizardry.api.altarRecipeRegistry;
import java.util.LinkedList;
import java.util.List;
import net.minecraft.item.ItemStack;
public class AltarRecipeRegistry
{
public static List<AltarRecipe> 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;
}
}

View file

@ -0,0 +1,30 @@
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;
}
}

View file

@ -0,0 +1,67 @@
package WayofTime.alchemicalWizardry.api.bindingRegistry;
import java.util.LinkedList;
import java.util.List;
import net.minecraft.item.ItemStack;
public class BindingRegistry
{
public static List<BindingRecipe> 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();
}
}

View file

@ -1,4 +1,4 @@
package WayofTime.alchemicalWizardry.common; package WayofTime.alchemicalWizardry.api.items.interfaces;
import net.minecraft.entity.player.EntityPlayer; import net.minecraft.entity.player.EntityPlayer;
import net.minecraft.item.ItemStack; import net.minecraft.item.ItemStack;

View file

@ -0,0 +1,5 @@
package WayofTime.alchemicalWizardry.api.items.interfaces;
public interface IBindable
{
}

View file

@ -0,0 +1,8 @@
package WayofTime.alchemicalWizardry.api.items.interfaces;
public interface IBloodOrb
{
public int getMaxEssence();
public int getOrbLevel();
}

View file

@ -0,0 +1,6 @@
package WayofTime.alchemicalWizardry.api.items.interfaces;
public interface IHolding
{
}

View file

@ -0,0 +1,30 @@
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();
}

View file

@ -0,0 +1,6 @@
package WayofTime.alchemicalWizardry.api.rituals;
public interface IRitualStone
{
}

View file

@ -1,4 +1,4 @@
package WayofTime.alchemicalWizardry.common.rituals; package WayofTime.alchemicalWizardry.api.rituals;
public class RitualComponent public class RitualComponent
{ {

View file

@ -0,0 +1,17 @@
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<RitualComponent> getRitualComponentList();
}

View file

@ -0,0 +1,252 @@
package WayofTime.alchemicalWizardry.api.rituals;
import java.util.ArrayList;
import java.util.List;
import net.minecraft.block.Block;
import net.minecraft.world.World;
import net.minecraftforge.oredict.OreDictionary;
public class Rituals
{
private int crystalLevel;
private int actCost;
private RitualEffect effect;
private String name;
public static List<Rituals> 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<RitualComponent> 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, 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<RitualComponent> getRitualList(int ritualID)
{
if (ritualID <= ritualList.size())
{
return ritualList.get(ritualID - 1).obtainComponents();
} else
{
return null;
}
}
private List<RitualComponent> 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 "";
}
}
}

View file

@ -1,4 +1,4 @@
package WayofTime.alchemicalWizardry.common; package WayofTime.alchemicalWizardry.api.soulNetwork;
import net.minecraft.nbt.NBTTagCompound; import net.minecraft.nbt.NBTTagCompound;

View file

@ -0,0 +1,228 @@
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();
}
}

View file

@ -0,0 +1,21 @@
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;
}
}

View file

@ -1,4 +1,4 @@
package WayofTime.alchemicalWizardry.common.summoning; package WayofTime.alchemicalWizardry.api.summoningRegistry;
import net.minecraft.entity.EntityLivingBase; import net.minecraft.entity.EntityLivingBase;
import net.minecraft.item.ItemStack; import net.minecraft.item.ItemStack;

View file

@ -1,4 +1,4 @@
package WayofTime.alchemicalWizardry.common.summoning; package WayofTime.alchemicalWizardry.api.summoningRegistry;
import net.minecraft.entity.EntityLivingBase; import net.minecraft.entity.EntityLivingBase;
import net.minecraft.item.ItemBlock; import net.minecraft.item.ItemBlock;

View file

@ -1,5 +0,0 @@
package WayofTime.alchemicalWizardry.common;
public interface IBindable
{
}

View file

@ -1,110 +0,0 @@
package WayofTime.alchemicalWizardry.common.alchemy;
import java.util.ArrayList;
import net.minecraft.init.Items;
import net.minecraft.item.ItemStack;
import net.minecraft.potion.Potion;
import WayofTime.alchemicalWizardry.AlchemicalWizardry;
import WayofTime.alchemicalWizardry.ModItems;
public class AlchemicalPotionCreationHandler
{
public static ArrayList<AlchemyPotionHandlerComponent> registeredPotionEffects = new ArrayList();
public static void initializePotions()
{
addPotion(new ItemStack(Items.ghast_tear), Potion.regeneration.id, 450);
addPotion(new ItemStack(Items.golden_carrot), Potion.nightVision.id, 2 * 60 * 20);
addPotion(new ItemStack(Items.magma_cream), Potion.fireResistance.id, 2 * 60 * 20);
addPotion(new ItemStack(Items.water_bucket), Potion.waterBreathing.id, 2 * 60 * 20);
addPotion(new ItemStack(Items.sugar), Potion.moveSpeed.id, 2 * 60 * 20);
addPotion(new ItemStack(Items.speckled_melon), Potion.heal.id, 2 * 60 * 20);
addPotion(new ItemStack(Items.spider_eye), Potion.poison.id, 450);
addPotion(new ItemStack(Items.fermented_spider_eye), Potion.weakness.id, 450);
addPotion(new ItemStack(Items.blaze_powder), Potion.damageBoost.id, 2 * 60 * 20);
addPotion(new ItemStack(ModItems.aether), Potion.jump.id, 2 * 60 * 20);
addPotion(new ItemStack(Items.clay_ball), Potion.moveSlowdown.id, 450);
addPotion(new ItemStack(Items.redstone), Potion.digSpeed.id, 2 * 60 * 20);
addPotion(new ItemStack(Items.potionitem, 1, 0), AlchemicalWizardry.customPotionDrowning.id, 450);
//addPotion(new ItemStack(Item.goldenCarrot),Potion.nightVision.id,2*60*20);
addPotion(new ItemStack(Items.glass_bottle), Potion.invisibility.id, 2 * 60 * 20);
addPotion(new ItemStack(Items.diamond), Potion.resistance.id, 2 * 60 * 20);
addPotion(new ItemStack(Items.poisonous_potato), Potion.field_76443_y.id, 2); //saturation
addPotion(new ItemStack(ModItems.demonBloodShard), Potion.field_76434_w.id, 4 * 60 * 20); //health boost
addPotion(new ItemStack(ModItems.weakBloodShard), Potion.field_76444_x.id, 4 * 60 * 20); //Absorption
addPotion(new ItemStack(ModItems.terrae), AlchemicalWizardry.customPotionBoost.id, 1 * 60 * 20);
addPotion(new ItemStack(Items.feather), AlchemicalWizardry.customPotionFlight.id, 1 * 60 * 20);
addPotion(new ItemStack(Items.arrow), AlchemicalWizardry.customPotionReciprocation.id, 1 * 60 * 20);
addPotion(new ItemStack(Items.ender_pearl),AlchemicalWizardry.customPotionPlanarBinding.id,1*60*20);
}
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;
}
}

View file

@ -1,100 +0,0 @@
package WayofTime.alchemicalWizardry.common.altarRecipeRegistry;
import java.util.LinkedList;
import java.util.List;
import net.minecraft.block.Block;
import net.minecraft.init.Blocks;
import net.minecraft.init.Items;
import net.minecraft.item.Item;
import net.minecraft.item.ItemStack;
import WayofTime.alchemicalWizardry.AlchemicalWizardry;
import WayofTime.alchemicalWizardry.ModBlocks;
import WayofTime.alchemicalWizardry.ModItems;
public class AltarRecipeRegistry
{
public static List<AltarRecipe> 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 void initRecipes()
{
registerAltarRecipe(new ItemStack(ModItems.weakBloodOrb), new ItemStack(Items.diamond),1,2000,2,1,false);
registerAltarRecipe(new ItemStack(ModItems.apprenticeBloodOrb), new ItemStack(Items.emerald),2,5000,5,5,false);
registerAltarRecipe(new ItemStack(ModItems.magicianBloodOrb), new ItemStack(Blocks.gold_block),3,25000,20,20,false);
registerAltarRecipe(new ItemStack(ModItems.masterBloodOrb), new ItemStack(ModItems.weakBloodShard),4,40000,30,50,false);
registerAltarRecipe(new ItemStack(ModItems.archmageBloodOrb), new ItemStack(ModItems.demonBloodShard),5,75000,50,100,false);
registerAltarOrbRecipe(new ItemStack(ModItems.weakBloodOrb),1,2);
registerAltarOrbRecipe(new ItemStack(ModItems.apprenticeBloodOrb),2,5);
registerAltarOrbRecipe(new ItemStack(ModItems.magicianBloodOrb),3,15);
registerAltarOrbRecipe(new ItemStack(ModItems.masterBloodOrb),4,25);
registerAltarOrbRecipe(new ItemStack(ModItems.archmageBloodOrb),5,50);
registerAltarRecipe(new ItemStack(ModItems.telepositionFocus), new ItemStack(Items.ender_pearl),4,2000,10,10,false);
registerAltarRecipe(new ItemStack(ModItems.enhancedTelepositionFocus), new ItemStack(ModItems.telepositionFocus),4,10000,25,15,false);
registerAltarRecipe(new ItemStack(ModItems.demonicSlate), new ItemStack(ModItems.imbuedSlate),4,15000,20,20,false);
registerAltarRecipe(new ItemStack(ModItems.duskScribeTool), new ItemStack(Blocks.coal_block),4,2000,20,10,false);
registerAltarRecipe(new ItemStack(ModBlocks.bloodSocket), new ItemStack(ModBlocks.emptySocket),3,30000,40,10,false);
registerAltarRecipe(new ItemStack(ModItems.earthScribeTool), new ItemStack(Blocks.obsidian),3,1000,5,5,false);
registerAltarRecipe(new ItemStack(ModItems.waterScribeTool), new ItemStack(Blocks.lapis_block),3,1000,5,5,false);
registerAltarRecipe(new ItemStack(ModItems.blankSpell), new ItemStack(Blocks.glass),2,1000,5,5,false);
registerAltarRecipe(new ItemStack(ModItems.blankSlate), new ItemStack(Blocks.stone),1,1000,5,5,false);
registerAltarRecipe(new ItemStack(ModItems.activationCrystal), new ItemStack(ModItems.lavaCrystal),3,10000,20,10,false);
registerAltarRecipe(new ItemStack(ModItems.fireScribeTool), new ItemStack(Items.magma_cream),3,1000,5,5,false);
registerAltarRecipe(new ItemStack(ModItems.airScribeTool), new ItemStack(Items.ghast_tear),3,1000,5,5,false);
registerAltarRecipe(new ItemStack(ModItems.imbuedSlate), new ItemStack(ModItems.reinforcedSlate),3,5000,15,10,false);
registerAltarRecipe(new ItemStack(ModItems.daggerOfSacrifice), new ItemStack(Items.iron_sword),2,3000,5,5,false);
registerAltarRecipe(new ItemStack(ModItems.alchemyFlask), new ItemStack(Items.glass_bottle),2,2000,5,5,false);
registerAltarRecipe(new ItemStack(ModItems.reinforcedSlate), new ItemStack(ModItems.blankSlate),2,2000,5,5,false);
registerAltarRecipe(new ItemStack(ModItems.bucketLife), new ItemStack(Items.bucket),1,1000,5,0,false);
}
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;
}
}

View file

@ -16,8 +16,8 @@ import net.minecraft.tileentity.TileEntity;
import net.minecraft.world.World; import net.minecraft.world.World;
import WayofTime.alchemicalWizardry.AlchemicalWizardry; import WayofTime.alchemicalWizardry.AlchemicalWizardry;
import WayofTime.alchemicalWizardry.ModItems; import WayofTime.alchemicalWizardry.ModItems;
import WayofTime.alchemicalWizardry.api.items.interfaces.ArmourUpgrade;
import WayofTime.alchemicalWizardry.common.ArmourComponent; import WayofTime.alchemicalWizardry.common.ArmourComponent;
import WayofTime.alchemicalWizardry.common.ArmourUpgrade;
import WayofTime.alchemicalWizardry.common.items.BoundArmour; import WayofTime.alchemicalWizardry.common.items.BoundArmour;
import WayofTime.alchemicalWizardry.common.spell.complex.effect.SpellHelper; import WayofTime.alchemicalWizardry.common.spell.complex.effect.SpellHelper;
import WayofTime.alchemicalWizardry.common.tileEntity.TEAltar; import WayofTime.alchemicalWizardry.common.tileEntity.TEAltar;

View file

@ -15,7 +15,7 @@ import net.minecraft.tileentity.TileEntity;
import net.minecraft.util.IIcon; import net.minecraft.util.IIcon;
import net.minecraft.world.World; import net.minecraft.world.World;
import WayofTime.alchemicalWizardry.AlchemicalWizardry; import WayofTime.alchemicalWizardry.AlchemicalWizardry;
import WayofTime.alchemicalWizardry.common.ArmourUpgrade; import WayofTime.alchemicalWizardry.api.items.interfaces.ArmourUpgrade;
import WayofTime.alchemicalWizardry.common.tileEntity.TESocket; import WayofTime.alchemicalWizardry.common.tileEntity.TESocket;
import cpw.mods.fml.relauncher.Side; import cpw.mods.fml.relauncher.Side;
import cpw.mods.fml.relauncher.SideOnly; import cpw.mods.fml.relauncher.SideOnly;

View file

@ -0,0 +1,75 @@
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();
}
}

View file

@ -1,7 +1,5 @@
package WayofTime.alchemicalWizardry.common.block; package WayofTime.alchemicalWizardry.common.block;
import javax.swing.Icon;
import net.minecraft.block.Block; import net.minecraft.block.Block;
import net.minecraft.block.material.Material; import net.minecraft.block.material.Material;
import net.minecraft.client.renderer.texture.IIconRegister; import net.minecraft.client.renderer.texture.IIconRegister;
@ -11,11 +9,12 @@ import net.minecraft.item.ItemStack;
import net.minecraft.util.IIcon; import net.minecraft.util.IIcon;
import net.minecraft.world.World; import net.minecraft.world.World;
import WayofTime.alchemicalWizardry.AlchemicalWizardry; import WayofTime.alchemicalWizardry.AlchemicalWizardry;
import WayofTime.alchemicalWizardry.api.rituals.IRitualStone;
import WayofTime.alchemicalWizardry.common.items.ScribeTool; import WayofTime.alchemicalWizardry.common.items.ScribeTool;
import cpw.mods.fml.relauncher.Side; import cpw.mods.fml.relauncher.Side;
import cpw.mods.fml.relauncher.SideOnly; import cpw.mods.fml.relauncher.SideOnly;
public class RitualStone extends Block public class RitualStone extends Block implements IRitualStone
{ {
@SideOnly(Side.CLIENT) @SideOnly(Side.CLIENT)
private static IIcon blankIcon; private static IIcon blankIcon;

View file

@ -110,17 +110,11 @@ public class EntityBloodLightProjectile extends EnergyBlastProjectile
if (mop instanceof EntityLivingBase) if (mop instanceof EntityLivingBase)
{ {
//((EntityLivingBase)mop).addPotionEffect(new PotionEffect(Potion.weakness.id, 60,2)); //((EntityLivingBase)mop).addPotionEffect(new PotionEffect(Potion.weakness.id, 60,2));
((EntityLivingBase) mop).setFire(50);
((EntityLivingBase) mop).setRevengeTarget(shootingEntity); ((EntityLivingBase) mop).setRevengeTarget(shootingEntity);
if (((EntityLivingBase) mop).isPotionActive(Potion.fireResistance) || ((EntityLivingBase) mop).isImmuneToFire()) doDamage(1, mop);
{
((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); //worldObj.createExplosion(this, this.posX, this.posY, this.posZ, (float)(0.1), true);

View file

@ -17,7 +17,7 @@ import net.minecraft.world.World;
import org.lwjgl.input.Keyboard; import org.lwjgl.input.Keyboard;
import WayofTime.alchemicalWizardry.AlchemicalWizardry; import WayofTime.alchemicalWizardry.AlchemicalWizardry;
import WayofTime.alchemicalWizardry.common.alchemy.AlchemyRecipeRegistry; import WayofTime.alchemicalWizardry.api.alchemy.AlchemyRecipeRegistry;
import cpw.mods.fml.relauncher.Side; import cpw.mods.fml.relauncher.Side;
import cpw.mods.fml.relauncher.SideOnly; import cpw.mods.fml.relauncher.SideOnly;

View file

@ -7,7 +7,7 @@ import net.minecraft.item.ItemStack;
import net.minecraft.world.World; import net.minecraft.world.World;
import WayofTime.alchemicalWizardry.AlchemicalWizardry; import WayofTime.alchemicalWizardry.AlchemicalWizardry;
import WayofTime.alchemicalWizardry.ModItems; import WayofTime.alchemicalWizardry.ModItems;
import WayofTime.alchemicalWizardry.common.ArmourUpgrade; import WayofTime.alchemicalWizardry.api.items.interfaces.ArmourUpgrade;
import cpw.mods.fml.relauncher.Side; import cpw.mods.fml.relauncher.Side;
import cpw.mods.fml.relauncher.SideOnly; import cpw.mods.fml.relauncher.SideOnly;

View file

@ -17,17 +17,19 @@ import net.minecraft.util.IIcon;
import net.minecraft.world.World; import net.minecraft.world.World;
import net.minecraftforge.common.ISpecialArmor; import net.minecraftforge.common.ISpecialArmor;
import net.minecraftforge.common.util.Constants; import net.minecraftforge.common.util.Constants;
import thaumcraft.api.IGoggles;
import thaumcraft.api.nodes.IRevealer;
import WayofTime.alchemicalWizardry.AlchemicalWizardry; import WayofTime.alchemicalWizardry.AlchemicalWizardry;
import WayofTime.alchemicalWizardry.ModItems; import WayofTime.alchemicalWizardry.ModItems;
import WayofTime.alchemicalWizardry.common.ArmourUpgrade; import WayofTime.alchemicalWizardry.api.items.interfaces.ArmourUpgrade;
import WayofTime.alchemicalWizardry.common.IBindable; import WayofTime.alchemicalWizardry.api.items.interfaces.IBindable;
import cpw.mods.fml.common.Optional; import cpw.mods.fml.common.Optional;
import cpw.mods.fml.common.Optional.Interface; import cpw.mods.fml.common.Optional.Interface;
import cpw.mods.fml.relauncher.Side; import cpw.mods.fml.relauncher.Side;
import cpw.mods.fml.relauncher.SideOnly; import cpw.mods.fml.relauncher.SideOnly;
@Optional.InterfaceList(value = {@Interface(iface="IRevealer", modid = "Thaumcraft"), @Interface(iface="IGoggles", modid = "Thaumcraft")}) @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 public class BoundArmour extends ItemArmor implements ISpecialArmor,IBindable ,IRevealer, IGoggles
{ {
private static int invSize = 9; private static int invSize = 9;
private static IIcon helmetIcon; private static IIcon helmetIcon;
@ -119,7 +121,7 @@ public class BoundArmour extends ItemArmor implements ISpecialArmor,IBindable //
{ {
if (source.isUnblockable()) if (source.isUnblockable())
{ {
return new ArmorProperties(-1, 3, 3); return new ArmorProperties(-1, 3, 4);
} }
return new ArmorProperties(-1, 3, 100000); return new ArmorProperties(-1, 3, 100000);
@ -474,57 +476,57 @@ public class BoundArmour extends ItemArmor implements ISpecialArmor,IBindable //
return false; return false;
} }
// @Override @Optional.Method(modid = "Thaumcraft")
// public boolean hasIRevealer(ItemStack itemStack) public boolean hasIRevealer(ItemStack itemStack)
// { {
// ItemStack[] inv = getInternalInventory(itemStack); ItemStack[] inv = getInternalInventory(itemStack);
//
// if (inv == null) if (inv == null)
// { {
// return false; return false;
// } }
//
// for (ItemStack item : inv) for (ItemStack item : inv)
// { {
// if (item == null) if (item == null)
// { {
// continue; continue;
// } }
//
// if (item.getItem() instanceof IRevealer) if (item.getItem() instanceof IRevealer)
// { {
// return true; return true;
// } }
// } }
//
// return false; return false;
// } }
//
// @Override @Optional.Method(modid = "Thaumcraft")
// public boolean hasIGoggles(ItemStack itemStack) public boolean hasIGoggles(ItemStack itemStack)
// { {
// ItemStack[] inv = getInternalInventory(itemStack); ItemStack[] inv = getInternalInventory(itemStack);
//
// if (inv == null) if (inv == null)
// { {
// return false; return false;
// } }
//
// for (ItemStack item : inv) for (ItemStack item : inv)
// { {
// if (item == null) if (item == null)
// { {
// continue; continue;
// } }
//
// if (item.getItem() instanceof IGoggles) if (item.getItem() instanceof IGoggles)
// { {
// return true; return true;
// } }
// } }
//
// return false; return false;
// } }
public float getUpgradeCostMultiplier(ItemStack itemStack) public float getUpgradeCostMultiplier(ItemStack itemStack)
{ {
@ -576,15 +578,17 @@ public class BoundArmour extends ItemArmor implements ISpecialArmor,IBindable //
return 0; return 0;
} }
// @Override @Override
// public boolean showNodes(ItemStack itemstack, EntityLivingBase player) @Optional.Method(modid = "Thaumcraft")
// { public boolean showNodes(ItemStack itemstack, EntityLivingBase player)
// return this.hasIRevealer(itemstack); {
// } return this.hasIRevealer(itemstack);
// }
// @Override
// public boolean showIngamePopups(ItemStack itemstack, EntityLivingBase player) @Override
// { @Optional.Method(modid = "Thaumcraft")
// return this.hasIGoggles(itemstack); public boolean showIngamePopups(ItemStack itemstack, EntityLivingBase player)
// } {
return this.hasIGoggles(itemstack);
}
} }

View file

@ -23,7 +23,7 @@ import net.minecraft.util.Vec3;
import net.minecraft.world.World; import net.minecraft.world.World;
import net.minecraftforge.common.ForgeHooks; import net.minecraftforge.common.ForgeHooks;
import WayofTime.alchemicalWizardry.AlchemicalWizardry; import WayofTime.alchemicalWizardry.AlchemicalWizardry;
import WayofTime.alchemicalWizardry.common.IBindable; import WayofTime.alchemicalWizardry.api.items.interfaces.IBindable;
import WayofTime.alchemicalWizardry.common.spell.complex.effect.SpellHelper; import WayofTime.alchemicalWizardry.common.spell.complex.effect.SpellHelper;
import cpw.mods.fml.relauncher.Side; import cpw.mods.fml.relauncher.Side;
import cpw.mods.fml.relauncher.SideOnly; import cpw.mods.fml.relauncher.SideOnly;

View file

@ -19,7 +19,7 @@ import net.minecraft.util.Vec3;
import net.minecraft.world.World; import net.minecraft.world.World;
import net.minecraftforge.common.ForgeHooks; import net.minecraftforge.common.ForgeHooks;
import WayofTime.alchemicalWizardry.AlchemicalWizardry; import WayofTime.alchemicalWizardry.AlchemicalWizardry;
import WayofTime.alchemicalWizardry.common.IBindable; import WayofTime.alchemicalWizardry.api.items.interfaces.IBindable;
import WayofTime.alchemicalWizardry.common.spell.complex.effect.SpellHelper; import WayofTime.alchemicalWizardry.common.spell.complex.effect.SpellHelper;
import cpw.mods.fml.relauncher.Side; import cpw.mods.fml.relauncher.Side;
import cpw.mods.fml.relauncher.SideOnly; import cpw.mods.fml.relauncher.SideOnly;

View file

@ -21,7 +21,7 @@ import net.minecraft.util.Vec3;
import net.minecraft.world.World; import net.minecraft.world.World;
import net.minecraftforge.common.ForgeHooks; import net.minecraftforge.common.ForgeHooks;
import WayofTime.alchemicalWizardry.AlchemicalWizardry; import WayofTime.alchemicalWizardry.AlchemicalWizardry;
import WayofTime.alchemicalWizardry.common.IBindable; import WayofTime.alchemicalWizardry.api.items.interfaces.IBindable;
import WayofTime.alchemicalWizardry.common.spell.complex.effect.SpellHelper; import WayofTime.alchemicalWizardry.common.spell.complex.effect.SpellHelper;
import com.google.common.collect.Multimap; import com.google.common.collect.Multimap;

View file

@ -12,8 +12,8 @@ import net.minecraft.util.DamageSource;
import net.minecraft.world.World; import net.minecraft.world.World;
import net.minecraftforge.common.util.FakePlayer; import net.minecraftforge.common.util.FakePlayer;
import WayofTime.alchemicalWizardry.AlchemicalWizardry; import WayofTime.alchemicalWizardry.AlchemicalWizardry;
import WayofTime.alchemicalWizardry.common.IBindable; import WayofTime.alchemicalWizardry.api.items.interfaces.IBindable;
import WayofTime.alchemicalWizardry.common.LifeEssenceNetwork; import WayofTime.alchemicalWizardry.api.soulNetwork.LifeEssenceNetwork;
import WayofTime.alchemicalWizardry.common.PacketHandler; import WayofTime.alchemicalWizardry.common.PacketHandler;
import WayofTime.alchemicalWizardry.common.spell.complex.effect.SpellHelper; import WayofTime.alchemicalWizardry.common.spell.complex.effect.SpellHelper;
import WayofTime.alchemicalWizardry.common.tileEntity.TEAltar; import WayofTime.alchemicalWizardry.common.tileEntity.TEAltar;

View file

@ -20,8 +20,8 @@ import net.minecraft.util.IIcon;
import net.minecraft.util.MathHelper; import net.minecraft.util.MathHelper;
import net.minecraft.util.MovingObjectPosition; import net.minecraft.util.MovingObjectPosition;
import net.minecraft.world.World; import net.minecraft.world.World;
import WayofTime.alchemicalWizardry.api.summoningRegistry.SummoningRegistry;
import WayofTime.alchemicalWizardry.common.entity.mob.EntityDemon; import WayofTime.alchemicalWizardry.common.entity.mob.EntityDemon;
import WayofTime.alchemicalWizardry.common.summoning.SummoningRegistry;
import cpw.mods.fml.relauncher.Side; import cpw.mods.fml.relauncher.Side;
import cpw.mods.fml.relauncher.SideOnly; import cpw.mods.fml.relauncher.SideOnly;

View file

@ -4,25 +4,22 @@ import java.util.List;
import net.minecraft.client.renderer.texture.IIconRegister; import net.minecraft.client.renderer.texture.IIconRegister;
import net.minecraft.entity.player.EntityPlayer; import net.minecraft.entity.player.EntityPlayer;
import net.minecraft.entity.player.EntityPlayerMP;
import net.minecraft.item.Item; import net.minecraft.item.Item;
import net.minecraft.item.ItemStack; import net.minecraft.item.ItemStack;
import net.minecraft.nbt.NBTTagCompound; import net.minecraft.nbt.NBTTagCompound;
import net.minecraft.server.MinecraftServer; import net.minecraft.server.MinecraftServer;
import net.minecraft.util.DamageSource; import net.minecraft.util.DamageSource;
import net.minecraft.world.World; import net.minecraft.world.World;
import net.minecraftforge.common.util.FakePlayer;
import WayofTime.alchemicalWizardry.AlchemicalWizardry; import WayofTime.alchemicalWizardry.AlchemicalWizardry;
import WayofTime.alchemicalWizardry.common.ArmourUpgrade; import WayofTime.alchemicalWizardry.api.items.interfaces.ArmourUpgrade;
import WayofTime.alchemicalWizardry.common.IBindable; import WayofTime.alchemicalWizardry.api.items.interfaces.IBindable;
import WayofTime.alchemicalWizardry.common.LifeEssenceNetwork; import WayofTime.alchemicalWizardry.api.items.interfaces.IBloodOrb;
import WayofTime.alchemicalWizardry.common.PacketHandler; import WayofTime.alchemicalWizardry.api.soulNetwork.LifeEssenceNetwork;
import WayofTime.alchemicalWizardry.common.spell.complex.effect.SpellHelper; 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.Side;
import cpw.mods.fml.relauncher.SideOnly; import cpw.mods.fml.relauncher.SideOnly;
public class EnergyBattery extends Item implements ArmourUpgrade, IBindable public class EnergyBattery extends Item implements ArmourUpgrade, IBindable, IBloodOrb
{ {
private int maxEssence; private int maxEssence;
protected int orbLevel; protected int orbLevel;

View file

@ -8,8 +8,8 @@ import net.minecraft.server.MinecraftServer;
import net.minecraft.util.DamageSource; import net.minecraft.util.DamageSource;
import net.minecraft.world.World; import net.minecraft.world.World;
import WayofTime.alchemicalWizardry.AlchemicalWizardry; import WayofTime.alchemicalWizardry.AlchemicalWizardry;
import WayofTime.alchemicalWizardry.common.IBindable; import WayofTime.alchemicalWizardry.api.items.interfaces.IBindable;
import WayofTime.alchemicalWizardry.common.LifeEssenceNetwork; import WayofTime.alchemicalWizardry.api.soulNetwork.LifeEssenceNetwork;
import WayofTime.alchemicalWizardry.common.PacketHandler; import WayofTime.alchemicalWizardry.common.PacketHandler;
import WayofTime.alchemicalWizardry.common.spell.complex.effect.SpellHelper; import WayofTime.alchemicalWizardry.common.spell.complex.effect.SpellHelper;
import WayofTime.alchemicalWizardry.common.tileEntity.TEAltar; import WayofTime.alchemicalWizardry.common.tileEntity.TEAltar;
@ -68,45 +68,6 @@ public class EnergyItems extends Item implements IBindable
} }
} }
// 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)
// {
// 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);
// }
// }
//
// if (!player.worldObj.isRemote)
// {
// return false;
// }
//
// PacketDispatcher.sendPacketToServer(PacketHandler.getPacket(itemTag.getString("ownerName"), -damageToBeDone, 0));
// return true;
// } else
// {
// return true;
// }
// }
public static boolean syphonBatteries(ItemStack ist, EntityPlayer player, int damageToBeDone) public static boolean syphonBatteries(ItemStack ist, EntityPlayer player, int damageToBeDone)
{ {
if (!player.worldObj.isRemote) if (!player.worldObj.isRemote)

View file

@ -1,6 +0,0 @@
package WayofTime.alchemicalWizardry.common.items;
public interface IHolding
{
}

View file

@ -15,7 +15,7 @@ import net.minecraft.world.World;
import org.lwjgl.input.Keyboard; import org.lwjgl.input.Keyboard;
import WayofTime.alchemicalWizardry.AlchemicalWizardry; import WayofTime.alchemicalWizardry.AlchemicalWizardry;
import WayofTime.alchemicalWizardry.common.alchemy.AlchemyRecipeRegistry; import WayofTime.alchemicalWizardry.api.alchemy.AlchemyRecipeRegistry;
import cpw.mods.fml.relauncher.Side; import cpw.mods.fml.relauncher.Side;
import cpw.mods.fml.relauncher.SideOnly; import cpw.mods.fml.relauncher.SideOnly;

View file

@ -15,7 +15,7 @@ import net.minecraft.world.World;
import org.lwjgl.input.Keyboard; import org.lwjgl.input.Keyboard;
import WayofTime.alchemicalWizardry.AlchemicalWizardry; import WayofTime.alchemicalWizardry.AlchemicalWizardry;
import WayofTime.alchemicalWizardry.common.alchemy.AlchemyRecipeRegistry; import WayofTime.alchemicalWizardry.api.alchemy.AlchemyRecipeRegistry;
import cpw.mods.fml.relauncher.Side; import cpw.mods.fml.relauncher.Side;
import cpw.mods.fml.relauncher.SideOnly; import cpw.mods.fml.relauncher.SideOnly;

View file

@ -14,7 +14,7 @@ import net.minecraft.world.World;
import net.minecraftforge.common.util.FakePlayer; import net.minecraftforge.common.util.FakePlayer;
import WayofTime.alchemicalWizardry.AlchemicalWizardry; import WayofTime.alchemicalWizardry.AlchemicalWizardry;
import WayofTime.alchemicalWizardry.ModItems; import WayofTime.alchemicalWizardry.ModItems;
import WayofTime.alchemicalWizardry.common.IBindable; import WayofTime.alchemicalWizardry.api.items.interfaces.IBindable;
import WayofTime.alchemicalWizardry.common.spell.complex.effect.SpellHelper; import WayofTime.alchemicalWizardry.common.spell.complex.effect.SpellHelper;
import WayofTime.alchemicalWizardry.common.tileEntity.TEAltar; import WayofTime.alchemicalWizardry.common.tileEntity.TEAltar;
import cpw.mods.fml.relauncher.Side; import cpw.mods.fml.relauncher.Side;

View file

@ -17,8 +17,8 @@ import net.minecraft.world.World;
import WayofTime.alchemicalWizardry.AlchemicalWizardry; import WayofTime.alchemicalWizardry.AlchemicalWizardry;
import WayofTime.alchemicalWizardry.ModBlocks; import WayofTime.alchemicalWizardry.ModBlocks;
import WayofTime.alchemicalWizardry.ModItems; import WayofTime.alchemicalWizardry.ModItems;
import WayofTime.alchemicalWizardry.common.rituals.RitualComponent; import WayofTime.alchemicalWizardry.api.rituals.RitualComponent;
import WayofTime.alchemicalWizardry.common.rituals.Rituals; import WayofTime.alchemicalWizardry.api.rituals.Rituals;
import WayofTime.alchemicalWizardry.common.tileEntity.TEMasterStone; import WayofTime.alchemicalWizardry.common.tileEntity.TEMasterStone;
import cpw.mods.fml.relauncher.Side; import cpw.mods.fml.relauncher.Side;
import cpw.mods.fml.relauncher.SideOnly; import cpw.mods.fml.relauncher.SideOnly;
@ -63,6 +63,7 @@ public class ItemRitualDiviner extends EnergyItems
par3List.add("Current owner: " + par1ItemStack.stackTagCompound.getString("ownerName")); par3List.add("Current owner: " + par1ItemStack.stackTagCompound.getString("ownerName"));
par3List.add("RitualID: " + (ritualID + 1)); par3List.add("RitualID: " + (ritualID + 1));
List<RitualComponent> ritualList = Rituals.getRitualList(this.getCurrentRitual(par1ItemStack) + 1); List<RitualComponent> ritualList = Rituals.getRitualList(this.getCurrentRitual(par1ItemStack) + 1);
int blankStones = 0; int blankStones = 0;
int airStones = 0; int airStones = 0;
int waterStones = 0; int waterStones = 0;

View file

@ -8,7 +8,7 @@ import net.minecraft.item.ItemStack;
import net.minecraft.server.MinecraftServer; import net.minecraft.server.MinecraftServer;
import net.minecraft.world.World; import net.minecraft.world.World;
import WayofTime.alchemicalWizardry.AlchemicalWizardry; import WayofTime.alchemicalWizardry.AlchemicalWizardry;
import WayofTime.alchemicalWizardry.common.LifeEssenceNetwork; import WayofTime.alchemicalWizardry.api.soulNetwork.LifeEssenceNetwork;
import cpw.mods.fml.relauncher.Side; import cpw.mods.fml.relauncher.Side;
import cpw.mods.fml.relauncher.SideOnly; import cpw.mods.fml.relauncher.SideOnly;

View file

@ -30,13 +30,25 @@ public class SacrificialDagger extends Item
@SideOnly(Side.CLIENT) @SideOnly(Side.CLIENT)
public void registerIcons(IIconRegister iconRegister) public void registerIcons(IIconRegister iconRegister)
{ {
this.itemIcon = iconRegister.registerIcon("alchemicalwizardry:SacrificialDagger"); 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) public void addInformation(ItemStack par1ItemStack, EntityPlayer par2EntityPlayer, List par3List, boolean par4)
{ {
par3List.add("Just a prick of the"); if(AlchemicalWizardry.wimpySettings)
par3List.add("finger will suffice..."); {
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) public ItemStack onItemRightClick(ItemStack par1ItemStack, World par2World, EntityPlayer par3EntityPlayer)
@ -134,4 +146,14 @@ public class SacrificialDagger extends Item
return null; return null;
} }
@Override
public String getItemStackDisplayName(ItemStack par1ItemStack)
{
if(AlchemicalWizardry.wimpySettings)
{
return "Sacrificial Orb";
}
return super.getItemStackDisplayName(par1ItemStack);
}
} }

View file

@ -25,7 +25,7 @@ import net.minecraft.util.StatCollector;
import net.minecraft.world.World; import net.minecraft.world.World;
import net.minecraftforge.common.util.Constants; import net.minecraftforge.common.util.Constants;
import WayofTime.alchemicalWizardry.AlchemicalWizardry; import WayofTime.alchemicalWizardry.AlchemicalWizardry;
import WayofTime.alchemicalWizardry.common.alchemy.AlchemyPotionHelper; import WayofTime.alchemicalWizardry.api.alchemy.AlchemyPotionHelper;
import com.google.common.collect.HashMultimap; import com.google.common.collect.HashMultimap;

View file

@ -12,7 +12,7 @@ import org.lwjgl.input.Keyboard;
import WayofTime.alchemicalWizardry.AlchemicalWizardry; import WayofTime.alchemicalWizardry.AlchemicalWizardry;
import WayofTime.alchemicalWizardry.ModItems; import WayofTime.alchemicalWizardry.ModItems;
import WayofTime.alchemicalWizardry.common.alchemy.AlchemyRecipeRegistry; import WayofTime.alchemicalWizardry.api.alchemy.AlchemyRecipeRegistry;
import cpw.mods.fml.relauncher.Side; import cpw.mods.fml.relauncher.Side;
import cpw.mods.fml.relauncher.SideOnly; import cpw.mods.fml.relauncher.SideOnly;

View file

@ -1,8 +1,8 @@
package WayofTime.alchemicalWizardry.common.items.potion; package WayofTime.alchemicalWizardry.common.items.potion;
import WayofTime.alchemicalWizardry.AlchemicalWizardry; import WayofTime.alchemicalWizardry.AlchemicalWizardry;
import WayofTime.alchemicalWizardry.api.alchemy.AlchemyRecipeRegistry;
import WayofTime.alchemicalWizardry.common.ICatalyst; import WayofTime.alchemicalWizardry.common.ICatalyst;
import WayofTime.alchemicalWizardry.common.alchemy.AlchemyRecipeRegistry;
import net.minecraft.entity.player.EntityPlayer; import net.minecraft.entity.player.EntityPlayer;
import net.minecraft.item.Item; import net.minecraft.item.Item;
import net.minecraft.item.ItemStack; import net.minecraft.item.ItemStack;

View file

@ -1,8 +1,8 @@
package WayofTime.alchemicalWizardry.common.items.potion; package WayofTime.alchemicalWizardry.common.items.potion;
import WayofTime.alchemicalWizardry.AlchemicalWizardry; import WayofTime.alchemicalWizardry.AlchemicalWizardry;
import WayofTime.alchemicalWizardry.api.alchemy.AlchemyRecipeRegistry;
import WayofTime.alchemicalWizardry.common.ICatalyst; import WayofTime.alchemicalWizardry.common.ICatalyst;
import WayofTime.alchemicalWizardry.common.alchemy.AlchemyRecipeRegistry;
import net.minecraft.entity.player.EntityPlayer; import net.minecraft.entity.player.EntityPlayer;
import net.minecraft.item.Item; import net.minecraft.item.Item;
import net.minecraft.item.ItemStack; import net.minecraft.item.ItemStack;

View file

@ -11,8 +11,8 @@ import net.minecraft.util.EnumChatFormatting;
import org.lwjgl.input.Keyboard; import org.lwjgl.input.Keyboard;
import WayofTime.alchemicalWizardry.AlchemicalWizardry; import WayofTime.alchemicalWizardry.AlchemicalWizardry;
import WayofTime.alchemicalWizardry.api.alchemy.AlchemyRecipeRegistry;
import WayofTime.alchemicalWizardry.common.IBindingAgent; import WayofTime.alchemicalWizardry.common.IBindingAgent;
import WayofTime.alchemicalWizardry.common.alchemy.AlchemyRecipeRegistry;
import cpw.mods.fml.relauncher.Side; import cpw.mods.fml.relauncher.Side;
import cpw.mods.fml.relauncher.SideOnly; import cpw.mods.fml.relauncher.SideOnly;

View file

@ -12,8 +12,8 @@ import net.minecraft.util.EnumChatFormatting;
import org.lwjgl.input.Keyboard; import org.lwjgl.input.Keyboard;
import WayofTime.alchemicalWizardry.AlchemicalWizardry; import WayofTime.alchemicalWizardry.AlchemicalWizardry;
import WayofTime.alchemicalWizardry.api.alchemy.AlchemyRecipeRegistry;
import WayofTime.alchemicalWizardry.common.IFillingAgent; import WayofTime.alchemicalWizardry.common.IFillingAgent;
import WayofTime.alchemicalWizardry.common.alchemy.AlchemyRecipeRegistry;
import cpw.mods.fml.relauncher.Side; import cpw.mods.fml.relauncher.Side;
import cpw.mods.fml.relauncher.SideOnly; import cpw.mods.fml.relauncher.SideOnly;

View file

@ -8,7 +8,7 @@ import net.minecraft.item.ItemStack;
import net.minecraft.util.Vec3; import net.minecraft.util.Vec3;
import net.minecraft.world.World; import net.minecraft.world.World;
import WayofTime.alchemicalWizardry.AlchemicalWizardry; import WayofTime.alchemicalWizardry.AlchemicalWizardry;
import WayofTime.alchemicalWizardry.common.ArmourUpgrade; import WayofTime.alchemicalWizardry.api.items.interfaces.ArmourUpgrade;
import WayofTime.alchemicalWizardry.common.items.EnergyItems; import WayofTime.alchemicalWizardry.common.items.EnergyItems;
import cpw.mods.fml.relauncher.Side; import cpw.mods.fml.relauncher.Side;
import cpw.mods.fml.relauncher.SideOnly; import cpw.mods.fml.relauncher.SideOnly;

View file

@ -12,7 +12,7 @@ import net.minecraft.potion.PotionEffect;
import net.minecraft.util.ChatComponentText; import net.minecraft.util.ChatComponentText;
import net.minecraft.world.World; import net.minecraft.world.World;
import WayofTime.alchemicalWizardry.AlchemicalWizardry; import WayofTime.alchemicalWizardry.AlchemicalWizardry;
import WayofTime.alchemicalWizardry.common.ArmourUpgrade; import WayofTime.alchemicalWizardry.api.items.interfaces.ArmourUpgrade;
import WayofTime.alchemicalWizardry.common.PacketHandler; import WayofTime.alchemicalWizardry.common.PacketHandler;
import WayofTime.alchemicalWizardry.common.items.EnergyItems; import WayofTime.alchemicalWizardry.common.items.EnergyItems;
import cpw.mods.fml.relauncher.Side; import cpw.mods.fml.relauncher.Side;
@ -68,7 +68,7 @@ public class DivinationSigil extends Item implements ArmourUpgrade
//PacketDispatcher.sendPacketToServer(PacketHandler.getPacket(ownerName)); //PacketDispatcher.sendPacketToServer(PacketHandler.getPacket(ownerName));
int currentEssence = EnergyItems.getCurrentEssence(ownerName); int currentEssence = EnergyItems.getCurrentEssence(ownerName);
par3EntityPlayer.addChatMessage(new ChatComponentText("Current Essence: " + EnergyItems.getCurrentEssence(ownerName))); par3EntityPlayer.addChatMessage(new ChatComponentText("Current Essence: " + EnergyItems.getCurrentEssence(ownerName) + "LP"));
return par1ItemStack; return par1ItemStack;
} }

View file

@ -12,8 +12,8 @@ import net.minecraft.potion.PotionEffect;
import net.minecraft.util.IIcon; import net.minecraft.util.IIcon;
import net.minecraft.world.World; import net.minecraft.world.World;
import WayofTime.alchemicalWizardry.AlchemicalWizardry; import WayofTime.alchemicalWizardry.AlchemicalWizardry;
import WayofTime.alchemicalWizardry.api.items.interfaces.IHolding;
import WayofTime.alchemicalWizardry.common.items.EnergyItems; import WayofTime.alchemicalWizardry.common.items.EnergyItems;
import WayofTime.alchemicalWizardry.common.items.IHolding;
import WayofTime.alchemicalWizardry.common.spell.complex.effect.SpellHelper; import WayofTime.alchemicalWizardry.common.spell.complex.effect.SpellHelper;
import cpw.mods.fml.relauncher.Side; import cpw.mods.fml.relauncher.Side;
import cpw.mods.fml.relauncher.SideOnly; import cpw.mods.fml.relauncher.SideOnly;
@ -56,9 +56,9 @@ public class ItemSigilOfEnderSeverance extends EnergyItems implements IHolding
@SideOnly(Side.CLIENT) @SideOnly(Side.CLIENT)
public void registerIcons(IIconRegister iconRegister) public void registerIcons(IIconRegister iconRegister)
{ {
this.itemIcon = iconRegister.registerIcon("AlchemicalWizardry:SigilOfTheFastMiner"); this.itemIcon = iconRegister.registerIcon("AlchemicalWizardry:SigilOfSeverance_deactivated");
this.activeIcon = iconRegister.registerIcon("AlchemicalWizardry:ElementalSigil_activated"); this.activeIcon = iconRegister.registerIcon("AlchemicalWizardry:SigilOfSeverance_activated");
this.passiveIcon = iconRegister.registerIcon("AlchemicalWizardry:ElementalSigil_deactivated"); this.passiveIcon = iconRegister.registerIcon("AlchemicalWizardry:SigilOfSeverance_deactivated");
} }
@Override @Override
@ -152,7 +152,7 @@ public class ItemSigilOfEnderSeverance extends EnergyItems implements IHolding
{ {
if(!entity.equals(par3Entity)&&entity instanceof EntityLiving) if(!entity.equals(par3Entity)&&entity instanceof EntityLiving)
{ {
((EntityLiving)entity).addPotionEffect(new PotionEffect(AlchemicalWizardry.customPotionPlanarBinding.id,2,0)); ((EntityLiving)entity).addPotionEffect(new PotionEffect(AlchemicalWizardry.customPotionPlanarBinding.id,5,0));
} }
} }
} }

View file

@ -0,0 +1,270 @@
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;
}
}

View file

@ -14,7 +14,7 @@ import net.minecraft.potion.PotionEffect;
import net.minecraft.util.MovingObjectPosition; import net.minecraft.util.MovingObjectPosition;
import net.minecraft.world.World; import net.minecraft.world.World;
import WayofTime.alchemicalWizardry.AlchemicalWizardry; import WayofTime.alchemicalWizardry.AlchemicalWizardry;
import WayofTime.alchemicalWizardry.common.ArmourUpgrade; import WayofTime.alchemicalWizardry.api.items.interfaces.ArmourUpgrade;
import WayofTime.alchemicalWizardry.common.items.EnergyBattery; import WayofTime.alchemicalWizardry.common.items.EnergyBattery;
import WayofTime.alchemicalWizardry.common.items.EnergyItems; import WayofTime.alchemicalWizardry.common.items.EnergyItems;
import cpw.mods.fml.relauncher.Side; import cpw.mods.fml.relauncher.Side;

View file

@ -23,7 +23,7 @@ import net.minecraftforge.common.IPlantable;
import net.minecraftforge.common.MinecraftForge; import net.minecraftforge.common.MinecraftForge;
import net.minecraftforge.event.entity.player.BonemealEvent; import net.minecraftforge.event.entity.player.BonemealEvent;
import WayofTime.alchemicalWizardry.AlchemicalWizardry; import WayofTime.alchemicalWizardry.AlchemicalWizardry;
import WayofTime.alchemicalWizardry.common.ArmourUpgrade; import WayofTime.alchemicalWizardry.api.items.interfaces.ArmourUpgrade;
import WayofTime.alchemicalWizardry.common.items.EnergyItems; import WayofTime.alchemicalWizardry.common.items.EnergyItems;
import cpw.mods.fml.common.eventhandler.Event.Result; import cpw.mods.fml.common.eventhandler.Event.Result;
import cpw.mods.fml.relauncher.Side; import cpw.mods.fml.relauncher.Side;

View file

@ -13,7 +13,7 @@ import net.minecraft.potion.PotionEffect;
import net.minecraft.util.IIcon; import net.minecraft.util.IIcon;
import net.minecraft.world.World; import net.minecraft.world.World;
import WayofTime.alchemicalWizardry.AlchemicalWizardry; import WayofTime.alchemicalWizardry.AlchemicalWizardry;
import WayofTime.alchemicalWizardry.common.ArmourUpgrade; import WayofTime.alchemicalWizardry.api.items.interfaces.ArmourUpgrade;
import WayofTime.alchemicalWizardry.common.items.EnergyItems; import WayofTime.alchemicalWizardry.common.items.EnergyItems;
import cpw.mods.fml.relauncher.Side; import cpw.mods.fml.relauncher.Side;
import cpw.mods.fml.relauncher.SideOnly; import cpw.mods.fml.relauncher.SideOnly;

View file

@ -15,8 +15,8 @@ import net.minecraft.world.World;
import net.minecraftforge.common.util.Constants; import net.minecraftforge.common.util.Constants;
import WayofTime.alchemicalWizardry.AlchemicalWizardry; import WayofTime.alchemicalWizardry.AlchemicalWizardry;
import WayofTime.alchemicalWizardry.ModItems; import WayofTime.alchemicalWizardry.ModItems;
import WayofTime.alchemicalWizardry.api.items.interfaces.IHolding;
import WayofTime.alchemicalWizardry.common.items.EnergyItems; import WayofTime.alchemicalWizardry.common.items.EnergyItems;
import WayofTime.alchemicalWizardry.common.items.IHolding;
import cpw.mods.fml.relauncher.Side; import cpw.mods.fml.relauncher.Side;
import cpw.mods.fml.relauncher.SideOnly; import cpw.mods.fml.relauncher.SideOnly;

View file

@ -12,7 +12,7 @@ import net.minecraft.util.AxisAlignedBB;
import net.minecraft.util.IIcon; import net.minecraft.util.IIcon;
import net.minecraft.world.World; import net.minecraft.world.World;
import WayofTime.alchemicalWizardry.AlchemicalWizardry; import WayofTime.alchemicalWizardry.AlchemicalWizardry;
import WayofTime.alchemicalWizardry.common.ArmourUpgrade; import WayofTime.alchemicalWizardry.api.items.interfaces.ArmourUpgrade;
import WayofTime.alchemicalWizardry.common.items.EnergyItems; import WayofTime.alchemicalWizardry.common.items.EnergyItems;
import cpw.mods.fml.relauncher.Side; import cpw.mods.fml.relauncher.Side;
import cpw.mods.fml.relauncher.SideOnly; import cpw.mods.fml.relauncher.SideOnly;

View file

@ -14,7 +14,7 @@ import net.minecraft.util.IIcon;
import net.minecraft.world.World; import net.minecraft.world.World;
import WayofTime.alchemicalWizardry.AlchemicalWizardry; import WayofTime.alchemicalWizardry.AlchemicalWizardry;
import WayofTime.alchemicalWizardry.ModBlocks; import WayofTime.alchemicalWizardry.ModBlocks;
import WayofTime.alchemicalWizardry.common.ArmourUpgrade; import WayofTime.alchemicalWizardry.api.items.interfaces.ArmourUpgrade;
import WayofTime.alchemicalWizardry.common.items.EnergyItems; import WayofTime.alchemicalWizardry.common.items.EnergyItems;
import cpw.mods.fml.relauncher.Side; import cpw.mods.fml.relauncher.Side;
import cpw.mods.fml.relauncher.SideOnly; import cpw.mods.fml.relauncher.SideOnly;

View file

@ -12,7 +12,7 @@ import net.minecraft.potion.PotionEffect;
import net.minecraft.util.IIcon; import net.minecraft.util.IIcon;
import net.minecraft.world.World; import net.minecraft.world.World;
import WayofTime.alchemicalWizardry.AlchemicalWizardry; import WayofTime.alchemicalWizardry.AlchemicalWizardry;
import WayofTime.alchemicalWizardry.common.ArmourUpgrade; import WayofTime.alchemicalWizardry.api.items.interfaces.ArmourUpgrade;
import WayofTime.alchemicalWizardry.common.items.EnergyItems; import WayofTime.alchemicalWizardry.common.items.EnergyItems;
import cpw.mods.fml.relauncher.Side; import cpw.mods.fml.relauncher.Side;
import cpw.mods.fml.relauncher.SideOnly; import cpw.mods.fml.relauncher.SideOnly;

View file

@ -11,7 +11,7 @@ import net.minecraft.potion.PotionEffect;
import net.minecraft.util.IIcon; import net.minecraft.util.IIcon;
import net.minecraft.world.World; import net.minecraft.world.World;
import WayofTime.alchemicalWizardry.AlchemicalWizardry; import WayofTime.alchemicalWizardry.AlchemicalWizardry;
import WayofTime.alchemicalWizardry.common.ArmourUpgrade; import WayofTime.alchemicalWizardry.api.items.interfaces.ArmourUpgrade;
import WayofTime.alchemicalWizardry.common.items.EnergyItems; import WayofTime.alchemicalWizardry.common.items.EnergyItems;
import cpw.mods.fml.relauncher.Side; import cpw.mods.fml.relauncher.Side;
import cpw.mods.fml.relauncher.SideOnly; import cpw.mods.fml.relauncher.SideOnly;

View file

@ -14,7 +14,7 @@ import net.minecraft.world.World;
import net.minecraftforge.common.MinecraftForge; import net.minecraftforge.common.MinecraftForge;
import net.minecraftforge.event.entity.player.FillBucketEvent; import net.minecraftforge.event.entity.player.FillBucketEvent;
import WayofTime.alchemicalWizardry.AlchemicalWizardry; import WayofTime.alchemicalWizardry.AlchemicalWizardry;
import WayofTime.alchemicalWizardry.common.ArmourUpgrade; import WayofTime.alchemicalWizardry.api.items.interfaces.ArmourUpgrade;
import WayofTime.alchemicalWizardry.common.items.EnergyBattery; import WayofTime.alchemicalWizardry.common.items.EnergyBattery;
import WayofTime.alchemicalWizardry.common.items.EnergyItems; import WayofTime.alchemicalWizardry.common.items.EnergyItems;
import cpw.mods.fml.relauncher.Side; import cpw.mods.fml.relauncher.Side;

View file

@ -14,7 +14,7 @@ import net.minecraft.potion.PotionEffect;
import net.minecraft.util.MovingObjectPosition; import net.minecraft.util.MovingObjectPosition;
import net.minecraft.world.World; import net.minecraft.world.World;
import WayofTime.alchemicalWizardry.AlchemicalWizardry; import WayofTime.alchemicalWizardry.AlchemicalWizardry;
import WayofTime.alchemicalWizardry.common.ArmourUpgrade; import WayofTime.alchemicalWizardry.api.items.interfaces.ArmourUpgrade;
import WayofTime.alchemicalWizardry.common.items.EnergyItems; import WayofTime.alchemicalWizardry.common.items.EnergyItems;
import cpw.mods.fml.relauncher.Side; import cpw.mods.fml.relauncher.Side;
import cpw.mods.fml.relauncher.SideOnly; import cpw.mods.fml.relauncher.SideOnly;

View file

@ -10,13 +10,17 @@ import net.minecraft.item.ItemArmor;
import net.minecraft.item.ItemStack; import net.minecraft.item.ItemStack;
import net.minecraft.util.IIcon; import net.minecraft.util.IIcon;
import net.minecraft.world.World; 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.AlchemicalWizardry;
import WayofTime.alchemicalWizardry.ModItems; import WayofTime.alchemicalWizardry.ModItems;
import WayofTime.alchemicalWizardry.common.ArmourUpgrade; import WayofTime.alchemicalWizardry.api.items.interfaces.ArmourUpgrade;
import cpw.mods.fml.relauncher.Side; import cpw.mods.fml.relauncher.Side;
import cpw.mods.fml.relauncher.SideOnly; import cpw.mods.fml.relauncher.SideOnly;
public class ItemSanguineArmour extends ItemArmor implements ArmourUpgrade//, IGoggles, IVisDiscounter, IRevealer public class ItemSanguineArmour extends ItemArmor implements ArmourUpgrade, IGoggles, IVisDiscountGear, IRevealer
{ {
private static IIcon helmetIcon; private static IIcon helmetIcon;
@ -47,12 +51,12 @@ public class ItemSanguineArmour extends ItemArmor implements ArmourUpgrade//, IG
return null; return null;
} }
// @Override @Override
// public void addInformation(ItemStack par1ItemStack, EntityPlayer par2EntityPlayer, List par3List, boolean par4) public void addInformation(ItemStack par1ItemStack, EntityPlayer par2EntityPlayer, List par3List, boolean par4)
// { {
// par3List.add("A pair of goggles imbued with power"); par3List.add("A pair of goggles imbued with power");
// par3List.add("Vis discount: " + this.getVisDiscount() + "%"); par3List.add("Vis discount: " + 8 + "%");
// } }
// @Override // @Override
@ -79,15 +83,21 @@ public class ItemSanguineArmour extends ItemArmor implements ArmourUpgrade//, IG
return 0; return 0;
} }
// @Override @Override
// public boolean showIngamePopups(ItemStack itemstack, EntityLivingBase player) public boolean showNodes(ItemStack itemstack, EntityLivingBase player)
// { {
// return true; return true;
// } }
//
// @Override @Override
// public int getVisDiscount() public int getVisDiscount(ItemStack stack, EntityPlayer player, Aspect aspect)
// { {
// return 10; return 8;
// } }
@Override
public boolean showIngamePopups(ItemStack itemstack, EntityLivingBase player)
{
return true;
}
} }

View file

@ -1,15 +0,0 @@
package WayofTime.alchemicalWizardry.common.rituals;
import WayofTime.alchemicalWizardry.common.tileEntity.TEMasterStone;
public abstract class RitualEffect
{
public abstract void performEffect(TEMasterStone ritualStone);
public abstract int getCostPerRefresh();
public int getInitialCooldown()
{
return 0;
}
}

View file

@ -1,5 +1,6 @@
package WayofTime.alchemicalWizardry.common.rituals; package WayofTime.alchemicalWizardry.common.rituals;
import java.util.ArrayList;
import java.util.Iterator; import java.util.Iterator;
import java.util.List; import java.util.List;
@ -10,13 +11,15 @@ import net.minecraft.potion.PotionEffect;
import net.minecraft.server.MinecraftServer; import net.minecraft.server.MinecraftServer;
import net.minecraft.util.AxisAlignedBB; import net.minecraft.util.AxisAlignedBB;
import net.minecraft.world.World; import net.minecraft.world.World;
import WayofTime.alchemicalWizardry.common.LifeEssenceNetwork; import WayofTime.alchemicalWizardry.api.rituals.IMasterRitualStone;
import WayofTime.alchemicalWizardry.common.tileEntity.TEMasterStone; import WayofTime.alchemicalWizardry.api.rituals.RitualComponent;
import WayofTime.alchemicalWizardry.api.rituals.RitualEffect;
import WayofTime.alchemicalWizardry.api.soulNetwork.LifeEssenceNetwork;
public class RitualEffectAnimalGrowth extends RitualEffect public class RitualEffectAnimalGrowth extends RitualEffect
{ {
@Override @Override
public void performEffect(TEMasterStone ritualStone) public void performEffect(IMasterRitualStone ritualStone)
{ {
String owner = ritualStone.getOwner(); String owner = ritualStone.getOwner();
World worldSave = MinecraftServer.getServer().worldServers[0]; World worldSave = MinecraftServer.getServer().worldServers[0];
@ -29,10 +32,10 @@ public class RitualEffectAnimalGrowth extends RitualEffect
} }
int currentEssence = data.currentEssence; int currentEssence = data.currentEssence;
World world = ritualStone.getWorldObj(); World world = ritualStone.getWorld();
int x = ritualStone.xCoord; int x = ritualStone.getXCoord();
int y = ritualStone.yCoord; int y = ritualStone.getYCoord();
int z = ritualStone.zCoord; int z = ritualStone.getZCoord();
if (world.getWorldTime() % 20 != 0) if (world.getWorldTime() % 20 != 0)
{ {
@ -87,7 +90,30 @@ public class RitualEffectAnimalGrowth extends RitualEffect
@Override @Override
public int getCostPerRefresh() public int getCostPerRefresh()
{ {
// TODO Auto-generated method stub
return 2; return 2;
} }
@Override
public List<RitualComponent> getRitualComponentList()
{
ArrayList<RitualComponent> 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;
}
} }

View file

@ -1,19 +1,22 @@
package WayofTime.alchemicalWizardry.common.rituals; package WayofTime.alchemicalWizardry.common.rituals;
import java.util.ArrayList;
import java.util.List;
import net.minecraft.entity.player.EntityPlayer; import net.minecraft.entity.player.EntityPlayer;
import net.minecraft.potion.Potion; import net.minecraft.potion.Potion;
import net.minecraft.potion.PotionEffect; import net.minecraft.potion.PotionEffect;
import net.minecraft.server.MinecraftServer; import net.minecraft.server.MinecraftServer;
import net.minecraft.tileentity.TileEntity;
import net.minecraft.world.World; import net.minecraft.world.World;
import WayofTime.alchemicalWizardry.common.LifeEssenceNetwork; import WayofTime.alchemicalWizardry.api.rituals.IMasterRitualStone;
import WayofTime.alchemicalWizardry.common.tileEntity.TEAltar; import WayofTime.alchemicalWizardry.api.rituals.RitualComponent;
import WayofTime.alchemicalWizardry.common.tileEntity.TEMasterStone; import WayofTime.alchemicalWizardry.api.rituals.RitualEffect;
import WayofTime.alchemicalWizardry.api.soulNetwork.LifeEssenceNetwork;
public class RitualEffectApiaryOverclock extends RitualEffect public class RitualEffectApiaryOverclock extends RitualEffect
{ {
@Override @Override
public void performEffect(TEMasterStone ritualStone) public void performEffect(IMasterRitualStone ritualStone)
{ {
String owner = ritualStone.getOwner(); String owner = ritualStone.getOwner();
World worldSave = MinecraftServer.getServer().worldServers[0]; World worldSave = MinecraftServer.getServer().worldServers[0];
@ -26,10 +29,10 @@ public class RitualEffectApiaryOverclock extends RitualEffect
} }
int currentEssence = data.currentEssence; int currentEssence = data.currentEssence;
World world = ritualStone.getWorldObj(); World world = ritualStone.getWorld();
int x = ritualStone.xCoord; int x = ritualStone.getXCoord();
int y = ritualStone.yCoord; int y = ritualStone.getYCoord();
int z = ritualStone.zCoord; int z = ritualStone.getZCoord();
if (currentEssence < this.getCostPerRefresh()) if (currentEssence < this.getCostPerRefresh())
@ -78,4 +81,19 @@ public class RitualEffectApiaryOverclock extends RitualEffect
// TODO Auto-generated method stub // TODO Auto-generated method stub
return 10; return 10;
} }
@Override
public List<RitualComponent> getRitualComponentList()
{
ArrayList<RitualComponent> 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;
}
} }

View file

@ -0,0 +1,430 @@
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<outputInv.getSizeInventory(); i++)
{
ItemStack curStack = outputInv.getStackInSlot(i);
if(curStack==null)
{
ItemStack copyStack = outputStack.copy();
copyStack.stackSize = 1;
outputStack.stackSize--;
if(outputStack.stackSize<=0)
{
alchemyEntity.setInventorySlotContents(6, null);
}else
{
alchemyEntity.setInventorySlotContents(6, outputStack);
}
outputInv.setInventorySlotContents(i, copyStack);
flag++;
break;
}
else if(curStack.isItemEqual(outputStack)&&curStack.stackSize<curStack.getMaxStackSize())
{
outputStack.stackSize--;
if(outputStack.stackSize<=0)
{
alchemyEntity.setInventorySlotContents(6, null);
}else
{
alchemyEntity.setInventorySlotContents(6, outputStack);
}
curStack.stackSize++;
outputInv.setInventorySlotContents(i, curStack);
flag++;
break;
}
}
}
for(int i=0; i<5;i++)
{
ItemStack recItem;
if(recipe.length<=i)
{
recItem = null;
}
else
{
recItem = recipe[i];
}
ItemStack alchStack = alchemyEntity.getStackInSlot(i+1);
if((recItem==null&&alchStack!=null) || (alchStack!=null&&!(areItemStacksEqualWithWildcard(recItem,alchStack))))
{
for(int j=0;j<outputInv.getSizeInventory();j++)
{
ItemStack curStack = outputInv.getStackInSlot(j);
if(curStack==null)
{
ItemStack copyStack = alchStack.copy();
copyStack.stackSize = 1;
alchStack.stackSize--;
if(alchStack.stackSize<=0)
{
alchemyEntity.setInventorySlotContents(i+1, null);
}else
{
alchemyEntity.setInventorySlotContents(i+1, alchStack);
}
outputInv.setInventorySlotContents(j, copyStack);
flag++;
break;
}
else if(curStack.isItemEqual(alchStack)&&curStack.stackSize<curStack.getMaxStackSize())
{
alchStack.stackSize--;
if(alchStack.stackSize<=0)
{
alchemyEntity.setInventorySlotContents(i+1, null);
}else
{
alchemyEntity.setInventorySlotContents(i+1, alchStack);
}
curStack.stackSize++;
outputInv.setInventorySlotContents(j, curStack);
flag++;
break;
}
}
continue;
}
}
}
if(world.getWorldTime()%10 == 0)
{
if(flag==0&&inputInv1!=null)
{
for(int i=0;i<recipe.length;i++)
{
ItemStack recItem = recipe[i];
if(recItem==null)
{
continue;
}
ItemStack alchStack = alchemyEntity.getStackInSlot(i+1);
if(alchStack!=null&&((!areItemStacksEqualWithWildcard(recItem,alchStack))||alchStack.stackSize>=alchStack.getMaxStackSize()))
{
continue;
}
for(int j=0;j<inputInv1.getSizeInventory();j++)
{
ItemStack curItem = inputInv1.getStackInSlot(j);
if(curItem==null)
{
continue;
}
if(areItemStacksEqualWithWildcard(recItem,curItem))
{
if(alchStack==null)
{
ItemStack copyStack = recItem.copy();
copyStack.stackSize = 1;
alchemyEntity.setInventorySlotContents(i+1, copyStack);
curItem.stackSize--;
if(curItem.stackSize<=0)
{
inputInv1.setInventorySlotContents(j, null);
}else
{
inputInv1.setInventorySlotContents(j, curItem);
}
flag++;
break;
}else
{
alchStack.stackSize++;
alchemyEntity.setInventorySlotContents(i+1, alchStack);
curItem.stackSize--;
if(curItem.stackSize<=0)
{
inputInv1.setInventorySlotContents(j, null);
}else
{
inputInv1.setInventorySlotContents(j, curItem);
}
flag++;
break;
}
}
}
}
}
if(flag==0&&inputInv2!=null)
{
for(int i=0;i<recipe.length;i++)
{
ItemStack recItem = recipe[i];
if(recItem==null)
{
continue;
}
ItemStack alchStack = alchemyEntity.getStackInSlot(i+1);
if(alchStack!=null&&((!areItemStacksEqualWithWildcard(recItem,alchStack))||alchStack.stackSize>=alchStack.getMaxStackSize()))
{
continue;
}
for(int j=0;j<inputInv2.getSizeInventory();j++)
{
ItemStack curItem = inputInv2.getStackInSlot(j);
if(curItem==null)
{
continue;
}
if(areItemStacksEqualWithWildcard(recItem,curItem))
{
if(alchStack==null)
{
ItemStack copyStack = recItem.copy();
copyStack.stackSize = 1;
alchemyEntity.setInventorySlotContents(i+1, copyStack);
curItem.stackSize--;
if(curItem.stackSize<=0)
{
inputInv2.setInventorySlotContents(j, null);
}else
{
inputInv2.setInventorySlotContents(j, curItem);
}
flag++;
break;
}else
{
alchStack.stackSize++;
alchemyEntity.setInventorySlotContents(i+1, alchStack);
curItem.stackSize--;
if(curItem.stackSize<=0)
{
inputInv2.setInventorySlotContents(j, null);
}else
{
inputInv2.setInventorySlotContents(j, curItem);
}
flag++;
break;
}
}
}
}
}
}
}
if (flag>0)
{
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<RitualComponent> getRitualComponentList()
{
ArrayList<RitualComponent> 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());
}
}

View file

@ -1,5 +1,8 @@
package WayofTime.alchemicalWizardry.common.rituals; package WayofTime.alchemicalWizardry.common.rituals;
import java.util.ArrayList;
import java.util.List;
import net.minecraft.block.Block; import net.minecraft.block.Block;
import net.minecraft.entity.effect.EntityLightningBolt; import net.minecraft.entity.effect.EntityLightningBolt;
import net.minecraft.entity.player.EntityPlayer; import net.minecraft.entity.player.EntityPlayer;
@ -16,14 +19,16 @@ import net.minecraft.world.World;
import net.minecraft.world.biome.BiomeGenBase; import net.minecraft.world.biome.BiomeGenBase;
import net.minecraft.world.chunk.Chunk; import net.minecraft.world.chunk.Chunk;
import WayofTime.alchemicalWizardry.ModBlocks; import WayofTime.alchemicalWizardry.ModBlocks;
import WayofTime.alchemicalWizardry.common.LifeEssenceNetwork; import WayofTime.alchemicalWizardry.api.rituals.IMasterRitualStone;
import WayofTime.alchemicalWizardry.common.tileEntity.TEMasterStone; import WayofTime.alchemicalWizardry.api.rituals.RitualComponent;
import WayofTime.alchemicalWizardry.api.rituals.RitualEffect;
import WayofTime.alchemicalWizardry.api.soulNetwork.LifeEssenceNetwork;
import WayofTime.alchemicalWizardry.common.tileEntity.TEPlinth; import WayofTime.alchemicalWizardry.common.tileEntity.TEPlinth;
public class RitualEffectBiomeChanger extends RitualEffect public class RitualEffectBiomeChanger extends RitualEffect
{ {
@Override @Override
public void performEffect(TEMasterStone ritualStone) public void performEffect(IMasterRitualStone ritualStone)
{ {
String owner = ritualStone.getOwner(); String owner = ritualStone.getOwner();
World worldSave = MinecraftServer.getServer().worldServers[0]; World worldSave = MinecraftServer.getServer().worldServers[0];
@ -36,24 +41,25 @@ public class RitualEffectBiomeChanger extends RitualEffect
} }
int cooldown = ritualStone.getCooldown(); int cooldown = ritualStone.getCooldown();
World world = ritualStone.getWorld();
int x = ritualStone.getXCoord();
int y = ritualStone.getYCoord();
int z = ritualStone.getZCoord();
if (cooldown > 0) if (cooldown > 0)
{ {
ritualStone.setCooldown(cooldown - 1); ritualStone.setCooldown(cooldown - 1);
if (ritualStone.getWorldObj().rand.nextInt(15) == 0) if (world.rand.nextInt(15) == 0)
{ {
ritualStone.getWorldObj().addWeatherEffect(new EntityLightningBolt(ritualStone.getWorldObj(), ritualStone.xCoord - 1 + ritualStone.getWorldObj().rand.nextInt(3), ritualStone.yCoord + 1, ritualStone.zCoord - 1 + ritualStone.getWorldObj().rand.nextInt(3))); world.addWeatherEffect(new EntityLightningBolt(world, x - 1 + world.rand.nextInt(3), y + 1, z - 1 + world.rand.nextInt(3)));
} }
return; return;
} }
int currentEssence = data.currentEssence; int currentEssence = data.currentEssence;
World world = ritualStone.getWorldObj();
int x = ritualStone.xCoord;
int y = ritualStone.yCoord;
int z = ritualStone.zCoord;
int range = 10; int range = 10;
if (currentEssence < this.getCostPerRefresh()) if (currentEssence < this.getCostPerRefresh())
@ -315,4 +321,127 @@ public class RitualEffectBiomeChanger extends RitualEffect
{ {
return 200; return 200;
} }
@Override
public List<RitualComponent> getRitualComponentList()
{
ArrayList<RitualComponent> 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;
}
} }

View file

@ -1,5 +1,6 @@
package WayofTime.alchemicalWizardry.common.rituals; package WayofTime.alchemicalWizardry.common.rituals;
import java.util.ArrayList;
import java.util.Iterator; import java.util.Iterator;
import java.util.List; import java.util.List;
@ -10,15 +11,16 @@ import net.minecraft.potion.PotionEffect;
import net.minecraft.server.MinecraftServer; import net.minecraft.server.MinecraftServer;
import net.minecraft.util.AxisAlignedBB; import net.minecraft.util.AxisAlignedBB;
import net.minecraft.world.World; import net.minecraft.world.World;
import WayofTime.alchemicalWizardry.common.LifeEssenceNetwork; 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.complex.effect.SpellHelper;
import WayofTime.alchemicalWizardry.common.tileEntity.TEAltar;
import WayofTime.alchemicalWizardry.common.tileEntity.TEMasterStone;
public class RitualEffectContainment extends RitualEffect public class RitualEffectContainment extends RitualEffect
{ {
@Override @Override
public void performEffect(TEMasterStone ritualStone) public void performEffect(IMasterRitualStone ritualStone)
{ {
String owner = ritualStone.getOwner(); String owner = ritualStone.getOwner();
World worldSave = MinecraftServer.getServer().worldServers[0]; World worldSave = MinecraftServer.getServer().worldServers[0];
@ -31,10 +33,10 @@ public class RitualEffectContainment extends RitualEffect
} }
int currentEssence = data.currentEssence; int currentEssence = data.currentEssence;
World world = ritualStone.getWorldObj(); World world = ritualStone.getWorld();
int x = ritualStone.xCoord; int x = ritualStone.getXCoord();
int y = ritualStone.yCoord; int y = ritualStone.getYCoord();
int z = ritualStone.zCoord; int z = ritualStone.getZCoord();
if (currentEssence < this.getCostPerRefresh()) if (currentEssence < this.getCostPerRefresh())
{ {
@ -99,4 +101,27 @@ public class RitualEffectContainment extends RitualEffect
{ {
return 1; return 1;
} }
@Override
public List<RitualComponent> getRitualComponentList()
{
ArrayList<RitualComponent> 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;
}
} }

View file

@ -1,11 +1,12 @@
package WayofTime.alchemicalWizardry.common.rituals; package WayofTime.alchemicalWizardry.common.rituals;
import WayofTime.alchemicalWizardry.ModBlocks; import java.util.ArrayList;
import WayofTime.alchemicalWizardry.common.LifeEssenceNetwork; import java.util.List;
import WayofTime.alchemicalWizardry.common.tileEntity.TEMasterStone;
import net.minecraft.block.Block; import net.minecraft.block.Block;
import net.minecraft.entity.item.EntityItem; import net.minecraft.entity.item.EntityItem;
import net.minecraft.entity.player.EntityPlayer; import net.minecraft.entity.player.EntityPlayer;
import net.minecraft.init.Blocks;
import net.minecraft.inventory.IInventory; import net.minecraft.inventory.IInventory;
import net.minecraft.item.ItemStack; import net.minecraft.item.ItemStack;
import net.minecraft.potion.Potion; import net.minecraft.potion.Potion;
@ -13,13 +14,16 @@ import net.minecraft.potion.PotionEffect;
import net.minecraft.server.MinecraftServer; import net.minecraft.server.MinecraftServer;
import net.minecraft.tileentity.TileEntity; import net.minecraft.tileentity.TileEntity;
import net.minecraft.world.World; import net.minecraft.world.World;
import WayofTime.alchemicalWizardry.ModBlocks;
import java.util.ArrayList; 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 public class RitualEffectCrushing extends RitualEffect
{ {
@Override @Override
public void performEffect(TEMasterStone ritualStone) public void performEffect(IMasterRitualStone ritualStone)
{ {
String owner = ritualStone.getOwner(); String owner = ritualStone.getOwner();
World worldSave = MinecraftServer.getServer().worldServers[0]; World worldSave = MinecraftServer.getServer().worldServers[0];
@ -32,16 +36,17 @@ public class RitualEffectCrushing extends RitualEffect
} }
int currentEssence = data.currentEssence; int currentEssence = data.currentEssence;
World world = ritualStone.getWorldObj(); World world = ritualStone.getWorld();
if (world.getWorldTime() % 40 != 0) if (world.getWorldTime() % 40 != 20)
{ {
return; return;
} }
int x = ritualStone.xCoord;
int y = ritualStone.yCoord; int x = ritualStone.getXCoord();
int z = ritualStone.zCoord; int y = ritualStone.getYCoord();
int z = ritualStone.getZCoord();
TileEntity tile = world.getTileEntity(x, y + 1, z); TileEntity tile = world.getTileEntity(x, y + 1, z);
IInventory tileEntity; IInventory tileEntity;
@ -58,6 +63,9 @@ public class RitualEffectCrushing extends RitualEffect
return; return;
} }
boolean isSilkTouch = this.isSilkTouch(world, x, y, z);
int fortuneLevel = this.getFortuneLevel(world, x, y, z);
if (currentEssence < this.getCostPerRefresh()) if (currentEssence < this.getCostPerRefresh())
{ {
EntityPlayer entityOwner = MinecraftServer.getServer().getConfigurationManager().getPlayerForUsername(owner); EntityPlayer entityOwner = MinecraftServer.getServer().getConfigurationManager().getPlayerForUsername(owner);
@ -87,55 +95,106 @@ public class RitualEffectCrushing extends RitualEffect
continue; continue;
} }
ArrayList<ItemStack> itemDropList = block.getDrops(world, x + i, y + j, z + k, meta, 0); if(isSilkTouch && block.canSilkHarvest(world, null, x + i, y + j, z + k, meta))
if (itemDropList != null)
{ {
int invSize = tileEntity.getSizeInventory(); int invSize = tileEntity.getSizeInventory();
ItemStack item = new ItemStack(block,1,meta);
ItemStack copyStack = item.copyItemStack(item);
for (ItemStack item : itemDropList) for (int n = 0; n < invSize; n++)
{ {
ItemStack copyStack = item.copyItemStack(item); if (tileEntity.isItemValidForSlot(n, copyStack) && copyStack.stackSize != 0)
for (int n = 0; n < invSize; n++)
{ {
if (tileEntity.isItemValidForSlot(n, copyStack) && copyStack.stackSize != 0) ItemStack itemStack = tileEntity.getStackInSlot(n);
if (itemStack == null)
{ {
ItemStack itemStack = tileEntity.getStackInSlot(n); 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 (itemStack == null) if (copySize + itemSize < maxSize)
{
tileEntity.setInventorySlotContents(n, copyStack);
copyStack.stackSize = 0;
} else
{
if (itemStack.getItem().equals(copyStack.getItem()))
{ {
int itemSize = itemStack.stackSize; copyStack.stackSize = 0;
int copySize = copyStack.stackSize; itemStack.stackSize = itemSize + copySize;
int maxSize = itemStack.getMaxStackSize(); tileEntity.setInventorySlotContents(n, itemStack);
} else
if (copySize + itemSize < maxSize) {
{ copyStack.stackSize = itemSize + copySize - maxSize;
copyStack.stackSize = 0; itemStack.stackSize = maxSize;
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 (copyStack.stackSize > 0)
{
world.spawnEntityInWorld(new EntityItem(world, x + 0.4, y + 2, z + 0.5, copyStack));
//flag=true;
}
}
else
{
ArrayList<ItemStack> 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()))
{
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) //if(flag)
@ -150,10 +209,92 @@ public class RitualEffectCrushing extends RitualEffect
} }
} }
} }
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)
{
index++;
}
}
}
}
if(index>=12)
{
return 3;
}else if(index>=8)
{
return 2;
}else if(index>=4)
{
return 1;
}
return 0;
}
@Override @Override
public int getCostPerRefresh() public int getCostPerRefresh()
{ {
return 7; return 7;
} }
@Override
public List<RitualComponent> getRitualComponentList()
{
ArrayList<RitualComponent> 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;
}
} }

View file

@ -0,0 +1,286 @@
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<RitualComponent> getRitualComponentList()
{
ArrayList<RitualComponent> 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;
}
}

View file

@ -1,7 +1,8 @@
package WayofTime.alchemicalWizardry.common.rituals; package WayofTime.alchemicalWizardry.common.rituals;
import WayofTime.alchemicalWizardry.common.LifeEssenceNetwork; import java.util.ArrayList;
import WayofTime.alchemicalWizardry.common.tileEntity.TEMasterStone; import java.util.List;
import net.minecraft.entity.EntityLivingBase; import net.minecraft.entity.EntityLivingBase;
import net.minecraft.entity.effect.EntityLightningBolt; import net.minecraft.entity.effect.EntityLightningBolt;
import net.minecraft.entity.player.EntityPlayer; import net.minecraft.entity.player.EntityPlayer;
@ -10,13 +11,15 @@ import net.minecraft.potion.PotionEffect;
import net.minecraft.server.MinecraftServer; import net.minecraft.server.MinecraftServer;
import net.minecraft.util.AxisAlignedBB; import net.minecraft.util.AxisAlignedBB;
import net.minecraft.world.World; import net.minecraft.world.World;
import WayofTime.alchemicalWizardry.api.rituals.IMasterRitualStone;
import java.util.List; 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 public class RitualEffectFeatheredEarth extends RitualEffect //Nullifies all fall damage in the area of effect
{ {
@Override @Override
public void performEffect(TEMasterStone ritualStone) public void performEffect(IMasterRitualStone ritualStone)
{ {
String owner = ritualStone.getOwner(); String owner = ritualStone.getOwner();
World worldSave = MinecraftServer.getServer().worldServers[0]; World worldSave = MinecraftServer.getServer().worldServers[0];
@ -29,10 +32,10 @@ public class RitualEffectFeatheredEarth extends RitualEffect //Nullifies all fal
} }
int currentEssence = data.currentEssence; int currentEssence = data.currentEssence;
World world = ritualStone.getWorldObj(); World world = ritualStone.getWorld();
int x = ritualStone.xCoord; int x = ritualStone.getXCoord();
int y = ritualStone.yCoord; int y = ritualStone.getYCoord();
int z = ritualStone.zCoord; int z = ritualStone.getZCoord();
if (ritualStone.getCooldown() > 0) if (ritualStone.getCooldown() > 0)
{ {
@ -87,4 +90,51 @@ public class RitualEffectFeatheredEarth extends RitualEffect //Nullifies all fal
{ {
return 1; return 1;
} }
@Override
public List<RitualComponent> getRitualComponentList()
{
ArrayList<RitualComponent> 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;
}
} }

View file

@ -1,8 +1,9 @@
package WayofTime.alchemicalWizardry.common.rituals; package WayofTime.alchemicalWizardry.common.rituals;
import WayofTime.alchemicalWizardry.common.LifeEssenceNetwork; import java.util.ArrayList;
import WayofTime.alchemicalWizardry.common.tileEntity.TEAltar; import java.util.Iterator;
import WayofTime.alchemicalWizardry.common.tileEntity.TEMasterStone; import java.util.List;
import net.minecraft.entity.player.EntityPlayer; import net.minecraft.entity.player.EntityPlayer;
import net.minecraft.entity.player.EntityPlayerMP; import net.minecraft.entity.player.EntityPlayerMP;
import net.minecraft.potion.Potion; import net.minecraft.potion.Potion;
@ -10,9 +11,11 @@ import net.minecraft.potion.PotionEffect;
import net.minecraft.server.MinecraftServer; import net.minecraft.server.MinecraftServer;
import net.minecraft.util.AxisAlignedBB; import net.minecraft.util.AxisAlignedBB;
import net.minecraft.world.World; import net.minecraft.world.World;
import WayofTime.alchemicalWizardry.api.rituals.IMasterRitualStone;
import java.util.Iterator; import WayofTime.alchemicalWizardry.api.rituals.RitualComponent;
import java.util.List; import WayofTime.alchemicalWizardry.api.rituals.RitualEffect;
import WayofTime.alchemicalWizardry.api.soulNetwork.LifeEssenceNetwork;
import WayofTime.alchemicalWizardry.common.tileEntity.TEAltar;
public class RitualEffectFeatheredKnife extends RitualEffect public class RitualEffectFeatheredKnife extends RitualEffect
{ {
@ -20,7 +23,7 @@ public class RitualEffectFeatheredKnife extends RitualEffect
public final int amount = 100; public final int amount = 100;
@Override @Override
public void performEffect(TEMasterStone ritualStone) public void performEffect(IMasterRitualStone ritualStone)
{ {
String owner = ritualStone.getOwner(); String owner = ritualStone.getOwner();
World worldSave = MinecraftServer.getServer().worldServers[0]; World worldSave = MinecraftServer.getServer().worldServers[0];
@ -33,10 +36,10 @@ public class RitualEffectFeatheredKnife extends RitualEffect
} }
int currentEssence = data.currentEssence; int currentEssence = data.currentEssence;
World world = ritualStone.getWorldObj(); World world = ritualStone.getWorld();
int x = ritualStone.xCoord; int x = ritualStone.getXCoord();
int y = ritualStone.yCoord; int y = ritualStone.getYCoord();
int z = ritualStone.zCoord; int z = ritualStone.getZCoord();
if (world.getWorldTime() % this.timeDelay != 0) if (world.getWorldTime() % this.timeDelay != 0)
{ {
@ -138,4 +141,51 @@ public class RitualEffectFeatheredKnife extends RitualEffect
// TODO Auto-generated method stub // TODO Auto-generated method stub
return 20; return 20;
} }
@Override
public List<RitualComponent> getRitualComponentList()
{
ArrayList<RitualComponent> 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;
}
} }

View file

@ -1,21 +1,24 @@
package WayofTime.alchemicalWizardry.common.rituals; package WayofTime.alchemicalWizardry.common.rituals;
import WayofTime.alchemicalWizardry.AlchemicalWizardry; import java.util.ArrayList;
import WayofTime.alchemicalWizardry.common.LifeEssenceNetwork; import java.util.List;
import WayofTime.alchemicalWizardry.common.tileEntity.TEMasterStone;
import net.minecraft.entity.player.EntityPlayer; import net.minecraft.entity.player.EntityPlayer;
import net.minecraft.potion.Potion; import net.minecraft.potion.Potion;
import net.minecraft.potion.PotionEffect; import net.minecraft.potion.PotionEffect;
import net.minecraft.server.MinecraftServer; import net.minecraft.server.MinecraftServer;
import net.minecraft.util.AxisAlignedBB; import net.minecraft.util.AxisAlignedBB;
import net.minecraft.world.World; import net.minecraft.world.World;
import WayofTime.alchemicalWizardry.AlchemicalWizardry;
import java.util.List; 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 public class RitualEffectFlight extends RitualEffect
{ {
@Override @Override
public void performEffect(TEMasterStone ritualStone) public void performEffect(IMasterRitualStone ritualStone)
{ {
String owner = ritualStone.getOwner(); String owner = ritualStone.getOwner();
World worldSave = MinecraftServer.getServer().worldServers[0]; World worldSave = MinecraftServer.getServer().worldServers[0];
@ -28,10 +31,10 @@ public class RitualEffectFlight extends RitualEffect
} }
int currentEssence = data.currentEssence; int currentEssence = data.currentEssence;
World world = ritualStone.getWorldObj(); World world = ritualStone.getWorld();
int x = ritualStone.xCoord; int x = ritualStone.getXCoord();
int y = ritualStone.yCoord; int y = ritualStone.getYCoord();
int z = ritualStone.zCoord; int z = ritualStone.getZCoord();
if (ritualStone.getCooldown() > 0) if (ritualStone.getCooldown() > 0)
{ {
@ -85,4 +88,92 @@ public class RitualEffectFlight extends RitualEffect
{ {
return 1; return 1;
} }
@Override
public List<RitualComponent> getRitualComponentList()
{
ArrayList<RitualComponent> 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;
}
} }

View file

@ -1,5 +1,8 @@
package WayofTime.alchemicalWizardry.common.rituals; package WayofTime.alchemicalWizardry.common.rituals;
import java.util.ArrayList;
import java.util.List;
import net.minecraft.block.Block; import net.minecraft.block.Block;
import net.minecraft.entity.player.EntityPlayer; import net.minecraft.entity.player.EntityPlayer;
import net.minecraft.potion.Potion; import net.minecraft.potion.Potion;
@ -7,14 +10,16 @@ import net.minecraft.potion.PotionEffect;
import net.minecraft.server.MinecraftServer; import net.minecraft.server.MinecraftServer;
import net.minecraft.world.World; import net.minecraft.world.World;
import net.minecraftforge.common.IPlantable; import net.minecraftforge.common.IPlantable;
import WayofTime.alchemicalWizardry.common.LifeEssenceNetwork; 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.complex.effect.SpellHelper;
import WayofTime.alchemicalWizardry.common.tileEntity.TEMasterStone;
public class RitualEffectGrowth extends RitualEffect public class RitualEffectGrowth extends RitualEffect
{ {
@Override @Override
public void performEffect(TEMasterStone ritualStone) public void performEffect(IMasterRitualStone ritualStone)
{ {
String owner = ritualStone.getOwner(); String owner = ritualStone.getOwner();
World worldSave = MinecraftServer.getServer().worldServers[0]; World worldSave = MinecraftServer.getServer().worldServers[0];
@ -27,10 +32,10 @@ public class RitualEffectGrowth extends RitualEffect
} }
int currentEssence = data.currentEssence; int currentEssence = data.currentEssence;
World world = ritualStone.getWorldObj(); World world = ritualStone.getWorld();
int x = ritualStone.xCoord; int x = ritualStone.getXCoord();
int y = ritualStone.yCoord; int y = ritualStone.getYCoord();
int z = ritualStone.zCoord; int z = ritualStone.getZCoord();
if (currentEssence < this.getCostPerRefresh()) if (currentEssence < this.getCostPerRefresh())
{ {
@ -81,4 +86,19 @@ public class RitualEffectGrowth extends RitualEffect
{ {
return 100; return 100;
} }
@Override
public List<RitualComponent> getRitualComponentList()
{
ArrayList<RitualComponent> 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;
}
} }

View file

@ -1,7 +1,9 @@
package WayofTime.alchemicalWizardry.common.rituals; package WayofTime.alchemicalWizardry.common.rituals;
import WayofTime.alchemicalWizardry.common.LifeEssenceNetwork; import java.util.ArrayList;
import WayofTime.alchemicalWizardry.common.tileEntity.TEMasterStone; import java.util.Iterator;
import java.util.List;
import net.minecraft.entity.EntityLivingBase; import net.minecraft.entity.EntityLivingBase;
import net.minecraft.entity.player.EntityPlayer; import net.minecraft.entity.player.EntityPlayer;
import net.minecraft.potion.Potion; import net.minecraft.potion.Potion;
@ -9,9 +11,10 @@ import net.minecraft.potion.PotionEffect;
import net.minecraft.server.MinecraftServer; import net.minecraft.server.MinecraftServer;
import net.minecraft.util.AxisAlignedBB; import net.minecraft.util.AxisAlignedBB;
import net.minecraft.world.World; import net.minecraft.world.World;
import WayofTime.alchemicalWizardry.api.rituals.IMasterRitualStone;
import java.util.Iterator; import WayofTime.alchemicalWizardry.api.rituals.RitualComponent;
import java.util.List; import WayofTime.alchemicalWizardry.api.rituals.RitualEffect;
import WayofTime.alchemicalWizardry.api.soulNetwork.LifeEssenceNetwork;
public class RitualEffectHealing extends RitualEffect public class RitualEffectHealing extends RitualEffect
{ {
@ -19,7 +22,7 @@ public class RitualEffectHealing extends RitualEffect
//public final int amount = 10; //public final int amount = 10;
@Override @Override
public void performEffect(TEMasterStone ritualStone) public void performEffect(IMasterRitualStone ritualStone)
{ {
String owner = ritualStone.getOwner(); String owner = ritualStone.getOwner();
World worldSave = MinecraftServer.getServer().worldServers[0]; World worldSave = MinecraftServer.getServer().worldServers[0];
@ -32,10 +35,10 @@ public class RitualEffectHealing extends RitualEffect
} }
int currentEssence = data.currentEssence; int currentEssence = data.currentEssence;
World world = ritualStone.getWorldObj(); World world = ritualStone.getWorld();
int x = ritualStone.xCoord; int x = ritualStone.getXCoord();
int y = ritualStone.yCoord; int y = ritualStone.getYCoord();
int z = ritualStone.zCoord; int z = ritualStone.getZCoord();
if (world.getWorldTime() % this.timeDelay != 0) if (world.getWorldTime() % this.timeDelay != 0)
{ {
@ -123,4 +126,55 @@ public class RitualEffectHealing extends RitualEffect
// TODO Auto-generated method stub // TODO Auto-generated method stub
return 20; return 20;
} }
@Override
public List<RitualComponent> getRitualComponentList()
{
ArrayList<RitualComponent> 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;
}
} }

View file

@ -1,8 +1,9 @@
package WayofTime.alchemicalWizardry.common.rituals; package WayofTime.alchemicalWizardry.common.rituals;
import WayofTime.alchemicalWizardry.common.LifeEssenceNetwork; import java.util.ArrayList;
import WayofTime.alchemicalWizardry.common.spell.complex.effect.SpellHelper; import java.util.Iterator;
import WayofTime.alchemicalWizardry.common.tileEntity.TEMasterStone; import java.util.List;
import net.minecraft.entity.EntityLivingBase; import net.minecraft.entity.EntityLivingBase;
import net.minecraft.entity.player.EntityPlayer; import net.minecraft.entity.player.EntityPlayer;
import net.minecraft.potion.Potion; import net.minecraft.potion.Potion;
@ -10,14 +11,16 @@ import net.minecraft.potion.PotionEffect;
import net.minecraft.server.MinecraftServer; import net.minecraft.server.MinecraftServer;
import net.minecraft.util.AxisAlignedBB; import net.minecraft.util.AxisAlignedBB;
import net.minecraft.world.World; import net.minecraft.world.World;
import WayofTime.alchemicalWizardry.api.rituals.IMasterRitualStone;
import java.util.Iterator; import WayofTime.alchemicalWizardry.api.rituals.RitualComponent;
import java.util.List; 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 public class RitualEffectInterdiction extends RitualEffect
{ {
@Override @Override
public void performEffect(TEMasterStone ritualStone) public void performEffect(IMasterRitualStone ritualStone)
{ {
String owner = ritualStone.getOwner(); String owner = ritualStone.getOwner();
World worldSave = MinecraftServer.getServer().worldServers[0]; World worldSave = MinecraftServer.getServer().worldServers[0];
@ -30,10 +33,10 @@ public class RitualEffectInterdiction extends RitualEffect
} }
int currentEssence = data.currentEssence; int currentEssence = data.currentEssence;
World world = ritualStone.getWorldObj(); World world = ritualStone.getWorld();
int x = ritualStone.xCoord; int x = ritualStone.getXCoord();
int y = ritualStone.yCoord; int y = ritualStone.getYCoord();
int z = ritualStone.zCoord; int z = ritualStone.getZCoord();
if (currentEssence < this.getCostPerRefresh()) if (currentEssence < this.getCostPerRefresh())
{ {
@ -91,4 +94,19 @@ public class RitualEffectInterdiction extends RitualEffect
{ {
return 1; return 1;
} }
@Override
public List<RitualComponent> getRitualComponentList()
{
ArrayList<RitualComponent> 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;
}
} }

View file

@ -1,7 +1,6 @@
package WayofTime.alchemicalWizardry.common.rituals; package WayofTime.alchemicalWizardry.common.rituals;
import ibxm.Player; import java.util.ArrayList;
import java.util.Iterator; import java.util.Iterator;
import java.util.List; import java.util.List;
@ -12,15 +11,16 @@ import net.minecraft.potion.PotionEffect;
import net.minecraft.server.MinecraftServer; import net.minecraft.server.MinecraftServer;
import net.minecraft.util.AxisAlignedBB; import net.minecraft.util.AxisAlignedBB;
import net.minecraft.world.World; import net.minecraft.world.World;
import WayofTime.alchemicalWizardry.common.LifeEssenceNetwork; import WayofTime.alchemicalWizardry.api.rituals.IMasterRitualStone;
import WayofTime.alchemicalWizardry.common.PacketHandler; 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.complex.effect.SpellHelper;
import WayofTime.alchemicalWizardry.common.tileEntity.TEMasterStone;
public class RitualEffectJumping extends RitualEffect public class RitualEffectJumping extends RitualEffect
{ {
@Override @Override
public void performEffect(TEMasterStone ritualStone) public void performEffect(IMasterRitualStone ritualStone)
{ {
String owner = ritualStone.getOwner(); String owner = ritualStone.getOwner();
World worldSave = MinecraftServer.getServer().worldServers[0]; World worldSave = MinecraftServer.getServer().worldServers[0];
@ -33,10 +33,10 @@ public class RitualEffectJumping extends RitualEffect
} }
int currentEssence = data.currentEssence; int currentEssence = data.currentEssence;
World world = ritualStone.getWorldObj(); World world = ritualStone.getWorld();
int x = ritualStone.xCoord; int x = ritualStone.getXCoord();
int y = ritualStone.yCoord; int y = ritualStone.getYCoord();
int z = ritualStone.zCoord; int z = ritualStone.getZCoord();
if (currentEssence < this.getCostPerRefresh()) if (currentEssence < this.getCostPerRefresh())
{ {
@ -96,4 +96,19 @@ public class RitualEffectJumping extends RitualEffect
{ {
return 5; return 5;
} }
@Override
public List<RitualComponent> getRitualComponentList()
{
ArrayList<RitualComponent> 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;
}
} }

View file

@ -1,20 +1,26 @@
package WayofTime.alchemicalWizardry.common.rituals; 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.entity.player.EntityPlayer;
import net.minecraft.init.Blocks; import net.minecraft.init.Blocks;
import net.minecraft.potion.Potion; import net.minecraft.potion.Potion;
import net.minecraft.potion.PotionEffect; import net.minecraft.potion.PotionEffect;
import net.minecraft.server.MinecraftServer; import net.minecraft.server.MinecraftServer;
import net.minecraft.world.World; import net.minecraft.world.World;
import WayofTime.alchemicalWizardry.common.LifeEssenceNetwork; 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; import WayofTime.alchemicalWizardry.common.spell.complex.effect.SpellHelper;
import WayofTime.alchemicalWizardry.common.tileEntity.TEAltar;
import WayofTime.alchemicalWizardry.common.tileEntity.TEMasterStone;
public class RitualEffectLava extends RitualEffect public class RitualEffectLava extends RitualEffect
{ {
@Override @Override
public void performEffect(TEMasterStone ritualStone) public void performEffect(IMasterRitualStone ritualStone)
{ {
String owner = ritualStone.getOwner(); String owner = ritualStone.getOwner();
World worldSave = MinecraftServer.getServer().worldServers[0]; World worldSave = MinecraftServer.getServer().worldServers[0];
@ -27,12 +33,14 @@ public class RitualEffectLava extends RitualEffect
} }
int currentEssence = data.currentEssence; int currentEssence = data.currentEssence;
World world = ritualStone.getWorldObj(); World world = ritualStone.getWorld();
int x = ritualStone.xCoord; int x = ritualStone.getXCoord();
int y = ritualStone.yCoord; int y = ritualStone.getYCoord();
int z = ritualStone.zCoord; int z = ritualStone.getZCoord();
if (world.isAirBlock(x, y + 1, z)) Block block = world.getBlock(x, y + 1, z);
if (world.isAirBlock(x, y + 1, z) && !(block instanceof BlockSpectralContainer))
{ {
if (currentEssence < this.getCostPerRefresh()) if (currentEssence < this.getCostPerRefresh())
{ {
@ -64,4 +72,15 @@ public class RitualEffectLava extends RitualEffect
// TODO Auto-generated method stub // TODO Auto-generated method stub
return 500; return 500;
} }
@Override
public List<RitualComponent> getRitualComponentList()
{
ArrayList<RitualComponent> 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;
}
} }

View file

@ -1,5 +1,6 @@
package WayofTime.alchemicalWizardry.common.rituals; package WayofTime.alchemicalWizardry.common.rituals;
import java.util.ArrayList;
import java.util.Iterator; import java.util.Iterator;
import java.util.List; import java.util.List;
@ -10,14 +11,16 @@ import net.minecraft.potion.PotionEffect;
import net.minecraft.server.MinecraftServer; import net.minecraft.server.MinecraftServer;
import net.minecraft.util.AxisAlignedBB; import net.minecraft.util.AxisAlignedBB;
import net.minecraft.world.World; import net.minecraft.world.World;
import WayofTime.alchemicalWizardry.common.LifeEssenceNetwork; 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.complex.effect.SpellHelper;
import WayofTime.alchemicalWizardry.common.tileEntity.TEMasterStone;
public class RitualEffectLeap extends RitualEffect public class RitualEffectLeap extends RitualEffect
{ {
@Override @Override
public void performEffect(TEMasterStone ritualStone) public void performEffect(IMasterRitualStone ritualStone)
{ {
String owner = ritualStone.getOwner(); String owner = ritualStone.getOwner();
World worldSave = MinecraftServer.getServer().worldServers[0]; World worldSave = MinecraftServer.getServer().worldServers[0];
@ -30,10 +33,10 @@ public class RitualEffectLeap extends RitualEffect
} }
int currentEssence = data.currentEssence; int currentEssence = data.currentEssence;
World world = ritualStone.getWorldObj(); World world = ritualStone.getWorld();
int x = ritualStone.xCoord; int x = ritualStone.getXCoord();
int y = ritualStone.yCoord; int y = ritualStone.getYCoord();
int z = ritualStone.zCoord; int z = ritualStone.getZCoord();
if (currentEssence < this.getCostPerRefresh()) if (currentEssence < this.getCostPerRefresh())
{ {
@ -136,4 +139,20 @@ public class RitualEffectLeap extends RitualEffect
{ {
return 5; return 5;
} }
@Override
public List<RitualComponent> getRitualComponentList()
{
ArrayList<RitualComponent> 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;
}
} }

View file

@ -1,8 +1,8 @@
package WayofTime.alchemicalWizardry.common.rituals; package WayofTime.alchemicalWizardry.common.rituals;
import WayofTime.alchemicalWizardry.common.LifeEssenceNetwork; import java.util.ArrayList;
import WayofTime.alchemicalWizardry.common.block.BlockTeleposer; import java.util.List;
import WayofTime.alchemicalWizardry.common.tileEntity.TEMasterStone;
import net.minecraft.block.Block; import net.minecraft.block.Block;
import net.minecraft.entity.player.EntityPlayer; import net.minecraft.entity.player.EntityPlayer;
import net.minecraft.item.ItemStack; import net.minecraft.item.ItemStack;
@ -11,11 +11,16 @@ import net.minecraft.potion.PotionEffect;
import net.minecraft.server.MinecraftServer; import net.minecraft.server.MinecraftServer;
import net.minecraft.world.World; import net.minecraft.world.World;
import net.minecraftforge.oredict.OreDictionary; 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 public class RitualEffectMagnetic extends RitualEffect
{ {
@Override @Override
public void performEffect(TEMasterStone ritualStone) public void performEffect(IMasterRitualStone ritualStone)
{ {
String owner = ritualStone.getOwner(); String owner = ritualStone.getOwner();
World worldSave = MinecraftServer.getServer().worldServers[0]; World worldSave = MinecraftServer.getServer().worldServers[0];
@ -28,10 +33,10 @@ public class RitualEffectMagnetic extends RitualEffect
} }
int currentEssence = data.currentEssence; int currentEssence = data.currentEssence;
World world = ritualStone.getWorldObj(); World world = ritualStone.getWorld();
int x = ritualStone.xCoord; int x = ritualStone.getXCoord();
int y = ritualStone.yCoord; int y = ritualStone.getYCoord();
int z = ritualStone.zCoord; int z = ritualStone.getZCoord();
if (world.getWorldTime() % 40 != 0) if (world.getWorldTime() % 40 != 0)
{ {
@ -118,4 +123,27 @@ public class RitualEffectMagnetic extends RitualEffect
{ {
return 50; return 50;
} }
@Override
public List<RitualComponent> getRitualComponentList()
{
ArrayList<RitualComponent> 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;
}
} }

View file

@ -1,12 +1,12 @@
package WayofTime.alchemicalWizardry.common.rituals; package WayofTime.alchemicalWizardry.common.rituals;
import java.util.ArrayList;
import java.util.Iterator; import java.util.Iterator;
import java.util.List; import java.util.List;
import net.minecraft.entity.effect.EntityLightningBolt; import net.minecraft.entity.effect.EntityLightningBolt;
import net.minecraft.entity.item.EntityItem; import net.minecraft.entity.item.EntityItem;
import net.minecraft.entity.player.EntityPlayer; import net.minecraft.entity.player.EntityPlayer;
import net.minecraft.init.Items;
import net.minecraft.item.Item; import net.minecraft.item.Item;
import net.minecraft.item.ItemStack; import net.minecraft.item.ItemStack;
import net.minecraft.potion.Potion; import net.minecraft.potion.Potion;
@ -14,17 +14,17 @@ import net.minecraft.potion.PotionEffect;
import net.minecraft.server.MinecraftServer; import net.minecraft.server.MinecraftServer;
import net.minecraft.util.AxisAlignedBB; import net.minecraft.util.AxisAlignedBB;
import net.minecraft.world.World; import net.minecraft.world.World;
import WayofTime.alchemicalWizardry.AlchemicalWizardry; import WayofTime.alchemicalWizardry.api.bindingRegistry.BindingRegistry;
import WayofTime.alchemicalWizardry.ModItems; import WayofTime.alchemicalWizardry.api.rituals.IMasterRitualStone;
import WayofTime.alchemicalWizardry.common.LifeEssenceNetwork; 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.complex.effect.SpellHelper;
import WayofTime.alchemicalWizardry.common.tileEntity.TEAltar;
import WayofTime.alchemicalWizardry.common.tileEntity.TEMasterStone;
public class RitualEffectSoulBound extends RitualEffect public class RitualEffectSoulBound extends RitualEffect
{ {
@Override @Override
public void performEffect(TEMasterStone ritualStone) public void performEffect(IMasterRitualStone ritualStone)
{ {
String owner = ritualStone.getOwner(); String owner = ritualStone.getOwner();
World worldSave = MinecraftServer.getServer().worldServers[0]; World worldSave = MinecraftServer.getServer().worldServers[0];
@ -37,10 +37,10 @@ public class RitualEffectSoulBound extends RitualEffect
} }
int currentEssence = data.currentEssence; int currentEssence = data.currentEssence;
World world = ritualStone.getWorldObj(); World world = ritualStone.getWorld();
int x = ritualStone.xCoord; int x = ritualStone.getXCoord();
int y = ritualStone.yCoord; int y = ritualStone.getYCoord();
int z = ritualStone.zCoord; int z = ritualStone.getZCoord();
if (currentEssence < this.getCostPerRefresh()) if (currentEssence < this.getCostPerRefresh())
{ {
@ -75,58 +75,16 @@ public class RitualEffectSoulBound extends RitualEffect
continue; continue;
} }
ItemStack itemGoggles = null;
if (AlchemicalWizardry.isThaumcraftLoaded) if(BindingRegistry.isRequiredItemValid(itemStack))
{ {
//itemGoggles = ItemApi.getItem("itemGoggles", 0); ritualStone.setVar1(BindingRegistry.getIndexForItem(itemStack)+1);
world.addWeatherEffect(new EntityLightningBolt(world, x, y + 1, z));
ritualStone.setCooldown(ritualStone.getCooldown() - 1);
item.setDead();
break;
} }
if (itemStack.getItem() == ModItems.apprenticeBloodOrb)
{
ritualStone.setVar1(Item.getIdFromItem(ModItems.energyBlaster));
world.addWeatherEffect(new EntityLightningBolt(world, x, y + 1, z));
ritualStone.setCooldown(ritualStone.getCooldown() - 1);
item.setDead();
return;
} else if (itemStack.getItem() == Items.diamond_sword)
{
ritualStone.setVar1(Item.getIdFromItem(ModItems.energySword));
world.addWeatherEffect(new EntityLightningBolt(world, x, y + 1, z));
ritualStone.setCooldown(ritualStone.getCooldown() - 1);
item.setDead();
return;
} else if (itemStack.getItem() == Items.diamond_pickaxe)
{
ritualStone.setVar1(Item.getIdFromItem(ModItems.boundPickaxe));
world.addWeatherEffect(new EntityLightningBolt(world, x, y + 1, z));
ritualStone.setCooldown(ritualStone.getCooldown() - 1);
item.setDead();
return;
} else if (itemStack.getItem() == Items.diamond_axe)
{
ritualStone.setVar1(Item.getIdFromItem(ModItems.boundAxe));
world.addWeatherEffect(new EntityLightningBolt(world, x, y + 1, z));
ritualStone.setCooldown(ritualStone.getCooldown() - 1);
item.setDead();
return;
} else if (itemStack.getItem() == Items.diamond_shovel)
{
ritualStone.setVar1(Item.getIdFromItem(ModItems.boundShovel));
world.addWeatherEffect(new EntityLightningBolt(world, x, y + 1, z));
ritualStone.setCooldown(ritualStone.getCooldown() - 1);
item.setDead();
return;
}
// else if (itemGoggles != null && itemGoggles.isItemEqual(itemStack))
// {
// ritualStone.setVar1(Item.getIdFromItem(ModItems.sanguineHelmet));
// world.addWeatherEffect(new EntityLightningBolt(world, x, y + 1, z));
// ritualStone.setCooldown(ritualStone.getCooldown() - 1);
// item.setDead();
// return;
// }
if (world.rand.nextInt(10) == 0) if (world.rand.nextInt(10) == 0)
{ {
SpellHelper.sendIndexedParticleToAllAround(world, x, y, z, 20, world.provider.dimensionId, 1, x, y, z); SpellHelper.sendIndexedParticleToAllAround(world, x, y, z, 20, world.provider.dimensionId, 1, x, y, z);
@ -181,11 +139,12 @@ public class RitualEffectSoulBound extends RitualEffect
if (ritualStone.getCooldown() <= 0) if (ritualStone.getCooldown() <= 0)
{ {
ItemStack spawnedItem = new ItemStack(Item.getItemById(ritualStone.getVar1()), 1, 0);
ItemStack spawnedItem = BindingRegistry.getOutputForIndex(ritualStone.getVar1()-1);
if (spawnedItem != null) if (spawnedItem != null)
{ {
EntityItem newItem = new EntityItem(world, x + 0.5, y + 1, z + 0.5, spawnedItem); EntityItem newItem = new EntityItem(world, x + 0.5, y + 1, z + 0.5, spawnedItem.copy());
world.spawnEntityInWorld(newItem); world.spawnEntityInWorld(newItem);
} }
@ -206,4 +165,35 @@ public class RitualEffectSoulBound extends RitualEffect
{ {
return 200; return 200;
} }
@Override
public List<RitualComponent> getRitualComponentList()
{
ArrayList<RitualComponent> 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;
}
} }

View file

@ -1,9 +1,8 @@
package WayofTime.alchemicalWizardry.common.rituals; package WayofTime.alchemicalWizardry.common.rituals;
import WayofTime.alchemicalWizardry.common.LifeEssenceNetwork; import java.util.ArrayList;
import WayofTime.alchemicalWizardry.common.entity.projectile.EntityMeteor; import java.util.List;
import WayofTime.alchemicalWizardry.common.summoning.meteor.MeteorRegistry;
import WayofTime.alchemicalWizardry.common.tileEntity.TEMasterStone;
import net.minecraft.entity.item.EntityItem; import net.minecraft.entity.item.EntityItem;
import net.minecraft.entity.player.EntityPlayer; import net.minecraft.entity.player.EntityPlayer;
import net.minecraft.potion.Potion; import net.minecraft.potion.Potion;
@ -11,13 +10,17 @@ import net.minecraft.potion.PotionEffect;
import net.minecraft.server.MinecraftServer; import net.minecraft.server.MinecraftServer;
import net.minecraft.util.AxisAlignedBB; import net.minecraft.util.AxisAlignedBB;
import net.minecraft.world.World; import net.minecraft.world.World;
import WayofTime.alchemicalWizardry.api.rituals.IMasterRitualStone;
import java.util.List; 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 public class RitualEffectSummonMeteor extends RitualEffect
{ {
@Override @Override
public void performEffect(TEMasterStone ritualStone) public void performEffect(IMasterRitualStone ritualStone)
{ {
String owner = ritualStone.getOwner(); String owner = ritualStone.getOwner();
World worldSave = MinecraftServer.getServer().worldServers[0]; World worldSave = MinecraftServer.getServer().worldServers[0];
@ -30,10 +33,10 @@ public class RitualEffectSummonMeteor extends RitualEffect
} }
int currentEssence = data.currentEssence; int currentEssence = data.currentEssence;
World world = ritualStone.getWorldObj(); World world = ritualStone.getWorld();
int x = ritualStone.xCoord; int x = ritualStone.getXCoord();
int y = ritualStone.yCoord; int y = ritualStone.getYCoord();
int z = ritualStone.zCoord; int z = ritualStone.getZCoord();
if (ritualStone.getCooldown() > 0) if (ritualStone.getCooldown() > 0)
{ {
@ -88,4 +91,113 @@ public class RitualEffectSummonMeteor extends RitualEffect
{ {
return 0; return 0;
} }
@Override
public List<RitualComponent> getRitualComponentList()
{
ArrayList<RitualComponent> 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;
}
} }

View file

@ -10,15 +10,17 @@ import net.minecraft.potion.PotionEffect;
import net.minecraft.server.MinecraftServer; import net.minecraft.server.MinecraftServer;
import net.minecraft.util.AxisAlignedBB; import net.minecraft.util.AxisAlignedBB;
import net.minecraft.world.World; import net.minecraft.world.World;
import WayofTime.alchemicalWizardry.common.IBindable; import WayofTime.alchemicalWizardry.api.items.interfaces.IBindable;
import WayofTime.alchemicalWizardry.common.LifeEssenceNetwork; 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; import WayofTime.alchemicalWizardry.common.items.EnergyItems;
import WayofTime.alchemicalWizardry.common.tileEntity.TEMasterStone;
public class RitualEffectSummonPlayer extends RitualEffect //Summons a player via the bound item public class RitualEffectSummonPlayer extends RitualEffect //Summons a player via the bound item
{ {
@Override @Override
public void performEffect(TEMasterStone ritualStone) public void performEffect(IMasterRitualStone ritualStone)
{ {
String owner = ritualStone.getOwner(); String owner = ritualStone.getOwner();
World worldSave = MinecraftServer.getServer().worldServers[0]; World worldSave = MinecraftServer.getServer().worldServers[0];
@ -31,10 +33,10 @@ public class RitualEffectSummonPlayer extends RitualEffect //Summons a player vi
} }
int currentEssence = data.currentEssence; int currentEssence = data.currentEssence;
World world = ritualStone.getWorldObj(); World world = ritualStone.getWorld();
int x = ritualStone.xCoord; int x = ritualStone.getXCoord();
int y = ritualStone.yCoord; int y = ritualStone.getYCoord();
int z = ritualStone.zCoord; int z = ritualStone.getZCoord();
if (ritualStone.getCooldown() > 0) if (ritualStone.getCooldown() > 0)
{ {
@ -100,4 +102,10 @@ public class RitualEffectSummonPlayer extends RitualEffect //Summons a player vi
{ {
return 0; return 0;
} }
@Override
public List<RitualComponent> getRitualComponentList() {
// TODO Auto-generated method stub
return null;
}
} }

View file

@ -0,0 +1,180 @@
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<RitualComponent> getRitualComponentList()
{
ArrayList<RitualComponent> 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;
}
}

View file

@ -1,9 +1,9 @@
package WayofTime.alchemicalWizardry.common.rituals; package WayofTime.alchemicalWizardry.common.rituals;
import java.util.ArrayList;
import java.util.Iterator; import java.util.Iterator;
import java.util.List; import java.util.List;
import net.minecraft.block.Block;
import net.minecraft.entity.effect.EntityLightningBolt; import net.minecraft.entity.effect.EntityLightningBolt;
import net.minecraft.entity.item.EntityItem; import net.minecraft.entity.item.EntityItem;
import net.minecraft.entity.player.EntityPlayer; import net.minecraft.entity.player.EntityPlayer;
@ -16,17 +16,18 @@ import net.minecraft.util.AxisAlignedBB;
import net.minecraft.world.World; import net.minecraft.world.World;
import WayofTime.alchemicalWizardry.ModBlocks; import WayofTime.alchemicalWizardry.ModBlocks;
import WayofTime.alchemicalWizardry.ModItems; import WayofTime.alchemicalWizardry.ModItems;
import WayofTime.alchemicalWizardry.common.LifeEssenceNetwork; 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.BoundArmour;
import WayofTime.alchemicalWizardry.common.items.sigil.SigilOfHolding; import WayofTime.alchemicalWizardry.common.items.sigil.SigilOfHolding;
import WayofTime.alchemicalWizardry.common.spell.complex.effect.SpellHelper; import WayofTime.alchemicalWizardry.common.spell.complex.effect.SpellHelper;
import WayofTime.alchemicalWizardry.common.tileEntity.TEAltar;
import WayofTime.alchemicalWizardry.common.tileEntity.TEMasterStone;
public class RitualEffectUnbinding extends RitualEffect public class RitualEffectUnbinding extends RitualEffect
{ {
@Override @Override
public void performEffect(TEMasterStone ritualStone) public void performEffect(IMasterRitualStone ritualStone)
{ {
String owner = ritualStone.getOwner(); String owner = ritualStone.getOwner();
World worldSave = MinecraftServer.getServer().worldServers[0]; World worldSave = MinecraftServer.getServer().worldServers[0];
@ -39,10 +40,10 @@ public class RitualEffectUnbinding extends RitualEffect
} }
int currentEssence = data.currentEssence; int currentEssence = data.currentEssence;
World world = ritualStone.getWorldObj(); World world = ritualStone.getWorld();
int x = ritualStone.xCoord; int x = ritualStone.getXCoord();
int y = ritualStone.yCoord; int y = ritualStone.getYCoord();
int z = ritualStone.zCoord; int z = ritualStone.getZCoord();
if (currentEssence < this.getCostPerRefresh()) if (currentEssence < this.getCostPerRefresh())
{ {
@ -163,4 +164,43 @@ public class RitualEffectUnbinding extends RitualEffect
// TODO Auto-generated method stub // TODO Auto-generated method stub
return 0; return 0;
} }
@Override
public List<RitualComponent> getRitualComponentList()
{
ArrayList<RitualComponent> 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;
}
} }

View file

@ -1,19 +1,25 @@
package WayofTime.alchemicalWizardry.common.rituals; 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.entity.player.EntityPlayer;
import net.minecraft.init.Blocks; import net.minecraft.init.Blocks;
import net.minecraft.potion.Potion; import net.minecraft.potion.Potion;
import net.minecraft.potion.PotionEffect; import net.minecraft.potion.PotionEffect;
import net.minecraft.server.MinecraftServer; import net.minecraft.server.MinecraftServer;
import net.minecraft.world.World; import net.minecraft.world.World;
import WayofTime.alchemicalWizardry.common.LifeEssenceNetwork; 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; import WayofTime.alchemicalWizardry.common.spell.complex.effect.SpellHelper;
import WayofTime.alchemicalWizardry.common.tileEntity.TEAltar;
import WayofTime.alchemicalWizardry.common.tileEntity.TEMasterStone;
public class RitualEffectWater extends RitualEffect public class RitualEffectWater extends RitualEffect
{ {
public void performEffect(TEMasterStone ritualStone) public void performEffect(IMasterRitualStone ritualStone)
{ {
String owner = ritualStone.getOwner(); String owner = ritualStone.getOwner();
World worldSave = MinecraftServer.getServer().worldServers[0]; World worldSave = MinecraftServer.getServer().worldServers[0];
@ -26,12 +32,14 @@ public class RitualEffectWater extends RitualEffect
} }
int currentEssence = data.currentEssence; int currentEssence = data.currentEssence;
World world = ritualStone.getWorldObj(); World world = ritualStone.getWorld();
int x = ritualStone.xCoord; int x = ritualStone.getXCoord();
int y = ritualStone.yCoord; int y = ritualStone.getYCoord();
int z = ritualStone.zCoord; int z = ritualStone.getZCoord();
if (world.isAirBlock(x, y + 1, z)) Block block = world.getBlock(x, y + 1, z);
if (world.isAirBlock(x, y + 1, z) && !(block instanceof BlockSpectralContainer))
{ {
if (currentEssence < this.getCostPerRefresh()) if (currentEssence < this.getCostPerRefresh())
{ {
@ -61,4 +69,15 @@ public class RitualEffectWater extends RitualEffect
{ {
return 25; return 25;
} }
@Override
public List<RitualComponent> getRitualComponentList()
{
ArrayList<RitualComponent> 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;
}
} }

View file

@ -1,8 +1,9 @@
package WayofTime.alchemicalWizardry.common.rituals; package WayofTime.alchemicalWizardry.common.rituals;
import WayofTime.alchemicalWizardry.common.LifeEssenceNetwork; import java.util.ArrayList;
import WayofTime.alchemicalWizardry.common.tileEntity.TEAltar; import java.util.Iterator;
import WayofTime.alchemicalWizardry.common.tileEntity.TEMasterStone; import java.util.List;
import net.minecraft.entity.EntityLivingBase; import net.minecraft.entity.EntityLivingBase;
import net.minecraft.entity.player.EntityPlayer; import net.minecraft.entity.player.EntityPlayer;
import net.minecraft.potion.Potion; import net.minecraft.potion.Potion;
@ -11,9 +12,11 @@ import net.minecraft.server.MinecraftServer;
import net.minecraft.util.AxisAlignedBB; import net.minecraft.util.AxisAlignedBB;
import net.minecraft.util.DamageSource; import net.minecraft.util.DamageSource;
import net.minecraft.world.World; import net.minecraft.world.World;
import WayofTime.alchemicalWizardry.api.rituals.IMasterRitualStone;
import java.util.Iterator; import WayofTime.alchemicalWizardry.api.rituals.RitualComponent;
import java.util.List; import WayofTime.alchemicalWizardry.api.rituals.RitualEffect;
import WayofTime.alchemicalWizardry.api.soulNetwork.LifeEssenceNetwork;
import WayofTime.alchemicalWizardry.common.tileEntity.TEAltar;
public class RitualEffectWellOfSuffering extends RitualEffect public class RitualEffectWellOfSuffering extends RitualEffect
{ {
@ -21,7 +24,7 @@ public class RitualEffectWellOfSuffering extends RitualEffect
public final int amount = 10; public final int amount = 10;
@Override @Override
public void performEffect(TEMasterStone ritualStone) public void performEffect(IMasterRitualStone ritualStone)
{ {
String owner = ritualStone.getOwner(); String owner = ritualStone.getOwner();
World worldSave = MinecraftServer.getServer().worldServers[0]; World worldSave = MinecraftServer.getServer().worldServers[0];
@ -34,10 +37,10 @@ public class RitualEffectWellOfSuffering extends RitualEffect
} }
int currentEssence = data.currentEssence; int currentEssence = data.currentEssence;
World world = ritualStone.getWorldObj(); World world = ritualStone.getWorld();
int x = ritualStone.xCoord; int x = ritualStone.getXCoord();
int y = ritualStone.yCoord; int y = ritualStone.getYCoord();
int z = ritualStone.zCoord; int z = ritualStone.getZCoord();
if (world.getWorldTime() % this.timeDelay != 0) if (world.getWorldTime() % this.timeDelay != 0)
{ {
@ -132,4 +135,47 @@ public class RitualEffectWellOfSuffering extends RitualEffect
// TODO Auto-generated method stub // TODO Auto-generated method stub
return 2; return 2;
} }
@Override
public List<RitualComponent> getRitualComponentList()
{
ArrayList<RitualComponent> 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;
}
} }

View file

@ -16,9 +16,11 @@ import net.minecraft.item.crafting.FurnaceRecipes;
import net.minecraft.util.AxisAlignedBB; import net.minecraft.util.AxisAlignedBB;
import net.minecraft.util.Vec3; import net.minecraft.util.Vec3;
import net.minecraft.world.World; import net.minecraft.world.World;
import net.minecraftforge.common.util.FakePlayer;
import net.minecraftforge.common.util.ForgeDirection; import net.minecraftforge.common.util.ForgeDirection;
import net.minecraftforge.oredict.OreDictionary; import net.minecraftforge.oredict.OreDictionary;
import WayofTime.alchemicalWizardry.AlchemicalWizardry; import WayofTime.alchemicalWizardry.AlchemicalWizardry;
import WayofTime.alchemicalWizardry.api.soulNetwork.SoulNetworkHandler;
import WayofTime.alchemicalWizardry.common.NewPacketHandler; import WayofTime.alchemicalWizardry.common.NewPacketHandler;
public class SpellHelper public class SpellHelper
@ -121,7 +123,7 @@ public class SpellHelper
public static String getUsername(EntityPlayer player) public static String getUsername(EntityPlayer player)
{ {
return player.getDisplayName(); return SoulNetworkHandler.getUsername(player);
} }
public static void sendParticleToPlayer(EntityPlayer player, String str, double xCoord, double yCoord, double zCoord, double xVel, double yVel, double zVel) public static void sendParticleToPlayer(EntityPlayer player, String str, double xCoord, double yCoord, double zCoord, double xVel, double yVel, double zVel)
@ -197,6 +199,32 @@ public class SpellHelper
} }
} }
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) public static void smashBlock(World world, int posX, int posY, int posZ)
{ {
Block block = world.getBlock(posX, posY, posZ); Block block = world.getBlock(posX, posY, posZ);

Some files were not shown because too many files have changed in this diff Show more