aboutsummaryrefslogtreecommitdiff
path: root/src/main/java/gregtech/loaders/preload/GT_Loader_MetaTileEntities.java
diff options
context:
space:
mode:
Diffstat (limited to 'src/main/java/gregtech/loaders/preload/GT_Loader_MetaTileEntities.java')
-rw-r--r--src/main/java/gregtech/loaders/preload/GT_Loader_MetaTileEntities.java53
1 files changed, 41 insertions, 12 deletions
diff --git a/src/main/java/gregtech/loaders/preload/GT_Loader_MetaTileEntities.java b/src/main/java/gregtech/loaders/preload/GT_Loader_MetaTileEntities.java
index bbfe7538b2..918251d265 100644
--- a/src/main/java/gregtech/loaders/preload/GT_Loader_MetaTileEntities.java
+++ b/src/main/java/gregtech/loaders/preload/GT_Loader_MetaTileEntities.java
@@ -43,6 +43,9 @@ import static gregtech.api.recipe.RecipeMaps.sifterRecipes;
import static gregtech.api.recipe.RecipeMaps.slicerRecipes;
import static gregtech.api.recipe.RecipeMaps.thermalCentrifugeRecipes;
import static gregtech.api.recipe.RecipeMaps.wiremillRecipes;
+import static gregtech.api.util.GT_RecipeBuilder.SECONDS;
+import static gregtech.api.util.GT_RecipeBuilder.TICKS;
+import static gregtech.api.util.GT_Utility.calculateRecipeEU;
import net.minecraft.util.EnumChatFormatting;
@@ -54,6 +57,8 @@ import gregtech.api.enums.Materials;
import gregtech.api.enums.MaterialsUEVplus;
import gregtech.api.enums.OrePrefixes;
import gregtech.api.enums.SoundResource;
+import gregtech.api.enums.SubTag;
+import gregtech.api.enums.TierEU;
import gregtech.api.metatileentity.implementations.GT_MetaPipeEntity_Cable;
import gregtech.api.metatileentity.implementations.GT_MetaPipeEntity_Fluid;
import gregtech.api.metatileentity.implementations.GT_MetaPipeEntity_Frame;
@@ -80,7 +85,10 @@ import gregtech.api.metatileentity.implementations.GT_MetaTileEntity_Wireless_Ha
import gregtech.api.recipe.RecipeMaps;
import gregtech.api.util.GT_LanguageManager;
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.common.blocks.GT_Block_FrameBox;
import gregtech.common.tileentities.automation.GT_MetaTileEntity_ChestBuffer;
import gregtech.common.tileentities.automation.GT_MetaTileEntity_Filter;
import gregtech.common.tileentities.automation.GT_MetaTileEntity_ItemDistributor;
@@ -11886,19 +11894,40 @@ public class GT_Loader_MetaTileEntities implements Runnable { // TODO CHECK CIRC
}
private static void generateWiresAndPipes() {
- for (int i = 0; i < GregTech_API.sGeneratedMaterials.length; i++) {
- if (((GregTech_API.sGeneratedMaterials[i] != null)
- && ((GregTech_API.sGeneratedMaterials[i].mTypes & 0x2) != 0))
- || (GregTech_API.sGeneratedMaterials[i] == Materials.Wood)) {
+ for (int meta = 0; meta < GregTech_API.sGeneratedMaterials.length; meta++) {
+ Materials material = GregTech_API.sGeneratedMaterials[meta];
+ // This check is separated out because IntelliJ thinks Materials.Wood can be null.
+ if (material == null) continue;
+ if ((material.mTypes & 0x2) != 0 || material == Materials.Wood) {
new GT_MetaPipeEntity_Frame(
- 4096 + i,
- "GT_Frame_" + GregTech_API.sGeneratedMaterials[i],
- (GT_LanguageManager.i18nPlaceholder ? "%material"
- : GregTech_API.sGeneratedMaterials[i] != null
- ? GregTech_API.sGeneratedMaterials[i].mDefaultLocalName
- : "")
- + " Frame Box",
- GregTech_API.sGeneratedMaterials[i]);
+ 4096 + meta,
+ "GT_Frame_" + material,
+ (GT_LanguageManager.i18nPlaceholder ? "%material" : material.mDefaultLocalName)
+ + " Frame Box (TileEntity)",
+ material);
+
+ // Generate recipes for frame box
+ GT_Block_FrameBox block = (GT_Block_FrameBox) GregTech_API.sBlockFrames;
+ GT_OreDictUnificator.registerOre(OrePrefixes.frameGt, material, block.getStackForm(1, meta));
+ if (material.getProcessingMaterialTierEU() < TierEU.IV) {
+ GT_ModHandler.addCraftingRecipe(
+ block.getStackForm(2, meta),
+ GT_ModHandler.RecipeBits.NOT_REMOVABLE | GT_ModHandler.RecipeBits.BUFFERED,
+ new Object[] { "SSS", "SwS", "SSS", 'S', OrePrefixes.stick.get(material) });
+ }
+
+ if (!material.contains(SubTag.NO_RECIPES)
+ && GT_OreDictUnificator.get(OrePrefixes.stick, material, 1) != null) {
+ // Auto generate frame box recipe in an assembler.
+ GT_Values.RA.stdBuilder()
+ .itemInputs(
+ GT_OreDictUnificator.get(OrePrefixes.stick, material, 4),
+ GT_Utility.getIntegratedCircuit(4))
+ .itemOutputs(block.getStackForm(1, meta))
+ .duration(3 * SECONDS + 4 * TICKS)
+ .eut(calculateRecipeEU(material, 7))
+ .addTo(assemblerRecipes);
+ }
}
}