diff options
author | bartimaeusnek <33183715+bartimaeusnek@users.noreply.github.com> | 2019-08-01 20:54:35 +0200 |
---|---|---|
committer | bartimaeusnek <33183715+bartimaeusnek@users.noreply.github.com> | 2019-08-01 20:54:35 +0200 |
commit | e7f82a6de66c07ba7b4d5b683e681a34925be023 (patch) | |
tree | 0a22af61c0223ada8b3138bc5b9c3e7b8e6e8117 /src/main | |
parent | 151888e7cf33f50f4ec887e1af6e334b44d94909 (diff) | |
download | GT5-Unofficial-e7f82a6de66c07ba7b4d5b683e681a34925be023.tar.gz GT5-Unofficial-e7f82a6de66c07ba7b4d5b683e681a34925be023.tar.bz2 GT5-Unofficial-e7f82a6de66c07ba7b4d5b683e681a34925be023.zip |
finalised circuit recipe gen
+fixed lowgravity/cleanroom mismatch
+fixed name of "Magneto Resonatic Dust"
+fixed Electric implosion generator not working
Signed-off-by: bartimaeusnek <33183715+bartimaeusnek@users.noreply.github.com>
Former-commit-id: 2ebdf8661cc9db030a355b8d7570cb8539be0cc2
Diffstat (limited to 'src/main')
8 files changed, 247 insertions, 143 deletions
diff --git a/src/main/java/com/github/bartimaeusnek/bartworks/MainMod.java b/src/main/java/com/github/bartimaeusnek/bartworks/MainMod.java index aa5d3f63f4..bca700773a 100644 --- a/src/main/java/com/github/bartimaeusnek/bartworks/MainMod.java +++ b/src/main/java/com/github/bartimaeusnek/bartworks/MainMod.java @@ -165,34 +165,17 @@ public final class MainMod { new CircuitImprintLoader().run(); } - private void addElectricImplosionCompressorRecipes(){ + private void addElectricImplosionCompressorRecipes() { if (eicMap == null) { eicMap = new GT_Recipe.GT_Recipe_Map(new HashSet<GT_Recipe>(GT_Recipe.GT_Recipe_Map.sImplosionRecipes.mRecipeList.size()), "gt.recipe.electricimplosioncompressor", "Electric Implosion Compressor", (String) null, "gregtech:textures/gui/basicmachines/Default", 1, 2, 1, 0, 1, "", 1, "", true, true); - recipeLoop: for (GT_Recipe recipe : GT_Recipe.GT_Recipe_Map.sImplosionRecipes.mRecipeList) { if (recipe == null || recipe.mInputs == null) continue; - try { - ItemStack input = recipe.mInputs[0]; - int i = 0; - if (this.checkForExplosives(recipe.mInputs[1])) { - continue; - } - while (this.checkForExplosives(input)) { - if (GT_Utility.areStacksEqual(input, GT_ModHandler.getIC2Item("industrialTnt", 1L))) { - i++; - input = recipe.mInputs[i]; - } - else - continue recipeLoop; - - } - - eicMap.addRecipe(true, new ItemStack[]{input}, recipe.mOutputs, null, null, null, recipe.mDuration, BW_Util.getMachineVoltageFromTier(10), 0); - } catch (ArrayIndexOutOfBoundsException e) { - MainMod.LOGGER.error("CAUGHT DEFECTIVE IMPLOSION COMPRESSOR RECIPE!"); - e.printStackTrace(); - } + HashSet<ItemStack> inputs = new HashSet<>(); + for (ItemStack is : recipe.mInputs) + if (!this.checkForExplosives(is)) + inputs.add(is); + eicMap.addRecipe(true, inputs.toArray(new ItemStack[0]), recipe.mOutputs, null, null, null, recipe.mDuration, BW_Util.getMachineVoltageFromTier(10), 0); } } } diff --git a/src/main/java/com/github/bartimaeusnek/bartworks/system/material/CircuitGeneration/BW_CircuitsLoader.java b/src/main/java/com/github/bartimaeusnek/bartworks/system/material/CircuitGeneration/BW_CircuitsLoader.java index 5bd182c6c0..36dc620685 100644 --- a/src/main/java/com/github/bartimaeusnek/bartworks/system/material/CircuitGeneration/BW_CircuitsLoader.java +++ b/src/main/java/com/github/bartimaeusnek/bartworks/system/material/CircuitGeneration/BW_CircuitsLoader.java @@ -33,16 +33,16 @@ public class BW_CircuitsLoader { static { NEW_CIRCUITS = new BW_Meta_Items(); - BW_CircuitsLoader.NEW_CIRCUITS.addNewCircuit(0,1, "Primitive Magneto Resonatic Circuit"); - BW_CircuitsLoader.NEW_CIRCUITS.addNewCircuit(1,2, "Basic Magneto Resonatic Circuit"); - BW_CircuitsLoader.NEW_CIRCUITS.addNewCircuit(2,3, "Good Magneto Resonatic Circuit"); - BW_CircuitsLoader.NEW_CIRCUITS.addNewCircuit(3,4, "Advanced Magneto Resonatic Circuit"); - BW_CircuitsLoader.NEW_CIRCUITS.addNewCircuit(4,5, "Data Magneto Resonatic Circuit"); - BW_CircuitsLoader.NEW_CIRCUITS.addNewCircuit(5,6, "Elite Magneto Resonatic Circuit"); - BW_CircuitsLoader.NEW_CIRCUITS.addNewCircuit(6,7, "Master Magneto Resonatic Circuit"); - BW_CircuitsLoader.NEW_CIRCUITS.addNewCircuit(7,8, "Ultimate Magneto Resonatic Circuit"); - BW_CircuitsLoader.NEW_CIRCUITS.addNewCircuit(8,9, "Superconductor Magneto Resonatic Circuit"); - BW_CircuitsLoader.NEW_CIRCUITS.addNewCircuit(9,10, "Infinite Magneto Resonatic Circuit"); - BW_CircuitsLoader.NEW_CIRCUITS.addNewCircuit(10,11, "Bio Magneto Resonatic Circuit"); + BW_CircuitsLoader.NEW_CIRCUITS.addNewCircuit(0,4, "Primitive Magneto Resonatic Circuit"); + BW_CircuitsLoader.NEW_CIRCUITS.addNewCircuit(1,5, "Basic Magneto Resonatic Circuit"); + BW_CircuitsLoader.NEW_CIRCUITS.addNewCircuit(2,6, "Good Magneto Resonatic Circuit"); + BW_CircuitsLoader.NEW_CIRCUITS.addNewCircuit(3,7, "Advanced Magneto Resonatic Circuit"); + BW_CircuitsLoader.NEW_CIRCUITS.addNewCircuit(4,8, "Data Magneto Resonatic Circuit"); + BW_CircuitsLoader.NEW_CIRCUITS.addNewCircuit(5,9, "Elite Magneto Resonatic Circuit"); + BW_CircuitsLoader.NEW_CIRCUITS.addNewCircuit(6,10, "Master Magneto Resonatic Circuit"); + BW_CircuitsLoader.NEW_CIRCUITS.addNewCircuit(7,11, "Ultimate Magneto Resonatic Circuit"); + BW_CircuitsLoader.NEW_CIRCUITS.addNewCircuit(8,12, "Superconductor Magneto Resonatic Circuit"); + BW_CircuitsLoader.NEW_CIRCUITS.addNewCircuit(9,13, "Infinite Magneto Resonatic Circuit"); + BW_CircuitsLoader.NEW_CIRCUITS.addNewCircuit(10,14, "Bio Magneto Resonatic Circuit"); } }
\ No newline at end of file diff --git a/src/main/java/com/github/bartimaeusnek/bartworks/system/material/CircuitGeneration/BW_Meta_Items.java b/src/main/java/com/github/bartimaeusnek/bartworks/system/material/CircuitGeneration/BW_Meta_Items.java index 0048353a3e..0cee76a61d 100644 --- a/src/main/java/com/github/bartimaeusnek/bartworks/system/material/CircuitGeneration/BW_Meta_Items.java +++ b/src/main/java/com/github/bartimaeusnek/bartworks/system/material/CircuitGeneration/BW_Meta_Items.java @@ -25,32 +25,30 @@ package com.github.bartimaeusnek.bartworks.system.material.CircuitGeneration; import com.github.bartimaeusnek.bartworks.MainMod; import com.github.bartimaeusnek.bartworks.common.configs.ConfigHandler; import com.github.bartimaeusnek.bartworks.common.loaders.ItemRegistry; +import com.github.bartimaeusnek.bartworks.system.material.WerkstoffLoader; import com.github.bartimaeusnek.bartworks.system.oredict.OreDictAdder; +import com.github.bartimaeusnek.bartworks.util.BWRecipes; import com.github.bartimaeusnek.bartworks.util.BW_Util; import com.github.bartimaeusnek.bartworks.util.ChatColorHelper; import com.github.bartimaeusnek.bartworks.util.Pair; import cpw.mods.fml.relauncher.Side; import cpw.mods.fml.relauncher.SideOnly; import gregtech.api.GregTech_API; -import gregtech.api.enums.Materials; -import gregtech.api.enums.OrePrefixes; -import gregtech.api.enums.SubTag; -import gregtech.api.enums.TC_Aspects; +import gregtech.api.enums.*; import gregtech.api.interfaces.IItemBehaviour; import gregtech.api.interfaces.IItemContainer; import gregtech.api.items.GT_MetaBase_Item; import gregtech.api.objects.ItemData; -import gregtech.api.util.GT_Config; -import gregtech.api.util.GT_LanguageManager; -import gregtech.api.util.GT_OreDictUnificator; -import gregtech.api.util.GT_Utility; +import gregtech.api.util.*; import net.minecraft.client.renderer.texture.IIconRegister; import net.minecraft.creativetab.CreativeTabs; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.item.Item; import net.minecraft.item.ItemStack; +import net.minecraft.nbt.NBTTagCompound; import net.minecraft.util.IIcon; import net.minecraft.util.StatCollector; +import net.minecraftforge.fluids.FluidStack; import java.util.ArrayList; import java.util.BitSet; @@ -66,6 +64,14 @@ public class BW_Meta_Items { private static final BW_Meta_Items.BW_GT_MetaGenCircuits NEWCIRCUITS = new BW_Meta_Items.BW_GT_MetaGenCircuits(); + static{ + BW_Meta_Items.NEWCIRCUITS.addItem(0,"Circuit Imprint","",SubTag.NO_UNIFICATION,SubTag.NO_RECYCLING); + BW_Meta_Items.NEWCIRCUITS.addItem(1,"Sliced Circuit","",SubTag.NO_UNIFICATION,SubTag.NO_RECYCLING); + BW_Meta_Items.NEWCIRCUITS.addItem(2,"Raw Imprint supporting Board","A Raw Board needed for Circuit Imprints"); + BW_Meta_Items.NEWCIRCUITS.addItem(3,"Imprint supporting Board","A Board needed for Circuit Imprints"); + GT_Values.RA.addFormingPressRecipe(WerkstoffLoader.MagnetoResonaticDust.get(OrePrefixes.dust,1),WerkstoffLoader.ArInGaPhoBiBoTe.get(OrePrefixes.dust,4),BW_Meta_Items.NEWCIRCUITS.getStack(2),300,480); + GT_Recipe.GT_Recipe_Map.sAutoclaveRecipes.add(new BWRecipes.DynamicGTRecipe(false,new ItemStack[]{BW_Meta_Items.NEWCIRCUITS.getStack(2)},new ItemStack[]{BW_Meta_Items.NEWCIRCUITS.getStack(3)},null,new int[]{7500},new FluidStack[]{Materials.SolderingAlloy.getMolten(576)},null,300,BW_Util.getMachineVoltageFromTier(4),BW_Util.CLEANROOM)); + } public void addNewCircuit(int aTier, int aID, String aName){ @@ -102,7 +108,7 @@ public class BW_Meta_Items { } public final ItemStack addCircuit(int aID, String aEnglish, String aToolTip, int tier){ - CircuitImprintLoader.bwCircuitTagMap.put(new CircuitData(BW_Util.getMachineVoltageFromTier(tier-2),0,(byte)tier), CircuitImprintLoader.getTagFromStack(new ItemStack(BW_Meta_Items.NEWCIRCUITS,1,aID))); + CircuitImprintLoader.bwCircuitTagMap.put(new CircuitData(BW_Util.getMachineVoltageFromTier(tier-2),tier > 2 ? BW_Util.CLEANROOM : 0,(byte)tier), CircuitImprintLoader.getTagFromStack(new ItemStack(BW_Meta_Items.NEWCIRCUITS,1,aID))); return this.addItem(aID, aEnglish, aToolTip,SubTag.NO_UNIFICATION); } @@ -118,6 +124,46 @@ public class BW_Meta_Items { ret.stackSize=meta_amount[1]; return ret; } + + public final ItemStack getStackWithNBT(NBTTagCompound tag, int... meta_amount){ + ItemStack ret = this.getStack(meta_amount); + ret.setTagCompound(tag); + return ret; + } + + @SideOnly(Side.CLIENT) + public final void registerIcons(IIconRegister aIconRegister) { + + for(short i = 0; i < CircuitImprintLoader.reverseIDs; ++i) { + if (this.mEnabledItems.get(i)) { + BW_Util.set2DCoordTo1DArray(i,0,2,aIconRegister.registerIcon("gregtech:" + (GT_Config.troll ? "troll" : this.getUnlocalizedName() + "/" + i)),this.mIconList); + } + } + + for (short i = CircuitImprintLoader.reverseIDs; i < Short.MAX_VALUE; i++) { + if (this.mEnabledItems.get(i)) { + BW_Util.set2DCoordTo1DArray(i,0,2,CircuitImprintLoader.circuitIIconRefs.get(i).get(1).getIconIndex(),this.mIconList); + BW_Util.set2DCoordTo1DArray(i,1,2,aIconRegister.registerIcon(MainMod.MOD_ID+":WrapOverlay"),this.mIconList); + //aIconRegister.registerIcon("gregtech:" + (GT_Config.troll ? "troll" : this.getUnlocalizedName() + "/" + i)); + } + } + + } + + @Override + protected void addAdditionalToolTips(List aList, ItemStack aStack, EntityPlayer aPlayer) { + if (aStack.getItemDamage() == 0 ) + if (aStack.getTagCompound() != null && CircuitImprintLoader.getStackFromTag(aStack.getTagCompound()) != null) + aList.add("An Imprint for: "+GT_LanguageManager.getTranslation(GT_LanguageManager.getTranslateableItemStackName(CircuitImprintLoader.getStackFromTag(aStack.getTagCompound())))); + else + aList.add("An Imprint for a Circuit"); + else if (aStack.getItemDamage() == 1 ) + if (aStack.getTagCompound() != null && CircuitImprintLoader.getStackFromTag(aStack.getTagCompound()) != null) + aList.add("A Sliced "+GT_LanguageManager.getTranslation(GT_LanguageManager.getTranslateableItemStackName(CircuitImprintLoader.getStackFromTag(aStack.getTagCompound())))); + else + aList.add("A Sliced Circuit"); + super.addAdditionalToolTips(aList, aStack, aPlayer); + } } public static class BW_GT_MetaGen_Item_Hook extends GT_MetaBase_Item { @@ -231,25 +277,6 @@ public class BW_Meta_Items { } - @SideOnly(Side.CLIENT) - public final void registerIcons(IIconRegister aIconRegister) { - - for(short i = 0; i < CircuitImprintLoader.reverseIDs; ++i) { - if (this.mEnabledItems.get(i)) { - BW_Util.set2DCoordTo1DArray(i,0,2,aIconRegister.registerIcon("gregtech:" + (GT_Config.troll ? "troll" : this.getUnlocalizedName() + "/" + i)),this.mIconList); - } - } - - for (short i = CircuitImprintLoader.reverseIDs; i < Short.MAX_VALUE; i++) { - if (this.mEnabledItems.get(i)) { - BW_Util.set2DCoordTo1DArray(i,0,2,CircuitImprintLoader.circuitIIconRefs.get(i).get(1).getIconIndex(),this.mIconList); - BW_Util.set2DCoordTo1DArray(i,1,2,aIconRegister.registerIcon(MainMod.MOD_ID+":WrapOverlay"),this.mIconList); - //aIconRegister.registerIcon("gregtech:" + (GT_Config.troll ? "troll" : this.getUnlocalizedName() + "/" + i)); - } - } - - } - @Override protected void addAdditionalToolTips(List aList, ItemStack aStack, EntityPlayer aPlayer) { super.addAdditionalToolTips(aList, aStack, aPlayer); @@ -270,12 +297,12 @@ public class BW_Meta_Items { @Override public IIcon getIcon(ItemStack stack, int renderPass, EntityPlayer player, ItemStack usingItem, int useRemaining) { - return getIconFromDamage(stack.getItemDamage()); + return this.getIconFromDamage(stack.getItemDamage()); } @Override public IIcon getIcon(ItemStack stack, int pass) { - return getIconFromDamage(stack.getItemDamage()); + return this.getIconFromDamage(stack.getItemDamage()); } } }
\ No newline at end of file diff --git a/src/main/java/com/github/bartimaeusnek/bartworks/system/material/CircuitGeneration/CircuitImprintLoader.java b/src/main/java/com/github/bartimaeusnek/bartworks/system/material/CircuitGeneration/CircuitImprintLoader.java index bd49c3e64f..bc0c15b162 100644 --- a/src/main/java/com/github/bartimaeusnek/bartworks/system/material/CircuitGeneration/CircuitImprintLoader.java +++ b/src/main/java/com/github/bartimaeusnek/bartworks/system/material/CircuitGeneration/CircuitImprintLoader.java @@ -22,27 +22,26 @@ package com.github.bartimaeusnek.bartworks.system.material.CircuitGeneration; +import com.github.bartimaeusnek.bartworks.system.material.WerkstoffLoader; import com.github.bartimaeusnek.bartworks.util.BWRecipes; +import com.github.bartimaeusnek.bartworks.util.BW_Util; import com.google.common.collect.ArrayListMultimap; import com.google.common.collect.BiMap; import com.google.common.collect.HashBiMap; -import gregtech.api.enums.GT_Values; import gregtech.api.enums.ItemList; import gregtech.api.enums.Materials; -import gregtech.api.util.GT_LanguageManager; +import gregtech.api.enums.OrePrefixes; +import gregtech.api.util.GT_ModHandler; +import gregtech.api.util.GT_OreDictUnificator; import gregtech.api.util.GT_Recipe; import gregtech.api.util.GT_Utility; -import net.minecraft.init.Blocks; import net.minecraft.item.ItemStack; import net.minecraft.nbt.NBTTagCompound; import net.minecraftforge.oredict.OreDictionary; -import java.util.ArrayList; import java.util.HashSet; import java.util.Iterator; -import static gregtech.api.enums.ItemList.*; - public class CircuitImprintLoader implements Runnable { static final ArrayListMultimap<NBTTagCompound,GT_Recipe> recipeTagMap = ArrayListMultimap.create(); @@ -61,62 +60,12 @@ public class CircuitImprintLoader implements Runnable { return ItemStack.loadItemStackFromNBT(tagCompound); } - public static void makeCircuitParts() { - ItemList[] itemLists = values(); - for (ItemList single : itemLists) { - if (!single.hasBeenSet()) - continue; - if ( - single.toString().contains("Wafer") || - single.toString().contains("Circuit_Silicon_Ingot") || - single.toString().contains("Raw") || - single.toString().contains("raw") || - single.toString().contains("Glass_Tube") || - single == Circuit_Parts_GlassFiber || - single == Circuit_Parts_Advanced || - single == Circuit_Parts_Wiring_Advanced || - single == Circuit_Parts_Wiring_Elite || - single == Circuit_Parts_Wiring_Basic || - single == Circuit_Integrated || - single == Circuit_Parts_PetriDish || - single == Circuit_Parts_Vacuum_Tube || - single == Circuit_Integrated_Good || - single == Circuit_Parts_Capacitor || - single == Circuit_Parts_Diode || - single == Circuit_Parts_Resistor || - single == Circuit_Parts_Transistor - - ){ - continue; - } - ItemStack itemStack = single.get(1); - if (!GT_Utility.isStackValid(itemStack)) - continue; - int[] oreIDS = OreDictionary.getOreIDs(itemStack); - if (oreIDS.length > 1) - continue; - String name = null; - if (oreIDS.length == 1) - name = OreDictionary.getOreName(oreIDS[0]); - if ((name == null || name.isEmpty()) && (single.toString().contains("Circuit") || single.toString().contains("circuit") || single.toString().contains("board")) && single.getBlock() == Blocks.air) { - ArrayList<String> toolTip = new ArrayList<>(); - single.getItem().addInformation(single.get(1).copy(), null, toolTip, true); - String tt = (toolTip.size() > 0 ? toolTip.get(0) : ""); - // tt += "Internal Name = "+single; - String localised = GT_LanguageManager.getTranslation(GT_LanguageManager.getTranslateableItemStackName(itemStack)); - BW_Meta_Items.getNEWCIRCUITS().addItem(CircuitImprintLoader.reverseIDs, "Wrap of " + localised+"s", tt); - GT_Values.RA.addAssemblerRecipe(new ItemStack[]{single.get(16).copy()},Materials.Plastic.getMolten(576),BW_Meta_Items.getNEWCIRCUITS().getStack(CircuitImprintLoader.reverseIDs),600,30); - CircuitImprintLoader.circuitIIconRefs.put(CircuitImprintLoader.reverseIDs,single); - CircuitImprintLoader.reverseIDs--; - } - } - } - @Override public void run() { Iterator<GT_Recipe> it = GT_Recipe.GT_Recipe_Map.sCircuitAssemblerRecipes.mRecipeList.iterator(); GT_Recipe circuitRecipe; - HashSet<GT_Recipe> torem = new HashSet<>(); + HashSet<GT_Recipe> toRem = new HashSet<>(); + HashSet<GT_Recipe> toAdd = new HashSet<>(); while (it.hasNext()) { circuitRecipe = it.next(); ItemStack[] outputs = circuitRecipe.mOutputs; @@ -127,19 +76,43 @@ public class CircuitImprintLoader implements Runnable { continue; String name = OreDictionary.getOreName(oreIDS[0]); if (name.contains("Circuit") || name.contains("circuit")) { - CircuitImprintLoader.recipeTagMap.put(CircuitImprintLoader.getTagFromStack(outputs[0]),circuitRecipe.copy()); - for (ItemStack s : circuitRecipe.mInputs){ + CircuitImprintLoader.recipeTagMap.put(CircuitImprintLoader.getTagFromStack(outputs[0]), circuitRecipe.copy()); + for (ItemStack s : circuitRecipe.mInputs) { if (circuitRecipe.mFluidInputs[0].isFluidEqual(Materials.SolderingAlloy.getMolten(0))) CircuitImprintLoader.refs.add(CircuitImprintLoader.getTagFromStack(s.copy().splitStack(1))); } - if (circuitRecipe.mFluidInputs[0].isFluidEqual(Materials.SolderingAlloy.getMolten(0))) - BWRecipes.instance.getMappingsFor(BWRecipes.CIRCUITASSEMBLYLINE).addRecipe(CircuitImprintLoader.reBuildRecipe(circuitRecipe)); -// if (circuitRecipe.mEUt > BW_Util.getTierVoltage(5)) { -// torem.add(circuitRecipe); -// } + if (circuitRecipe.mFluidInputs[0].isFluidEqual(Materials.SolderingAlloy.getMolten(0))) { + + GT_Recipe newRecipe = CircuitImprintLoader.reBuildRecipe(circuitRecipe); + if (newRecipe != null) + BWRecipes.instance.getMappingsFor(BWRecipes.CIRCUITASSEMBLYLINE).addRecipe(newRecipe); + if (circuitRecipe.mEUt > BW_Util.getTierVoltage(5)) { + toRem.add(circuitRecipe); + toAdd.add(CircuitImprintLoader.makeMoreExpensive(circuitRecipe)); + } + } else { + if (circuitRecipe.mEUt > BW_Util.getTierVoltage(5)) { + toRem.add(circuitRecipe); + } + } + } } - GT_Recipe.GT_Recipe_Map.sCircuitAssemblerRecipes.mRecipeList.removeAll(torem); + GT_Recipe.GT_Recipe_Map.sCircuitAssemblerRecipes.mRecipeList.addAll(toAdd); + GT_Recipe.GT_Recipe_Map.sCircuitAssemblerRecipes.mRecipeList.removeAll(toRem); + this.makeCircuitImprints(); + } + + public static GT_Recipe makeMoreExpensive(GT_Recipe original){ + GT_Recipe newRecipe = original.copy(); + for (ItemStack is : newRecipe.mInputs){ + int[] oreIDs = OreDictionary.getOreIDs(is); + if(oreIDs == null || oreIDs.length < 1 || !OreDictionary.getOreName(oreIDs[0]).contains("circuit")) + is.stackSize = Math.max( 64, is.stackSize *= 4); + } + newRecipe.mFluidInputs[0].amount *= 4; + newRecipe.mDuration *= 4; + return newRecipe; } public static GT_Recipe reBuildRecipe(GT_Recipe original){ @@ -156,17 +129,75 @@ public class CircuitImprintLoader implements Runnable { } if (original.mInputs[i] != null && in[i] == null){ - in[i] = original.mInputs[i].copy(); - in[i].stackSize *= 16; + if (BW_Util.checkStackAndPrefix(original.mInputs[i]) && GT_OreDictUnificator.getAssociation(original.mInputs[i]).mPrefix == OrePrefixes.wireGt01){ + in[i] = GT_OreDictUnificator.get(OrePrefixes.wireGt16,GT_OreDictUnificator.getAssociation(original.mInputs[i]).mMaterial.mMaterial,original.mInputs[i].stackSize); + } + else { + in[i] = original.mInputs[i].copy(); + in[i].stackSize *= 16; + } // if (in[i].stackSize > 64) // return null; } } catch (ArrayIndexOutOfBoundsException e){ break; } catch (NullPointerException e){ + e.printStackTrace(); } } - return new BWRecipes.DynamicGTRecipe(false,in,new ItemStack[]{out},null,null, original.mFluidInputs,null,original.mDuration,original.mEUt,original.mSpecialValue); + if (CircuitImprintLoader.checkForBlacklistedComponents(in)){ + return null; + } + + return new BWRecipes.DynamicGTRecipe(false,in,new ItemStack[]{out},BW_Meta_Items.getNEWCIRCUITS().getStackWithNBT(CircuitImprintLoader.getTagFromStack(original.mOutputs[0]),0,0),null, original.mFluidInputs,null,original.mDuration,original.mEUt,original.mSpecialValue); } -} + + public static final HashSet<ItemStack> blacklistSet = new HashSet<>(); + + private static boolean checkForBlacklistedComponents(ItemStack[] itemStacks){ + for (ItemStack is: itemStacks){ + for (ItemStack is2 : CircuitImprintLoader.blacklistSet){ + if (GT_Utility.areStacksEqual(is,is2)) + return true; + } + } + return false; + } + + private void makeCircuitImprints(){ + for (NBTTagCompound tag : CircuitImprintLoader.recipeTagMap.keySet()){ + ItemStack stack = CircuitImprintLoader.getStackFromTag(tag); + int eut = Integer.MAX_VALUE; + for (GT_Recipe recipe : CircuitImprintLoader.recipeTagMap.get(tag)) { + eut = Math.min(eut, recipe.mEUt); + } + eut = Math.min(eut,BW_Util.getMachineVoltageFromTier(BW_Util.getCircuitTierFromOreDictName(OreDictionary.getOreName(OreDictionary.getOreIDs(stack)[0])))); + GT_Recipe slicingRecipe = new BWRecipes.DynamicGTRecipe(true,new ItemStack[]{stack,ItemList.Shape_Slicer_Flat.get(0)},new ItemStack[]{BW_Meta_Items.getNEWCIRCUITS().getStackWithNBT(tag,1,1)},null,null,null,null,300,eut,BW_Util.CLEANROOM); + GT_Recipe.GT_Recipe_Map.sSlicerRecipes.add(slicingRecipe); + GT_ModHandler.addCraftingRecipe(BW_Meta_Items.getNEWCIRCUITS().getStackWithNBT(tag,0,1),GT_ModHandler.RecipeBits.KEEPNBT | GT_ModHandler.RecipeBits.NOT_REMOVABLE | GT_ModHandler.RecipeBits.BUFFERED | GT_ModHandler.RecipeBits.DO_NOT_CHECK_FOR_COLLISIONS ,new Object[]{ + " X ", + "GPG", + " X ", + 'P', BW_Meta_Items.getNEWCIRCUITS().getStackWithNBT(tag,1,1), + 'G', WerkstoffLoader.Prasiolite.get(OrePrefixes.gemExquisite,1), + 'X', BW_Meta_Items.getNEWCIRCUITS().getStack(3) + }); + } +// for (NBTTagCompound tag : CircuitImprintLoader.bwCircuitTagMap.values()){ +// CircuitData data = CircuitImprintLoader.bwCircuitTagMap.inverse().get(tag); +// ItemStack stack = CircuitImprintLoader.getStackFromTag(tag); +// GT_Recipe slicingRecipe = new BWRecipes.DynamicGTRecipe(true,new ItemStack[]{stack,ItemList.Shape_Slicer_Flat.get(0)},new ItemStack[]{BW_Meta_Items.getNEWCIRCUITS().getStackWithNBT(tag,1,1)},null,null,null,null,300, Math.toIntExact(data.getaVoltage()),data.getaSpecial()); +// GT_Recipe.GT_Recipe_Map.sSlicerRecipes.add(slicingRecipe); +// GT_ModHandler.addCraftingRecipe(BW_Meta_Items.getNEWCIRCUITS().getStackWithNBT(tag,0,1),GT_ModHandler.RecipeBits.KEEPNBT | GT_ModHandler.RecipeBits.NOT_REMOVABLE | GT_ModHandler.RecipeBits.BUFFERED | GT_ModHandler.RecipeBits.DO_NOT_CHECK_FOR_COLLISIONS ,new Object[]{ +// "DXD", +// "GPG", +// "DXD", +// 'D', WerkstoffLoader.ArInGaPhoBiBoTe.get(OrePrefixes.dust,1), +// 'P', BW_Meta_Items.getNEWCIRCUITS().getStackWithNBT(tag,1,1), +// 'G', WerkstoffLoader.Prasiolite.get(OrePrefixes.gemExquisite,1), +// 'X', WerkstoffLoader.MagnetoResonaticDust.get(OrePrefixes.dust,1) +// }); +// } + } +}
\ No newline at end of file diff --git a/src/main/java/com/github/bartimaeusnek/bartworks/system/material/CircuitGeneration/CircuitPartLoader.java b/src/main/java/com/github/bartimaeusnek/bartworks/system/material/CircuitGeneration/CircuitPartLoader.java index b25bd5d1b6..7bec3e9213 100644 --- a/src/main/java/com/github/bartimaeusnek/bartworks/system/material/CircuitGeneration/CircuitPartLoader.java +++ b/src/main/java/com/github/bartimaeusnek/bartworks/system/material/CircuitGeneration/CircuitPartLoader.java @@ -24,12 +24,77 @@ package com.github.bartimaeusnek.bartworks.system.material.CircuitGeneration; import com.github.bartimaeusnek.bartworks.client.renderer.BW_GT_ItemRenderer; import cpw.mods.fml.common.FMLCommonHandler; +import gregtech.api.enums.GT_Values; +import gregtech.api.enums.ItemList; +import gregtech.api.enums.Materials; +import gregtech.api.util.GT_LanguageManager; +import gregtech.api.util.GT_Utility; +import net.minecraft.init.Blocks; +import net.minecraft.item.ItemStack; +import net.minecraftforge.oredict.OreDictionary; + +import java.util.ArrayList; + +import static gregtech.api.enums.ItemList.*; +import static gregtech.api.enums.ItemList.Circuit_Parts_Transistor; public class CircuitPartLoader implements Runnable { @Override public void run() { - CircuitImprintLoader.makeCircuitParts(); + CircuitPartLoader.makeCircuitParts(); if (FMLCommonHandler.instance().getEffectiveSide().isClient()) new BW_GT_ItemRenderer(); } + + public static void makeCircuitParts() { + ItemList[] itemLists = values(); + for (ItemList single : itemLists) { + if (!single.hasBeenSet()) + continue; + if ( + single.toString().contains("Wafer") || + single.toString().contains("Circuit_Silicon_Ingot") || + single.toString().contains("Raw") || + single.toString().contains("raw") || + single.toString().contains("Glass_Tube") || + single == Circuit_Parts_GlassFiber || + single == Circuit_Parts_Advanced || + single == Circuit_Parts_Wiring_Advanced || + single == Circuit_Parts_Wiring_Elite || + single == Circuit_Parts_Wiring_Basic || + single == Circuit_Integrated || + single == Circuit_Parts_PetriDish || + single == Circuit_Parts_Vacuum_Tube || + single == Circuit_Integrated_Good || + single == Circuit_Parts_Capacitor || + single == Circuit_Parts_Diode || + single == Circuit_Parts_Resistor || + single == Circuit_Parts_Transistor + + ){ + CircuitImprintLoader.blacklistSet.add(single.get(1)); + continue; + } + ItemStack itemStack = single.get(1); + if (!GT_Utility.isStackValid(itemStack)) + continue; + int[] oreIDS = OreDictionary.getOreIDs(itemStack); + if (oreIDS.length > 1) + continue; + String name = null; + if (oreIDS.length == 1) + name = OreDictionary.getOreName(oreIDS[0]); + if ((name == null || name.isEmpty()) && (single.toString().contains("Circuit") || single.toString().contains("circuit") || single.toString().contains("board")) && single.getBlock() == Blocks.air) { + ArrayList<String> toolTip = new ArrayList<>(); + single.getItem().addInformation(single.get(1).copy(), null, toolTip, true); + String tt = (toolTip.size() > 0 ? toolTip.get(0) : ""); + // tt += "Internal Name = "+single; + String localised = GT_LanguageManager.getTranslation(GT_LanguageManager.getTranslateableItemStackName(itemStack)); + BW_Meta_Items.getNEWCIRCUITS().addItem(CircuitImprintLoader.reverseIDs, "Wrap of " + localised+"s", tt); + GT_Values.RA.addAssemblerRecipe(new ItemStack[]{single.get(16).copy()}, Materials.Plastic.getMolten(576),BW_Meta_Items.getNEWCIRCUITS().getStack(CircuitImprintLoader.reverseIDs),600,30); + CircuitImprintLoader.circuitIIconRefs.put(CircuitImprintLoader.reverseIDs,single); + CircuitImprintLoader.reverseIDs--; + } + } + } } diff --git a/src/main/java/com/github/bartimaeusnek/bartworks/system/material/WerkstoffLoader.java b/src/main/java/com/github/bartimaeusnek/bartworks/system/material/WerkstoffLoader.java index 1c9a8f4fc1..d3175f967c 100644 --- a/src/main/java/com/github/bartimaeusnek/bartworks/system/material/WerkstoffLoader.java +++ b/src/main/java/com/github/bartimaeusnek/bartworks/system/material/WerkstoffLoader.java @@ -532,7 +532,7 @@ public class WerkstoffLoader implements Runnable { public static final Werkstoff MagnetoResonaticDust = new Werkstoff( new short[]{0xDD,0x77,0xDD,0}, - "Magneto Resonatic Dust", + "Magneto Resonatic", new Werkstoff.Stats().setElektrolysis(true), Werkstoff.Types.COMPOUND, new Werkstoff.GenerationFeatures().onlyDust().addMixerRecipes(), diff --git a/src/main/java/com/github/bartimaeusnek/bartworks/system/material/processingLoaders/AdditionalRecipes.java b/src/main/java/com/github/bartimaeusnek/bartworks/system/material/processingLoaders/AdditionalRecipes.java index 155283bfb0..7678e69faa 100644 --- a/src/main/java/com/github/bartimaeusnek/bartworks/system/material/processingLoaders/AdditionalRecipes.java +++ b/src/main/java/com/github/bartimaeusnek/bartworks/system/material/processingLoaders/AdditionalRecipes.java @@ -60,7 +60,6 @@ public class AdditionalRecipes implements Runnable { GT_Values.RA.addChemicalRecipe(WerkstoffLoader.Thorianit.get(dust),Materials.Magnesium.getDust(1),Materials.Thorium.getDust(1),1000); GT_Values.RA.addChemicalRecipe(WerkstoffLoader.Thorianit.get(crushed), ItemList.Crop_Drop_Thorium.get(9),Materials.Water.getFluid(1000),Materials.Thorium.getMolten(144),WerkstoffLoader.Thorianit.get(crushedPurified,4),96,24); - //TODO: Gem & Circuit Stuff //Prasiolite GT_Values.RA.addBlastRecipe(GT_OreDictUnificator.get(dust,Materials.Quartzite,40L),Materials.Amethyst.getDust(10),GT_Values.NF,GT_Values.NF,WerkstoffLoader.Prasiolite.get(OrePrefixes.gemFlawed,20),GT_Values.NI,800, BW_Util.getMachineVoltageFromTier(2),500); GT_Values.RA.addPrimitiveBlastRecipe(GT_OreDictUnificator.get(dust,Materials.Quartzite,40L),Materials.Amethyst.getDust(10),6,WerkstoffLoader.Prasiolite.get(OrePrefixes.gemFlawed,20),GT_Values.NI,800); diff --git a/src/main/java/com/github/bartimaeusnek/bartworks/util/BW_Util.java b/src/main/java/com/github/bartimaeusnek/bartworks/util/BW_Util.java index 261ab49c77..ea2208146b 100644 --- a/src/main/java/com/github/bartimaeusnek/bartworks/util/BW_Util.java +++ b/src/main/java/com/github/bartimaeusnek/bartworks/util/BW_Util.java @@ -24,7 +24,6 @@ package com.github.bartimaeusnek.bartworks.util; import com.github.bartimaeusnek.bartworks.API.BioVatLogicAdder; import gregtech.api.enums.Materials; -import gregtech.api.enums.OrePrefixes; import gregtech.api.interfaces.tileentity.IGregTechTileEntity; import gregtech.api.metatileentity.implementations.GT_MetaTileEntity_Hatch_Energy; import gregtech.api.metatileentity.implementations.GT_MetaTileEntity_Hatch_Input; @@ -50,8 +49,8 @@ import static gregtech.api.enums.GT_Values.V; public class BW_Util { public static final int STANDART = 0; - public static final int CLEANROOM = -100; - public static final int LOWGRAVITY = -200; + public static final int LOWGRAVITY = -100; + public static final int CLEANROOM = -200; public static void set2DCoordTo1DArray(int indexX, int indexY, int sizeY, Object value, Object[] array) { int index = indexX * sizeY + indexY; @@ -147,11 +146,11 @@ public class BW_Util { public static byte specialToByte(int aSpecialValue) { byte special = 0; - if (aSpecialValue == (CLEANROOM)) + if (aSpecialValue == (LOWGRAVITY)) special = 1; - else if (aSpecialValue == (LOWGRAVITY)) + else if (aSpecialValue == (CLEANROOM)) special = 2; - else if (aSpecialValue == (CLEANROOM | LOWGRAVITY)) { + else if (aSpecialValue == (LOWGRAVITY | CLEANROOM)) { special = 3; } return special; |