diff --git a/src/main/java/WayofTime/alchemicalWizardry/api/event/TeleposeEvent.java b/src/main/java/WayofTime/alchemicalWizardry/api/event/TeleposeEvent.java new file mode 100644 index 00000000..fe4642f9 --- /dev/null +++ b/src/main/java/WayofTime/alchemicalWizardry/api/event/TeleposeEvent.java @@ -0,0 +1,47 @@ +package WayofTime.alchemicalWizardry.api.event; + +import cpw.mods.fml.common.eventhandler.Event; + +import net.minecraft.world.World; +import net.minecraft.block.Block; + +/** Fired when a teleposer attempts to transpose two blocks. Use this to perform special cleanup or compensation, +or cancel it entirely to prevent the transposition. */ +@Cancelable +public class TeleposeEvent extends Event { + + public final World initialWorld; + public final int initialX; + public final int initialY; + public final int initialZ; + + public final Block initialBlock; + public final int initialMetadata; + + public final World finalWorld; + public final int finalX; + public final int finalY; + public final int finalZ; + + public final Block finalBlock; + public final int finalMetadata; + + public TeleposeEvent(World wi, int xi, int yi, int zi, Block bi, int mi, World wf, int xf, int yf, int zf, Block bf, int mf) { + initialWorld = wi; + initialX = xi; + initialY = yi; + initialZ = zi; + + initialBlock = bi; + initialMetadata = mi; + + finalWorld = wf; + finalX = xf; + finalY = yf; + finalZ = zf; + + finalBlock = bf; + finalMetadata = mf; + } + +} diff --git a/src/main/java/WayofTime/alchemicalWizardry/common/block/BlockTeleposer.java b/src/main/java/WayofTime/alchemicalWizardry/common/block/BlockTeleposer.java index 53fbc75f..a9362810 100644 --- a/src/main/java/WayofTime/alchemicalWizardry/common/block/BlockTeleposer.java +++ b/src/main/java/WayofTime/alchemicalWizardry/common/block/BlockTeleposer.java @@ -190,7 +190,9 @@ public class BlockTeleposer extends BlockContainer int metaI = worldI.getBlockMetadata(xi, yi, zi); int metaF = worldF.getBlockMetadata(xf, yf, zf); - //TODO Teleposer event + TeleposeEvent evt = new TeleposeEvent(worldI, xi, yi, zi, blockI, metaI, worldF, xf, yf, zf, blockF, metaF); + if (MinecraftForge.EVENT_BUS.post(evt)) + return false; worldI.playSoundEffect(xi, yi, zi, "mob.endermen.portal", 1.0F, 1.0F); worldF.playSoundEffect(xf, yf, zf, "mob.endermen.portal", 1.0F, 1.0F);