diff options
Diffstat (limited to 'src/Java/gtPlusPlus/core')
-rw-r--r-- | src/Java/gtPlusPlus/core/item/ModItems.java | 68 | ||||
-rw-r--r-- | src/Java/gtPlusPlus/core/material/Material.java | 6 | ||||
-rw-r--r-- | src/Java/gtPlusPlus/core/material/MaterialGenerator.java | 108 | ||||
-rw-r--r-- | src/Java/gtPlusPlus/core/util/array/ArrayUtils.java | 18 | ||||
-rw-r--r-- | src/Java/gtPlusPlus/core/util/item/ItemUtils.java | 89 | ||||
-rw-r--r-- | src/Java/gtPlusPlus/core/util/materials/MaterialUtils.java | 2 |
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; } |