aboutsummaryrefslogtreecommitdiff
path: root/src/Java/gtPlusPlus/core/util
diff options
context:
space:
mode:
Diffstat (limited to 'src/Java/gtPlusPlus/core/util')
-rw-r--r--src/Java/gtPlusPlus/core/util/Quality.java59
-rw-r--r--src/Java/gtPlusPlus/core/util/Utils.java148
-rw-r--r--src/Java/gtPlusPlus/core/util/array/ArrayUtils.java18
-rw-r--r--src/Java/gtPlusPlus/core/util/array/Pair.java21
-rw-r--r--src/Java/gtPlusPlus/core/util/array/Triplet.java27
-rw-r--r--src/Java/gtPlusPlus/core/util/entity/EntityUtils.java68
-rw-r--r--src/Java/gtPlusPlus/core/util/fluid/FluidGT6.java30
-rw-r--r--src/Java/gtPlusPlus/core/util/fluid/FluidUtils.java62
-rw-r--r--src/Java/gtPlusPlus/core/util/gregtech/recipehandlers/GregtechRecipe.java2
-rw-r--r--src/Java/gtPlusPlus/core/util/item/ItemUtils.java (renamed from src/Java/gtPlusPlus/core/util/item/UtilsItems.java)315
-rw-r--r--src/Java/gtPlusPlus/core/util/materials/MaterialUtils.java118
-rw-r--r--src/Java/gtPlusPlus/core/util/math/MathUtils.java50
-rw-r--r--src/Java/gtPlusPlus/core/util/networking/NetworkUtils.java63
-rw-r--r--src/Java/gtPlusPlus/core/util/player/PlayerUtils.java129
-rw-r--r--src/Java/gtPlusPlus/core/util/recipe/RecipeUtils.java (renamed from src/Java/gtPlusPlus/core/util/recipe/UtilsRecipe.java)46
-rw-r--r--src/Java/gtPlusPlus/core/util/recipe/shapeless/ShapelessUtils.java56
-rw-r--r--src/Java/gtPlusPlus/core/util/reflect/ClientProxyFinder.java32
-rw-r--r--src/Java/gtPlusPlus/core/util/reflect/ReflectionUtils.java76
-rw-r--r--src/Java/gtPlusPlus/core/util/wrapper/var.java8
19 files changed, 1027 insertions, 301 deletions
diff --git a/src/Java/gtPlusPlus/core/util/Quality.java b/src/Java/gtPlusPlus/core/util/Quality.java
new file mode 100644
index 0000000000..1ce29c7a58
--- /dev/null
+++ b/src/Java/gtPlusPlus/core/util/Quality.java
@@ -0,0 +1,59 @@
+package gtPlusPlus.core.util;
+
+import gtPlusPlus.core.util.math.MathUtils;
+import net.minecraft.util.EnumChatFormatting;
+
+public enum Quality {
+
+ // Magic Blue
+ // Rare Yellow
+ // Set Green
+ // Unique Gold/Purple
+ // Trade-off Brown
+
+ POOR("Poor", EnumChatFormatting.GRAY),
+ COMMON("Common", EnumChatFormatting.WHITE),
+ UNCOMMON("Uncommon", EnumChatFormatting.DARK_GREEN),
+ MAGIC("Magic", EnumChatFormatting.BLUE),
+ RARE("Rare", EnumChatFormatting.YELLOW),
+ UNIQUE("Unique", EnumChatFormatting.GOLD),
+ ARTIFACT("Artifact", EnumChatFormatting.AQUA),
+ SET("Set Piece", EnumChatFormatting.GREEN),
+ TRADEOFF("Trade-off", EnumChatFormatting.DARK_RED),
+ EPIC("Epic", EnumChatFormatting.LIGHT_PURPLE);
+
+ private String LOOT;
+ private EnumChatFormatting COLOUR;
+ private Quality (final String lootTier, final EnumChatFormatting tooltipColour)
+ {
+ this.LOOT = lootTier;
+ this.COLOUR = tooltipColour;
+ }
+
+ public String getQuality() {
+ return LOOT;
+ }
+
+ protected EnumChatFormatting getColour(){
+ return COLOUR;
+ }
+
+ public String formatted(){
+ return this.COLOUR+this.LOOT;
+ }
+
+ public static Quality getRandomQuality(){
+ int lootChance = MathUtils.randInt(0, 100);
+ if (lootChance <= 10){return Quality.POOR;}
+ else if (lootChance <= 45){return Quality.COMMON;}
+ else if (lootChance <= 65){return Quality.UNCOMMON;}
+ else if (lootChance <= 82){return Quality.MAGIC;}
+ else if (lootChance <= 92){return Quality.EPIC;}
+ else if (lootChance <= 97){return Quality.RARE;}
+ else if (lootChance <= 99){return Quality.ARTIFACT;}
+ else return null;
+ }
+
+}
+
+
diff --git a/src/Java/gtPlusPlus/core/util/Utils.java b/src/Java/gtPlusPlus/core/util/Utils.java
index 090d05e3b1..2e25b8b0e9 100644
--- a/src/Java/gtPlusPlus/core/util/Utils.java
+++ b/src/Java/gtPlusPlus/core/util/Utils.java
@@ -6,12 +6,10 @@ import gregtech.api.enums.TC_Aspects.TC_AspectStack;
import gtPlusPlus.GTplusplus;
import gtPlusPlus.core.lib.CORE;
import gtPlusPlus.core.util.fluid.FluidUtils;
-import gtPlusPlus.core.util.item.UtilsItems;
+import gtPlusPlus.core.util.item.ItemUtils;
import gtPlusPlus.core.util.math.MathUtils;
-import ic2.core.IC2Potion;
import ic2.core.Ic2Items;
import ic2.core.init.InternalName;
-import ic2.core.item.armor.ItemArmorHazmat;
import ic2.core.item.resources.ItemCell;
import java.awt.Color;
@@ -24,29 +22,22 @@ import java.util.List;
import java.util.Map;
import java.util.Timer;
import java.util.TimerTask;
-import java.util.UUID;
import net.minecraft.block.Block;
import net.minecraft.entity.Entity;
-import net.minecraft.entity.EntityLiving;
-import net.minecraft.entity.EntityLivingBase;
-import net.minecraft.entity.EnumCreatureType;
-import net.minecraft.entity.player.EntityPlayer;
-import net.minecraft.entity.player.EntityPlayerMP;
import net.minecraft.item.Item.ToolMaterial;
import net.minecraft.item.ItemStack;
-import net.minecraft.server.MinecraftServer;
-import net.minecraft.util.MathHelper;
import net.minecraft.world.World;
-import net.minecraft.world.biome.BiomeGenBase;
import net.minecraftforge.common.util.EnumHelper;
import net.minecraftforge.fluids.FluidContainerRegistry;
import net.minecraftforge.fluids.FluidRegistry;
import net.minecraftforge.fluids.FluidStack;
import net.minecraftforge.oredict.OreDictionary;
+
+import org.apache.commons.lang3.EnumUtils;
+
import cpw.mods.fml.common.FMLCommonHandler;
import cpw.mods.fml.common.FMLLog;
-import cpw.mods.fml.common.registry.EntityRegistry;
public class Utils {
@@ -90,32 +81,52 @@ public class Utils {
if (aspect.toUpperCase() == "COGNITIO"){
//Adds in Compat for older GT Versions which Misspell aspects.
try {
- returnValue = new TC_AspectStack(TC_Aspects.valueOf("COGNITIO"), size);
+ if (EnumUtils.isValidEnum(TC_Aspects.class, "COGNITIO")){
+ Utils.LOG_WARNING("TC Aspect found - "+aspect);
+ returnValue = new TC_AspectStack(TC_Aspects.valueOf("COGNITIO"), size);
+ }
+ else {
+ Utils.LOG_INFO("Fallback TC Aspect found - "+aspect+" - PLEASE UPDATE GREGTECH TO A NEWER VERSION TO REMOVE THIS MESSAGE - THIS IS NOT AN ERROR");
+ returnValue = new TC_AspectStack(TC_Aspects.valueOf("COGNITO"), size);
+ }
} catch (NoSuchFieldError r){
- Utils.LOG_INFO("Fallback TC Aspect found - "+aspect+" - PLEASE UPDATE GREGTECH TO A NEWER VERSION TO REMOVE THIS MESSAGE - THIS IS NOT AN ERROR");
- returnValue = new TC_AspectStack(TC_Aspects.valueOf("COGNITO"), size);
-
+ Utils.LOG_INFO("Invalid Thaumcraft Aspects - Report this issue to Alkalus");
}
}
else if (aspect.toUpperCase() == "EXANIMUS"){
- //Adds in Compat for older GT Versions which Misspell aspects.
+ //Adds in Compat for older GT Versions which Misspell aspects.
try {
- returnValue = new TC_AspectStack(TC_Aspects.valueOf("EXANIMUS"), size);
+ if (EnumUtils.isValidEnum(TC_Aspects.class, "EXANIMUS")){
+ Utils.LOG_WARNING("TC Aspect found - "+aspect);
+ returnValue = new TC_AspectStack(TC_Aspects.valueOf("EXANIMUS"), size);
+ }
+ else {
+ Utils.LOG_INFO("Fallback TC Aspect found - "+aspect+" - PLEASE UPDATE GREGTECH TO A NEWER VERSION TO REMOVE THIS MESSAGE - THIS IS NOT AN ERROR");
+ returnValue = new TC_AspectStack(TC_Aspects.valueOf("EXAMINIS"), size);
+ }
} catch (NoSuchFieldError r){
- Utils.LOG_INFO("Fallback TC Aspect found - "+aspect+" - PLEASE UPDATE GREGTECH TO A NEWER VERSION TO REMOVE THIS MESSAGE - THIS IS NOT AN ERROR");
- returnValue = new TC_AspectStack(TC_Aspects.valueOf("EXAMINIS"), size);
+ Utils.LOG_INFO("Invalid Thaumcraft Aspects - Report this issue to Alkalus");
}
+
+
}
else if (aspect.toUpperCase() == "PRAECANTATIO"){
- //Adds in Compat for older GT Versions which Misspell aspects.
+ //Adds in Compat for older GT Versions which Misspell aspects.
try {
- returnValue = new TC_AspectStack(TC_Aspects.valueOf("PRAECANTATIO"), size);
+ if (EnumUtils.isValidEnum(TC_Aspects.class, "PRAECANTATIO")){
+ Utils.LOG_WARNING("TC Aspect found - "+aspect);
+ returnValue = new TC_AspectStack(TC_Aspects.valueOf("PRAECANTATIO"), size);
+ }
+ else {
+ Utils.LOG_INFO("Fallback TC Aspect found - "+aspect+" - PLEASE UPDATE GREGTECH TO A NEWER VERSION TO REMOVE THIS MESSAGE - THIS IS NOT AN ERROR");
+ returnValue = new TC_AspectStack(TC_Aspects.valueOf("PRAECANTIO"), size);
+ }
} catch (NoSuchFieldError r){
- Utils.LOG_INFO("Fallback TC Aspect found - "+aspect+" - PLEASE UPDATE GREGTECH TO A NEWER VERSION TO REMOVE THIS MESSAGE - THIS IS NOT AN ERROR");
- returnValue = new TC_AspectStack(TC_Aspects.valueOf("PRAECANTIO"), size);
- }
+ Utils.LOG_INFO("Invalid Thaumcraft Aspects - Report this issue to Alkalus");
+ }
}
else {
+ Utils.LOG_WARNING("TC Aspect found - "+aspect);
returnValue = new TC_AspectStack(TC_Aspects.valueOf(aspect), size);
}
@@ -146,11 +157,6 @@ public class Utils {
return (target.getItem() == input.getItem() && ((target.getItemDamage() == WILDCARD_VALUE && !strict) || target.getItemDamage() == input.getItemDamage()));
}
- //TODO
- public static void registerEntityToBiomeSpawns(Class<EntityLiving> classy, EnumCreatureType EntityType, BiomeGenBase baseBiomeGen){
- EntityRegistry.addSpawn(classy, 6, 1, 5, EntityType, baseBiomeGen); //change the values to vary the spawn rarity, biome, etc.
- }
-
//Non-Dev Comments
public static void LOG_INFO(String s){
//if (CORE.DEBUG){
@@ -183,10 +189,6 @@ public class Utils {
g.drawRect (MinA, MinB, MaxA, MaxB);
}
- public static void messagePlayer(EntityPlayer P, String S){
- gregtech.api.util.GT_Utility.sendChatToPlayer(P, S);
- }
-
/**
* Returns if that Liquid is IC2Steam.
*/
@@ -314,53 +316,6 @@ public class Utils {
return targetList;
}
- public static EntityPlayer getPlayerOnServerFromUUID(UUID parUUID){
- if (parUUID == null)
- {
- return null;
- }
- List<EntityPlayerMP> allPlayers = MinecraftServer.getServer().getConfigurationManager().playerEntityList;
- for (EntityPlayerMP player : allPlayers)
- {
- if (player.getUniqueID().equals(parUUID))
- {
- return player;
- }
- }
- return null;
- }
-
- @Deprecated
- public static Block findBlockUnderEntityNonBoundingBox(Entity parEntity){
- int blockX = MathHelper.floor_double(parEntity.posX);
- int blockY = MathHelper.floor_double(parEntity.posY-0.2D - (double)parEntity.yOffset);
- int blockZ = MathHelper.floor_double(parEntity.posZ);
- return parEntity.worldObj.getBlock(blockX, blockY, blockZ);
- }
-
- public static Block findBlockUnderEntity(Entity parEntity){
- int blockX = MathHelper.floor_double(parEntity.posX);
- int blockY = MathHelper.floor_double(parEntity.boundingBox.minY)-1;
- int blockZ = MathHelper.floor_double(parEntity.posZ);
- return parEntity.worldObj.getBlock(blockX, blockY, blockZ);
- }
-
- public static int getFacingDirection(Entity entity){
- int d = MathHelper.floor_double((double) (entity.rotationYaw * 4.0F / 360) + 0.50) & 3;
- return d;
- }
-
- public static boolean isPlayerOP(EntityPlayer player){
- if (player.canCommandSenderUseCommand(2, "")){
- return true;
- }
- return false;
- }
-
- public static void setEntityOnFire(Entity entity, int length){
- entity.setFire(length);
- }
-
public static void spawnCustomParticle(Entity entity){
GTplusplus.proxy.generateMysteriousParticles(entity);
}
@@ -403,7 +358,10 @@ public class Utils {
}
}
- public static int rgbtoHexValue(int r, int g, int b){
+ public static int rgbtoHexValue(int r, int g, int b){
+ if (r > 255 || g > 255 || b > 255 || r < 0 || g < 0 || b < 0){
+ return 0;
+ }
Color c = new Color(r,g,b);
String temp = Integer.toHexString( c.getRGB() & 0xFFFFFF ).toUpperCase();
@@ -511,28 +469,6 @@ public class Utils {
return true;
}
- public static boolean applyRadiationDamageToEntity(int damage, World world, Entity entityHolding){
- if (!world.isRemote){
- if (damage > 0 && (entityHolding instanceof EntityLivingBase)) {
- EntityLivingBase entityLiving = (EntityLivingBase) entityHolding;
- if (!ItemArmorHazmat.hasCompleteHazmat(entityLiving)) {
- int duration;
- if (entityLiving.getActivePotionEffect(IC2Potion.radiation) != null){
- //Utils.LOG_INFO("t");
- duration = (damage*5)+entityLiving.getActivePotionEffect(IC2Potion.radiation).getDuration();
- }
- else {
- //Utils.LOG_INFO("f");
- duration = damage*30;
- }
- IC2Potion.radiation.applyTo(entityLiving, duration, damage * 15);
- }
- }
- return true;
- }
- return false;
- }
-
private static short cellID = 15;
public static ItemStack createInternalNameAndFluidCell(String s){
Utils.LOG_WARNING("1");
@@ -552,7 +488,7 @@ public class Utils {
ItemStack temp = (ItemStack) methode.invoke(item, cellID++, yourName, new Block[0]);
Utils.LOG_INFO("Successfully created "+temp.getDisplayName()+"s.");
FluidContainerRegistry.registerFluidContainer(FluidUtils.getFluidStack(s.toLowerCase(), 0), temp.copy(), Ic2Items.cell.copy());
- UtilsItems.addItemToOreDictionary(temp.copy(), "cell"+s);
+ ItemUtils.addItemToOreDictionary(temp.copy(), "cell"+s);
return temp;
}
catch(Exception e){
diff --git a/src/Java/gtPlusPlus/core/util/array/ArrayUtils.java b/src/Java/gtPlusPlus/core/util/array/ArrayUtils.java
new file mode 100644
index 0000000000..ea02aaf1da
--- /dev/null
+++ b/src/Java/gtPlusPlus/core/util/array/ArrayUtils.java
@@ -0,0 +1,18 @@
+package gtPlusPlus.core.util.array;
+
+import java.util.Arrays;
+
+public class ArrayUtils {
+
+ public static void expandArray(Object[] someArray, Object newValueToAdd) {
+ Object[] series = someArray;
+ series = addElement(series, newValueToAdd);
+ }
+
+ private static Object[] addElement(Object[] series, Object newValueToAdd) {
+ series = Arrays.copyOf(series, series.length + 1);
+ series[series.length - 1] = newValueToAdd;
+ return series;
+ }
+
+}
diff --git a/src/Java/gtPlusPlus/core/util/array/Pair.java b/src/Java/gtPlusPlus/core/util/array/Pair.java
new file mode 100644
index 0000000000..94437e6779
--- /dev/null
+++ b/src/Java/gtPlusPlus/core/util/array/Pair.java
@@ -0,0 +1,21 @@
+package gtPlusPlus.core.util.array;
+
+public class Pair<K,V> {
+
+ private final K key;
+ private final V value;
+
+ public Pair(final K key, final V value){
+ this.key = key;
+ this.value = value;
+ }
+
+ final public K getKey(){
+ return key;
+ }
+
+ final public V getValue(){
+ return value;
+ }
+
+} \ No newline at end of file
diff --git a/src/Java/gtPlusPlus/core/util/array/Triplet.java b/src/Java/gtPlusPlus/core/util/array/Triplet.java
new file mode 100644
index 0000000000..07f29ae6c8
--- /dev/null
+++ b/src/Java/gtPlusPlus/core/util/array/Triplet.java
@@ -0,0 +1,27 @@
+package gtPlusPlus.core.util.array;
+
+public class Triplet<K,V,C> {
+
+ private final K key;
+ private final V value;
+ private final C count;
+
+ public Triplet(final K key, final V value, final C value2){
+ this.key = key;
+ this.value = value;
+ this.count = value2;
+ }
+
+ final public K getKey(){
+ return key;
+ }
+
+ final public V getValue(){
+ return value;
+ }
+
+ final public C getSecondValue(){
+ return count;
+ }
+
+} \ No newline at end of file
diff --git a/src/Java/gtPlusPlus/core/util/entity/EntityUtils.java b/src/Java/gtPlusPlus/core/util/entity/EntityUtils.java
new file mode 100644
index 0000000000..21d31a42ee
--- /dev/null
+++ b/src/Java/gtPlusPlus/core/util/entity/EntityUtils.java
@@ -0,0 +1,68 @@
+package gtPlusPlus.core.util.entity;
+
+import ic2.core.IC2Potion;
+import ic2.core.item.armor.ItemArmorHazmat;
+import cpw.mods.fml.common.registry.EntityRegistry;
+import net.minecraft.block.Block;
+import net.minecraft.entity.Entity;
+import net.minecraft.entity.EntityLiving;
+import net.minecraft.entity.EntityLivingBase;
+import net.minecraft.entity.EnumCreatureType;
+import net.minecraft.util.MathHelper;
+import net.minecraft.world.World;
+import net.minecraft.world.biome.BiomeGenBase;
+
+public class EntityUtils {
+
+ public static void setEntityOnFire(Entity entity, int length){
+ entity.setFire(length);
+ }
+
+ public static int getFacingDirection(Entity entity){
+ int d = MathHelper.floor_double((double) (entity.rotationYaw * 4.0F / 360) + 0.50) & 3;
+ return d;
+ }
+
+ @Deprecated
+ public static Block findBlockUnderEntityNonBoundingBox(Entity parEntity){
+ int blockX = MathHelper.floor_double(parEntity.posX);
+ int blockY = MathHelper.floor_double(parEntity.posY-0.2D - (double)parEntity.yOffset);
+ int blockZ = MathHelper.floor_double(parEntity.posZ);
+ return parEntity.worldObj.getBlock(blockX, blockY, blockZ);
+ }
+
+ public static Block findBlockUnderEntity(Entity parEntity){
+ int blockX = MathHelper.floor_double(parEntity.posX);
+ int blockY = MathHelper.floor_double(parEntity.boundingBox.minY)-1;
+ int blockZ = MathHelper.floor_double(parEntity.posZ);
+ return parEntity.worldObj.getBlock(blockX, blockY, blockZ);
+ }
+
+ //TODO
+ public static void registerEntityToBiomeSpawns(Class<EntityLiving> classy, EnumCreatureType EntityType, BiomeGenBase baseBiomeGen){
+ EntityRegistry.addSpawn(classy, 6, 1, 5, EntityType, baseBiomeGen); //change the values to vary the spawn rarity, biome, etc.
+ }
+
+ public static boolean applyRadiationDamageToEntity(int damage, World world, Entity entityHolding){
+ if (!world.isRemote){
+ if (damage > 0 && (entityHolding instanceof EntityLivingBase)) {
+ EntityLivingBase entityLiving = (EntityLivingBase) entityHolding;
+ if (!ItemArmorHazmat.hasCompleteHazmat(entityLiving)) {
+ int duration;
+ if (entityLiving.getActivePotionEffect(IC2Potion.radiation) != null){
+ //Utils.LOG_INFO("t");
+ duration = (damage*5)+entityLiving.getActivePotionEffect(IC2Potion.radiation).getDuration();
+ }
+ else {
+ //Utils.LOG_INFO("f");
+ duration = damage*30;
+ }
+ IC2Potion.radiation.applyTo(entityLiving, duration, damage * 15);
+ }
+ }
+ return true;
+ }
+ return false;
+ }
+
+}
diff --git a/src/Java/gtPlusPlus/core/util/fluid/FluidGT6.java b/src/Java/gtPlusPlus/core/util/fluid/FluidGT6.java
new file mode 100644
index 0000000000..5674082c4a
--- /dev/null
+++ b/src/Java/gtPlusPlus/core/util/fluid/FluidGT6.java
@@ -0,0 +1,30 @@
+package gtPlusPlus.core.util.fluid;
+
+import gregtech.api.GregTech_API;
+import gtPlusPlus.core.lib.CORE;
+import net.minecraftforge.fluids.Fluid;
+
+public class FluidGT6 extends Fluid implements Runnable
+{
+ private final short[] mRGBa;
+ public final String mTextureName;
+
+ public FluidGT6(final String aName, final String aTextureName, final short[] aRGBa) {
+ super(aName);
+ this.mRGBa = aRGBa;
+ this.mTextureName = aTextureName;
+ if (GregTech_API.sGTBlockIconload != null) {
+ GregTech_API.sGTBlockIconload.add(this);
+ }
+ }
+
+ @Override
+ public int getColor() {
+ return Math.max(0, Math.min(255, this.mRGBa[0])) << 16 | Math.max(0, Math.min(255, this.mRGBa[1])) << 8 | Math.max(0, Math.min(255, this.mRGBa[2]));
+ }
+
+ @Override
+ public void run() {
+ this.setIcons(GregTech_API.sBlockIcons.registerIcon(CORE.MODID+ ":" + "fluids/fluid." + mTextureName));
+ }
+}
diff --git a/src/Java/gtPlusPlus/core/util/fluid/FluidUtils.java b/src/Java/gtPlusPlus/core/util/fluid/FluidUtils.java
index e576eba8f5..83b0bfd65d 100644
--- a/src/Java/gtPlusPlus/core/util/fluid/FluidUtils.java
+++ b/src/Java/gtPlusPlus/core/util/fluid/FluidUtils.java
@@ -28,6 +28,16 @@ public class FluidUtils {
}
}
+
+ public static FluidStack getFluidStack(FluidStack vmoltenFluid, int fluidAmount) {
+ Utils.LOG_WARNING("Trying to get a fluid stack of "+vmoltenFluid.getFluid().getName());
+ try {
+ return FluidRegistry.getFluidStack(vmoltenFluid.getFluid().getName(), fluidAmount).copy();
+ }
+ catch (Throwable e){
+ return null;
+ }
+ }
public static FluidStack[] getFluidStackArray(String fluidName, int amount){
Utils.LOG_WARNING("Trying to get a fluid stack of "+fluidName);
@@ -99,7 +109,7 @@ public class FluidUtils {
* @return short[]
*/
public static Fluid generateFluid(Material material ,int aState){
- int tempK = material.getMeltingPoint_C();
+ int tempK = material.getMeltingPointC();
Fluid generatedFluid = null;
switch (aState) {
case 0: {
@@ -200,6 +210,54 @@ public class FluidUtils {
}
return rFluid;
}
+
+ public static Fluid addGTFluid(final String aName, final String aLocalized, final short[] aRGBa, final int aState, final long aTemperatureK, final ItemStack aFullContainer, final ItemStack aEmptyContainer, final int aFluidAmount) {
+ return addGTFluid("molten."+aName, "molten.autogenerated", aLocalized, aRGBa, aState, aTemperatureK, aFullContainer, aEmptyContainer, aFluidAmount);
+ }
+
+ public static Fluid addGTFluid(String aName, final String aTexture, final String aLocalized, final short[] aRGBa, final int aState, final long aTemperatureK, final ItemStack aFullContainer, final ItemStack aEmptyContainer, final int aFluidAmount) {
+ aName = Utils.sanitizeString(aName.toLowerCase());
+ Fluid rFluid = new FluidGT6(aName, aTexture, (aRGBa != null) ? aRGBa : Dyes._NULL.getRGBA());
+ GT_LanguageManager.addStringLocalization(rFluid.getUnlocalizedName(), (aLocalized == null) ? aName : aLocalized);
+ if (FluidRegistry.registerFluid(rFluid)) {
+ switch (aState) {
+ case 0: {
+ rFluid.setGaseous(false);
+ rFluid.setViscosity(10000);
+ break;
+ }
+ case 1:
+ case 4: {
+ rFluid.setGaseous(false);
+ rFluid.setViscosity(1000);
+ break;
+ }
+ case 2: {
+ rFluid.setGaseous(true);
+ rFluid.setDensity(-100);
+ rFluid.setViscosity(200);
+ break;
+ }
+ case 3: {
+ rFluid.setGaseous(true);
+ rFluid.setDensity(-10000);
+ rFluid.setViscosity(10);
+ rFluid.setLuminosity(15);
+ break;
+ }
+ }
+ }
+ else {
+ rFluid = FluidRegistry.getFluid(aName);
+ }
+ if (rFluid.getTemperature() == new Fluid("test").getTemperature() || rFluid.getTemperature() <= 0) {
+ rFluid.setTemperature((int) (aTemperatureK));
+ }
+ if (aFullContainer != null && aEmptyContainer != null && !FluidContainerRegistry.registerFluidContainer(new FluidStack(rFluid, aFluidAmount), aFullContainer, aEmptyContainer)) {
+ GT_Values.RA.addFluidCannerRecipe(aFullContainer, container(aFullContainer, false), null, new FluidStack(rFluid, aFluidAmount));
+ }
+ return rFluid;
+ }
public static boolean valid(final Object aStack) {
return aStack != null && aStack instanceof ItemStack && ((ItemStack)aStack).getItem() != null && ((ItemStack)aStack).stackSize >= 0;
@@ -282,6 +340,6 @@ public class FluidUtils {
public static ItemStack container(final ItemStack aStack, final boolean aCheckIFluidContainerItems, final int aStacksize) {
return amount(aStacksize, container(aStack, aCheckIFluidContainerItems));
- }
+ }
}
diff --git a/src/Java/gtPlusPlus/core/util/gregtech/recipehandlers/GregtechRecipe.java b/src/Java/gtPlusPlus/core/util/gregtech/recipehandlers/GregtechRecipe.java
index d1857ffefc..b10e643831 100644
--- a/src/Java/gtPlusPlus/core/util/gregtech/recipehandlers/GregtechRecipe.java
+++ b/src/Java/gtPlusPlus/core/util/gregtech/recipehandlers/GregtechRecipe.java
@@ -28,7 +28,7 @@ public final class GregtechRecipe {
}
public boolean addSmeltingAndAlloySmeltingRecipe(ItemStack aInput, ItemStack aOutput) {
- Utils.LOG_INFO("Adding a GT Furnace/Alloy Smelter Recipe");
+ Utils.LOG_WARNING("Adding a GT Furnace/Alloy Smelter Recipe"+"| Input:"+aInput.getDisplayName()+" | Output:"+aOutput.getDisplayName()+" |");
return ourProxy.addSmeltingAndAlloySmeltingRecipe(aInput, aOutput);
}
diff --git a/src/Java/gtPlusPlus/core/util/item/UtilsItems.java b/src/Java/gtPlusPlus/core/util/item/ItemUtils.java
index 197482f1ae..69d909f294 100644
--- a/src/Java/gtPlusPlus/core/util/item/UtilsItems.java
+++ b/src/Java/gtPlusPlus/core/util/item/ItemUtils.java
@@ -1,39 +1,27 @@
package gtPlusPlus.core.util.item;
import gregtech.api.enums.Materials;
+import gregtech.api.enums.OrePrefixes;
+import gregtech.api.util.GT_ModHandler;
import gregtech.api.util.GT_OreDictUnificator;
-import gtPlusPlus.core.block.base.BasicBlock.BlockTypes;
-import gtPlusPlus.core.block.base.BlockBaseModular;
import gtPlusPlus.core.item.ModItems;
import gtPlusPlus.core.item.base.BasicSpawnEgg;
-import gtPlusPlus.core.item.base.bolts.BaseItemBolt;
import gtPlusPlus.core.item.base.dusts.BaseItemDust;
import gtPlusPlus.core.item.base.dusts.BaseItemDustUnique;
-import gtPlusPlus.core.item.base.gears.BaseItemGear;
-import gtPlusPlus.core.item.base.ingots.BaseItemIngot;
-import gtPlusPlus.core.item.base.ingots.BaseItemIngotHot;
-import gtPlusPlus.core.item.base.plates.BaseItemPlate;
-import gtPlusPlus.core.item.base.plates.BaseItemPlateDouble;
-import gtPlusPlus.core.item.base.rings.BaseItemRing;
-import gtPlusPlus.core.item.base.rods.BaseItemRod;
-import gtPlusPlus.core.item.base.rods.BaseItemRodLong;
-import gtPlusPlus.core.item.base.rotors.BaseItemRotor;
-import gtPlusPlus.core.item.base.screws.BaseItemScrew;
+import gtPlusPlus.core.item.base.dusts.decimal.BaseItemCentidust;
+import gtPlusPlus.core.item.base.dusts.decimal.BaseItemDecidust;
import gtPlusPlus.core.item.tool.staballoy.MultiPickaxeBase;
+import gtPlusPlus.core.item.tool.staballoy.MultiSpadeBase;
import gtPlusPlus.core.lib.CORE;
import gtPlusPlus.core.lib.LoadedMods;
import gtPlusPlus.core.material.Material;
import gtPlusPlus.core.util.Utils;
-import gtPlusPlus.core.util.fluid.FluidUtils;
import gtPlusPlus.core.util.materials.MaterialUtils;
import gtPlusPlus.core.util.wrapper.var;
-import gtPlusPlus.xmod.gregtech.loaders.RecipeGen_Plates;
import java.util.ArrayList;
import java.util.List;
-import net.minecraft.block.Block;
-import net.minecraft.client.Minecraft;
import net.minecraft.item.Item;
import net.minecraft.item.Item.ToolMaterial;
import net.minecraft.item.ItemStack;
@@ -41,7 +29,7 @@ import net.minecraftforge.fluids.FluidStack;
import net.minecraftforge.oredict.OreDictionary;
import cpw.mods.fml.common.registry.GameRegistry;
-public class UtilsItems {
+public class ItemUtils {
public static ItemStack getSimpleStack(Item x){
return getSimpleStack(x, 1);
@@ -64,6 +52,23 @@ public class UtilsItems {
}
}
+ public static ItemStack getIC2Cell(String S){
+ ItemStack moreTemp = ItemUtils.getItemStackOfAmountFromOreDictNoBroken("cell"+S, 1);
+
+ if (moreTemp == null){
+ int cellID = 0;
+ ItemStack temp =GT_ModHandler.getModItem("IC2", "itemCellEmpty", 1L, cellID);
+ return temp != null ? temp : null;
+ }
+
+ return moreTemp;
+ }
+
+ public static ItemStack getIC2Cell(int meta){
+ ItemStack temp = GT_ModHandler.getModItem("IC2", "itemCellEmpty", 1L, meta);
+ return temp != null ? temp : null;
+ }
+
public static void getItemForOreDict(String FQRN, String oreDictName, String itemName, int meta){
try {
@@ -85,10 +90,10 @@ public class UtilsItems {
Utils.LOG_ERROR(itemName+" not found. [NULL]");
}
}
-
+
public static void addItemToOreDictionary(ItemStack stack, String oreDictName){
try {
- GT_OreDictUnificator.registerOre(oreDictName, stack);
+ GT_OreDictUnificator.registerOre(oreDictName, stack);
} catch (NullPointerException e) {
Utils.LOG_ERROR(stack.getDisplayName()+" not registered. [NULL]");
}
@@ -168,12 +173,12 @@ public class UtilsItems {
ItemStack temp;
if (fqrn.toLowerCase().contains(oreDict.toLowerCase())){
String sanitizedName = fqrn.replace(oreDict, "");
- temp = UtilsItems.getItemStack(sanitizedName, stackSize);
+ temp = ItemUtils.getItemStack(sanitizedName, stackSize);
return temp;
}
String[] fqrnSplit = fqrn.split(":");
if(fqrnSplit[2] == null){fqrnSplit[2] = "0";}
- temp = UtilsItems.getItemStackWithMeta(LoadedMods.MiscUtils, fqrn, fqrnSplit[1], Integer.parseInt(fqrnSplit[2]), stackSize);
+ temp = ItemUtils.getItemStackWithMeta(LoadedMods.MiscUtils, fqrn, fqrnSplit[1], Integer.parseInt(fqrnSplit[2]), stackSize);
return temp;
}
@@ -212,25 +217,12 @@ public class UtilsItems {
return GameRegistry.findItemStack(fqrnSplit[0], fqrnSplit[1], Size);
}*/
- public static Item getItemInPlayersHand(){
- Minecraft mc = Minecraft.getMinecraft();
- Item heldItem = null;
-
- try{heldItem = mc.thePlayer.getHeldItem().getItem();
- }catch(NullPointerException e){return null;}
-
- if (heldItem != null){
- return heldItem;
- }
-
- return null;
- }
public static void generateSpawnEgg(String entityModID, String parSpawnName, int colourEgg, int colourOverlay){
Item itemSpawnEgg = new BasicSpawnEgg(entityModID, parSpawnName, colourEgg, colourOverlay).setUnlocalizedName("spawn_egg_"+parSpawnName.toLowerCase()).setTextureName(CORE.MODID+":spawn_egg");
GameRegistry.registerItem(itemSpawnEgg, "spawnEgg"+parSpawnName);
}
-
+
public static ItemStack[] validItemsForOreDict(String oredictName){
List<?> validNames = MaterialUtils.oreDictValuesForEntry(oredictName);
@@ -244,138 +236,170 @@ public class UtilsItems {
public static ItemStack getItemStackOfAmountFromOreDict(String oredictName, int amount){
ArrayList<ItemStack> oreDictList = OreDictionary.getOres(oredictName);
if (!oreDictList.isEmpty()){
- ItemStack returnValue = oreDictList.get(0).copy();
- returnValue.stackSize = amount;
- return returnValue;
+ ItemStack returnValue = oreDictList.get(0).copy();
+ returnValue.stackSize = amount;
+ return returnValue;
}
- return getSimpleStack(ModItems.AAA_Broken, amount);
+ return getSimpleStack(ModItems.AAA_Broken, amount);
}
-
+
public static ItemStack getItemStackOfAmountFromOreDictNoBroken(String oredictName, int amount){
ItemStack returnValue = getItemStackOfAmountFromOreDict(oredictName, amount);
-
+
if (returnValue.getItem().getClass() != ModItems.AAA_Broken.getClass() || returnValue.getItem() != ModItems.AAA_Broken){
- return returnValue;
- }
- Utils.LOG_INFO(oredictName+" was not valid.");
- return null;
- }
-
- public static void generateItemsFromMaterial(Material matInfo){
-
- String unlocalizedName = matInfo.getUnlocalizedName();
- String materialName = matInfo.getLocalizedName();
- short[] C = matInfo.getRGBA();
- int Colour = Utils.rgbtoHexValue(C[0], C[1], C[2]);
- boolean hotIngot = matInfo.requiresBlastFurnace();
- int materialTier = matInfo.vTier; //TODO
-
- if (materialTier > 10 || materialTier <= 0){
- materialTier = 2;
- }
-
-
-
- int sRadiation = 0;
- if (isRadioactive(materialName)){
- sRadiation = getRadioactivityLevel(materialName);
- }
-
- if (sRadiation >= 1){
- Item temp;
- Block tempBlock;
- tempBlock = new BlockBaseModular(unlocalizedName, materialName,BlockTypes.STANDARD, Colour);
- temp = new BaseItemIngot("itemIngot"+unlocalizedName, materialName, Colour, sRadiation);
-
- temp = new BaseItemDust("itemDust"+unlocalizedName, materialName, matInfo, Colour, "Dust", materialTier, sRadiation);
- temp = new BaseItemDust("itemDustTiny"+unlocalizedName, materialName, matInfo, Colour, "Tiny", materialTier, sRadiation);
- temp = new BaseItemDust("itemDustSmall"+unlocalizedName, materialName, matInfo, Colour, "Small", materialTier, sRadiation);
-
- temp = new BaseItemPlate("itemPlate"+unlocalizedName, materialName, Colour, materialTier, sRadiation);
- temp = new BaseItemRod(matInfo, sRadiation);
- temp = new BaseItemRodLong(matInfo, sRadiation);
- }
-
- else {
- Item temp;
- Block tempBlock;
- tempBlock = new BlockBaseModular(unlocalizedName, materialName,BlockTypes.STANDARD, Colour);
- tempBlock = new BlockBaseModular(unlocalizedName, materialName,BlockTypes.FRAME, Colour);
- temp = new BaseItemIngot("itemIngot"+unlocalizedName, materialName, Colour, sRadiation);
- if (hotIngot){
- Item tempIngot = temp;
- temp = new BaseItemIngotHot("itemHotIngot"+unlocalizedName, materialName, UtilsItems.getSimpleStack(tempIngot, 1), materialTier);
+ return returnValue;
+ }
+ Utils.LOG_INFO(oredictName+" was not valid.");
+ return null;
+ }
+
+ public static ItemStack getItemStackOfAmountFromOreDictNoBrokenExcluding(String excludeModName, String oredictName, int amount){
+ ItemStack returnValue = getItemStackOfAmountFromOreDict(oredictName, amount);
+
+ if (returnValue.getItem().getClass() != ModItems.AAA_Broken.getClass() || returnValue.getItem() != ModItems.AAA_Broken){
+ if (returnValue.getClass().toString().toLowerCase().contains(excludeModName.toLowerCase())){
+ ArrayList<ItemStack> oreDictList = OreDictionary.getOres(oredictName);
+ if (!oreDictList.isEmpty()){
+ returnValue = oreDictList.get(1).copy();
+ returnValue.stackSize = amount;
+ return returnValue;