diff --git a/src/main/java/WayofTime/alchemicalWizardry/api/event/RitualRunEvent.java b/src/main/java/WayofTime/alchemicalWizardry/api/event/RitualRunEvent.java new file mode 100644 index 00000000..4bcf075f --- /dev/null +++ b/src/main/java/WayofTime/alchemicalWizardry/api/event/RitualRunEvent.java @@ -0,0 +1,16 @@ +package WayofTime.alchemicalWizardry.api.event; + +import WayofTime.alchemicalWizardry.api.rituals.IMasterRitualStone; +import cpw.mods.fml.common.eventhandler.Cancelable; + +@Cancelable +public class RitualRunEvent extends RitualEvent +{ + + + public RitualRunEvent(IMasterRitualStone mrs, String ownerKey, String ritualKey) + { + super(mrs, ownerKey, ritualKey); + } + +} diff --git a/src/main/java/WayofTime/alchemicalWizardry/api/event/RitualStopEvent.java b/src/main/java/WayofTime/alchemicalWizardry/api/event/RitualStopEvent.java new file mode 100644 index 00000000..4fc998f0 --- /dev/null +++ b/src/main/java/WayofTime/alchemicalWizardry/api/event/RitualStopEvent.java @@ -0,0 +1,15 @@ +package WayofTime.alchemicalWizardry.api.event; + +import WayofTime.alchemicalWizardry.api.rituals.IMasterRitualStone; +import WayofTime.alchemicalWizardry.api.rituals.RitualBreakMethod; + +public class RitualStopEvent extends RitualEvent +{ + public final RitualBreakMethod method; + public RitualStopEvent(IMasterRitualStone mrs, String ownerKey, String ritualKey, RitualBreakMethod method) + { + super(mrs, ownerKey, ritualKey); + + this.method = method; + } +} diff --git a/src/main/java/WayofTime/alchemicalWizardry/common/renderer/MRSRenderer.java b/src/main/java/WayofTime/alchemicalWizardry/api/renderer/MRSRenderer.java similarity index 92% rename from src/main/java/WayofTime/alchemicalWizardry/common/renderer/MRSRenderer.java rename to src/main/java/WayofTime/alchemicalWizardry/api/renderer/MRSRenderer.java index be239fd7..d8177f26 100644 --- a/src/main/java/WayofTime/alchemicalWizardry/common/renderer/MRSRenderer.java +++ b/src/main/java/WayofTime/alchemicalWizardry/api/renderer/MRSRenderer.java @@ -1,4 +1,4 @@ -package WayofTime.alchemicalWizardry.common.renderer; +package WayofTime.alchemicalWizardry.api.renderer; import WayofTime.alchemicalWizardry.common.tileEntity.TEMasterStone; import net.minecraft.client.renderer.texture.TextureManager; diff --git a/src/main/java/WayofTime/alchemicalWizardry/api/rituals/Rituals.java b/src/main/java/WayofTime/alchemicalWizardry/api/rituals/Rituals.java index 9f6ad207..b3bd97fc 100644 --- a/src/main/java/WayofTime/alchemicalWizardry/api/rituals/Rituals.java +++ b/src/main/java/WayofTime/alchemicalWizardry/api/rituals/Rituals.java @@ -1,15 +1,19 @@ package WayofTime.alchemicalWizardry.api.rituals; -import WayofTime.alchemicalWizardry.common.renderer.MRSRenderer; -import net.minecraft.block.Block; -import net.minecraft.entity.player.EntityPlayer; -import net.minecraft.world.World; - import java.util.HashMap; import java.util.LinkedList; import java.util.List; import java.util.Map; +import net.minecraft.block.Block; +import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.world.World; +import net.minecraftforge.common.MinecraftForge; +import WayofTime.alchemicalWizardry.api.event.RitualRunEvent; +import WayofTime.alchemicalWizardry.api.event.RitualStopEvent; +import WayofTime.alchemicalWizardry.api.renderer.MRSRenderer; +import cpw.mods.fml.common.eventhandler.Event; + public class Rituals { private int crystalLevel; @@ -300,9 +304,18 @@ public class Rituals public static void performEffect(IMasterRitualStone ritualStone, String ritualID) { - if (ritualMap.containsKey(ritualID)) + String ownerName = ritualStone.getOwner(); + + RitualRunEvent event = new RitualRunEvent(ritualStone, ownerName, ritualID); + + if(MinecraftForge.EVENT_BUS.post(event) || event.getResult() == Event.Result.DENY) + { + return; + } + + if (ritualMap.containsKey(event.ritualKey)) { - Rituals ritual = ritualMap.get(ritualID); + Rituals ritual = ritualMap.get(event.ritualKey); if (ritual != null && ritual.effect != null) { ritual.effect.performEffect(ritualStone); @@ -326,6 +339,10 @@ public class Rituals public static void onRitualBroken(IMasterRitualStone ritualStone, String ritualID, RitualBreakMethod method) { + String ownerName = ritualStone.getOwner(); + RitualStopEvent event = new RitualStopEvent(ritualStone, ownerName, ritualID, method); + MinecraftForge.EVENT_BUS.post(event); + if (ritualMap.containsKey(ritualID)) { Rituals ritual = ritualMap.get(ritualID); diff --git a/src/main/java/WayofTime/alchemicalWizardry/common/renderer/AlchemyCircleRenderer.java b/src/main/java/WayofTime/alchemicalWizardry/common/renderer/AlchemyCircleRenderer.java index f2e4d7bd..53aa4f5d 100644 --- a/src/main/java/WayofTime/alchemicalWizardry/common/renderer/AlchemyCircleRenderer.java +++ b/src/main/java/WayofTime/alchemicalWizardry/common/renderer/AlchemyCircleRenderer.java @@ -1,9 +1,11 @@ package WayofTime.alchemicalWizardry.common.renderer; +import WayofTime.alchemicalWizardry.api.renderer.MRSRenderer; import WayofTime.alchemicalWizardry.common.tileEntity.TEMasterStone; import net.minecraft.client.renderer.Tessellator; import net.minecraft.util.MathHelper; import net.minecraft.util.ResourceLocation; + import org.lwjgl.opengl.GL11; public class AlchemyCircleRenderer extends MRSRenderer diff --git a/src/main/java/WayofTime/alchemicalWizardry/common/renderer/block/RenderMasterStone.java b/src/main/java/WayofTime/alchemicalWizardry/common/renderer/block/RenderMasterStone.java index 4de3904e..968ddf3e 100644 --- a/src/main/java/WayofTime/alchemicalWizardry/common/renderer/block/RenderMasterStone.java +++ b/src/main/java/WayofTime/alchemicalWizardry/common/renderer/block/RenderMasterStone.java @@ -1,7 +1,7 @@ package WayofTime.alchemicalWizardry.common.renderer.block; +import WayofTime.alchemicalWizardry.api.renderer.MRSRenderer; import WayofTime.alchemicalWizardry.api.rituals.Rituals; -import WayofTime.alchemicalWizardry.common.renderer.MRSRenderer; import WayofTime.alchemicalWizardry.common.tileEntity.TEMasterStone; import net.minecraft.client.renderer.tileentity.TileEntitySpecialRenderer; import net.minecraft.tileentity.TileEntity; diff --git a/src/main/java/WayofTime/alchemicalWizardry/common/tileEntity/TEMasterStone.java b/src/main/java/WayofTime/alchemicalWizardry/common/tileEntity/TEMasterStone.java index 56b0e894..478af034 100644 --- a/src/main/java/WayofTime/alchemicalWizardry/common/tileEntity/TEMasterStone.java +++ b/src/main/java/WayofTime/alchemicalWizardry/common/tileEntity/TEMasterStone.java @@ -346,9 +346,9 @@ public class TEMasterStone extends TileEntity implements IMasterRitualStone performRitual(worldObj, xCoord, yCoord, zCoord, currentRitualString); } - public void performRitual(World world, int x, int y, int z, String currentRitualString2) + public void performRitual(World world, int x, int y, int z, String currentRitualString) { - Rituals.performEffect(this, currentRitualString2); + Rituals.performEffect(this, currentRitualString); } public String getOwner()