2014-01-24 15:28:03 +00:00
|
|
|
package WayofTime.alchemicalWizardry.common.tileEntity;
|
|
|
|
|
2014-01-24 23:07:13 +00:00
|
|
|
import net.minecraft.tileentity.TileEntity;
|
|
|
|
import net.minecraftforge.common.ForgeDirection;
|
|
|
|
import WayofTime.alchemicalWizardry.common.spell.complex.SpellParadigm;
|
|
|
|
import WayofTime.alchemicalWizardry.common.spell.complex.effect.SpellEffect;
|
|
|
|
import WayofTime.alchemicalWizardry.common.spell.complex.effect.SpellEffectFire;
|
2014-01-24 15:28:03 +00:00
|
|
|
|
2014-01-24 23:07:13 +00:00
|
|
|
public abstract class TESpellBlock extends TEOrientable
|
|
|
|
{
|
|
|
|
public void modifySpellParadigm(SpellParadigm parad)
|
|
|
|
{
|
|
|
|
this.applySpellChange(parad);
|
|
|
|
TileEntity tile = this.getTileAtOutput();
|
|
|
|
if(tile instanceof TESpellBlock)
|
|
|
|
{
|
|
|
|
TESpellBlock outputBlock = (TESpellBlock)tile;
|
|
|
|
outputBlock.modifySpellParadigm(parad);
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
protected abstract void applySpellChange(SpellParadigm parad);
|
|
|
|
|
|
|
|
public TESpellBlock getTileAtOutput()
|
|
|
|
{
|
|
|
|
ForgeDirection output = this.getOutputDirection();
|
|
|
|
int xOffset = output.offsetX;
|
|
|
|
int yOffset = output.offsetY;
|
|
|
|
int zOffset = output.offsetZ;
|
|
|
|
|
|
|
|
TileEntity tile = worldObj.getBlockTileEntity(xCoord + xOffset, yCoord + yOffset, zCoord + zOffset);
|
|
|
|
|
|
|
|
if(tile instanceof TESpellBlock && ((TESpellBlock)tile).canInputRecieveOutput(output))
|
|
|
|
{
|
|
|
|
return (TESpellBlock)tile;
|
|
|
|
}
|
|
|
|
|
|
|
|
return null;
|
|
|
|
}
|
|
|
|
|
|
|
|
public boolean canInputRecieve()
|
|
|
|
{
|
|
|
|
return true;
|
|
|
|
}
|
|
|
|
|
|
|
|
public boolean canInputRecieveOutput(ForgeDirection output)
|
|
|
|
{
|
|
|
|
return this.canInputRecieve() && this.getInputDirection().getOpposite()==output;
|
|
|
|
}
|
2014-01-24 15:28:03 +00:00
|
|
|
}
|