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

@ -1,15 +0,0 @@
package WayofTime.alchemicalWizardry.common;
import net.minecraft.entity.player.EntityPlayer;
import net.minecraft.item.ItemStack;
import net.minecraft.world.World;
public interface ArmourUpgrade
{
//Called when the armour ticks
public void onArmourUpdate(World world, EntityPlayer player, ItemStack thisItemStack);
public boolean isUpgrade();
public int getEnergyForTenSeconds();
}

View file

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

View file

@ -1,26 +0,0 @@
package WayofTime.alchemicalWizardry.common;
import net.minecraft.nbt.NBTTagCompound;
public class LifeEssenceNetwork extends net.minecraft.world.WorldSavedData
{
public int currentEssence;
public LifeEssenceNetwork(String par1Str)
{
super(par1Str);
currentEssence = 0;
}
@Override
public void readFromNBT(NBTTagCompound nbttagcompound)
{
currentEssence = nbttagcompound.getInteger("currentEssence");
}
@Override
public void writeToNBT(NBTTagCompound nbttagcompound)
{
nbttagcompound.setInteger("currentEssence", currentEssence);
}
}

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,52 +0,0 @@
package WayofTime.alchemicalWizardry.common.alchemy;
import net.minecraft.item.ItemBlock;
import net.minecraft.item.ItemStack;
public class AlchemyPotionHandlerComponent
{
private ItemStack itemStack;
private int potionID;
private int tickDuration;
public AlchemyPotionHandlerComponent(ItemStack itemStack, int potionID, int tickDuration)
{
this.itemStack = itemStack;
this.potionID = potionID;
this.tickDuration = tickDuration;
}
public boolean compareItemStack(ItemStack comparedStack)
{
if (comparedStack != null && itemStack != null)
{
if (comparedStack.getItem() instanceof ItemBlock)
{
if (itemStack.getItem() instanceof ItemBlock)
{
return comparedStack.getItem().equals(itemStack.getItem()) && comparedStack.getItemDamage() == itemStack.getItemDamage();
}
} else if (!(itemStack.getItem() instanceof ItemBlock))
{
return comparedStack.getItem().equals(itemStack.getItem()) && comparedStack.getItemDamage() == itemStack.getItemDamage();
}
}
return false;
}
public ItemStack getItemStack()
{
return itemStack;
}
public int getPotionID()
{
return this.potionID;
}
public int getTickDuration()
{
return this.tickDuration;
}
}

View file

@ -1,76 +0,0 @@
package WayofTime.alchemicalWizardry.common.alchemy;
import net.minecraft.nbt.NBTTagCompound;
import net.minecraft.potion.Potion;
import net.minecraft.potion.PotionEffect;
public class AlchemyPotionHelper
{
private int potionID;
private int tickDuration;
private int concentration;
private int durationFactor;
public AlchemyPotionHelper(int potionID, int tickDuration, int concentration, int durationFactor)
{
this.potionID = potionID;
this.tickDuration = tickDuration;
this.concentration = concentration;
this.durationFactor = durationFactor;
}
public void setConcentration(int concentration)
{
this.concentration = concentration;
}
public void setDurationFactor(int durationFactor)
{
this.durationFactor = durationFactor;
}
public int getPotionID()
{
return this.potionID;
}
public int getTickDuration()
{
return this.tickDuration;
}
public int getConcentration()
{
return this.concentration;
}
public int getdurationFactor()
{
return this.durationFactor;
}
public PotionEffect getPotionEffect()
{
if (potionID == Potion.heal.id || potionID == Potion.harm.id)
{
return (new PotionEffect(potionID, 1, concentration));
}
return (new PotionEffect(potionID, (int) (tickDuration * Math.pow(0.5f, concentration) * Math.pow(8.0f / 3.0f, durationFactor)), concentration));
}
public static AlchemyPotionHelper readEffectFromNBT(NBTTagCompound tagCompound)
{
return new AlchemyPotionHelper(tagCompound.getInteger("potionID"), tagCompound.getInteger("tickDuration"), tagCompound.getInteger("concentration"), tagCompound.getInteger("durationFactor"));
}
public static NBTTagCompound setEffectToNBT(AlchemyPotionHelper aph)
{
NBTTagCompound tagCompound = new NBTTagCompound();
tagCompound.setInteger("potionID", aph.getPotionID());
tagCompound.setInteger("tickDuration", aph.getTickDuration());
tagCompound.setInteger("concentration", aph.getConcentration());
tagCompound.setInteger("durationFactor", aph.getdurationFactor());
return tagCompound;
}
}

View file

@ -1,143 +0,0 @@
package WayofTime.alchemicalWizardry.common.alchemy;
import net.minecraft.item.ItemBlock;
import net.minecraft.item.ItemStack;
import net.minecraftforge.oredict.OreDictionary;
public class AlchemyRecipe
{
private ItemStack output;
private ItemStack[] recipe;
private int bloodOrbLevel;
private int amountNeeded;
public AlchemyRecipe(ItemStack output, int amountNeeded, ItemStack[] recipe, int bloodOrbLevel)
{
this.output = output;
this.recipe = recipe;
this.amountNeeded = amountNeeded;
this.bloodOrbLevel = bloodOrbLevel;
}
public boolean doesRecipeMatch(ItemStack[] items, int slottedBloodOrbLevel)
{
if (slottedBloodOrbLevel < bloodOrbLevel)
{
return false;
}
ItemStack[] recipe = new ItemStack[5];
if (items.length < 5)
{
return false;
}
if (this.recipe.length != 5)
{
ItemStack[] newRecipe = new ItemStack[5];
for (int i = 0; i < 5; i++)
{
if (i + 1 > this.recipe.length)
{
newRecipe[i] = null;
} else
{
newRecipe[i] = this.recipe[i];
}
}
recipe = newRecipe;
} else
{
recipe = this.recipe;
}
boolean[] checkList = new boolean[5];
for (int i = 0; i < 5; i++)
{
checkList[i] = false;
}
for (int i = 0; i < 5; i++)
{
ItemStack recipeItemStack = recipe[i];
if (recipeItemStack == null)
{
continue;
}
boolean test = false;
for (int j = 0; j < 5; j++)
{
if (checkList[j])
{
continue;
}
ItemStack checkedItemStack = items[j];
if (checkedItemStack == null)
{
continue;
}
boolean quickTest = false;
if (recipeItemStack.getItem() instanceof ItemBlock)
{
if (checkedItemStack.getItem() instanceof ItemBlock)
{
quickTest = true;
}
} else if (!(checkedItemStack.getItem() instanceof ItemBlock))
{
quickTest = true;
}
if (!quickTest)
{
continue;
}
if ((checkedItemStack.getItemDamage() == recipeItemStack.getItemDamage() || OreDictionary.WILDCARD_VALUE == recipeItemStack.getItemDamage()) && checkedItemStack.getItem()==recipeItemStack.getItem())
{
test = true;
checkList[j] = true;
break;
}
}
if (!test)
{
return false;
}
}
return true;
}
public ItemStack getResult()
{
return output.copy();
}
public int getAmountNeeded()
{
return this.amountNeeded;
}
public ItemStack[] getRecipe()
{
return this.recipe;
}
public int getOrbLevel()
{
return this.bloodOrbLevel;
}
}

View file

@ -1,85 +0,0 @@
package WayofTime.alchemicalWizardry.common.alchemy;
import WayofTime.alchemicalWizardry.common.items.EnergyBattery;
import net.minecraft.item.ItemStack;
import java.util.ArrayList;
import java.util.List;
public class AlchemyRecipeRegistry
{
public static List<AlchemyRecipe> recipes = new ArrayList();
public static void registerRecipe(ItemStack output, int amountNeeded, ItemStack[] recipe, int bloodOrbLevel)
{
recipes.add(new AlchemyRecipe(output, amountNeeded, recipe, bloodOrbLevel));
}
public static ItemStack getResult(ItemStack[] recipe, ItemStack bloodOrb)
{
if (bloodOrb == null)
{
return null;
}
if (!(bloodOrb.getItem() instanceof EnergyBattery))
{
return null;
}
int bloodOrbLevel = ((EnergyBattery) bloodOrb.getItem()).getOrbLevel();
for (AlchemyRecipe ar : recipes)
{
if (ar.doesRecipeMatch(recipe, bloodOrbLevel))
{
return (ar.getResult());
}
}
return null;
}
public static int getAmountNeeded(ItemStack[] recipe, ItemStack bloodOrb)
{
if (bloodOrb == null)
{
return 0;
}
if (!(bloodOrb.getItem() instanceof EnergyBattery))
{
return 0;
}
int bloodOrbLevel = ((EnergyBattery) bloodOrb.getItem()).getOrbLevel();
for (AlchemyRecipe ar : recipes)
{
if (ar.doesRecipeMatch(recipe, bloodOrbLevel))
{
return (ar.getAmountNeeded());
}
}
return 0;
}
public static ItemStack[] getRecipeForItemStack(ItemStack itemStack)
{
for (AlchemyRecipe ar : recipes)
{
ItemStack result = ar.getResult();
if (result != null)
{
if (result.isItemEqual(itemStack))
{
return ar.getRecipe();
}
}
}
return null;
}
}

View file

@ -1,70 +0,0 @@
package WayofTime.alchemicalWizardry.common.altarRecipeRegistry;
import net.minecraft.item.ItemStack;
public class AltarRecipe
{
public int minTier;
public int liquidRequired;
public boolean canBeFilled; //Tells the system that the item is an orb
public int consumptionRate;
public int drainRate;
public ItemStack requiredItem;
public ItemStack result;
public AltarRecipe(ItemStack result, ItemStack requiredItem, int minTier, int liquidRequired, int consumptionRate, int drainRate, boolean canBeFilled)
{
this.result = result;
this.requiredItem = requiredItem;
this.minTier = minTier;
this.liquidRequired = liquidRequired;
this.consumptionRate = consumptionRate;
this.drainRate = drainRate;
this.canBeFilled = canBeFilled;
}
public ItemStack getResult()
{
return this.result;
}
public ItemStack getRequiredItem()
{
return this.requiredItem;
}
public boolean doesRequiredItemMatch(ItemStack comparedStack, int tierCheck)
{
if(comparedStack == null || this.requiredItem == null)
{
return false;
}
return tierCheck>=minTier && this.requiredItem.isItemEqual(comparedStack);
}
public int getMinTier()
{
return this.minTier;
}
public int getLiquidRequired()
{
return this.liquidRequired;
}
public int getConsumptionRate()
{
return this.consumptionRate;
}
public int getDrainRate()
{
return this.drainRate;
}
public boolean getCanBeFilled()
{
return this.canBeFilled;
}
}

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 WayofTime.alchemicalWizardry.AlchemicalWizardry;
import WayofTime.alchemicalWizardry.ModItems;
import WayofTime.alchemicalWizardry.api.items.interfaces.ArmourUpgrade;
import WayofTime.alchemicalWizardry.common.ArmourComponent;
import WayofTime.alchemicalWizardry.common.ArmourUpgrade;
import WayofTime.alchemicalWizardry.common.items.BoundArmour;
import WayofTime.alchemicalWizardry.common.spell.complex.effect.SpellHelper;
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.world.World;
import WayofTime.alchemicalWizardry.AlchemicalWizardry;
import WayofTime.alchemicalWizardry.common.ArmourUpgrade;
import WayofTime.alchemicalWizardry.api.items.interfaces.ArmourUpgrade;
import WayofTime.alchemicalWizardry.common.tileEntity.TESocket;
import cpw.mods.fml.relauncher.Side;
import cpw.mods.fml.relauncher.SideOnly;

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

View file

@ -110,17 +110,11 @@ public class EntityBloodLightProjectile extends EnergyBlastProjectile
if (mop instanceof EntityLivingBase)
{
//((EntityLivingBase)mop).addPotionEffect(new PotionEffect(Potion.weakness.id, 60,2));
((EntityLivingBase) mop).setFire(50);
((EntityLivingBase) mop).setRevengeTarget(shootingEntity);
if (((EntityLivingBase) mop).isPotionActive(Potion.fireResistance) || ((EntityLivingBase) mop).isImmuneToFire())
{
((EntityLivingBase) mop).attackEntityFrom(DamageSource.causeMobDamage(shootingEntity), 1);
} else
{
doDamage(projectileDamage, mop);
((EntityLivingBase) mop).hurtResistantTime = 0;
}
doDamage(1, mop);
}
//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 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.SideOnly;

View file

@ -7,7 +7,7 @@ import net.minecraft.item.ItemStack;
import net.minecraft.world.World;
import WayofTime.alchemicalWizardry.AlchemicalWizardry;
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.SideOnly;

View file

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

View file

@ -23,7 +23,7 @@ import net.minecraft.util.Vec3;
import net.minecraft.world.World;
import net.minecraftforge.common.ForgeHooks;
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 cpw.mods.fml.relauncher.Side;
import cpw.mods.fml.relauncher.SideOnly;

View file

@ -19,7 +19,7 @@ import net.minecraft.util.Vec3;
import net.minecraft.world.World;
import net.minecraftforge.common.ForgeHooks;
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 cpw.mods.fml.relauncher.Side;
import cpw.mods.fml.relauncher.SideOnly;

View file

@ -21,7 +21,7 @@ import net.minecraft.util.Vec3;
import net.minecraft.world.World;
import net.minecraftforge.common.ForgeHooks;
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 com.google.common.collect.Multimap;

View file

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

View file

@ -20,8 +20,8 @@ import net.minecraft.util.IIcon;
import net.minecraft.util.MathHelper;
import net.minecraft.util.MovingObjectPosition;
import net.minecraft.world.World;
import WayofTime.alchemicalWizardry.api.summoningRegistry.SummoningRegistry;
import WayofTime.alchemicalWizardry.common.entity.mob.EntityDemon;
import WayofTime.alchemicalWizardry.common.summoning.SummoningRegistry;
import cpw.mods.fml.relauncher.Side;
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.entity.player.EntityPlayer;
import net.minecraft.entity.player.EntityPlayerMP;
import net.minecraft.item.Item;
import net.minecraft.item.ItemStack;
import net.minecraft.nbt.NBTTagCompound;
import net.minecraft.server.MinecraftServer;
import net.minecraft.util.DamageSource;
import net.minecraft.world.World;
import net.minecraftforge.common.util.FakePlayer;
import WayofTime.alchemicalWizardry.AlchemicalWizardry;
import WayofTime.alchemicalWizardry.common.ArmourUpgrade;
import WayofTime.alchemicalWizardry.common.IBindable;
import WayofTime.alchemicalWizardry.common.LifeEssenceNetwork;
import WayofTime.alchemicalWizardry.common.PacketHandler;
import WayofTime.alchemicalWizardry.api.items.interfaces.ArmourUpgrade;
import WayofTime.alchemicalWizardry.api.items.interfaces.IBindable;
import WayofTime.alchemicalWizardry.api.items.interfaces.IBloodOrb;
import WayofTime.alchemicalWizardry.api.soulNetwork.LifeEssenceNetwork;
import WayofTime.alchemicalWizardry.common.spell.complex.effect.SpellHelper;
import WayofTime.alchemicalWizardry.common.tileEntity.TEAltar;
import cpw.mods.fml.relauncher.Side;
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;
protected int orbLevel;

View file

@ -8,8 +8,8 @@ import net.minecraft.server.MinecraftServer;
import net.minecraft.util.DamageSource;
import net.minecraft.world.World;
import WayofTime.alchemicalWizardry.AlchemicalWizardry;
import WayofTime.alchemicalWizardry.common.IBindable;
import WayofTime.alchemicalWizardry.common.LifeEssenceNetwork;
import WayofTime.alchemicalWizardry.api.items.interfaces.IBindable;
import WayofTime.alchemicalWizardry.api.soulNetwork.LifeEssenceNetwork;
import WayofTime.alchemicalWizardry.common.PacketHandler;
import WayofTime.alchemicalWizardry.common.spell.complex.effect.SpellHelper;
import WayofTime.alchemicalWizardry.common.tileEntity.TEAltar;
@ -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)
{
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 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.SideOnly;

View file

@ -15,7 +15,7 @@ import net.minecraft.world.World;
import org.lwjgl.input.Keyboard;
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.SideOnly;

View file

@ -14,7 +14,7 @@ import net.minecraft.world.World;
import net.minecraftforge.common.util.FakePlayer;
import WayofTime.alchemicalWizardry.AlchemicalWizardry;
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.tileEntity.TEAltar;
import cpw.mods.fml.relauncher.Side;

View file

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

View file

@ -8,7 +8,7 @@ import net.minecraft.item.ItemStack;
import net.minecraft.server.MinecraftServer;
import net.minecraft.world.World;
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.SideOnly;

View file

@ -30,13 +30,25 @@ public class SacrificialDagger extends Item
@SideOnly(Side.CLIENT)
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)
{
par3List.add("Just a prick of the");
par3List.add("finger will suffice...");
if(AlchemicalWizardry.wimpySettings)
{
par3List.add("A slight draining feeling tickles your fingers");
}else
{
par3List.add("Just a prick of the");
par3List.add("finger will suffice...");
}
}
public ItemStack onItemRightClick(ItemStack par1ItemStack, World par2World, EntityPlayer par3EntityPlayer)
@ -134,4 +146,14 @@ public class SacrificialDagger extends Item
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.minecraftforge.common.util.Constants;
import WayofTime.alchemicalWizardry.AlchemicalWizardry;
import WayofTime.alchemicalWizardry.common.alchemy.AlchemyPotionHelper;
import WayofTime.alchemicalWizardry.api.alchemy.AlchemyPotionHelper;
import com.google.common.collect.HashMultimap;

View file

@ -12,7 +12,7 @@ import org.lwjgl.input.Keyboard;
import WayofTime.alchemicalWizardry.AlchemicalWizardry;
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.SideOnly;

View file

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

View file

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

View file

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

View file

@ -12,8 +12,8 @@ import net.minecraft.util.EnumChatFormatting;
import org.lwjgl.input.Keyboard;
import WayofTime.alchemicalWizardry.AlchemicalWizardry;
import WayofTime.alchemicalWizardry.api.alchemy.AlchemyRecipeRegistry;
import WayofTime.alchemicalWizardry.common.IFillingAgent;
import WayofTime.alchemicalWizardry.common.alchemy.AlchemyRecipeRegistry;
import cpw.mods.fml.relauncher.Side;
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.world.World;
import WayofTime.alchemicalWizardry.AlchemicalWizardry;
import WayofTime.alchemicalWizardry.common.ArmourUpgrade;
import WayofTime.alchemicalWizardry.api.items.interfaces.ArmourUpgrade;
import WayofTime.alchemicalWizardry.common.items.EnergyItems;
import cpw.mods.fml.relauncher.Side;
import cpw.mods.fml.relauncher.SideOnly;

View file

@ -12,7 +12,7 @@ import net.minecraft.potion.PotionEffect;
import net.minecraft.util.ChatComponentText;
import net.minecraft.world.World;
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.items.EnergyItems;
import cpw.mods.fml.relauncher.Side;
@ -68,7 +68,7 @@ public class DivinationSigil extends Item implements ArmourUpgrade
//PacketDispatcher.sendPacketToServer(PacketHandler.getPacket(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;
}

View file

@ -12,8 +12,8 @@ import net.minecraft.potion.PotionEffect;
import net.minecraft.util.IIcon;
import net.minecraft.world.World;
import WayofTime.alchemicalWizardry.AlchemicalWizardry;
import WayofTime.alchemicalWizardry.api.items.interfaces.IHolding;
import WayofTime.alchemicalWizardry.common.items.EnergyItems;
import WayofTime.alchemicalWizardry.common.items.IHolding;
import WayofTime.alchemicalWizardry.common.spell.complex.effect.SpellHelper;
import cpw.mods.fml.relauncher.Side;
import cpw.mods.fml.relauncher.SideOnly;
@ -56,9 +56,9 @@ public class ItemSigilOfEnderSeverance extends EnergyItems implements IHolding
@SideOnly(Side.CLIENT)
public void registerIcons(IIconRegister iconRegister)
{
this.itemIcon = iconRegister.registerIcon("AlchemicalWizardry:SigilOfTheFastMiner");
this.activeIcon = iconRegister.registerIcon("AlchemicalWizardry:ElementalSigil_activated");
this.passiveIcon = iconRegister.registerIcon("AlchemicalWizardry:ElementalSigil_deactivated");
this.itemIcon = iconRegister.registerIcon("AlchemicalWizardry:SigilOfSeverance_deactivated");
this.activeIcon = iconRegister.registerIcon("AlchemicalWizardry:SigilOfSeverance_activated");
this.passiveIcon = iconRegister.registerIcon("AlchemicalWizardry:SigilOfSeverance_deactivated");
}
@Override
@ -152,7 +152,7 @@ public class ItemSigilOfEnderSeverance extends EnergyItems implements IHolding
{
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.world.World;
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.EnergyItems;
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.event.entity.player.BonemealEvent;
import WayofTime.alchemicalWizardry.AlchemicalWizardry;
import WayofTime.alchemicalWizardry.common.ArmourUpgrade;
import WayofTime.alchemicalWizardry.api.items.interfaces.ArmourUpgrade;
import WayofTime.alchemicalWizardry.common.items.EnergyItems;
import cpw.mods.fml.common.eventhandler.Event.Result;
import cpw.mods.fml.relauncher.Side;

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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

View file

@ -1,43 +0,0 @@
package WayofTime.alchemicalWizardry.common.rituals;
public class RitualComponent
{
private int x;
private int y;
private int z;
private int stoneType;
public static final int BLANK = 0;
public static final int WATER = 1;
public static final int FIRE = 2;
public static final int EARTH = 3;
public static final int AIR = 4;
public static final int DUSK = 5;
public RitualComponent(int x, int y, int z, int stoneType)
{
this.x = x;
this.y = y;
this.z = z;
this.stoneType = stoneType;
}
public int getX()
{
return this.x;
}
public int getY()
{
return this.y;
}
public int getZ()
{
return this.z;
}
public int getStoneType()
{
return this.stoneType;
}
}

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;
import java.util.ArrayList;
import java.util.Iterator;
import java.util.List;
@ -10,13 +11,15 @@ import net.minecraft.potion.PotionEffect;
import net.minecraft.server.MinecraftServer;
import net.minecraft.util.AxisAlignedBB;
import net.minecraft.world.World;
import WayofTime.alchemicalWizardry.common.LifeEssenceNetwork;
import WayofTime.alchemicalWizardry.common.tileEntity.TEMasterStone;
import WayofTime.alchemicalWizardry.api.rituals.IMasterRitualStone;
import WayofTime.alchemicalWizardry.api.rituals.RitualComponent;
import WayofTime.alchemicalWizardry.api.rituals.RitualEffect;
import WayofTime.alchemicalWizardry.api.soulNetwork.LifeEssenceNetwork;
public class RitualEffectAnimalGrowth extends RitualEffect
{
@Override
public void performEffect(TEMasterStone ritualStone)
public void performEffect(IMasterRitualStone ritualStone)
{
String owner = ritualStone.getOwner();
World worldSave = MinecraftServer.getServer().worldServers[0];
@ -29,10 +32,10 @@ public class RitualEffectAnimalGrowth extends RitualEffect
}
int currentEssence = data.currentEssence;
World world = ritualStone.getWorldObj();
int x = ritualStone.xCoord;
int y = ritualStone.yCoord;
int z = ritualStone.zCoord;
World world = ritualStone.getWorld();
int x = ritualStone.getXCoord();
int y = ritualStone.getYCoord();
int z = ritualStone.getZCoord();
if (world.getWorldTime() % 20 != 0)
{
@ -87,7 +90,30 @@ public class RitualEffectAnimalGrowth extends RitualEffect
@Override
public int getCostPerRefresh()
{
// TODO Auto-generated method stub
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;
import java.util.ArrayList;
import java.util.List;
import net.minecraft.entity.player.EntityPlayer;
import net.minecraft.potion.Potion;
import net.minecraft.potion.PotionEffect;
import net.minecraft.server.MinecraftServer;
import net.minecraft.tileentity.TileEntity;
import net.minecraft.world.World;
import WayofTime.alchemicalWizardry.common.LifeEssenceNetwork;
import WayofTime.alchemicalWizardry.common.tileEntity.TEAltar;
import WayofTime.alchemicalWizardry.common.tileEntity.TEMasterStone;
import WayofTime.alchemicalWizardry.api.rituals.IMasterRitualStone;
import WayofTime.alchemicalWizardry.api.rituals.RitualComponent;
import WayofTime.alchemicalWizardry.api.rituals.RitualEffect;
import WayofTime.alchemicalWizardry.api.soulNetwork.LifeEssenceNetwork;
public class RitualEffectApiaryOverclock extends RitualEffect
{
@Override
public void performEffect(TEMasterStone ritualStone)
public void performEffect(IMasterRitualStone ritualStone)
{
String owner = ritualStone.getOwner();
World worldSave = MinecraftServer.getServer().worldServers[0];
@ -26,10 +29,10 @@ public class RitualEffectApiaryOverclock extends RitualEffect
}
int currentEssence = data.currentEssence;
World world = ritualStone.getWorldObj();
int x = ritualStone.xCoord;
int y = ritualStone.yCoord;
int z = ritualStone.zCoord;
World world = ritualStone.getWorld();
int x = ritualStone.getXCoord();
int y = ritualStone.getYCoord();
int z = ritualStone.getZCoord();
if (currentEssence < this.getCostPerRefresh())
@ -78,4 +81,19 @@ public class RitualEffectApiaryOverclock extends RitualEffect
// TODO Auto-generated method stub
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;
import java.util.ArrayList;
import java.util.List;
import net.minecraft.block.Block;
import net.minecraft.entity.effect.EntityLightningBolt;
import net.minecraft.entity.player.EntityPlayer;
@ -16,14 +19,16 @@ import net.minecraft.world.World;
import net.minecraft.world.biome.BiomeGenBase;
import net.minecraft.world.chunk.Chunk;
import WayofTime.alchemicalWizardry.ModBlocks;
import WayofTime.alchemicalWizardry.common.LifeEssenceNetwork;
import WayofTime.alchemicalWizardry.common.tileEntity.TEMasterStone;
import WayofTime.alchemicalWizardry.api.rituals.IMasterRitualStone;
import WayofTime.alchemicalWizardry.api.rituals.RitualComponent;
import WayofTime.alchemicalWizardry.api.rituals.RitualEffect;
import WayofTime.alchemicalWizardry.api.soulNetwork.LifeEssenceNetwork;
import WayofTime.alchemicalWizardry.common.tileEntity.TEPlinth;
public class RitualEffectBiomeChanger extends RitualEffect
{
@Override
public void performEffect(TEMasterStone ritualStone)
public void performEffect(IMasterRitualStone ritualStone)
{
String owner = ritualStone.getOwner();
World worldSave = MinecraftServer.getServer().worldServers[0];
@ -36,24 +41,25 @@ public class RitualEffectBiomeChanger extends RitualEffect
}
int cooldown = ritualStone.getCooldown();
World world = ritualStone.getWorld();
int x = ritualStone.getXCoord();
int y = ritualStone.getYCoord();
int z = ritualStone.getZCoord();
if (cooldown > 0)
{
ritualStone.setCooldown(cooldown - 1);
if (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;
}
int currentEssence = data.currentEssence;
World world = ritualStone.getWorldObj();
int x = ritualStone.xCoord;
int y = ritualStone.yCoord;
int z = ritualStone.zCoord;
int range = 10;
if (currentEssence < this.getCostPerRefresh())
@ -315,4 +321,127 @@ public class RitualEffectBiomeChanger extends RitualEffect
{
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;
import java.util.ArrayList;
import java.util.Iterator;
import java.util.List;
@ -10,15 +11,16 @@ import net.minecraft.potion.PotionEffect;
import net.minecraft.server.MinecraftServer;
import net.minecraft.util.AxisAlignedBB;
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.tileEntity.TEAltar;
import WayofTime.alchemicalWizardry.common.tileEntity.TEMasterStone;
public class RitualEffectContainment extends RitualEffect
{
@Override
public void performEffect(TEMasterStone ritualStone)
public void performEffect(IMasterRitualStone ritualStone)
{
String owner = ritualStone.getOwner();
World worldSave = MinecraftServer.getServer().worldServers[0];
@ -31,10 +33,10 @@ public class RitualEffectContainment extends RitualEffect
}
int currentEssence = data.currentEssence;
World world = ritualStone.getWorldObj();
int x = ritualStone.xCoord;
int y = ritualStone.yCoord;
int z = ritualStone.zCoord;
World world = ritualStone.getWorld();
int x = ritualStone.getXCoord();
int y = ritualStone.getYCoord();
int z = ritualStone.getZCoord();
if (currentEssence < this.getCostPerRefresh())
{
@ -99,4 +101,27 @@ public class RitualEffectContainment extends RitualEffect
{
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;
import WayofTime.alchemicalWizardry.ModBlocks;
import WayofTime.alchemicalWizardry.common.LifeEssenceNetwork;
import WayofTime.alchemicalWizardry.common.tileEntity.TEMasterStone;
import java.util.ArrayList;
import java.util.List;
import net.minecraft.block.Block;
import net.minecraft.entity.item.EntityItem;
import net.minecraft.entity.player.EntityPlayer;
import net.minecraft.init.Blocks;
import net.minecraft.inventory.IInventory;
import net.minecraft.item.ItemStack;
import net.minecraft.potion.Potion;
@ -13,13 +14,16 @@ import net.minecraft.potion.PotionEffect;
import net.minecraft.server.MinecraftServer;
import net.minecraft.tileentity.TileEntity;
import net.minecraft.world.World;
import java.util.ArrayList;
import WayofTime.alchemicalWizardry.ModBlocks;
import WayofTime.alchemicalWizardry.api.rituals.IMasterRitualStone;
import WayofTime.alchemicalWizardry.api.rituals.RitualComponent;
import WayofTime.alchemicalWizardry.api.rituals.RitualEffect;
import WayofTime.alchemicalWizardry.api.soulNetwork.LifeEssenceNetwork;
public class RitualEffectCrushing extends RitualEffect
{
@Override
public void performEffect(TEMasterStone ritualStone)
public void performEffect(IMasterRitualStone ritualStone)
{
String owner = ritualStone.getOwner();
World worldSave = MinecraftServer.getServer().worldServers[0];
@ -32,16 +36,17 @@ public class RitualEffectCrushing extends RitualEffect
}
int currentEssence = data.currentEssence;
World world = ritualStone.getWorldObj();
World world = ritualStone.getWorld();
if (world.getWorldTime() % 40 != 0)
if (world.getWorldTime() % 40 != 20)
{
return;
}
int x = ritualStone.xCoord;
int y = ritualStone.yCoord;
int z = ritualStone.zCoord;
int x = ritualStone.getXCoord();
int y = ritualStone.getYCoord();
int z = ritualStone.getZCoord();
TileEntity tile = world.getTileEntity(x, y + 1, z);
IInventory tileEntity;
@ -58,6 +63,9 @@ public class RitualEffectCrushing extends RitualEffect
return;
}
boolean isSilkTouch = this.isSilkTouch(world, x, y, z);
int fortuneLevel = this.getFortuneLevel(world, x, y, z);
if (currentEssence < this.getCostPerRefresh())
{
EntityPlayer entityOwner = MinecraftServer.getServer().getConfigurationManager().getPlayerForUsername(owner);
@ -87,55 +95,106 @@ public class RitualEffectCrushing extends RitualEffect
continue;
}
ArrayList<ItemStack> itemDropList = block.getDrops(world, x + i, y + j, z + k, meta, 0);
if (itemDropList != null)
if(isSilkTouch && block.canSilkHarvest(world, null, x + i, y + j, z + k, meta))
{
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);
for (int n = 0; n < invSize; n++)
if (tileEntity.isItemValidForSlot(n, copyStack) && copyStack.stackSize != 0)
{
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)
{
tileEntity.setInventorySlotContents(n, copyStack);
copyStack.stackSize = 0;
} else
{
if (itemStack.getItem().equals(copyStack.getItem()))
if (copySize + itemSize < maxSize)
{
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;
}
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 (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)
@ -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
public int getCostPerRefresh()
{
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;
import WayofTime.alchemicalWizardry.common.LifeEssenceNetwork;
import WayofTime.alchemicalWizardry.common.tileEntity.TEMasterStone;
import java.util.ArrayList;
import java.util.List;
import net.minecraft.entity.EntityLivingBase;
import net.minecraft.entity.effect.EntityLightningBolt;
import net.minecraft.entity.player.EntityPlayer;
@ -10,13 +11,15 @@ import net.minecraft.potion.PotionEffect;
import net.minecraft.server.MinecraftServer;
import net.minecraft.util.AxisAlignedBB;
import net.minecraft.world.World;
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 RitualEffectFeatheredEarth extends RitualEffect //Nullifies all fall damage in the area of effect
{
@Override
public void performEffect(TEMasterStone ritualStone)
public void performEffect(IMasterRitualStone ritualStone)
{
String owner = ritualStone.getOwner();
World worldSave = MinecraftServer.getServer().worldServers[0];
@ -29,10 +32,10 @@ public class RitualEffectFeatheredEarth extends RitualEffect //Nullifies all fal
}
int currentEssence = data.currentEssence;
World world = ritualStone.getWorldObj();
int x = ritualStone.xCoord;
int y = ritualStone.yCoord;
int z = ritualStone.zCoord;
World world = ritualStone.getWorld();
int x = ritualStone.getXCoord();
int y = ritualStone.getYCoord();
int z = ritualStone.getZCoord();
if (ritualStone.getCooldown() > 0)
{
@ -87,4 +90,51 @@ public class RitualEffectFeatheredEarth extends RitualEffect //Nullifies all fal
{
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;
import WayofTime.alchemicalWizardry.common.LifeEssenceNetwork;
import WayofTime.alchemicalWizardry.common.tileEntity.TEAltar;
import WayofTime.alchemicalWizardry.common.tileEntity.TEMasterStone;
import java.util.ArrayList;
import java.util.Iterator;
import java.util.List;
import net.minecraft.entity.player.EntityPlayer;
import net.minecraft.entity.player.EntityPlayerMP;
import net.minecraft.potion.Potion;
@ -10,9 +11,11 @@ import net.minecraft.potion.PotionEffect;
import net.minecraft.server.MinecraftServer;
import net.minecraft.util.AxisAlignedBB;
import net.minecraft.world.World;
import java.util.Iterator;
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;
import WayofTime.alchemicalWizardry.common.tileEntity.TEAltar;
public class RitualEffectFeatheredKnife extends RitualEffect
{
@ -20,7 +23,7 @@ public class RitualEffectFeatheredKnife extends RitualEffect
public final int amount = 100;
@Override
public void performEffect(TEMasterStone ritualStone)
public void performEffect(IMasterRitualStone ritualStone)
{
String owner = ritualStone.getOwner();
World worldSave = MinecraftServer.getServer().worldServers[0];
@ -33,10 +36,10 @@ public class RitualEffectFeatheredKnife extends RitualEffect
}
int currentEssence = data.currentEssence;
World world = ritualStone.getWorldObj();
int x = ritualStone.xCoord;
int y = ritualStone.yCoord;
int z = ritualStone.zCoord;
World world = ritualStone.getWorld();
int x = ritualStone.getXCoord();
int y = ritualStone.getYCoord();
int z = ritualStone.getZCoord();
if (world.getWorldTime() % this.timeDelay != 0)
{
@ -138,4 +141,51 @@ public class RitualEffectFeatheredKnife extends RitualEffect
// TODO Auto-generated method stub
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;
import WayofTime.alchemicalWizardry.AlchemicalWizardry;
import WayofTime.alchemicalWizardry.common.LifeEssenceNetwork;
import WayofTime.alchemicalWizardry.common.tileEntity.TEMasterStone;
import java.util.ArrayList;
import java.util.List;
import net.minecraft.entity.player.EntityPlayer;
import net.minecraft.potion.Potion;
import net.minecraft.potion.PotionEffect;
import net.minecraft.server.MinecraftServer;
import net.minecraft.util.AxisAlignedBB;
import net.minecraft.world.World;
import java.util.List;
import WayofTime.alchemicalWizardry.AlchemicalWizardry;
import WayofTime.alchemicalWizardry.api.rituals.IMasterRitualStone;
import WayofTime.alchemicalWizardry.api.rituals.RitualComponent;
import WayofTime.alchemicalWizardry.api.rituals.RitualEffect;
import WayofTime.alchemicalWizardry.api.soulNetwork.LifeEssenceNetwork;
public class RitualEffectFlight extends RitualEffect
{
@Override
public void performEffect(TEMasterStone ritualStone)
public void performEffect(IMasterRitualStone ritualStone)
{
String owner = ritualStone.getOwner();
World worldSave = MinecraftServer.getServer().worldServers[0];
@ -28,10 +31,10 @@ public class RitualEffectFlight extends RitualEffect
}
int currentEssence = data.currentEssence;
World world = ritualStone.getWorldObj();
int x = ritualStone.xCoord;
int y = ritualStone.yCoord;
int z = ritualStone.zCoord;
World world = ritualStone.getWorld();
int x = ritualStone.getXCoord();
int y = ritualStone.getYCoord();
int z = ritualStone.getZCoord();
if (ritualStone.getCooldown() > 0)
{
@ -85,4 +88,92 @@ public class RitualEffectFlight extends RitualEffect
{
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;
import java.util.ArrayList;
import java.util.List;
import net.minecraft.block.Block;
import net.minecraft.entity.player.EntityPlayer;
import net.minecraft.potion.Potion;
@ -7,14 +10,16 @@ import net.minecraft.potion.PotionEffect;
import net.minecraft.server.MinecraftServer;
import net.minecraft.world.World;
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.tileEntity.TEMasterStone;
public class RitualEffectGrowth extends RitualEffect
{
@Override
public void performEffect(TEMasterStone ritualStone)
public void performEffect(IMasterRitualStone ritualStone)
{
String owner = ritualStone.getOwner();
World worldSave = MinecraftServer.getServer().worldServers[0];
@ -27,10 +32,10 @@ public class RitualEffectGrowth extends RitualEffect
}
int currentEssence = data.currentEssence;
World world = ritualStone.getWorldObj();
int x = ritualStone.xCoord;
int y = ritualStone.yCoord;
int z = ritualStone.zCoord;
World world = ritualStone.getWorld();
int x = ritualStone.getXCoord();
int y = ritualStone.getYCoord();
int z = ritualStone.getZCoord();
if (currentEssence < this.getCostPerRefresh())
{
@ -81,4 +86,19 @@ public class RitualEffectGrowth extends RitualEffect
{
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;
import WayofTime.alchemicalWizardry.common.LifeEssenceNetwork;
import WayofTime.alchemicalWizardry.common.tileEntity.TEMasterStone;
import java.util.ArrayList;
import java.util.Iterator;
import java.util.List;
import net.minecraft.entity.EntityLivingBase;
import net.minecraft.entity.player.EntityPlayer;
import net.minecraft.potion.Potion;
@ -9,9 +11,10 @@ import net.minecraft.potion.PotionEffect;
import net.minecraft.server.MinecraftServer;
import net.minecraft.util.AxisAlignedBB;
import net.minecraft.world.World;
import java.util.Iterator;
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 RitualEffectHealing extends RitualEffect
{
@ -19,7 +22,7 @@ public class RitualEffectHealing extends RitualEffect
//public final int amount = 10;
@Override
public void performEffect(TEMasterStone ritualStone)
public void performEffect(IMasterRitualStone ritualStone)
{
String owner = ritualStone.getOwner();
World worldSave = MinecraftServer.getServer().worldServers[0];
@ -32,10 +35,10 @@ public class RitualEffectHealing extends RitualEffect
}
int currentEssence = data.currentEssence;
World world = ritualStone.getWorldObj();
int x = ritualStone.xCoord;
int y = ritualStone.yCoord;
int z = ritualStone.zCoord;
World world = ritualStone.getWorld();
int x = ritualStone.getXCoord();
int y = ritualStone.getYCoord();
int z = ritualStone.getZCoord();
if (world.getWorldTime() % this.timeDelay != 0)
{
@ -123,4 +126,55 @@ public class RitualEffectHealing extends RitualEffect
// TODO Auto-generated method stub
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;
import WayofTime.alchemicalWizardry.common.LifeEssenceNetwork;
import WayofTime.alchemicalWizardry.common.spell.complex.effect.SpellHelper;
import WayofTime.alchemicalWizardry.common.tileEntity.TEMasterStone;
import java.util.ArrayList;
import java.util.Iterator;
import java.util.List;
import net.minecraft.entity.EntityLivingBase;
import net.minecraft.entity.player.EntityPlayer;
import net.minecraft.potion.Potion;
@ -10,14 +11,16 @@ import net.minecraft.potion.PotionEffect;
import net.minecraft.server.MinecraftServer;
import net.minecraft.util.AxisAlignedBB;
import net.minecraft.world.World;
import java.util.Iterator;
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;
import WayofTime.alchemicalWizardry.common.spell.complex.effect.SpellHelper;
public class RitualEffectInterdiction extends RitualEffect
{
@Override
public void performEffect(TEMasterStone ritualStone)
public void performEffect(IMasterRitualStone ritualStone)
{
String owner = ritualStone.getOwner();
World worldSave = MinecraftServer.getServer().worldServers[0];
@ -30,10 +33,10 @@ public class RitualEffectInterdiction extends RitualEffect
}
int currentEssence = data.currentEssence;
World world = ritualStone.getWorldObj();
int x = ritualStone.xCoord;
int y = ritualStone.yCoord;
int z = ritualStone.zCoord;
World world = ritualStone.getWorld();
int x = ritualStone.getXCoord();
int y = ritualStone.getYCoord();
int z = ritualStone.getZCoord();
if (currentEssence < this.getCostPerRefresh())
{
@ -91,4 +94,19 @@ public class RitualEffectInterdiction extends RitualEffect
{
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;
import ibxm.Player;
import java.util.ArrayList;
import java.util.Iterator;
import java.util.List;
@ -12,15 +11,16 @@ import net.minecraft.potion.PotionEffect;
import net.minecraft.server.MinecraftServer;
import net.minecraft.util.AxisAlignedBB;
import net.minecraft.world.World;
import WayofTime.alchemicalWizardry.common.LifeEssenceNetwork;
import WayofTime.alchemicalWizardry.common.PacketHandler;
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.TEMasterStone;
public class RitualEffectJumping extends RitualEffect
{
@Override
public void performEffect(TEMasterStone ritualStone)
public void performEffect(IMasterRitualStone ritualStone)
{
String owner = ritualStone.getOwner();
World worldSave = MinecraftServer.getServer().worldServers[0];
@ -33,10 +33,10 @@ public class RitualEffectJumping extends RitualEffect
}
int currentEssence = data.currentEssence;
World world = ritualStone.getWorldObj();
int x = ritualStone.xCoord;
int y = ritualStone.yCoord;
int z = ritualStone.zCoord;
World world = ritualStone.getWorld();
int x = ritualStone.getXCoord();
int y = ritualStone.getYCoord();
int z = ritualStone.getZCoord();
if (currentEssence < this.getCostPerRefresh())
{
@ -96,4 +96,19 @@ public class RitualEffectJumping extends RitualEffect
{
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;
import java.util.ArrayList;
import java.util.List;
import net.minecraft.block.Block;
import net.minecraft.entity.player.EntityPlayer;
import net.minecraft.init.Blocks;
import net.minecraft.potion.Potion;
import net.minecraft.potion.PotionEffect;
import net.minecraft.server.MinecraftServer;
import net.minecraft.world.World;
import WayofTime.alchemicalWizardry.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.tileEntity.TEAltar;
import WayofTime.alchemicalWizardry.common.tileEntity.TEMasterStone;
public class RitualEffectLava extends RitualEffect
{
@Override
public void performEffect(TEMasterStone ritualStone)
public void performEffect(IMasterRitualStone ritualStone)
{
String owner = ritualStone.getOwner();
World worldSave = MinecraftServer.getServer().worldServers[0];
@ -27,12 +33,14 @@ public class RitualEffectLava extends RitualEffect
}
int currentEssence = data.currentEssence;
World world = ritualStone.getWorldObj();
int x = ritualStone.xCoord;
int y = ritualStone.yCoord;
int z = ritualStone.zCoord;
World world = ritualStone.getWorld();
int x = ritualStone.getXCoord();
int y = ritualStone.getYCoord();
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())
{
@ -64,4 +72,15 @@ public class RitualEffectLava extends RitualEffect
// TODO Auto-generated method stub
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;
import java.util.ArrayList;
import java.util.Iterator;
import java.util.List;
@ -10,14 +11,16 @@ import net.minecraft.potion.PotionEffect;
import net.minecraft.server.MinecraftServer;
import net.minecraft.util.AxisAlignedBB;
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.tileEntity.TEMasterStone;
public class RitualEffectLeap extends RitualEffect
{
@Override
public void performEffect(TEMasterStone ritualStone)
public void performEffect(IMasterRitualStone ritualStone)
{
String owner = ritualStone.getOwner();
World worldSave = MinecraftServer.getServer().worldServers[0];
@ -30,10 +33,10 @@ public class RitualEffectLeap extends RitualEffect
}
int currentEssence = data.currentEssence;
World world = ritualStone.getWorldObj();
int x = ritualStone.xCoord;
int y = ritualStone.yCoord;
int z = ritualStone.zCoord;
World world = ritualStone.getWorld();
int x = ritualStone.getXCoord();
int y = ritualStone.getYCoord();
int z = ritualStone.getZCoord();
if (currentEssence < this.getCostPerRefresh())
{
@ -136,4 +139,20 @@ public class RitualEffectLeap extends RitualEffect
{
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;
import WayofTime.alchemicalWizardry.common.LifeEssenceNetwork;
import WayofTime.alchemicalWizardry.common.block.BlockTeleposer;
import WayofTime.alchemicalWizardry.common.tileEntity.TEMasterStone;
import java.util.ArrayList;
import java.util.List;
import net.minecraft.block.Block;
import net.minecraft.entity.player.EntityPlayer;
import net.minecraft.item.ItemStack;
@ -11,11 +11,16 @@ import net.minecraft.potion.PotionEffect;
import net.minecraft.server.MinecraftServer;
import net.minecraft.world.World;
import net.minecraftforge.oredict.OreDictionary;
import WayofTime.alchemicalWizardry.api.rituals.IMasterRitualStone;
import WayofTime.alchemicalWizardry.api.rituals.RitualComponent;
import WayofTime.alchemicalWizardry.api.rituals.RitualEffect;
import WayofTime.alchemicalWizardry.api.soulNetwork.LifeEssenceNetwork;
import WayofTime.alchemicalWizardry.common.block.BlockTeleposer;
public class RitualEffectMagnetic extends RitualEffect
{
@Override
public void performEffect(TEMasterStone ritualStone)
public void performEffect(IMasterRitualStone ritualStone)
{
String owner = ritualStone.getOwner();
World worldSave = MinecraftServer.getServer().worldServers[0];
@ -28,10 +33,10 @@ public class RitualEffectMagnetic extends RitualEffect
}
int currentEssence = data.currentEssence;
World world = ritualStone.getWorldObj();
int x = ritualStone.xCoord;
int y = ritualStone.yCoord;
int z = ritualStone.zCoord;
World world = ritualStone.getWorld();
int x = ritualStone.getXCoord();
int y = ritualStone.getYCoord();
int z = ritualStone.getZCoord();
if (world.getWorldTime() % 40 != 0)
{
@ -118,4 +123,27 @@ public class RitualEffectMagnetic extends RitualEffect
{
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;
import java.util.ArrayList;
import java.util.Iterator;
import java.util.List;
import net.minecraft.entity.effect.EntityLightningBolt;
import net.minecraft.entity.item.EntityItem;
import net.minecraft.entity.player.EntityPlayer;
import net.minecraft.init.Items;
import net.minecraft.item.Item;
import net.minecraft.item.ItemStack;
import net.minecraft.potion.Potion;
@ -14,17 +14,17 @@ import net.minecraft.potion.PotionEffect;
import net.minecraft.server.MinecraftServer;
import net.minecraft.util.AxisAlignedBB;
import net.minecraft.world.World;
import WayofTime.alchemicalWizardry.AlchemicalWizardry;
import WayofTime.alchemicalWizardry.ModItems;
import WayofTime.alchemicalWizardry.common.LifeEssenceNetwork;
import WayofTime.alchemicalWizardry.api.bindingRegistry.BindingRegistry;
import WayofTime.alchemicalWizardry.api.rituals.IMasterRitualStone;
import WayofTime.alchemicalWizardry.api.rituals.RitualComponent;
import WayofTime.alchemicalWizardry.api.rituals.RitualEffect;
import WayofTime.alchemicalWizardry.api.soulNetwork.LifeEssenceNetwork;
import WayofTime.alchemicalWizardry.common.spell.complex.effect.SpellHelper;
import WayofTime.alchemicalWizardry.common.tileEntity.TEAltar;
import WayofTime.alchemicalWizardry.common.tileEntity.TEMasterStone;
public class RitualEffectSoulBound extends RitualEffect
{
@Override
public void performEffect(TEMasterStone ritualStone)
public void performEffect(IMasterRitualStone ritualStone)
{
String owner = ritualStone.getOwner();
World worldSave = MinecraftServer.getServer().worldServers[0];
@ -37,10 +37,10 @@ public class RitualEffectSoulBound extends RitualEffect
}
int currentEssence = data.currentEssence;
World world = ritualStone.getWorldObj();
int x = ritualStone.xCoord;
int y = ritualStone.yCoord;
int z = ritualStone.zCoord;
World world = ritualStone.getWorld();
int x = ritualStone.getXCoord();
int y = ritualStone.getYCoord();
int z = ritualStone.getZCoord();
if (currentEssence < this.getCostPerRefresh())
{
@ -75,58 +75,16 @@ public class RitualEffectSoulBound extends RitualEffect
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)
{
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)
{
ItemStack spawnedItem = new ItemStack(Item.getItemById(ritualStone.getVar1()), 1, 0);
ItemStack spawnedItem = BindingRegistry.getOutputForIndex(ritualStone.getVar1()-1);
if (spawnedItem != null)
{
EntityItem newItem = new EntityItem(world, x + 0.5, y + 1, z + 0.5, spawnedItem);
EntityItem newItem = new EntityItem(world, x + 0.5, y + 1, z + 0.5, spawnedItem.copy());
world.spawnEntityInWorld(newItem);
}
@ -206,4 +165,35 @@ public class RitualEffectSoulBound extends RitualEffect
{
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;
import WayofTime.alchemicalWizardry.common.LifeEssenceNetwork;
import WayofTime.alchemicalWizardry.common.entity.projectile.EntityMeteor;
import WayofTime.alchemicalWizardry.common.summoning.meteor.MeteorRegistry;
import WayofTime.alchemicalWizardry.common.tileEntity.TEMasterStone;
import java.util.ArrayList;
import java.util.List;
import net.minecraft.entity.item.EntityItem;
import net.minecraft.entity.player.EntityPlayer;
import net.minecraft.potion.Potion;
@ -11,13 +10,17 @@ import net.minecraft.potion.PotionEffect;
import net.minecraft.server.MinecraftServer;
import net.minecraft.util.AxisAlignedBB;
import net.minecraft.world.World;
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;
import WayofTime.alchemicalWizardry.common.entity.projectile.EntityMeteor;
import WayofTime.alchemicalWizardry.common.summoning.meteor.MeteorRegistry;
public class RitualEffectSummonMeteor extends RitualEffect
{
@Override
public void performEffect(TEMasterStone ritualStone)
public void performEffect(IMasterRitualStone ritualStone)
{
String owner = ritualStone.getOwner();
World worldSave = MinecraftServer.getServer().worldServers[0];
@ -30,10 +33,10 @@ public class RitualEffectSummonMeteor extends RitualEffect
}
int currentEssence = data.currentEssence;
World world = ritualStone.getWorldObj();
int x = ritualStone.xCoord;
int y = ritualStone.yCoord;
int z = ritualStone.zCoord;
World world = ritualStone.getWorld();
int x = ritualStone.getXCoord();
int y = ritualStone.getYCoord();
int z = ritualStone.getZCoord();
if (ritualStone.getCooldown() > 0)
{
@ -88,4 +91,113 @@ public class RitualEffectSummonMeteor extends RitualEffect
{
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.util.AxisAlignedBB;
import net.minecraft.world.World;
import WayofTime.alchemicalWizardry.common.IBindable;
import WayofTime.alchemicalWizardry.common.LifeEssenceNetwork;
import WayofTime.alchemicalWizardry.api.items.interfaces.IBindable;
import WayofTime.alchemicalWizardry.api.rituals.IMasterRitualStone;
import WayofTime.alchemicalWizardry.api.rituals.RitualComponent;
import WayofTime.alchemicalWizardry.api.rituals.RitualEffect;
import WayofTime.alchemicalWizardry.api.soulNetwork.LifeEssenceNetwork;
import WayofTime.alchemicalWizardry.common.items.EnergyItems;
import WayofTime.alchemicalWizardry.common.tileEntity.TEMasterStone;
public class RitualEffectSummonPlayer extends RitualEffect //Summons a player via the bound item
{
@Override
public void performEffect(TEMasterStone ritualStone)
public void performEffect(IMasterRitualStone ritualStone)
{
String owner = ritualStone.getOwner();
World worldSave = MinecraftServer.getServer().worldServers[0];
@ -31,10 +33,10 @@ public class RitualEffectSummonPlayer extends RitualEffect //Summons a player vi
}
int currentEssence = data.currentEssence;
World world = ritualStone.getWorldObj();
int x = ritualStone.xCoord;
int y = ritualStone.yCoord;
int z = ritualStone.zCoord;
World world = ritualStone.getWorld();
int x = ritualStone.getXCoord();
int y = ritualStone.getYCoord();
int z = ritualStone.getZCoord();
if (ritualStone.getCooldown() > 0)
{
@ -100,4 +102,10 @@ public class RitualEffectSummonPlayer extends RitualEffect //Summons a player vi
{
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;
import java.util.ArrayList;
import java.util.Iterator;
import java.util.List;
import net.minecraft.block.Block;
import net.minecraft.entity.effect.EntityLightningBolt;
import net.minecraft.entity.item.EntityItem;
import net.minecraft.entity.player.EntityPlayer;
@ -16,17 +16,18 @@ import net.minecraft.util.AxisAlignedBB;
import net.minecraft.world.World;
import WayofTime.alchemicalWizardry.ModBlocks;
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.sigil.SigilOfHolding;
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
{
@Override
public void performEffect(TEMasterStone ritualStone)
public void performEffect(IMasterRitualStone ritualStone)
{
String owner = ritualStone.getOwner();
World worldSave = MinecraftServer.getServer().worldServers[0];
@ -39,10 +40,10 @@ public class RitualEffectUnbinding extends RitualEffect
}
int currentEssence = data.currentEssence;
World world = ritualStone.getWorldObj();
int x = ritualStone.xCoord;
int y = ritualStone.yCoord;
int z = ritualStone.zCoord;
World world = ritualStone.getWorld();
int x = ritualStone.getXCoord();
int y = ritualStone.getYCoord();
int z = ritualStone.getZCoord();
if (currentEssence < this.getCostPerRefresh())
{
@ -163,4 +164,43 @@ public class RitualEffectUnbinding extends RitualEffect
// TODO Auto-generated method stub
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;
import java.util.ArrayList;
import java.util.List;
import net.minecraft.block.Block;
import net.minecraft.entity.player.EntityPlayer;
import net.minecraft.init.Blocks;
import net.minecraft.potion.Potion;
import net.minecraft.potion.PotionEffect;
import net.minecraft.server.MinecraftServer;
import net.minecraft.world.World;
import WayofTime.alchemicalWizardry.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.tileEntity.TEAltar;
import WayofTime.alchemicalWizardry.common.tileEntity.TEMasterStone;
public class RitualEffectWater extends RitualEffect
{
public void performEffect(TEMasterStone ritualStone)
public void performEffect(IMasterRitualStone ritualStone)
{
String owner = ritualStone.getOwner();
World worldSave = MinecraftServer.getServer().worldServers[0];
@ -26,12 +32,14 @@ public class RitualEffectWater extends RitualEffect
}
int currentEssence = data.currentEssence;
World world = ritualStone.getWorldObj();
int x = ritualStone.xCoord;
int y = ritualStone.yCoord;
int z = ritualStone.zCoord;
if (world.isAirBlock(x, y + 1, z))
World world = ritualStone.getWorld();
int x = ritualStone.getXCoord();
int y = ritualStone.getYCoord();
int z = ritualStone.getZCoord();
Block block = world.getBlock(x, y + 1, z);
if (world.isAirBlock(x, y + 1, z) && !(block instanceof BlockSpectralContainer))
{
if (currentEssence < this.getCostPerRefresh())
{
@ -61,4 +69,15 @@ public class RitualEffectWater extends RitualEffect
{
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;
import WayofTime.alchemicalWizardry.common.LifeEssenceNetwork;
import WayofTime.alchemicalWizardry.common.tileEntity.TEAltar;
import WayofTime.alchemicalWizardry.common.tileEntity.TEMasterStone;
import java.util.ArrayList;
import java.util.Iterator;
import java.util.List;
import net.minecraft.entity.EntityLivingBase;
import net.minecraft.entity.player.EntityPlayer;
import net.minecraft.potion.Potion;
@ -11,9 +12,11 @@ import net.minecraft.server.MinecraftServer;
import net.minecraft.util.AxisAlignedBB;
import net.minecraft.util.DamageSource;
import net.minecraft.world.World;
import java.util.Iterator;
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;
import WayofTime.alchemicalWizardry.common.tileEntity.TEAltar;
public class RitualEffectWellOfSuffering extends RitualEffect
{
@ -21,7 +24,7 @@ public class RitualEffectWellOfSuffering extends RitualEffect
public final int amount = 10;
@Override
public void performEffect(TEMasterStone ritualStone)
public void performEffect(IMasterRitualStone ritualStone)
{
String owner = ritualStone.getOwner();
World worldSave = MinecraftServer.getServer().worldServers[0];
@ -34,10 +37,10 @@ public class RitualEffectWellOfSuffering extends RitualEffect
}
int currentEssence = data.currentEssence;
World world = ritualStone.getWorldObj();
int x = ritualStone.xCoord;
int y = ritualStone.yCoord;
int z = ritualStone.zCoord;
World world = ritualStone.getWorld();
int x = ritualStone.getXCoord();
int y = ritualStone.getYCoord();
int z = ritualStone.getZCoord();
if (world.getWorldTime() % this.timeDelay != 0)
{
@ -132,4 +135,47 @@ public class RitualEffectWellOfSuffering extends RitualEffect
// TODO Auto-generated method stub
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.Vec3;
import net.minecraft.world.World;
import net.minecraftforge.common.util.FakePlayer;
import net.minecraftforge.common.util.ForgeDirection;
import net.minecraftforge.oredict.OreDictionary;
import WayofTime.alchemicalWizardry.AlchemicalWizardry;
import WayofTime.alchemicalWizardry.api.soulNetwork.SoulNetworkHandler;
import WayofTime.alchemicalWizardry.common.NewPacketHandler;
public class SpellHelper
@ -121,7 +123,7 @@ public class SpellHelper
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)
@ -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)
{
Block block = world.getBlock(posX, posY, posZ);

View file

@ -1,5 +1,6 @@
package WayofTime.alchemicalWizardry.common.summoning;
import WayofTime.alchemicalWizardry.api.summoningRegistry.SummoningHelper;
import WayofTime.alchemicalWizardry.common.entity.mob.EntityFallenAngel;
import net.minecraft.entity.EntityLivingBase;
import net.minecraft.world.World;

View file

@ -1,19 +1,30 @@
package WayofTime.alchemicalWizardry.common.summoning;
import WayofTime.alchemicalWizardry.AlchemicalWizardry;
import WayofTime.alchemicalWizardry.common.EntityAirElemental;
import WayofTime.alchemicalWizardry.common.entity.mob.*;
import net.minecraft.entity.EntityLivingBase;
import net.minecraft.entity.passive.EntityPig;
import net.minecraft.world.World;
import WayofTime.alchemicalWizardry.AlchemicalWizardry;
import WayofTime.alchemicalWizardry.api.summoningRegistry.SummoningHelper;
import WayofTime.alchemicalWizardry.common.EntityAirElemental;
import WayofTime.alchemicalWizardry.common.entity.mob.EntityBileDemon;
import WayofTime.alchemicalWizardry.common.entity.mob.EntityBoulderFist;
import WayofTime.alchemicalWizardry.common.entity.mob.EntityEarthElemental;
import WayofTime.alchemicalWizardry.common.entity.mob.EntityFallenAngel;
import WayofTime.alchemicalWizardry.common.entity.mob.EntityFireElemental;
import WayofTime.alchemicalWizardry.common.entity.mob.EntityHolyElemental;
import WayofTime.alchemicalWizardry.common.entity.mob.EntityIceDemon;
import WayofTime.alchemicalWizardry.common.entity.mob.EntityLowerGuardian;
import WayofTime.alchemicalWizardry.common.entity.mob.EntityShade;
import WayofTime.alchemicalWizardry.common.entity.mob.EntityShadeElemental;
import WayofTime.alchemicalWizardry.common.entity.mob.EntitySmallEarthGolem;
import WayofTime.alchemicalWizardry.common.entity.mob.EntityWaterElemental;
import WayofTime.alchemicalWizardry.common.entity.mob.EntityWingedFireDemon;
public class SummoningHelper
public class SummoningHelperAW extends SummoningHelper
{
private int id;
public SummoningHelper(int id)
public SummoningHelperAW(int id)
{
this.id = id;
super(id);
}
public EntityLivingBase getEntity(World worldObj)

View file

@ -1,70 +0,0 @@
package WayofTime.alchemicalWizardry.common.summoning;
import net.minecraft.entity.EntityLivingBase;
import net.minecraft.item.ItemStack;
import net.minecraft.world.World;
import java.util.ArrayList;
import java.util.List;
public class SummoningRegistry
{
public static List<SummoningRegistryComponent> summoningList = new ArrayList();
public static void registerSummon(SummoningHelper s, ItemStack[] ring1, ItemStack[] ring2, ItemStack[] ring3, int amountUsed, int bloodOrbLevel)
{
summoningList.add(new SummoningRegistryComponent(s, ring1, ring2, ring3, amountUsed, bloodOrbLevel));
}
public static boolean isRecipeValid(int bloodOrbLevel, ItemStack[] test1, ItemStack[] test2, ItemStack[] test3)
{
for (SummoningRegistryComponent src : summoningList)
{
if (src.getBloodOrbLevel() <= bloodOrbLevel && src.compareRing(1, test1) && src.compareRing(2, test2) && src.compareRing(3, test3))
{
return true;
}
}
return false;
}
public static SummoningRegistryComponent getRegistryComponent(int bloodOrbLevel, ItemStack[] test1, ItemStack[] test2, ItemStack[] test3)
{
for (SummoningRegistryComponent src : summoningList)
{
if (src.getBloodOrbLevel() <= bloodOrbLevel && src.compareRing(1, test1) && src.compareRing(2, test2) && src.compareRing(3, test3))
{
return src;
}
}
return null;
}
public static EntityLivingBase getEntity(World worldObj, int bloodOrbLevel, ItemStack[] test1, ItemStack[] test2, ItemStack[] test3)
{
for (SummoningRegistryComponent src : summoningList)
{
if (src.getBloodOrbLevel() <= bloodOrbLevel && src.compareRing(1, test1) && src.compareRing(2, test2) && src.compareRing(3, test3))
{
return src.getEntity(worldObj);
}
}
return null;
}
public static EntityLivingBase getEntityWithID(World worldObj, int id)
{
for (SummoningRegistryComponent src : summoningList)
{
if (src.getSummoningHelperID() == id)
{
return src.getEntity(worldObj);
}
}
return null;
}
}

View file

@ -1,231 +0,0 @@
package WayofTime.alchemicalWizardry.common.summoning;
import net.minecraft.entity.EntityLivingBase;
import net.minecraft.item.ItemBlock;
import net.minecraft.item.ItemStack;
import net.minecraft.world.World;
import net.minecraftforge.oredict.OreDictionary;
public class SummoningRegistryComponent
{
public ItemStack[] ring1 = new ItemStack[6];
public ItemStack[] ring2 = new ItemStack[6];
public ItemStack[] ring3 = new ItemStack[6];
public SummoningHelper summoningHelper;
public int summoningCost;
public int bloodOrbLevel;
public SummoningRegistryComponent(SummoningHelper s, ItemStack[] newRing1, ItemStack[] newRing2, ItemStack[] newRing3, int amount, int bloodOrbLevel)
{
this.summoningHelper = s;
this.ring1 = newRing1;
this.ring2 = newRing2;
this.ring3 = newRing3;
this.summoningCost = amount;
this.bloodOrbLevel = bloodOrbLevel;
if (this.ring1.length != 6)
{
ItemStack[] newRecipe = new ItemStack[6];
for (int i = 0; i < 6; i++)
{
if (i + 1 > this.ring1.length)
{
newRecipe[i] = null;
} else
{
newRecipe[i] = this.ring1[i];
}
}
this.ring1 = newRecipe;
}
if (this.ring2.length != 6)
{
ItemStack[] newRecipe = new ItemStack[6];
for (int i = 0; i < 6; i++)
{
if (i + 1 > this.ring2.length)
{
newRecipe[i] = null;
} else
{
newRecipe[i] = this.ring2[i];
}
}
this.ring2 = newRecipe;
}
if (this.ring3.length != 6)
{
ItemStack[] newRecipe = new ItemStack[6];
for (int i = 0; i < 6; i++)
{
if (i + 1 > this.ring3.length)
{
newRecipe[i] = null;
} else
{
newRecipe[i] = this.ring3[i];
}
}
this.ring3 = newRecipe;
}
}
public boolean compareRing(int ring, ItemStack[] checkedRingRecipe)
{
ItemStack[] recipe;
if (checkedRingRecipe.length < 6)
{
return false;
}
switch (ring)
{
case 1:
recipe = ring1;
break;
case 2:
recipe = ring2;
break;
case 3:
recipe = ring3;
break;
default:
recipe = ring1;
}
if (recipe.length != 6)
{
ItemStack[] newRecipe = new ItemStack[6];
for (int i = 0; i < 6; i++)
{
if (i + 1 > recipe.length)
{
newRecipe[i] = null;
} else
{
newRecipe[i] = recipe[i];
}
}
recipe = newRecipe;
}
boolean[] checkList = new boolean[6];
for (int i = 0; i < 6; i++)
{
checkList[i] = false;
}
for (int i = 0; i < 6; i++)
{
ItemStack recipeItemStack = recipe[i];
if (recipeItemStack == null)
{
continue;
}
boolean test = false;
for (int j = 0; j < 6; j++)
{
if (checkList[j])
{
continue;
}
ItemStack checkedItemStack = checkedRingRecipe[j];
if (checkedItemStack == null)
{
continue;
}
boolean quickTest = false;
if (recipeItemStack.getItem() instanceof ItemBlock)
{
if (checkedItemStack.getItem() instanceof ItemBlock)
{
quickTest = true;
}
} else if (!(checkedItemStack.getItem() instanceof ItemBlock))
{
quickTest = true;
}
if (!quickTest)
{
continue;
}
if ((checkedItemStack.getItemDamage() == recipeItemStack.getItemDamage() || OreDictionary.WILDCARD_VALUE == recipeItemStack.getItemDamage()) && checkedItemStack.getItem() == recipeItemStack.getItem())
{
test = true;
checkList[j] = true;
break;
}
}
if (!test)
{
return false;
}
}
return true;
}
public int getSummoningCost()
{
return summoningCost;
}
public EntityLivingBase getEntity(World world)
{
return this.summoningHelper.getEntity(world);
}
public int getBloodOrbLevel()
{
return this.bloodOrbLevel;
}
public ItemStack[] getRingRecipeForRing(int ring)
{
switch (ring)
{
case 1:
return ring1;
case 2:
return ring2;
case 3:
return ring3;
default:
return null;
}
}
public int getSummoningHelperID()
{
return this.summoningHelper.getSummoningHelperID();
}
}

View file

@ -1,9 +1,5 @@
package WayofTime.alchemicalWizardry.common.tileEntity;
import java.io.ByteArrayOutputStream;
import java.io.DataOutputStream;
import java.io.IOException;
import net.minecraft.entity.player.EntityPlayer;
import net.minecraft.inventory.IInventory;
import net.minecraft.item.Item;
@ -11,7 +7,6 @@ import net.minecraft.item.ItemStack;
import net.minecraft.nbt.NBTTagCompound;
import net.minecraft.nbt.NBTTagList;
import net.minecraft.network.Packet;
import net.minecraft.network.play.server.S35PacketUpdateTileEntity;
import net.minecraft.server.MinecraftServer;
import net.minecraft.tileentity.TileEntity;
import net.minecraft.util.ChatComponentText;
@ -27,14 +22,13 @@ import net.minecraftforge.fluids.FluidTankInfo;
import net.minecraftforge.fluids.IFluidHandler;
import net.minecraftforge.fluids.IFluidTank;
import WayofTime.alchemicalWizardry.AlchemicalWizardry;
import WayofTime.alchemicalWizardry.common.LifeEssenceNetwork;
import WayofTime.alchemicalWizardry.api.altarRecipeRegistry.AltarRecipe;
import WayofTime.alchemicalWizardry.api.altarRecipeRegistry.AltarRecipeRegistry;
import WayofTime.alchemicalWizardry.api.items.interfaces.IBloodOrb;
import WayofTime.alchemicalWizardry.api.soulNetwork.LifeEssenceNetwork;
import WayofTime.alchemicalWizardry.common.NewPacketHandler;
import WayofTime.alchemicalWizardry.common.altarRecipeRegistry.AltarRecipe;
import WayofTime.alchemicalWizardry.common.altarRecipeRegistry.AltarRecipeRegistry;
import WayofTime.alchemicalWizardry.common.bloodAltarUpgrade.AltarUpgradeComponent;
import WayofTime.alchemicalWizardry.common.bloodAltarUpgrade.UpgradedAltars;
import WayofTime.alchemicalWizardry.common.items.EnergyBattery;
import WayofTime.alchemicalWizardry.common.items.EnergyItems;
import WayofTime.alchemicalWizardry.common.spell.complex.effect.SpellHelper;
public class TEAltar extends TileEntity implements IInventory, IFluidTank, IFluidHandler
@ -583,12 +577,12 @@ public class TEAltar extends TileEntity implements IInventory, IFluidTank, IFlui
{
ItemStack returnedItem = getStackInSlot(0);
if (!(returnedItem.getItem() instanceof EnergyBattery))
if (!(returnedItem.getItem() instanceof IBloodOrb))
{
return;
}
EnergyBattery item = (EnergyBattery) (returnedItem.getItem());
IBloodOrb item = (IBloodOrb) (returnedItem.getItem());
NBTTagCompound itemTag = returnedItem.stackTagCompound;
if (itemTag == null)

View file

@ -4,11 +4,12 @@ import net.minecraft.nbt.NBTTagCompound;
import net.minecraft.server.MinecraftServer;
import net.minecraft.tileentity.TileEntity;
import net.minecraft.world.World;
import WayofTime.alchemicalWizardry.common.LifeEssenceNetwork;
import WayofTime.alchemicalWizardry.common.rituals.Rituals;
import WayofTime.alchemicalWizardry.api.rituals.IMasterRitualStone;
import WayofTime.alchemicalWizardry.api.rituals.Rituals;
import WayofTime.alchemicalWizardry.api.soulNetwork.LifeEssenceNetwork;
import WayofTime.alchemicalWizardry.common.spell.complex.effect.SpellHelper;
public class TEMasterStone extends TileEntity
public class TEMasterStone extends TileEntity implements IMasterRitualStone
{
private int currentRitual;
private boolean isActive;
@ -26,6 +27,7 @@ public class TEMasterStone extends TileEntity
cooldown = 0;
var1 = 0;
direction = 0;
varString1 = "";
}
@Override
@ -38,7 +40,7 @@ public class TEMasterStone extends TileEntity
cooldown = par1NBTTagCompound.getInteger("cooldown");
var1 = par1NBTTagCompound.getInteger("var1");
direction = par1NBTTagCompound.getInteger("direction");
varString1 = par1NBTTagCompound.getString("varString1");
// varString1 = par1NBTTagCompound.getString("varString1");
}
@Override
@ -51,7 +53,7 @@ public class TEMasterStone extends TileEntity
par1NBTTagCompound.setInteger("cooldown", cooldown);
par1NBTTagCompound.setInteger("var1", var1);
par1NBTTagCompound.setInteger("direction", direction);
par1NBTTagCompound.setString(varString1, "varString1");
// par1NBTTagCompound.setString("varString1", varString1);
}
public void activateRitual(World world, int crystalLevel)
@ -183,16 +185,6 @@ public class TEMasterStone extends TileEntity
{
return this.var1;
}
public void setVarString1(String newVar)
{
this.varString1 = newVar;
}
public String getVarString1()
{
return this.varString1;
}
public void setActive(boolean active)
{
@ -203,4 +195,28 @@ public class TEMasterStone extends TileEntity
{
return this.direction;
}
@Override
public World getWorld()
{
return this.getWorldObj();
}
@Override
public int getXCoord()
{
return xCoord;
}
@Override
public int getYCoord()
{
return yCoord;
}
@Override
public int getZCoord()
{
return zCoord;
}
}

View file

@ -16,12 +16,12 @@ import net.minecraft.network.play.server.S35PacketUpdateTileEntity;
import net.minecraft.tileentity.TileEntity;
import net.minecraftforge.common.util.Constants;
import net.minecraftforge.oredict.OreDictionary;
import WayofTime.alchemicalWizardry.api.summoningRegistry.SummoningRegistry;
import WayofTime.alchemicalWizardry.api.summoningRegistry.SummoningRegistryComponent;
import WayofTime.alchemicalWizardry.common.IDemon;
import WayofTime.alchemicalWizardry.common.NewPacketHandler;
import WayofTime.alchemicalWizardry.common.PlinthComponent;
import WayofTime.alchemicalWizardry.common.items.EnergyBattery;
import WayofTime.alchemicalWizardry.common.summoning.SummoningRegistry;
import WayofTime.alchemicalWizardry.common.summoning.SummoningRegistryComponent;
public class TEPlinth extends TileEntity implements IInventory
{

View file

@ -0,0 +1,149 @@
package WayofTime.alchemicalWizardry.common.tileEntity;
import net.minecraft.block.Block;
import net.minecraft.item.ItemBlock;
import net.minecraft.item.ItemStack;
import net.minecraft.nbt.NBTTagCompound;
import net.minecraft.nbt.NBTTagList;
import net.minecraft.tileentity.TileEntity;
import net.minecraft.world.World;
import net.minecraftforge.common.util.Constants;
import net.minecraftforge.fluids.IFluidBlock;
import WayofTime.alchemicalWizardry.ModBlocks;
public class TESpectralContainer extends TileEntity
{
private ItemStack[] inv;
private int ticksRemaining;
public TESpectralContainer()
{
this.inv = new ItemStack[1];
ticksRemaining = 0;
}
@Override
public void readFromNBT(NBTTagCompound par1NBTTagCompound)
{
super.readFromNBT(par1NBTTagCompound);
NBTTagList tagList = par1NBTTagCompound.getTagList("Inventory", Constants.NBT.TAG_COMPOUND);
for (int i = 0; i < tagList.tagCount(); i++)
{
NBTTagCompound tag = (NBTTagCompound) tagList.getCompoundTagAt(i);
int slot = tag.getByte("Slot");
if (slot >= 0 && slot < inv.length)
{
inv[slot] = ItemStack.loadItemStackFromNBT(tag);
}
}
ticksRemaining = par1NBTTagCompound.getInteger("ticksRemaining");
}
@Override
public void writeToNBT(NBTTagCompound par1NBTTagCompound)
{
super.writeToNBT(par1NBTTagCompound);
NBTTagList itemList = new NBTTagList();
for (int i = 0; i < inv.length; i++)
{
ItemStack stack = inv[i];
if (inv[i] != null)
{
NBTTagCompound tag = new NBTTagCompound();
tag.setByte("Slot", (byte) i);
inv[i].writeToNBT(tag);
itemList.appendTag(tag);
}
}
par1NBTTagCompound.setTag("Inventory", itemList);
par1NBTTagCompound.setInteger("ticksRemaining", ticksRemaining);
}
@Override
public void updateEntity()
{
super.updateEntity();
this.ticksRemaining--;
if(this.ticksRemaining<=0)
{
this.returnContainedBlock();
}
}
public static boolean createSpectralBlockAtLocation(World world, int x, int y, int z, int duration)
{
Block block = world.getBlock(x, y, z);
if(block==null)
{
return false;
}
if(world.getTileEntity(x, y, z)==null || block instanceof IFluidBlock)
{
int meta = world.getBlockMetadata(x, y, z);
ItemStack item = new ItemStack(block, 1, meta);
world.setBlock(x, y, z, ModBlocks.blockSpectralContainer);
TileEntity tile = world.getTileEntity(x, y, z);
if(tile instanceof TESpectralContainer)
{
((TESpectralContainer) tile).setContainedItem(item);
((TESpectralContainer) tile).setDuration(duration);
return true;
}
}
return false;
}
public void setDuration(int dur)
{
this.ticksRemaining = dur;
}
public void resetDuration(int dur)
{
if(this.ticksRemaining<dur)
{
this.ticksRemaining = dur;
}
}
public void setContainedItem(ItemStack item)
{
this.inv[0] = item;
}
public void returnContainedBlock()
{
ItemStack item = this.inv[0];
if(item!=null)
{
if(item.getItem() instanceof ItemBlock)
{
Block block = ((ItemBlock)item.getItem()).field_150939_a;
int meta = item.getItemDamage();
if(block != null)
{
this.worldObj.setBlock(xCoord, yCoord, zCoord, block, meta, 6);
}
}
}else
{
this.worldObj.setBlockToAir(xCoord, yCoord, zCoord);
}
}
}

View file

@ -10,12 +10,12 @@ import net.minecraft.nbt.NBTTagList;
import net.minecraft.tileentity.TileEntity;
import net.minecraftforge.common.util.Constants;
import WayofTime.alchemicalWizardry.ModItems;
import WayofTime.alchemicalWizardry.api.alchemy.AlchemicalPotionCreationHandler;
import WayofTime.alchemicalWizardry.api.alchemy.AlchemyRecipeRegistry;
import WayofTime.alchemicalWizardry.common.IBindingAgent;
import WayofTime.alchemicalWizardry.common.ICatalyst;
import WayofTime.alchemicalWizardry.common.IFillingAgent;
import WayofTime.alchemicalWizardry.common.NewPacketHandler;
import WayofTime.alchemicalWizardry.common.alchemy.AlchemicalPotionCreationHandler;
import WayofTime.alchemicalWizardry.common.alchemy.AlchemyRecipeRegistry;
import WayofTime.alchemicalWizardry.common.items.EnergyItems;
import WayofTime.alchemicalWizardry.common.items.potion.AlchemyFlask;
import WayofTime.alchemicalWizardry.common.spell.complex.effect.SpellHelper;
@ -696,10 +696,7 @@ public class TEWritingTable extends TileEntity implements IInventory
progress = 0;
this.setInventorySlotContents(6, getResultingItemStack());
for (int i = 0; i < 5; i++)
{
this.decrStackSize(i + 1, 1);
}
this.decrementSlots(AlchemyRecipeRegistry.getRecipeForItemStack(getResultingItemStack()));
if (worldObj != null)
{
@ -727,10 +724,7 @@ public class TEWritingTable extends TileEntity implements IInventory
result.stackSize += getStackInSlot(6).stackSize;
this.setInventorySlotContents(6, result);
for (int i = 0; i < 5; i++)
{
this.decrStackSize(i + 1, 1);
}
this.decrementSlots(AlchemyRecipeRegistry.getRecipeForItemStack(getResultingItemStack()));
if (worldObj != null)
{
@ -742,4 +736,31 @@ public class TEWritingTable extends TileEntity implements IInventory
//worldObj.markBlockForUpdate(xCoord, yCoord, zCoord);
}
public void decrementSlots(ItemStack[] recipe)
{
boolean[] decrementedList = new boolean[]{false,false,false,false,false};
for(int i=0; i<(Math.min(recipe.length,5)); i++)
{
ItemStack decStack = recipe[i];
if(decStack == null)
{
continue;
}
for(int j=0; j<5; j++)
{
ItemStack testStack = this.getStackInSlot(j+1);
if(testStack != null && testStack.isItemEqual(decStack) && !(decrementedList[j]))
{
this.decrStackSize(j+1, 1);
decrementedList[j] = true;
break;
}
}
}
}
}

View file

@ -1,11 +1,12 @@
package WayofTime.alchemicalWizardry.common.tileEntity.container;
import WayofTime.alchemicalWizardry.common.tileEntity.TEWritingTable;
import net.minecraft.entity.player.EntityPlayer;
import net.minecraft.entity.player.InventoryPlayer;
import net.minecraft.inventory.Container;
import net.minecraft.inventory.Slot;
import net.minecraft.item.ItemStack;
import WayofTime.alchemicalWizardry.api.items.interfaces.IBloodOrb;
import WayofTime.alchemicalWizardry.common.tileEntity.TEWritingTable;
public class ContainerWritingTable extends Container
{
@ -61,26 +62,23 @@ public class ContainerWritingTable extends Container
ItemStack stackInSlot = slotObject.getStack();
stack = stackInSlot.copy();
if (slot == 7)
//merges the item into player inventory since its in the tileEntity
if (slot <= 6)
{
if (!this.mergeItemStack(stackInSlot, 7, 35, true))
if (!this.mergeItemStack(stackInSlot, 7, 43, true))
{
return null;
}
slotObject.onSlotChange(stackInSlot, stack);
}
//merges the item into player inventory since its in the tileEntity
if (slot < 6)
else if(stack.getItem() instanceof IBloodOrb)
{
if (!this.mergeItemStack(stackInSlot, 7, 35, true))
if (!this.mergeItemStack(stackInSlot, 0, 1, false))
{
return null;
}
}
//places it into the tileEntity is possible since its in the player inventory
else if (!this.mergeItemStack(stackInSlot, 0, 6, false))
else if (!this.mergeItemStack(stackInSlot, 1, 6, false))
{
return null;
}