aboutsummaryrefslogtreecommitdiff
path: root/src/Java/gtPlusPlus/core
diff options
context:
space:
mode:
Diffstat (limited to 'src/Java/gtPlusPlus/core')
-rw-r--r--src/Java/gtPlusPlus/core/item/ModItems.java68
-rw-r--r--src/Java/gtPlusPlus/core/material/Material.java6
-rw-r--r--src/Java/gtPlusPlus/core/material/MaterialGenerator.java108
-rw-r--r--src/Java/gtPlusPlus/core/util/array/ArrayUtils.java18
-rw-r--r--src/Java/gtPlusPlus/core/util/item/ItemUtils.java89
-rw-r--r--src/Java/gtPlusPlus/core/util/materials/MaterialUtils.java2
6 files changed, 165 insertions, 126 deletions
diff --git a/src/Java/gtPlusPlus/core/item/ModItems.java b/src/Java/gtPlusPlus/core/item/ModItems.java
index c36bdf175d..21d3ff8db7 100644
--- a/src/Java/gtPlusPlus/core/item/ModItems.java
+++ b/src/Java/gtPlusPlus/core/item/ModItems.java
@@ -2,7 +2,6 @@ package gtPlusPlus.core.item;
import static gtPlusPlus.core.creative.AddToCreativeTab.tabMachines;
import static gtPlusPlus.core.creative.AddToCreativeTab.tabMisc;
import static gtPlusPlus.core.lib.CORE.LOAD_ALL_CONTENT;
-import static gtPlusPlus.core.util.item.ItemUtils.generateItemsFromMaterial;
import gregtech.api.enums.Materials;
import gregtech.api.util.GT_OreDictUnificator;
import gtPlusPlus.core.common.compat.COMPAT_Baubles;
@@ -31,6 +30,7 @@ import gtPlusPlus.core.lib.CORE.configSwitches;
import gtPlusPlus.core.lib.LoadedMods;
import gtPlusPlus.core.material.ALLOY;
import gtPlusPlus.core.material.ELEMENT;
+import gtPlusPlus.core.material.MaterialGenerator;
import gtPlusPlus.core.util.Utils;
import gtPlusPlus.core.util.debug.DEBUG_INIT;
import gtPlusPlus.core.util.item.ItemUtils;
@@ -206,59 +206,59 @@ public final class ModItems {
//Elements generate first so they can be used in compounds.
//Uranium-233 is a fissile isotope of uranium that is bred from thorium-232 as part of the thorium fuel cycle.
- generateItemsFromMaterial(ELEMENT.getInstance().URANIUM233);
- generateItemsFromMaterial(ELEMENT.getInstance().ZIRCONIUM);
+ MaterialGenerator.generateItemsFromMaterial(ELEMENT.getInstance().URANIUM233);
+ MaterialGenerator.generateItemsFromMaterial(ELEMENT.getInstance().ZIRCONIUM);
//Carbides - Tungsten Carbide exists in .09 so don't generate it. - Should still come before alloys though
if (!CORE.MAIN_GREGTECH_5U_EXPERIMENTAL_FORK){
- generateItemsFromMaterial(ALLOY.TUNGSTEN_CARBIDE);
+ MaterialGenerator.generateItemsFromMaterial(ALLOY.TUNGSTEN_CARBIDE);
}
- generateItemsFromMaterial(ALLOY.SILICON_CARBIDE);
- generateItemsFromMaterial(ALLOY.ZIRCONIUM_CARBIDE);
- generateItemsFromMaterial(ALLOY.TANTALUM_CARBIDE);
- generateItemsFromMaterial(ALLOY.NIOBIUM_CARBIDE);
+ MaterialGenerator.generateItemsFromMaterial(ALLOY.SILICON_CARBIDE);
+ MaterialGenerator.generateItemsFromMaterial(ALLOY.ZIRCONIUM_CARBIDE);
+ MaterialGenerator.generateItemsFromMaterial(ALLOY.TANTALUM_CARBIDE);
+ MaterialGenerator.generateItemsFromMaterial(ALLOY.NIOBIUM_CARBIDE);
//Generate some Alloys
- generateItemsFromMaterial(ALLOY.ENERGYCRYSTAL);
- generateItemsFromMaterial(ALLOY.BLOODSTEEL);
- generateItemsFromMaterial(ALLOY.BEDROCKIUM);
+ MaterialGenerator.generateItemsFromMaterial(ALLOY.ENERGYCRYSTAL);
+ MaterialGenerator.generateItemsFromMaterial(ALLOY.BLOODSTEEL);
+ MaterialGenerator.generateItemsFromMaterial(ALLOY.BEDROCKIUM);
- generateItemsFromMaterial(ALLOY.STABALLOY);
- generateItemsFromMaterial(ALLOY.TANTALLOY_60);
- generateItemsFromMaterial(ALLOY.TANTALLOY_61);
+ MaterialGenerator.generateItemsFromMaterial(ALLOY.STABALLOY);
+ MaterialGenerator.generateItemsFromMaterial(ALLOY.TANTALLOY_60);
+ MaterialGenerator.generateItemsFromMaterial(ALLOY.TANTALLOY_61);
- generateItemsFromMaterial(ALLOY.INCONEL_625);
- generateItemsFromMaterial(ALLOY.INCONEL_690);
- generateItemsFromMaterial(ALLOY.INCONEL_792);
+ MaterialGenerator.generateItemsFromMaterial(ALLOY.INCONEL_625);
+ MaterialGenerator.generateItemsFromMaterial(ALLOY.INCONEL_690);
+ MaterialGenerator.generateItemsFromMaterial(ALLOY.INCONEL_792);
- generateItemsFromMaterial(ALLOY.ZERON_100);
+ MaterialGenerator.generateItemsFromMaterial(ALLOY.ZERON_100);
- generateItemsFromMaterial(ALLOY.MARAGING250);
- generateItemsFromMaterial(ALLOY.MARAGING300);
- generateItemsFromMaterial(ALLOY.MARAGING350);
+ MaterialGenerator.generateItemsFromMaterial(ALLOY.MARAGING250);
+ MaterialGenerator.generateItemsFromMaterial(ALLOY.MARAGING300);
+ MaterialGenerator.generateItemsFromMaterial(ALLOY.MARAGING350);
- generateItemsFromMaterial(ALLOY.STELLITE);
- generateItemsFromMaterial(ALLOY.TALONITE);
+ MaterialGenerator.generateItemsFromMaterial(ALLOY.STELLITE);
+ MaterialGenerator.generateItemsFromMaterial(ALLOY.TALONITE);
//Tumbaga was the name given by Spaniards to a non-specific alloy of gold and copper
- generateItemsFromMaterial(ALLOY.TUMBAGA);
+ MaterialGenerator.generateItemsFromMaterial(ALLOY.TUMBAGA);
//Potin is traditionally an alloy of bronze, tin and lead, with varying quantities of each possible
- generateItemsFromMaterial(ALLOY.POTIN);
+ MaterialGenerator.generateItemsFromMaterial(ALLOY.POTIN);
- generateItemsFromMaterial(ALLOY.HASTELLOY_W);
- generateItemsFromMaterial(ALLOY.HASTELLOY_X);
- generateItemsFromMaterial(ALLOY.HASTELLOY_C276);
- generateItemsFromMaterial(ALLOY.HASTELLOY_N);
+ MaterialGenerator.generateItemsFromMaterial(ALLOY.HASTELLOY_W);
+ MaterialGenerator.generateItemsFromMaterial(ALLOY.HASTELLOY_X);
+ MaterialGenerator.generateItemsFromMaterial(ALLOY.HASTELLOY_C276);
+ MaterialGenerator.generateItemsFromMaterial(ALLOY.HASTELLOY_N);
- generateItemsFromMaterial(ALLOY.INCOLOY_020);
- generateItemsFromMaterial(ALLOY.INCOLOY_DS);
- generateItemsFromMaterial(ALLOY.INCOLOY_MA956);
+ MaterialGenerator.generateItemsFromMaterial(ALLOY.INCOLOY_020);
+ MaterialGenerator.generateItemsFromMaterial(ALLOY.INCOLOY_DS);
+ MaterialGenerator.generateItemsFromMaterial(ALLOY.INCOLOY_MA956);
//Leagrisium
- generateItemsFromMaterial(ALLOY.LEAGRISIUM);
+ MaterialGenerator.generateItemsFromMaterial(ALLOY.LEAGRISIUM);
//Must be the final Alloy to Generate
- generateItemsFromMaterial(ALLOY.QUANTUM);
+ MaterialGenerator.generateItemsFromMaterial(ALLOY.QUANTUM);
} catch (Throwable r){
Utils.LOG_INFO("Failed to Generated a Material. "+r.getMessage());
diff --git a/src/Java/gtPlusPlus/core/material/Material.java b/src/Java/gtPlusPlus/core/material/Material.java
index d73ac96bec..893b310ba4 100644
--- a/src/Java/gtPlusPlus/core/material/Material.java
+++ b/src/Java/gtPlusPlus/core/material/Material.java
@@ -27,7 +27,7 @@ public class Material {
protected Object dataVar;
- private ArrayList<MaterialStack> vMaterialInput;
+ private ArrayList<MaterialStack> vMaterialInput = new ArrayList<MaterialStack>();
public final long[] vSmallestRatio;
private final short[] RGBA;
@@ -98,7 +98,7 @@ public class Material {
if (inputs.length != 0){
for (int i=0; i < inputs.length; i++){
if (inputs[i] != null){
- this.vMaterialInput.set(i, inputs[i]);
+ this.vMaterialInput.add(i, inputs[i]);
}
}
}
@@ -288,6 +288,7 @@ public class Material {
final public ItemStack[] getMaterialComposites(){
//Utils.LOG_WARNING("Something requested the materials needed for "+localizedName);
+ if (vMaterialInput != null){
if (!vMaterialInput.isEmpty()){
ItemStack[] temp = new ItemStack[vMaterialInput.size()];
for (int i=0;i<vMaterialInput.size();i++){
@@ -310,6 +311,7 @@ public class Material {
}
return temp;
}
+ }
return new ItemStack[]{};
}
diff --git a/src/Java/gtPlusPlus/core/material/MaterialGenerator.java b/src/Java/gtPlusPlus/core/material/MaterialGenerator.java
new file mode 100644
index 0000000000..55014f5ee8
--- /dev/null
+++ b/src/Java/gtPlusPlus/core/material/MaterialGenerator.java
@@ -0,0 +1,108 @@
+package gtPlusPlus.core.material;
+
+import gtPlusPlus.core.block.base.BasicBlock.BlockTypes;
+import gtPlusPlus.core.block.base.BlockBaseModular;
+import gtPlusPlus.core.item.base.bolts.BaseItemBolt;
+import gtPlusPlus.core.item.base.dusts.BaseItemDust;
+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.nugget.BaseItemNugget;
+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.util.Utils;
+import gtPlusPlus.core.util.item.ItemUtils;
+import gtPlusPlus.xmod.gregtech.loaders.RecipeGen_BlastSmelter;
+import gtPlusPlus.xmod.gregtech.loaders.RecipeGen_DustGeneration;
+import gtPlusPlus.xmod.gregtech.loaders.RecipeGen_Extruder;
+import gtPlusPlus.xmod.gregtech.loaders.RecipeGen_Plates;
+import gtPlusPlus.xmod.gregtech.loaders.RecipeGen_ShapedCrafting;
+import net.minecraft.block.Block;
+import net.minecraft.item.Item;
+
+public class MaterialGenerator implements Runnable {
+
+ final Material toGenerate;
+
+ public MaterialGenerator(final Material M){
+ this.toGenerate = M;
+ }
+
+ @Override
+ public void run() {
+ generateItemsFromMaterial(toGenerate);
+ }
+
+
+ public static void generateItemsFromMaterial(final 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 (ItemUtils.isRadioactive(materialName)){
+ sRadiation = ItemUtils.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 BaseItemNugget(matInfo);
+ temp = new BaseItemPlate(matInfo);
+ temp = new BaseItemRod(matInfo);
+ temp = new BaseItemRodLong(matInfo);
+ }
+
+ 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, ItemUtils.getSimpleStack(tempIngot, 1), materialTier);
+ }
+ 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 BaseItemNugget(matInfo);
+ temp = new BaseItemPlate(matInfo);
+ temp = new BaseItemPlateDouble(matInfo);
+ temp = new BaseItemBolt(matInfo);
+ temp = new BaseItemRod(matInfo);
+ temp = new BaseItemRodLong(matInfo);
+ temp = new BaseItemRing(matInfo);
+ temp = new BaseItemScrew(matInfo);
+ temp = new BaseItemRotor(matInfo);
+ temp = new BaseItemGear(matInfo);
+ }
+
+ //Add A jillion Recipes
+ RecipeGen_Plates.generateRecipes(matInfo);
+ RecipeGen_Extruder.generateRecipes(matInfo);
+ RecipeGen_ShapedCrafting.generateRecipes(matInfo);
+ RecipeGen_DustGeneration.generateRecipes(matInfo);
+ RecipeGen_BlastSmelter.generateARecipe(matInfo);
+
+ }
+
+}
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/item/ItemUtils.java b/src/Java/gtPlusPlus/core/util/item/ItemUtils.java
index 39cdaacdb6..69d909f294 100644
--- a/src/Java/gtPlusPlus/core/util/item/ItemUtils.java
+++ b/src/Java/gtPlusPlus/core/util/item/ItemUtils.java
@@ -4,26 +4,12 @@ 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.dusts.decimal.BaseItemCentidust;
import gtPlusPlus.core.item.base.dusts.decimal.BaseItemDecidust;
-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.nugget.BaseItemNugget;
-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.tool.staballoy.MultiPickaxeBase;
import gtPlusPlus.core.item.tool.staballoy.MultiSpadeBase;
import gtPlusPlus.core.lib.CORE;
@@ -32,16 +18,10 @@ import gtPlusPlus.core.material.Material;
import gtPlusPlus.core.util.Utils;
import gtPlusPlus.core.util.materials.MaterialUtils;
import gtPlusPlus.core.util.wrapper.var;
-import gtPlusPlus.xmod.gregtech.loaders.RecipeGen_BlastSmelter;
-import gtPlusPlus.xmod.gregtech.loaders.RecipeGen_DustGeneration;
-import gtPlusPlus.xmod.gregtech.loaders.RecipeGen_Extruder;
-import gtPlusPlus.xmod.gregtech.loaders.RecipeGen_Plates;
-import gtPlusPlus.xmod.gregtech.loaders.RecipeGen_ShapedCrafting;
import java.util.ArrayList;
import java.util.List;
-import net.minecraft.block.Block;
import net.minecraft.item.Item;
import net.minecraft.item.Item.ToolMaterial;
import net.minecraft.item.ItemStack;
@@ -299,75 +279,6 @@ public class ItemUtils {
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 BaseItemNugget(matInfo);
- temp = new BaseItemPlate(matInfo);
- temp = new BaseItemRod(matInfo);
- temp = new BaseItemRodLong(matInfo);
- }
-
- 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, ItemUtils.getSimpleStack(tempIngot, 1), materialTier);
- }
- 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 BaseItemNugget(matInfo);
- temp = new BaseItemPlate(matInfo);
- temp = new BaseItemPlateDouble(matInfo);
- temp = new BaseItemBolt(matInfo);
- temp = new BaseItemRod(matInfo);
- temp = new BaseItemRodLong(matInfo);
- temp = new BaseItemRing(matInfo);
- temp = new BaseItemScrew(matInfo);
- temp = new BaseItemRotor(matInfo);
- temp = new BaseItemGear(matInfo);
- }
-
- //Add A jillion Recipes
- RecipeGen_Plates.generateRecipes(matInfo);
- RecipeGen_Extruder.generateRecipes(matInfo);
- RecipeGen_ShapedCrafting.generateRecipes(matInfo);
- RecipeGen_DustGeneration.generateRecipes(matInfo);
- RecipeGen_BlastSmelter.generateARecipe(matInfo);
-
- }
-
public static Item[] generateDusts(String unlocalizedName, String materialName, int materialTier, Material matInfo, int Colour){
int radioactive = getRadioactivityLevel(materialName);
Item[] output = {
diff --git a/src/Java/gtPlusPlus/core/util/materials/MaterialUtils.java b/src/Java/gtPlusPlus/core/util/materials/MaterialUtils.java
index dac1162357..1ccb0f771c 100644
--- a/src/Java/gtPlusPlus/core/util/materials/MaterialUtils.java
+++ b/src/Java/gtPlusPlus/core/util/materials/MaterialUtils.java
@@ -77,7 +77,7 @@ public class MaterialUtils {
50, //Protons
50, //Neutrons
false,
- null,
+ "",
sRadioactivity);
return temp;
}