aboutsummaryrefslogtreecommitdiff
path: root/src/main/java/gregtech/api/GregTech_API.java
diff options
context:
space:
mode:
Diffstat (limited to 'src/main/java/gregtech/api/GregTech_API.java')
-rw-r--r--src/main/java/gregtech/api/GregTech_API.java51
1 files changed, 47 insertions, 4 deletions
diff --git a/src/main/java/gregtech/api/GregTech_API.java b/src/main/java/gregtech/api/GregTech_API.java
index ff875c4884..12fc6b6814 100644
--- a/src/main/java/gregtech/api/GregTech_API.java
+++ b/src/main/java/gregtech/api/GregTech_API.java
@@ -19,7 +19,15 @@ import gregtech.api.objects.GT_HashSet;
import gregtech.api.objects.GT_ItemStack;
import gregtech.api.threads.GT_Runnable_Cable_Update;
import gregtech.api.threads.GT_Runnable_MachineBlockUpdate;
-import gregtech.api.util.*;
+import gregtech.api.util.GT_CircuitryBehavior;
+import gregtech.api.util.GT_Config;
+import gregtech.api.util.GT_CoverBehavior;
+import gregtech.api.util.GT_CoverBehaviorBase;
+import gregtech.api.util.GT_CreativeTab;
+import gregtech.api.util.GT_Log;
+import gregtech.api.util.GT_ModHandler;
+import gregtech.api.util.GT_OreDictUnificator;
+import gregtech.api.util.GT_Utility;
import gregtech.api.world.GT_Worldgen;
import net.minecraft.block.Block;
import net.minecraft.client.renderer.texture.IIconRegister;
@@ -30,10 +38,19 @@ import net.minecraft.util.ChunkCoordinates;
import net.minecraft.world.World;
import net.minecraftforge.fluids.Fluid;
-import java.util.*;
+import java.util.ArrayList;
+import java.util.Collection;
+import java.util.Collections;
+import java.util.HashSet;
+import java.util.List;
+import java.util.Locale;
+import java.util.Map;
import java.util.concurrent.ConcurrentHashMap;
-import static gregtech.api.enums.GT_Values.*;
+import static gregtech.api.enums.GT_Values.B;
+import static gregtech.api.enums.GT_Values.L;
+import static gregtech.api.enums.GT_Values.M;
+import static gregtech.api.enums.GT_Values.MOD_ID_IC2;
/**
* Please do not include this File in your Mod-download as it ruins compatiblity, like with the IC2-API
@@ -161,6 +178,8 @@ public class GregTech_API {
sHeatHazmatList = new GT_HashSet<>(),
sRadioHazmatList = new GT_HashSet<>(),
sElectroHazmatList = new GT_HashSet<>();
+ private static final List<ItemStack> sRealConfigurationList = new ArrayList<>();
+ private static final List<ItemStack> sConfigurationList = Collections.unmodifiableList(sRealConfigurationList);
/**
* The List of Dimensions, which are Whitelisted for the Teleporter. This list should not contain other Planets.
* Mystcraft Dimensions and other Dimensional Things should be allowed.
@@ -614,6 +633,31 @@ public class GregTech_API {
}
}
+ /**
+ * Register a new ItemStack as configuration circuits.
+ * Duplicates or invalid stacks will be silently ignored.
+ */
+ public static void registerConfigurationCircuit(ItemStack aStack) {
+ if (GT_Utility.isStackInvalid(aStack))
+ return;
+ for (ItemStack tRegistered : sRealConfigurationList)
+ if (GT_Utility.areStacksEqual(tRegistered, aStack))
+ return;
+ sRealConfigurationList.add(GT_Utility.copyAmount(0, aStack));
+ }
+
+ /**
+ * Get a list of Configuration circuits. All of these stacks will have a stack size of 0.
+ * Use {@link #registerConfigurationCircuit(ItemStack)} to add to this list.
+ *
+ * @return An unmodifiable view of actual list.
+ * It will reflect the changes to the underlying list as new circuits are registered.
+ * DO NOT MODIFY THE ItemStacks!
+ */
+ public static List<ItemStack> getConfigurationCircuitList() {
+ return sConfigurationList;
+ }
+
public static void registerCover(ItemStack aStack, ITexture aCover, GT_CoverBehavior aBehavior) {
registerCover(aStack, aCover, (GT_CoverBehaviorBase<?>) aBehavior);
}
@@ -812,5 +856,4 @@ public class GregTech_API {
public static void setItemIconRegister(IIconRegister aIconRegister) {
GregTech_API.sItemIcons = aIconRegister;
}
-
}