144 lines
4.1 KiB
Java
144 lines
4.1 KiB
Java
package WayofTime.alchemicalWizardry.common.spell.simple;
|
|
|
|
import net.minecraft.entity.player.EntityPlayer;
|
|
import net.minecraft.item.ItemStack;
|
|
import net.minecraft.nbt.NBTTagCompound;
|
|
import net.minecraft.world.World;
|
|
|
|
public abstract class HomSpell implements ISimpleSpell
|
|
{
|
|
private int offensiveRangedEnergy;
|
|
private int offensiveMeleeEnergy;
|
|
private int defensiveEnergy;
|
|
private int environmentalEnergy;
|
|
|
|
public HomSpell()
|
|
{
|
|
//super(id);
|
|
//this.setMaxStackSize(1);
|
|
// TODO Auto-generated constructor stub
|
|
}
|
|
|
|
@Override
|
|
public abstract ItemStack onOffensiveRangedRightClick(ItemStack par1ItemStack, World par2World, EntityPlayer par3EntityPlayer);
|
|
|
|
;
|
|
|
|
@Override
|
|
public abstract ItemStack onOffensiveMeleeRightClick(ItemStack par1ItemStack, World par2World, EntityPlayer par3EntityPlayer);
|
|
|
|
@Override
|
|
public abstract ItemStack onDefensiveRightClick(ItemStack par1ItemStack, World par2World, EntityPlayer par3EntityPlayer);
|
|
|
|
@Override
|
|
public abstract ItemStack onEnvironmentalRightClick(ItemStack par1ItemStack, World par2World, EntityPlayer par3EntityPlayer);
|
|
|
|
public int getOffensiveRangedEnergy()
|
|
{
|
|
return offensiveRangedEnergy;
|
|
}
|
|
|
|
public int getOffensiveMeleeEnergy()
|
|
{
|
|
return offensiveMeleeEnergy;
|
|
}
|
|
|
|
public int getDefensiveEnergy()
|
|
{
|
|
return defensiveEnergy;
|
|
}
|
|
|
|
public int getEnvironmentalEnergy()
|
|
{
|
|
return environmentalEnergy;
|
|
}
|
|
|
|
public void setEnergies(int offensiveRanged, int offensiveMelee, int defensive, int environmental)
|
|
{
|
|
this.offensiveRangedEnergy = offensiveRanged;
|
|
this.offensiveMeleeEnergy = offensiveMelee;
|
|
this.defensiveEnergy = defensive;
|
|
this.environmentalEnergy = environmental;
|
|
}
|
|
|
|
public void setSpellParadigm(ItemStack itemStack, int paradigm)
|
|
{
|
|
if (itemStack.stackTagCompound == null)
|
|
{
|
|
itemStack.setTagCompound(new NBTTagCompound());
|
|
}
|
|
|
|
itemStack.stackTagCompound.setInteger("paradigm", paradigm);
|
|
}
|
|
|
|
public int getSpellParadigm(ItemStack itemStack)
|
|
{
|
|
if (itemStack.stackTagCompound == null)
|
|
{
|
|
itemStack.setTagCompound(new NBTTagCompound());
|
|
}
|
|
|
|
return (itemStack.stackTagCompound.getInteger("paradigm"));
|
|
}
|
|
|
|
//@Override
|
|
public ItemStack useSpell(ItemStack par1ItemStack, World par2World, EntityPlayer par3EntityPlayer)
|
|
{
|
|
int paradigm = getSpellParadigm(par1ItemStack);
|
|
|
|
if (par3EntityPlayer.isSneaking())
|
|
{
|
|
if (paradigm < 3)
|
|
{
|
|
this.setSpellParadigm(par1ItemStack, paradigm + 1);
|
|
} else
|
|
{
|
|
this.setSpellParadigm(par1ItemStack, 0);
|
|
}
|
|
|
|
return par1ItemStack;
|
|
}
|
|
|
|
switch (paradigm)
|
|
{
|
|
case 0:
|
|
return this.onOffensiveRangedRightClick(par1ItemStack, par2World, par3EntityPlayer);
|
|
|
|
case 1:
|
|
return this.onOffensiveMeleeRightClick(par1ItemStack, par2World, par3EntityPlayer);
|
|
|
|
case 2:
|
|
return this.onDefensiveRightClick(par1ItemStack, par2World, par3EntityPlayer);
|
|
|
|
case 3:
|
|
return this.onEnvironmentalRightClick(par1ItemStack, par2World, par3EntityPlayer);
|
|
}
|
|
|
|
return par1ItemStack;
|
|
}
|
|
|
|
// @Override
|
|
// public void addInformation(ItemStack par1ItemStack, EntityPlayer par2EntityPlayer, List par3List, boolean par4)
|
|
// {
|
|
// if (!(par1ItemStack.stackTagCompound == null))
|
|
// {
|
|
// if (!par1ItemStack.stackTagCompound.getString("ownerName").equals(""))
|
|
// {
|
|
// par3List.add("Current owner: " + par1ItemStack.stackTagCompound.getString("ownerName"));
|
|
// }
|
|
//
|
|
// par3List.add("Current paradigm: " + this.getSpellParadigm(par1ItemStack));
|
|
// }
|
|
// }
|
|
|
|
public int getDimensionID(ItemStack itemStack)
|
|
{
|
|
if (itemStack.stackTagCompound == null)
|
|
{
|
|
itemStack.setTagCompound(new NBTTagCompound());
|
|
}
|
|
|
|
return itemStack.stackTagCompound.getInteger("dimensionId");
|
|
}
|
|
}
|