aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorBlood-Asp <bloodasphendrik@gmail.com>2017-11-05 17:45:44 +0100
committerGitHub <noreply@github.com>2017-11-05 17:45:44 +0100
commitd267fc8b8d228a0dc9cef3e0f9cf82d83578103a (patch)
treeea22b822165f44ee30aa31d54e0a47d091f4c32f
parent471376dc700f87a357fece14f0b168683019ebd1 (diff)
parent7f68c17736aff5afa1e048525715c6b0608ffc50 (diff)
downloadGT5-Unofficial-d267fc8b8d228a0dc9cef3e0f9cf82d83578103a.tar.gz
GT5-Unofficial-d267fc8b8d228a0dc9cef3e0f9cf82d83578103a.tar.bz2
GT5-Unofficial-d267fc8b8d228a0dc9cef3e0f9cf82d83578103a.zip
Merge pull request #1240 from Sirse/unstable
Added TeleporterUsingEvent.
-rw-r--r--src/main/java/gregtech/api/events/TeleporterUsingEvent.java21
-rw-r--r--src/main/java/gregtech/common/tileentities/machines/basic/GT_MetaTileEntity_Teleporter.java6
2 files changed, 26 insertions, 1 deletions
diff --git a/src/main/java/gregtech/api/events/TeleporterUsingEvent.java b/src/main/java/gregtech/api/events/TeleporterUsingEvent.java
new file mode 100644
index 0000000000..ab065f6380
--- /dev/null
+++ b/src/main/java/gregtech/api/events/TeleporterUsingEvent.java
@@ -0,0 +1,21 @@
+package gregtech.api.events;
+
+import net.minecraft.entity.Entity;
+
+@cpw.mods.fml.common.eventhandler.Cancelable
+public class TeleporterUsingEvent extends net.minecraftforge.event.entity.EntityEvent {
+
+ public final Entity mEntity;
+ public final int mTargetX, mTargetY, mTargetZ, mTargetD;
+ public final boolean mHasEgg;
+
+ public TeleporterUsingEvent(Entity aEntity, int aTargetX, int aTargetY, int aTargetZ, int aTargetD, boolean aHasEgg) {
+ super(aEntity);
+ mEntity = aEntity;
+ mTargetX = aTargetX;
+ mTargetY = aTargetY;
+ mTargetZ = aTargetZ;
+ mTargetD = aTargetD;
+ mHasEgg = aHasEgg;
+ }
+} \ No newline at end of file
diff --git a/src/main/java/gregtech/common/tileentities/machines/basic/GT_MetaTileEntity_Teleporter.java b/src/main/java/gregtech/common/tileentities/machines/basic/GT_MetaTileEntity_Teleporter.java
index 399e798cd0..9261e1b7fa 100644
--- a/src/main/java/gregtech/common/tileentities/machines/basic/GT_MetaTileEntity_Teleporter.java
+++ b/src/main/java/gregtech/common/tileentities/machines/basic/GT_MetaTileEntity_Teleporter.java
@@ -3,6 +3,7 @@ package gregtech.common.tileentities.machines.basic;
import gregtech.api.enums.ConfigCategories;
import gregtech.api.enums.Materials;
import gregtech.api.enums.Textures;
+import gregtech.api.events.TeleporterUsingEvent;
import gregtech.api.interfaces.ITexture;
import gregtech.api.interfaces.metatileentity.IMetaTileEntity;
import gregtech.api.interfaces.tileentity.IGregTechTileEntity;
@@ -34,6 +35,7 @@ import net.minecraft.tileentity.TileEntity;
import net.minecraft.util.AxisAlignedBB;
import net.minecraft.world.World;
import net.minecraftforge.common.DimensionManager;
+import net.minecraftforge.common.MinecraftForge;
import net.minecraftforge.fluids.FluidStack;
import static gregtech.api.enums.GT_Values.V;
@@ -281,7 +283,9 @@ public class GT_MetaTileEntity_Teleporter extends GT_MetaTileEntity_BasicTank {
if (((tObject instanceof Entity)) && (!((Entity) tObject).isDead)) {
Entity tEntity = (Entity) tObject;
// System.out.println("teleport"+(Math.pow(tDistance, 1.5)));
- if (getBaseMetaTileEntity().decreaseStoredEnergyUnits((int) (Math.pow(tDistance, 1.5) * weightCalculation(tEntity) * sFPowerMultiplyer), false)) {
+ TeleporterUsingEvent tEvent = new TeleporterUsingEvent(tEntity, mTargetX, mTargetY, mTargetZ, mTargetD, hasEgg);
+ MinecraftForge.EVENT_BUS.post(tEvent);
+ if (!tEvent.isCanceled() && getBaseMetaTileEntity().decreaseStoredEnergyUnits((int) (Math.pow(tDistance, 1.5) * weightCalculation(tEntity) * sFPowerMultiplyer), false)) {
if (hasDimensionalTeleportCapability() && this.mTargetD != getBaseMetaTileEntity().getWorld().provider.dimensionId && (hasEgg || mFluid.isFluidEqual(Materials.Nitrogen.getPlasma(1)))) {
mFluid.amount = mFluid.amount - ((int) Math.min(10, (Math.pow(tDistance, 1.5) * weightCalculation(tEntity) / 8192)));
if (mFluid.amount < 1) {