aboutsummaryrefslogtreecommitdiff
path: root/src/main
diff options
context:
space:
mode:
authorbartimaeusnek <33183715+bartimaeusnek@users.noreply.github.com>2019-08-01 20:54:35 +0200
committerbartimaeusnek <33183715+bartimaeusnek@users.noreply.github.com>2019-08-01 20:54:35 +0200
commite7f82a6de66c07ba7b4d5b683e681a34925be023 (patch)
tree0a22af61c0223ada8b3138bc5b9c3e7b8e6e8117 /src/main
parent151888e7cf33f50f4ec887e1af6e334b44d94909 (diff)
downloadGT5-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')
-rw-r--r--src/main/java/com/github/bartimaeusnek/bartworks/MainMod.java29
-rw-r--r--src/main/java/com/github/bartimaeusnek/bartworks/system/material/CircuitGeneration/BW_CircuitsLoader.java22
-rw-r--r--src/main/java/com/github/bartimaeusnek/bartworks/system/material/CircuitGeneration/BW_Meta_Items.java87
-rw-r--r--src/main/java/com/github/bartimaeusnek/bartworks/system/material/CircuitGeneration/CircuitImprintLoader.java171
-rw-r--r--src/main/java/com/github/bartimaeusnek/bartworks/system/material/CircuitGeneration/CircuitPartLoader.java67
-rw-r--r--src/main/java/com/github/bartimaeusnek/bartworks/system/material/WerkstoffLoader.java2
-rw-r--r--src/main/java/com/github/bartimaeusnek/bartworks/system/material/processingLoaders/AdditionalRecipes.java1
-rw-r--r--src/main/java/com/github/bartimaeusnek/bartworks/util/BW_Util.java11
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;