From 1cca6403457a0d1f29b6ba26ab81853b126e8583 Mon Sep 17 00:00:00 2001 From: Shadows_of_Fire Date: Wed, 26 Sep 2018 02:52:40 -0400 Subject: [PATCH] Closes #1178 --- .../api/internal/IEnergyTile.java | 1 + .../mod/items/lens/LensEvenMoarDeath.java | 44 ------------------- .../mod/items/lens/LensKiller.java | 32 ++++++++++++++ .../mod/items/lens/Lenses.java | 2 +- 4 files changed, 34 insertions(+), 45 deletions(-) delete mode 100644 src/main/java/de/ellpeck/actuallyadditions/mod/items/lens/LensEvenMoarDeath.java create mode 100644 src/main/java/de/ellpeck/actuallyadditions/mod/items/lens/LensKiller.java diff --git a/src/main/java/de/ellpeck/actuallyadditions/api/internal/IEnergyTile.java b/src/main/java/de/ellpeck/actuallyadditions/api/internal/IEnergyTile.java index d3a3f66fa..07c44717b 100644 --- a/src/main/java/de/ellpeck/actuallyadditions/api/internal/IEnergyTile.java +++ b/src/main/java/de/ellpeck/actuallyadditions/api/internal/IEnergyTile.java @@ -27,6 +27,7 @@ public interface IEnergyTile{ int getZ(); + //TODO: Rename to getWorld World getWorldObject(); void extractEnergy(int amount); diff --git a/src/main/java/de/ellpeck/actuallyadditions/mod/items/lens/LensEvenMoarDeath.java b/src/main/java/de/ellpeck/actuallyadditions/mod/items/lens/LensEvenMoarDeath.java deleted file mode 100644 index 2214f3cda..000000000 --- a/src/main/java/de/ellpeck/actuallyadditions/mod/items/lens/LensEvenMoarDeath.java +++ /dev/null @@ -1,44 +0,0 @@ -/* - * This file ("LensEvenMoarDeath.java") is part of the Actually Additions mod for Minecraft. - * It is created and owned by Ellpeck and distributed - * under the Actually Additions License to be found at - * http://ellpeck.de/actaddlicense - * View the source code at https://github.com/Ellpeck/ActuallyAdditions - * - * © 2015-2017 Ellpeck - */ - -package de.ellpeck.actuallyadditions.mod.items.lens; - -import de.ellpeck.actuallyadditions.api.internal.IAtomicReconstructor; -import de.ellpeck.actuallyadditions.mod.ActuallyAdditions; -import net.minecraft.entity.EntityLivingBase; -import net.minecraft.world.WorldServer; -import net.minecraftforge.common.util.FakePlayer; -import net.minecraftforge.common.util.FakePlayerFactory; -import net.minecraftforge.fml.relauncher.ReflectionHelper; - -public class LensEvenMoarDeath extends LensDeath{ - - @Override - protected void onAttacked(EntityLivingBase entity, IAtomicReconstructor tile){ - if(tile.getWorldObject() instanceof WorldServer){ - try{ - FakePlayer fake = FakePlayerFactory.getMinecraft((WorldServer)tile.getWorldObject()); - ReflectionHelper.setPrivateValue(EntityLivingBase.class, entity, fake, 37); - - ReflectionHelper.setPrivateValue(EntityLivingBase.class, entity, 100, 38); - } - catch(Exception e){ - ActuallyAdditions.LOGGER.error("A Damage Lens at "+tile.getX()+", "+tile.getY()+", "+tile.getZ()+" in World "+tile.getWorldObject().provider.getDimension()+" threw an Exception! Don't let that happen again!", e); - } - } - - super.onAttacked(entity, tile); - } - - @Override - protected int getUsePerEntity(){ - return 2500; - } -} diff --git a/src/main/java/de/ellpeck/actuallyadditions/mod/items/lens/LensKiller.java b/src/main/java/de/ellpeck/actuallyadditions/mod/items/lens/LensKiller.java new file mode 100644 index 000000000..c4d9af9b4 --- /dev/null +++ b/src/main/java/de/ellpeck/actuallyadditions/mod/items/lens/LensKiller.java @@ -0,0 +1,32 @@ +/* + * This file ("LensEvenMoarDeath.java") is part of the Actually Additions mod for Minecraft. + * It is created and owned by Ellpeck and distributed + * under the Actually Additions License to be found at + * http://ellpeck.de/actaddlicense + * View the source code at https://github.com/Ellpeck/ActuallyAdditions + * + * © 2015-2017 Ellpeck + */ + +package de.ellpeck.actuallyadditions.mod.items.lens; + +import de.ellpeck.actuallyadditions.api.internal.IAtomicReconstructor; +import net.minecraft.entity.EntityLivingBase; +import net.minecraft.util.DamageSource; +import net.minecraft.world.WorldServer; +import net.minecraftforge.common.util.FakePlayerFactory; + +public class LensKiller extends LensDeath { + + @Override + protected void onAttacked(EntityLivingBase entity, IAtomicReconstructor tile) { + if (!tile.getWorldObject().isRemote) { + entity.attackEntityFrom(DamageSource.causePlayerDamage(FakePlayerFactory.getMinecraft((WorldServer) tile.getWorldObject())), 20); + } + } + + @Override + protected int getUsePerEntity() { + return 2500; + } +} diff --git a/src/main/java/de/ellpeck/actuallyadditions/mod/items/lens/Lenses.java b/src/main/java/de/ellpeck/actuallyadditions/mod/items/lens/Lenses.java index 964ea583e..7c80cf138 100644 --- a/src/main/java/de/ellpeck/actuallyadditions/mod/items/lens/Lenses.java +++ b/src/main/java/de/ellpeck/actuallyadditions/mod/items/lens/Lenses.java @@ -19,7 +19,7 @@ public final class Lenses{ ActuallyAdditionsAPI.lensDefaultConversion = new LensConversion(); ActuallyAdditionsAPI.lensDetonation = new LensDetonation(); ActuallyAdditionsAPI.lensDeath = new LensDeath(); - ActuallyAdditionsAPI.lensEvenMoarDeath = new LensEvenMoarDeath(); + ActuallyAdditionsAPI.lensEvenMoarDeath = new LensKiller(); ActuallyAdditionsAPI.lensColor = new LensColor(); ActuallyAdditionsAPI.lensDisruption = new LensDisruption(); ActuallyAdditionsAPI.lensDisenchanting = new LensDisenchanting();