aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/main/java/gregtech/api/damagesources/GT_DamageSources.java19
-rw-r--r--src/main/java/gregtech/api/util/GT_Utility.java18
-rw-r--r--src/main/java/gregtech/common/GT_Proxy.java43
3 files changed, 39 insertions, 41 deletions
diff --git a/src/main/java/gregtech/api/damagesources/GT_DamageSources.java b/src/main/java/gregtech/api/damagesources/GT_DamageSources.java
index fd13b9cfee..45f3fd5323 100644
--- a/src/main/java/gregtech/api/damagesources/GT_DamageSources.java
+++ b/src/main/java/gregtech/api/damagesources/GT_DamageSources.java
@@ -1,8 +1,11 @@
package gregtech.api.damagesources;
import net.minecraft.entity.EntityLivingBase;
+import net.minecraft.item.ItemStack;
import net.minecraft.util.*;
+import javax.annotation.Nullable;
+
public class GT_DamageSources {
public static DamageSource getElectricDamage() {
return ic2.api.info.Info.DMG_ELECTRIC;
@@ -33,7 +36,7 @@ public class GT_DamageSources {
}
private static class DamageSourceCombat extends EntityDamageSource {
- private IChatComponent mDeathMessage;
+ private final IChatComponent mDeathMessage;
public DamageSourceCombat(String aType, EntityLivingBase aPlayer, IChatComponent aDeathMessage) {
super(aType, aPlayer);
@@ -70,6 +73,20 @@ public class GT_DamageSources {
}
}
+ public static class DamageSourceHotItem extends DamageSourceHeat {
+ @Nullable
+ private final ItemStack stack;
+
+ public DamageSourceHotItem(@Nullable ItemStack cause) {
+ this.stack = cause;
+ }
+
+ @Nullable
+ public ItemStack getDamagingStack() {
+ return stack;
+ }
+ }
+
public static class DamageSourceExploding extends DamageSource {
public DamageSourceExploding() {
super("exploded");
diff --git a/src/main/java/gregtech/api/util/GT_Utility.java b/src/main/java/gregtech/api/util/GT_Utility.java
index 77194a7bff..28c6b266ec 100644
--- a/src/main/java/gregtech/api/util/GT_Utility.java
+++ b/src/main/java/gregtech/api/util/GT_Utility.java
@@ -9,6 +9,7 @@ import com.mojang.authlib.GameProfile;
import cpw.mods.fml.common.FMLCommonHandler;
import gregtech.api.GregTech_API;
import gregtech.api.damagesources.GT_DamageSources;
+import gregtech.api.damagesources.GT_DamageSources.DamageSourceHotItem;
import gregtech.api.enchants.Enchantment_Radioactivity;
import gregtech.api.enums.*;
import gregtech.api.events.BlockScanningEvent;
@@ -55,10 +56,7 @@ import net.minecraft.potion.Potion;
import net.minecraft.potion.PotionEffect;
import net.minecraft.tileentity.TileEntity;
import net.minecraft.tileentity.TileEntityChest;
-import net.minecraft.util.AxisAlignedBB;
-import net.minecraft.util.ChatComponentText;
-import net.minecraft.util.EnumChatFormatting;
-import net.minecraft.util.MathHelper;
+import net.minecraft.util.*;
import net.minecraft.world.World;
import net.minecraft.world.WorldServer;
import net.minecraftforge.common.DimensionManager;
@@ -1571,9 +1569,17 @@ public class GT_Utility {
return isWearingFullGasHazmat(aEntity);
}
- public static boolean applyHeatDamage(EntityLivingBase aEntity, float aDamage) {
+ public static boolean applyHeatDamage(EntityLivingBase entity, float damage) {
+ return applyHeatDamage(entity, damage, GT_DamageSources.getHeatDamage());
+ }
+
+ public static boolean applyHeatDamageFromItem(EntityLivingBase entity, float damage, ItemStack item) {
+ return applyHeatDamage(entity, damage, new DamageSourceHotItem(item));
+ }
+
+ private static boolean applyHeatDamage(EntityLivingBase aEntity, float aDamage, DamageSource source) {
if (aDamage > 0 && aEntity != null && aEntity.getActivePotionEffect(Potion.fireResistance) == null && !isWearingFullHeatHazmat(aEntity)) {
- aEntity.attackEntityFrom(GT_DamageSources.getHeatDamage(), aDamage);
+ aEntity.attackEntityFrom(source, aDamage);
return true;
}
return false;
diff --git a/src/main/java/gregtech/common/GT_Proxy.java b/src/main/java/gregtech/common/GT_Proxy.java
index bff044b4c3..76a7b01e85 100644
--- a/src/main/java/gregtech/common/GT_Proxy.java
+++ b/src/main/java/gregtech/common/GT_Proxy.java
@@ -1,10 +1,6 @@
package gregtech.common;
-import cpw.mods.fml.common.FMLCommonHandler;
-import cpw.mods.fml.common.IFuelHandler;
-import cpw.mods.fml.common.Loader;
-import cpw.mods.fml.common.ModContainer;
-import cpw.mods.fml.common.ProgressManager;
+import cpw.mods.fml.common.*;
import cpw.mods.fml.common.eventhandler.Event.Result;
import cpw.mods.fml.common.eventhandler.SubscribeEvent;
import cpw.mods.fml.common.gameevent.TickEvent;
@@ -15,16 +11,8 @@ import cpw.mods.fml.common.registry.GameRegistry;
import forestry.api.genetics.AlleleManager;
import gregtech.GT_Mod;
import gregtech.api.GregTech_API;
-import gregtech.api.enums.ConfigCategories;
-import gregtech.api.enums.Dyes;
-import gregtech.api.enums.GT_Values;
-import gregtech.api.enums.ItemList;
-import gregtech.api.enums.Materials;
-import gregtech.api.enums.OreDictNames;
-import gregtech.api.enums.OrePrefixes;
-import gregtech.api.enums.SubTag;
+import gregtech.api.enums.*;
import gregtech.api.enums.TC_Aspects.TC_AspectStack;
-import gregtech.api.enums.ToolDictNames;
import gregtech.api.interfaces.IBlockOnWalkOver;
import gregtech.api.interfaces.IProjectileItem;
import gregtech.api.interfaces.internal.IGT_Mod;
@@ -88,22 +76,11 @@ import org.apache.commons.lang3.text.WordUtils;
import java.io.File;
import java.lang.reflect.InvocationTargetException;
import java.text.DateFormat;
-import java.util.ArrayList;
-import java.util.Arrays;
-import java.util.Collection;
-import java.util.Date;
-import java.util.EnumSet;
-import java.util.HashMap;
-import java.util.HashSet;
-import java.util.Iterator;
-import java.util.List;
-import java.util.Locale;
-import java.util.Map;
-import java.util.UUID;
+import java.util.*;
import java.util.concurrent.ConcurrentHashMap;
import java.util.concurrent.ConcurrentMap;
-import java.util.stream.Collectors;
import java.util.concurrent.locks.ReentrantLock;
+import java.util.stream.Collectors;
import static gregtech.api.enums.GT_Values.W;
import static gregtech.api.enums.GT_Values.debugEntityCramming;
@@ -1520,7 +1497,7 @@ public abstract class GT_Proxy implements IGT_Mod, IGuiHandler, IFuelHandler {
float tHeat = GT_Utility.getHeatDamageFromItem(tStack);
if (tHeat != 0.0F) {
if (tHeat > 0.0F) {
- GT_Utility.applyHeatDamage(aEvent.player, tHeat);
+ GT_Utility.applyHeatDamageFromItem(aEvent.player, tHeat, tStack);
} else {
GT_Utility.applyFrostDamage(aEvent.player, -tHeat);
}
@@ -1640,7 +1617,7 @@ public abstract class GT_Proxy implements IGT_Mod, IGuiHandler, IFuelHandler {
float tHeat = GT_Utility.getHeatDamageFromItem(tStack);
if (tHeat != 0.0F) {
if (tHeat > 0.0F) {
- GT_Utility.applyHeatDamage(aEvent.player, tHeat);
+ GT_Utility.applyHeatDamageFromItem(aEvent.player, tHeat, tStack);
} else {
GT_Utility.applyFrostDamage(aEvent.player, -tHeat);
}
@@ -1795,7 +1772,7 @@ public abstract class GT_Proxy implements IGT_Mod, IGuiHandler, IFuelHandler {
orePrefixes[i].mLocalizedMaterialPre + aMaterial.mDefaultLocalName,
null, aMaterial.mRGBa, 2, 775,
GT_OreDictUnificator.get(orePrefixes[i], aMaterial, 1L),
- ItemList.Cell_Empty.get(1L, new Object[0]), 1000);
+ ItemList.Cell_Empty.get(1L), 1000);
int hydrogenAmount = 2 * i + 2;
GT_Values.RA.addCrackingRecipe(i + 1, new FluidStack(uncrackedFluid, 1000), Materials.Hydrogen.getGas(hydrogenAmount * 1000),
@@ -1824,7 +1801,7 @@ public abstract class GT_Proxy implements IGT_Mod, IGuiHandler, IFuelHandler {
orePrefixes[i].mLocalizedMaterialPre + aMaterial.mDefaultLocalName,
null, aMaterial.mRGBa, 2, 775,
GT_OreDictUnificator.get(orePrefixes[i], aMaterial, 1L),
- ItemList.Cell_Empty.get(1L, new Object[0]), 1000);
+ ItemList.Cell_Empty.get(1L), 1000);
GT_Values.RA.addCrackingRecipe(i + 1, new FluidStack(uncrackedFluid, 1000), GT_ModHandler.getSteam(1000),
new FluidStack(crackedFluids[i], 1000), 40 + 20 * i, 240 + 120 * i);
@@ -2142,9 +2119,7 @@ public abstract class GT_Proxy implements IGT_Mod, IGuiHandler, IFuelHandler {
boolean isHeat = GT_Utility.isStackInList(aStack, GregTech_API.sHeatHazmatList);
boolean isRadio = GT_Utility.isStackInList(aStack, GregTech_API.sRadioHazmatList);
boolean isElectro = GT_Utility.isStackInList(aStack, GregTech_API.sElectroHazmatList);
- if(isGas && isBio && isFrost && isHeat && isRadio && isElectro)
- return true;
- return false;
+ return isGas && isBio && isFrost && isHeat && isRadio && isElectro;
}
@SubscribeEvent