Added RitualStopEvent and RitualRunEvent

This commit is contained in:
WayofTime 2014-11-13 09:37:09 -05:00
parent f39db196ca
commit 6c4c579e89
7 changed files with 61 additions and 11 deletions

View file

@ -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);
}
}

View file

@ -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;
}
}

View file

@ -0,0 +1,21 @@
package WayofTime.alchemicalWizardry.api.renderer;
import WayofTime.alchemicalWizardry.common.tileEntity.TEMasterStone;
import net.minecraft.client.renderer.texture.TextureManager;
import net.minecraft.client.renderer.tileentity.TileEntityRendererDispatcher;
import net.minecraft.util.ResourceLocation;
public abstract class MRSRenderer
{
public abstract void renderAt(TEMasterStone tile, double x, double y, double z);
protected void bindTexture(ResourceLocation p_147499_1_)
{
TextureManager texturemanager = TileEntityRendererDispatcher.instance.field_147553_e;
if (texturemanager != null)
{
texturemanager.bindTexture(p_147499_1_);
}
}
}

View file

@ -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);