From bc50e92fa3974b3221c229a634ab8be84ce05e13 Mon Sep 17 00:00:00 2001 From: WayofTime Date: Sun, 16 Nov 2014 19:24:26 -0500 Subject: [PATCH] Added interfaces for custom Spell Paradigms. --- .../api/tile/ISpellParadigmTile.java | 10 ++++++++++ .../alchemicalWizardry/api/tile/ISpellTile.java | 11 +++++++++++ .../common/tileEntity/TESpellBlock.java | 5 ++++- .../common/tileEntity/TESpellParadigmBlock.java | 4 +++- 4 files changed, 28 insertions(+), 2 deletions(-) create mode 100644 src/main/java/WayofTime/alchemicalWizardry/api/tile/ISpellParadigmTile.java create mode 100644 src/main/java/WayofTime/alchemicalWizardry/api/tile/ISpellTile.java diff --git a/src/main/java/WayofTime/alchemicalWizardry/api/tile/ISpellParadigmTile.java b/src/main/java/WayofTime/alchemicalWizardry/api/tile/ISpellParadigmTile.java new file mode 100644 index 00000000..de9994bb --- /dev/null +++ b/src/main/java/WayofTime/alchemicalWizardry/api/tile/ISpellParadigmTile.java @@ -0,0 +1,10 @@ +package WayofTime.alchemicalWizardry.api.tile; + +import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.item.ItemStack; +import net.minecraft.world.World; + +public interface ISpellParadigmTile extends ISpellTile +{ + public void castSpell(World world, EntityPlayer entity, ItemStack spellCasterStack); +} diff --git a/src/main/java/WayofTime/alchemicalWizardry/api/tile/ISpellTile.java b/src/main/java/WayofTime/alchemicalWizardry/api/tile/ISpellTile.java new file mode 100644 index 00000000..143a0ea3 --- /dev/null +++ b/src/main/java/WayofTime/alchemicalWizardry/api/tile/ISpellTile.java @@ -0,0 +1,11 @@ +package WayofTime.alchemicalWizardry.api.tile; + +import net.minecraftforge.common.util.ForgeDirection; +import WayofTime.alchemicalWizardry.api.spell.SpellParadigm; + +public interface ISpellTile +{ + public void modifySpellParadigm(SpellParadigm parad); + + public boolean canInputRecieveOutput(ForgeDirection output); +} diff --git a/src/main/java/WayofTime/alchemicalWizardry/common/tileEntity/TESpellBlock.java b/src/main/java/WayofTime/alchemicalWizardry/common/tileEntity/TESpellBlock.java index b3657dcd..5e38781c 100644 --- a/src/main/java/WayofTime/alchemicalWizardry/common/tileEntity/TESpellBlock.java +++ b/src/main/java/WayofTime/alchemicalWizardry/common/tileEntity/TESpellBlock.java @@ -1,11 +1,13 @@ package WayofTime.alchemicalWizardry.common.tileEntity; import WayofTime.alchemicalWizardry.api.spell.SpellParadigm; +import WayofTime.alchemicalWizardry.api.tile.ISpellTile; import net.minecraft.tileentity.TileEntity; import net.minecraftforge.common.util.ForgeDirection; -public abstract class TESpellBlock extends TEOrientable +public abstract class TESpellBlock extends TEOrientable implements ISpellTile { + @Override public void modifySpellParadigm(SpellParadigm parad) { this.applySpellChange(parad); @@ -41,6 +43,7 @@ public abstract class TESpellBlock extends TEOrientable return true; } + @Override public boolean canInputRecieveOutput(ForgeDirection output) { return this.canInputRecieve() && this.getInputDirection().getOpposite() == output; diff --git a/src/main/java/WayofTime/alchemicalWizardry/common/tileEntity/TESpellParadigmBlock.java b/src/main/java/WayofTime/alchemicalWizardry/common/tileEntity/TESpellParadigmBlock.java index 9361b0f0..53814d41 100644 --- a/src/main/java/WayofTime/alchemicalWizardry/common/tileEntity/TESpellParadigmBlock.java +++ b/src/main/java/WayofTime/alchemicalWizardry/common/tileEntity/TESpellParadigmBlock.java @@ -9,8 +9,9 @@ import WayofTime.alchemicalWizardry.api.spell.SpellParadigmMelee; import WayofTime.alchemicalWizardry.api.spell.SpellParadigmProjectile; import WayofTime.alchemicalWizardry.api.spell.SpellParadigmSelf; import WayofTime.alchemicalWizardry.api.spell.SpellParadigmTool; +import WayofTime.alchemicalWizardry.api.tile.ISpellParadigmTile; -public class TESpellParadigmBlock extends TESpellBlock +public class TESpellParadigmBlock extends TESpellBlock implements ISpellParadigmTile { public SpellParadigm getSpellParadigm() { @@ -40,6 +41,7 @@ public class TESpellParadigmBlock extends TESpellBlock return false; } + @Override public void castSpell(World world, EntityPlayer entity, ItemStack spellCasterStack) { SpellParadigm parad = this.getSpellParadigm();