aboutsummaryrefslogtreecommitdiff
path: root/src/main/java/gregtech
diff options
context:
space:
mode:
Diffstat (limited to 'src/main/java/gregtech')
-rw-r--r--src/main/java/gregtech/api/enums/GT_Values.java3
-rw-r--r--src/main/java/gregtech/api/enums/ItemList.java9
-rw-r--r--src/main/java/gregtech/api/enums/Materials.java10
-rw-r--r--src/main/java/gregtech/api/enums/OrePrefixes.java13
-rw-r--r--src/main/java/gregtech/api/enums/TextureSet.java11
-rw-r--r--src/main/java/gregtech/api/enums/Textures.java24
-rw-r--r--src/main/java/gregtech/api/gui/modularui/GT_UITextures.java5
-rw-r--r--src/main/java/gregtech/api/interfaces/internal/IGT_RecipeAdder.java45
-rw-r--r--src/main/java/gregtech/api/util/GT_LanguageManager.java11
-rw-r--r--src/main/java/gregtech/api/util/GT_OreDictUnificator.java8
-rw-r--r--src/main/java/gregtech/api/util/GT_PCBFactoryManager.java22
-rw-r--r--src/main/java/gregtech/api/util/GT_Recipe.java42
-rw-r--r--src/main/java/gregtech/api/util/GT_Utility.java5
-rw-r--r--src/main/java/gregtech/common/GT_RecipeAdder.java40
-rw-r--r--src/main/java/gregtech/common/blocks/GT_Block_Casings8.java25
-rw-r--r--src/main/java/gregtech/common/items/GT_MetaGenerated_Item_03.java5
-rw-r--r--src/main/java/gregtech/common/tileentities/machines/multi/GT_MetaTileEntity_NanoForge.java453
-rw-r--r--src/main/java/gregtech/common/tileentities/machines/multi/GT_MetaTileEntity_PCBFactory.java1120
-rw-r--r--src/main/java/gregtech/common/tileentities/machines/multi/GT_MetaTileEntity_PlasmaForge.java6
-rw-r--r--src/main/java/gregtech/loaders/oreprocessing/ProcessingLens.java7
-rw-r--r--src/main/java/gregtech/loaders/postload/GT_MachineRecipeLoader.java25
-rw-r--r--src/main/java/gregtech/loaders/postload/GT_PCBFactoryMaterialLoader.java18
-rw-r--r--src/main/java/gregtech/loaders/postload/chains/GT_NaniteChain.java146
-rw-r--r--src/main/java/gregtech/loaders/postload/chains/GT_PCBFactoryRecipes.java577
-rw-r--r--src/main/java/gregtech/loaders/preload/GT_Loader_Item_Block_And_Fluid.java6
-rw-r--r--src/main/java/gregtech/loaders/preload/GT_Loader_MetaTileEntities.java10
-rw-r--r--src/main/java/gregtech/loaders/preload/GT_PreLoad.java8
-rw-r--r--src/main/java/gregtech/nei/GT_NEI_DefaultHandler.java12
-rw-r--r--src/main/java/gregtech/nei/IMCForNEI.java4
29 files changed, 2641 insertions, 29 deletions
diff --git a/src/main/java/gregtech/api/enums/GT_Values.java b/src/main/java/gregtech/api/enums/GT_Values.java
index 41e506273d..a65b79d42d 100644
--- a/src/main/java/gregtech/api/enums/GT_Values.java
+++ b/src/main/java/gregtech/api/enums/GT_Values.java
@@ -507,4 +507,7 @@ public class GT_Values {
+ EnumChatFormatting.BOLD + "a" + EnumChatFormatting.DARK_GREEN + EnumChatFormatting.BOLD + "6"
+ EnumChatFormatting.GREEN + EnumChatFormatting.BOLD + "0" + EnumChatFormatting.AQUA
+ EnumChatFormatting.BOLD + "0" + EnumChatFormatting.DARK_AQUA + EnumChatFormatting.BOLD + "0";
+
+ public static final String AuthorBlueWeabo = "Author: " + EnumChatFormatting.BLUE + EnumChatFormatting.BOLD + "Blue"
+ + EnumChatFormatting.AQUA + EnumChatFormatting.BOLD + "Weabo";
}
diff --git a/src/main/java/gregtech/api/enums/ItemList.java b/src/main/java/gregtech/api/enums/ItemList.java
index 0ca7ac06b4..3ebc0aa8eb 100644
--- a/src/main/java/gregtech/api/enums/ItemList.java
+++ b/src/main/java/gregtech/api/enums/ItemList.java
@@ -1684,6 +1684,7 @@ public enum ItemList implements IItemContainer {
OreDrill4,
PyrolyseOven,
OilCracker,
+ NanoForge,
Crop_Drop_UUMBerry,
Crop_Drop_UUABerry,
Empty_Board_Basic,
@@ -1959,7 +1960,13 @@ public enum ItemList implements IItemContainer {
Superconducting_Magnet_Solenoid_UHV,
Superconducting_Magnet_Solenoid_UEV,
Superconducting_Magnet_Solenoid_UIV,
- Superconducting_Magnet_Solenoid_UMV;
+ Superconducting_Magnet_Solenoid_UMV,
+ RadiantNaquadahAlloyCasing,
+ PCBFactory,
+ BasicPhotolithographicFrameworkCasing,
+ ReinforcedPhotolithographicFrameworkCasing,
+ RadiationProofPhotolithographicFrameworkCasing,
+ InfinityCooledCasing;
public static final ItemList[]
DYE_ONLY_ITEMS =
{
diff --git a/src/main/java/gregtech/api/enums/Materials.java b/src/main/java/gregtech/api/enums/Materials.java
index a205aa2be0..768dd1fa6f 100644
--- a/src/main/java/gregtech/api/enums/Materials.java
+++ b/src/main/java/gregtech/api/enums/Materials.java
@@ -891,7 +891,7 @@ public class Materials implements IColorModulationContainer, ISubTagContainer {
public static Materials SpaceTime = new Materials( 588, new TextureSet("spacetime", true) , 320.0F, 4*2621440, 25, 1|2|64|128, 255, 255, 255, 0, "SpaceTime" , "SpaceTime" , -1, -1, 0, 0, false, true, 2, 1, 1, Dyes._NULL , Collections.singletonList(new TC_AspectStack(TC_Aspects.AQUA, 1)));
public static Materials TranscendentMetal = new Materials( 581, TextureSet.SET_METALLIC , 290.0F, 3*2621440, 22, 1|2|64|128, 50, 50, 50,0, "TranscendentMetal" , "Transcendent Metal" , -1, -1, 0, 3000, true, true, 200, 1000, 1000, Dyes.dyeBlack , Collections.singletonList(new TC_AspectStack(TC_Aspects.AQUA, 1))).disableAutoGeneratedBlastFurnaceRecipes().disableAutoGeneratedVacuumFreezerRecipe();
-
+ public static Materials EnrichedHolmium = new Materials(582, TextureSet.SET_METALLIC, 1.0F, 0, 2, 18, 100, 1|2|4|16, 255, 255, "EnrichedHolmium", "Enriched Holmium", -1, -1, 0, 3000, true, false, 200, 1, 1, Dyes.dyePurple);
// spotless:on
static {
@@ -1973,6 +1973,7 @@ public class Materials implements IColorModulationContainer, ISubTagContainer {
SuperconductorUMVBase.mChemicalFormula =
"?\u2086Or\u2083(Hy⚶)\u2081\u2081(((CW)\u2087Ti\u2083)\u2083???)\u2085۞\u2082";
Diatomite.mChemicalFormula = "(SiO\u2082)\u2088Fe\u2082O\u2083(Al\u2082O\u2083)";
+ EnrichedHolmium.mChemicalFormula = "Nq+Ho";
}
private static void initSubTags() {
@@ -2226,7 +2227,8 @@ public class Materials implements IColorModulationContainer, ISubTagContainer {
SuperconductorUMVBase,
Quantium,
RedstoneAlloy,
- Bedrockium);
+ Bedrockium,
+ EnrichedHolmium);
SubTag.FOOD.addTo(
MeatRaw,
@@ -3299,4 +3301,8 @@ public class Materials implements IColorModulationContainer, ISubTagContainer {
public static Materials getGtMaterialFromFluid(Fluid fluid) {
return FLUID_MAP.get(fluid);
}
+
+ public ItemStack getNanite(int amount) {
+ return GT_OreDictUnificator.get(OrePrefixes.nanite, this, amount);
+ }
}
diff --git a/src/main/java/gregtech/api/enums/OrePrefixes.java b/src/main/java/gregtech/api/enums/OrePrefixes.java
index 46bf1ce408..e8e6e102f7 100644
--- a/src/main/java/gregtech/api/enums/OrePrefixes.java
+++ b/src/main/java/gregtech/api/enums/OrePrefixes.java
@@ -3171,7 +3171,8 @@ public enum OrePrefixes {
-1,
64,
-1),
- beeComb("Bee Combs", "", "", true, false, true, false, false, false, false, false, false, false, 0, -1, 64, -1);
+ beeComb("Bee Combs", "", "", true, false, true, false, false, false, false, false, false, false, 0, -1, 64, -1),
+ nanite("Nanites", "", " Nanites", true, true, true, false, false, false, false, false, false, false, 0, -1, 64, 50);
public static final ImmutableList<OrePrefixes> CELL_TYPES = ImmutableList.of(
cell,
@@ -3326,6 +3327,13 @@ public enum OrePrefixes {
stickLong.mGeneratedItems.add(Materials.Blaze);
+ nanite.mGeneratedItems.add(Materials.Carbon);
+ nanite.mGeneratedItems.add(Materials.Gold);
+ nanite.mGeneratedItems.add(Materials.Iron);
+ nanite.mGeneratedItems.add(Materials.Copper);
+ nanite.mGeneratedItems.add(Materials.Silver);
+ nanite.mGeneratedItems.add(Materials.TranscendentMetal);
+ nanite.mGeneratedItems.add(Materials.Neutronium);
// -----
dust.mGeneratedItems.addAll(dustPure.mGeneratedItems);
@@ -3547,7 +3555,8 @@ public enum OrePrefixes {
OrePrefixes.crateGtIngot,
OrePrefixes.crateGtGem,
OrePrefixes.crateGtPlate,
- OrePrefixes.itemCasing));
+ OrePrefixes.itemCasing,
+ OrePrefixes.nanite));
/**
* Yes this Value can be changed to add Bits for the MetaGenerated-Item-Check.
*/
diff --git a/src/main/java/gregtech/api/enums/TextureSet.java b/src/main/java/gregtech/api/enums/TextureSet.java
index 6bf6908734..7b8940a70a 100644
--- a/src/main/java/gregtech/api/enums/TextureSet.java
+++ b/src/main/java/gregtech/api/enums/TextureSet.java
@@ -187,7 +187,7 @@ public class TextureSet {
"/toolHeadScrewdriver",
"/toolHeadBuzzSaw",
"/toolHeadSoldering",
- aTextVoidDir,
+ "/nanites",
"/wireFine",
"/gearGtSmall",
"/rotor",
@@ -318,7 +318,14 @@ public class TextureSet {
if (IS_BLOCK_TEXTURE[i] == TextureType.BLOCK) {
mTextures[i] = new Textures.BlockIcons.CustomIcon(aTextMatIconDir + aSetName + SUFFIXES[i]);
} else {
- mTextures[i] = new Textures.ItemIcons.CustomIcon(aTextMatIconDir + aSetName + SUFFIXES[i]);
+ // Check nanites folder for nanites texture to avoid copy pasting large file multiple times.
+ // Exemption for CUSTOM textures so they can be overriden as normal by placing nanite image in
+ // their respective folder.
+ if (SUFFIXES[i].equals("/nanites") && (!aSetName.contains("CUSTOM"))) {
+ mTextures[i] = new Textures.ItemIcons.CustomIcon(aTextMatIconDir + "NANITES" + SUFFIXES[i]);
+ } else {
+ mTextures[i] = new Textures.ItemIcons.CustomIcon(aTextMatIconDir + aSetName + SUFFIXES[i]);
+ }
}
}
}
diff --git a/src/main/java/gregtech/api/enums/Textures.java b/src/main/java/gregtech/api/enums/Textures.java
index 89d7ee6a1f..0a9ff078b4 100644
--- a/src/main/java/gregtech/api/enums/Textures.java
+++ b/src/main/java/gregtech/api/enums/Textures.java
@@ -250,6 +250,7 @@ public class Textures {
MACHINE_CASING_RHODIUM_PALLADIUM,
MACHINE_CASING_IRIDIUM,
MACHINE_CASING_MAGICAL,
+ MACHINE_CASING_RADIANT_NAQUADAH_ALLOY,
MACHINE_CASING_FIREBOX_TITANIUM,
MACHINE_CASING_FUSION_COIL,
@@ -1117,6 +1118,7 @@ public class Textures {
MARBLE_COBBLE,
BLOCK_NICKELALUMINIUM,
BLOCK_SILICONSG,
+ BLOCK_TRANSCENDENTMETAL,
MARBLE_COBBLE_MOSSY,
MARBLE_BRICKS,
@@ -1305,7 +1307,11 @@ public class Textures {
UIV_SIDE_CYCLOTRON_SOLENOID,
UMV_SIDE_CYCLOTRON_SOLENOID,
ZPM_TOP_CYCLOTRON_SOLENOID,
- ZPM_SIDE_CYCLOTRON_SOLENOID;
+ ZPM_SIDE_CYCLOTRON_SOLENOID,
+ MACHINE_CASING_PCB_TIER_1,
+ MACHINE_CASING_PCB_TIER_2,
+ MACHINE_CASING_PCB_TIER_3,
+ INFINITY_COOLED_CASING;
/**
* Icon for Fresh CFoam
@@ -1850,15 +1856,15 @@ public class Textures {
BLOCK_TERRACRYSTAL
},
STORAGE_BLOCKS11 =
+ {BLOCK_TOPAZ, BLOCK_VINTEUM, BLOCK_YELLOWGARNET, BLOCK_NETHERSTAR, BLOCK_CHARCOAL, BLOCK_BLAZE},
+ STORAGE_BLOCKS12 =
{
- BLOCK_TOPAZ,
- BLOCK_VINTEUM,
- BLOCK_YELLOWGARNET,
- BLOCK_NETHERSTAR,
- BLOCK_CHARCOAL,
- BLOCK_BLAZE,
- },
- STORAGE_BLOCKS12 = {BLOCK_CRYOLITE, BLOCK_SILICONSG, BLOCK_NICKELALUMINIUM, BLOCK_SPACETIME};
+ BLOCK_CRYOLITE,
+ BLOCK_SILICONSG,
+ BLOCK_NICKELALUMINIUM,
+ BLOCK_SPACETIME,
+ BLOCK_TRANSCENDENTMETAL
+ };
public static final ITexture[] HIDDEN_TEXTURE = {
TextureFactory.builder().addIcon(HIDDEN_FACE).stdOrient().build()
diff --git a/src/main/java/gregtech/api/gui/modularui/GT_UITextures.java b/src/main/java/gregtech/api/gui/modularui/GT_UITextures.java
index 76b4874838..b82876d5cf 100644
--- a/src/main/java/gregtech/api/gui/modularui/GT_UITextures.java
+++ b/src/main/java/gregtech/api/gui/modularui/GT_UITextures.java
@@ -189,8 +189,9 @@ public class GT_UITextures {
public static final SteamTexture TAB_TITLE_ANGULAR_STEAM =
SteamTexture.adaptableTexture(MODID, "gui/tab/title_angular_%s", 28, 28, 4);
- public static final UITexture BUTTON_STANDARD = UITexture.fullImage(MODID, "gui/button/standard");
- public static final UITexture BUTTON_STANDARD_TOGGLE = UITexture.fullImage(MODID, "gui/button/standard_toggle");
+ public static final UITexture BUTTON_STANDARD = AdaptableUITexture.of(MODID, "gui/button/standard", 18, 18, 1);
+ public static final UITexture BUTTON_STANDARD_TOGGLE =
+ AdaptableUITexture.of(MODID, "gui/button/standard_toggle", 18, 18, 1);
public static final UITexture BUTTON_COVER_NORMAL = UITexture.fullImage(MODID, "gui/button/cover_normal");
public static final UITexture BUTTON_COVER_NORMAL_HOVERED =
UITexture.fullImage(MODID, "gui/button/cover_normal_hovered");
diff --git a/src/main/java/gregtech/api/interfaces/internal/IGT_RecipeAdder.java b/src/main/java/gregtech/api/interfaces/internal/IGT_RecipeAdder.java
index 8bb10d8580..2dd5ab9fa0 100644
--- a/src/main/java/gregtech/api/interfaces/internal/IGT_RecipeAdder.java
+++ b/src/main/java/gregtech/api/interfaces/internal/IGT_RecipeAdder.java
@@ -1278,4 +1278,49 @@ public interface IGT_RecipeAdder {
int[] aChances,
int aDuration,
int aEUt);
+
+ /**
+ * Add a Nano Forge Recipe. The Nano Forge's main use is to make nanites/nanorobots.
+ * Tier 1 Nano Forge - Can make partly biological, partly metal nanites
+ * TIer 2 Nano Forge - Can make mostly metal nanites with some biological aspects
+ * TIer 3 Nano Forge - Can make nanites entierly out of metal
+ *
+ * @param aInputs = must not be null
+ * @param aFluidInputs = can be null
+ * @param aOutputs = must not be null, the nanite or other output
+ * @param aFluidOutputs = can be null
+ * @param aChances = can be null
+ * @param aDuration
+ * @param aEUt
+ * @param aSpecialValue = defines the tier of nano forge required.
+ *
+ */
+ boolean addNanoForgeRecipe(
+ ItemStack[] aInputs,
+ FluidStack[] aFluidInputs,
+ ItemStack[] aOutputs,
+ FluidStack[] aFluidOutputs,
+ int[] aChances,
+ int aDuration,
+ int aEUt,
+ int aSpecialValue);
+
+ /**
+ * Add a Board Manufacturer Recipe. The Board Manufacturer's main use is to make the circuit boards
+ * needed to make circuits.
+ *
+ * @param aInputs = must not be null
+ * @param aFluidInputs = must not be null
+ * @param aOutputs = must not be null
+ * @param aDuration
+ * @param aEUt
+ * @param aSpecialValue = defines the tier of the board manufacturer required.
+ */
+ boolean addPCBFactoryRecipe(
+ ItemStack[] aInputs,
+ FluidStack[] aFluidInputs,
+ ItemStack[] aOutputs,
+ int aDuration,
+ int aEUt,
+ int aSpecialValue);
}
diff --git a/src/main/java/gregtech/api/util/GT_LanguageManager.java b/src/main/java/gregtech/api/util/GT_LanguageManager.java
index 1d6d794542..1b2d566fd0 100644
--- a/src/main/java/gregtech/api/util/GT_LanguageManager.java
+++ b/src/main/java/gregtech/api/util/GT_LanguageManager.java
@@ -479,6 +479,17 @@ public class GT_LanguageManager {
addStringLocalization("Interaction_DESCRIPTION_Index_333", "OR Gate");
addStringLocalization("Interaction_DESCRIPTION_Index_334", "NOR Gate");
addStringLocalization("Interaction_DESCRIPTION_Index_335", "Gate Mode");
+ addStringLocalization("Interaction_DESCRIPTION_Index_336", "PCB Factory Tier: ");
+ addStringLocalization("Interaction_DESCRIPTION_Index_337", "Upgrade Required: ");
+ addStringLocalization("Interaction_DESCRIPTION_Index_338", "Bio");
+ addStringLocalization("Interaction_DESCRIPTION_Index_339", "Bio Upgrade Enabled");
+ addStringLocalization("Interaction_DESCRIPTION_Index_339.1", "Bio Upgrade Disabled");
+ addStringLocalization("Interaction_DESCRIPTION_Index_340", "Rotate Bio Upgrade 90 Degrees Enabled");
+ addStringLocalization("Interaction_DESCRIPTION_Index_340.1", "Rotate Bio Upgrade 90 Degrees Disabled");
+ addStringLocalization("Interaction_DESCRIPTION_Index_341", "OC Tier 1 Enabled");
+ addStringLocalization("Interaction_DESCRIPTION_Index_341.1", "OC Tier 1 Disabled");
+ addStringLocalization("Interaction_DESCRIPTION_Index_342", "OC Tier 2 Enabled");
+ addStringLocalization("Interaction_DESCRIPTION_Index_342.1", "OC Tier 2 Disabled");
addStringLocalization("Interaction_DESCRIPTION_Index_500", "Fitting: Loose - More Flow");
addStringLocalization("Interaction_DESCRIPTION_Index_501", "Fitting: Tight - More Efficiency");
addStringLocalization("Interaction_DESCRIPTION_Index_502", "Mining chunk loading enabled");
diff --git a/src/main/java/gregtech/api/util/GT_OreDictUnificator.java b/src/main/java/gregtech/api/util/GT_OreDictUnificator.java
index 75ca3a7141..bf554e57df 100644
--- a/src/main/java/gregtech/api/util/GT_OreDictUnificator.java
+++ b/src/main/java/gregtech/api/util/GT_OreDictUnificator.java
@@ -118,6 +118,14 @@ public class GT_OreDictUnificator {
return get(aPrefix.get(aMaterial), aReplacement, aAmount, false, true);
}
+ public static ItemStack get(OrePrefixes aPrefix, Object aMaterial, long aAmount, boolean aNoInvalidAmounts) {
+ // if (Materials.mDefaultComponents.contains(aPrefix) && !aPrefix.mDynamicItems.contains((Materials)aMaterial))
+ // aPrefix.mDynamicItems.add((Materials) aMaterial);
+ if (OrePrefixes.mPreventableComponents.contains(aPrefix) && aPrefix.mDisabledItems.contains(aMaterial))
+ return null;
+ return get(aPrefix.get(aMaterial), null, aAmount, false, aNoInvalidAmounts);
+ }
+
public static ItemStack get(
Object aName,
ItemStack aReplacement,
diff --git a/src/main/java/gregtech/api/util/GT_PCBFactoryManager.java b/src/main/java/gregtech/api/util/GT_PCBFactoryManager.java
new file mode 100644
index 0000000000..1543a9d2a6
--- /dev/null
+++ b/src/main/java/gregtech/api/util/GT_PCBFactoryManager.java
@@ -0,0 +1,22 @@
+package gregtech.api.util;
+
+import com.google.common.collect.HashBiMap;
+import gregtech.api.enums.Materials;
+
+public class GT_PCBFactoryManager {
+ private static final HashBiMap<Materials, Integer> mPlasticTiers = HashBiMap.create();
+ public static int mTiersOfPlastics = 0;
+
+ public static void addPlasticTier(Materials aMaterial, int aTier) {
+ mPlasticTiers.put(aMaterial, aTier);
+ mTiersOfPlastics++;
+ }
+
+ public static int getPlasticTier(Materials aMaterial) {
+ return mPlasticTiers.get(aMaterial);
+ }
+
+ public static Materials getPlasticMaterialFromTier(int aTier) {
+ return mPlasticTiers.inverse().get(aTier);
+ }
+}
diff --git a/src/main/java/gregtech/api/util/GT_Recipe.java b/src/main/java/gregtech/api/util/GT_Recipe.java
index 09cc850ecd..b2506c63ad 100644
--- a/src/main/java/gregtech/api/util/GT_Recipe.java
+++ b/src/main/java/gregtech/api/util/GT_Recipe.java
@@ -2428,6 +2428,48 @@ public class GT_Recipe implements Comparable<GT_Recipe> {
(GT_Recipe_Map_LargeBoilerFakeFuels) new GT_Recipe_Map_LargeBoilerFakeFuels()
.setProgressBar(GT_UITextures.PROGRESSBAR_ARROW, ProgressBar.Direction.RIGHT);
+ public static final GT_Recipe_Map sNanoForge = new GT_Recipe_Map(
+ new HashSet<>(10),
+ "gt.recipe.nanoforge",
+ "Nano Forge",
+ null,
+ RES_PATH_GUI + "basicmachines/LCRNEI",
+ 6,
+ 2,
+ 2,
+ 1,
+ 1,
+ "Tier: ",
+ 1,
+ "",
+ false,
+ true)
+ .useModularUI(true)
+ .setUsualFluidInputCount(1)
+ .setSlotOverlay(false, false, true, GT_UITextures.OVERLAY_SLOT_LENS)
+ .setProgressBar(GT_UITextures.PROGRESSBAR_ASSEMBLE, ProgressBar.Direction.RIGHT);
+
+ public static final GT_Recipe_Map sPCBFactory = new GT_Recipe_Map(
+ new HashSet<>(10),
+ "gt.recipe.pcbfactory",
+ "PCB Factory",
+ null,
+ RES_PATH_GUI + "basicmachines/LCRNEI",
+ 6,
+ 9,
+ 3,
+ 1,
+ 1,
+ E,
+ 0,
+ E,
+ true,
+ true)
+ .useModularUI(true)
+ .setUsualFluidInputCount(3)
+ .setUsualFluidOutputCount(0)
+ .setProgressBar(GT_UITextures.PROGRESSBAR_ASSEMBLE, ProgressBar.Direction.RIGHT);
+
/**
* HashMap of Recipes based on their Items
*/
diff --git a/src/main/java/gregtech/api/util/GT_Utility.java b/src/main/java/gregtech/api/util/GT_Utility.java
index a4cea9ed2f..da98e97f8e 100644
--- a/src/main/java/gregtech/api/util/GT_Utility.java
+++ b/src/main/java/gregtech/api/util/GT_Utility.java
@@ -4301,6 +4301,11 @@ public class GT_Utility {
return signal;
}
+ public static ItemStack getNaniteAsCatalyst(Materials material) {
+ ItemStack aItem = material.getNanite(1);
+ return new ItemStack(aItem.getItem(), 0, aItem.getItemDamage());
+ }
+
@AutoValue
public abstract static class ItemId {
/** This method copies NBT, as it is mutable. */
diff --git a/src/main/java/gregtech/common/GT_RecipeAdder.java b/src/main/java/gregtech/common/GT_RecipeAdder.java
index 488ac0a5fb..ee056ddebd 100644
--- a/src/main/java/gregtech/common/GT_RecipeAdder.java
+++ b/src/main/java/gregtech/common/GT_RecipeAdder.java
@@ -3318,6 +3318,46 @@ public class GT_RecipeAdder implements IGT_RecipeAdder {
return true;
}
+ @Override
+ public boolean addNanoForgeRecipe(
+ ItemStack[] aInputs,
+ FluidStack[] aFluidInputs,
+ ItemStack[] aOutputs,
+ FluidStack[] aFluidOutputs,
+ int[] aChances,
+ int aDuration,
+ int aEUt,
+ int aSpecialValue) {
+ if (aInputs == null || aOutputs == null || aSpecialValue == 0) return false;
+
+ GT_Recipe.GT_Recipe_Map.sNanoForge.addRecipe(new GT_Recipe(
+ false, aInputs, aOutputs, null, aChances, aFluidInputs, aFluidOutputs, aDuration, aEUt, aSpecialValue));
+ return true;
+ }
+
+ @Override
+ public boolean addPCBFactoryRecipe(
+ ItemStack[] aInputs,
+ FluidStack[] aFluidInputs,
+ ItemStack[] aOutputs,
+ int aDuration,
+ int aEUt,
+ int aSpecialValue) {
+
+ if (aInputs == null || aFluidInputs == null || aOutputs == null) {
+ return false;
+ }
+
+ if (aSpecialValue <= 0 || aEUt < 0 || aDuration < 0) {
+ return false;
+ }
+
+ GT_Recipe.GT_Recipe_Map.sPCBFactory.addRecipe(new GT_Recipe(
+ false, aInputs, aOutputs, null, null, aFluidInputs, null, aDuration, aEUt, aSpecialValue));
+
+ return true;
+ }
+
private boolean areItemsAndFluidsBothNull(ItemStack[] items, FluidStack[] fluids) {
boolean itemsNull = true;
if (items != null) {
diff --git a/src/main/java/gregtech/common/blocks/GT_Block_Casings8.java b/src/main/java/gregtech/common/blocks/GT_Block_Casings8.java
index 65583eaa28..ae67f52730 100644
--- a/src/main/java/gregtech/common/blocks/GT_Block_Casings8.java
+++ b/src/main/java/gregtech/common/blocks/GT_Block_Casings8.java
@@ -18,7 +18,7 @@ public class GT_Block_Casings8 extends GT_Block_Casings_Abstract {
// WATCH OUT FOR TEXTURE ID's
public GT_Block_Casings8() {
- super(GT_Item_Casings8.class, "gt.blockcasings8", GT_Material_Casings.INSTANCE, 10);
+ super(GT_Item_Casings8.class, "gt.blockcasings8", GT_Material_Casings.INSTANCE, 15);
/*
* DO NOT USE INDEX 15 !
* USED HERE: https://github.com/GTNewHorizons/Electro-Magic-Tools/pull/17
@@ -37,6 +37,14 @@ public class GT_Block_Casings8 extends GT_Block_Casings_Abstract {
getUnlocalizedName() + ".7.name", "Advanced Iridium Plated Machine Casing");
GT_LanguageManager.addStringLocalization(getUnlocalizedName() + ".8.name", "Magical Machine Casing");
GT_LanguageManager.addStringLocalization(getUnlocalizedName() + ".9.name", "HSS-S Turbine Casing");
+ GT_LanguageManager.addStringLocalization(getUnlocalizedName() + ".10.name", "Radiant Naquadah Alloy Casing");
+ GT_LanguageManager.addStringLocalization(
+ getUnlocalizedName() + ".11.name", "Basic Photolithographic Framework Casing");
+ GT_LanguageManager.addStringLocalization(
+ getUnlocalizedName() + ".12.name", "Reinforced Photolithographic Framework Casing");
+ GT_LanguageManager.addStringLocalization(
+ getUnlocalizedName() + ".13.name", "Radiation Proof Photolithographic Framework Casing");
+ GT_LanguageManager.addStringLocalization(getUnlocalizedName() + ".14.name", "Infinity Cooled Casing");
ItemList.Casing_Chemically_Inert.set(new ItemStack(this, 1, 0));
ItemList.Casing_Pipe_Polytetrafluoroethylene.set(new ItemStack(this, 1, 1));
@@ -48,6 +56,11 @@ public class GT_Block_Casings8 extends GT_Block_Casings_Abstract {
ItemList.Casing_Advanced_Iridium.set(new ItemStack(this, 1, 7));
ItemList.Casing_Magical.set(new ItemStack(this, 1, 8));
ItemList.Casing_TurbineGasAdvanced.set(new ItemStack(this, 1, 9));
+ ItemList.RadiantNaquadahAlloyCasing.set(new ItemStack(this, 1, 10));
+ ItemList.BasicPhotolithographicFrameworkCasing.set(new ItemStack(this, 1, 11));
+ ItemList.ReinforcedPhotolithographicFrameworkCasing.set(new ItemStack(this, 1, 12));
+ ItemList.RadiationProofPhotolithographicFrameworkCasing.set(new ItemStack(this, 1, 13));
+ ItemList.InfinityCooledCasing.set(new ItemStack(this, 1, 14));
}
@Override
@@ -80,6 +93,16 @@ public class GT_Block_Casings8 extends GT_Block_Casings_Abstract {
return Textures.BlockIcons.MACHINE_CASING_MAGICAL.getIcon();
case 9:
return Textures.BlockIcons.MACHINE_CASING_ADVANCEDGAS.getIcon();
+ case 10:
+ return Textures.BlockIcons.MACHINE_CASING_RADIANT_NAQUADAH_ALLOY.getIcon();
+ case 11:
+ return Textures.BlockIcons.MACHINE_CASING_PCB_TIER_1.getIcon();
+ case 12:
+ return Textures.BlockIcons.MACHINE_CASING_PCB_TIER_2.getIcon();
+ case 13:
+ return Textures.BlockIcons.MACHINE_CASING_PCB_TIER_3.getIcon();
+ case 14:
+ return Textures.BlockIcons.INFINITY_COOLED_CASING.getIcon();
}
return Textures.BlockIcons.MACHINE_CASING_ROBUST_TUNGSTENSTEEL.getIcon();
}
diff --git a/src/main/java/gregtech/common/items/GT_MetaGenerated_Item_03.java b/src/main/java/gregtech/common/items/GT_MetaGenerated_Item_03.java
index 01015515e8..00927497c6 100644
--- a/src/main/java/gregtech/common/items/GT_MetaGenerated_Item_03.java
+++ b/src/main/java/gregtech/common/items/GT_MetaGenerated_Item_03.java
@@ -21,7 +21,8 @@ public class GT_MetaGenerated_Item_03 extends GT_MetaGenerated_Item_X32 {
OrePrefixes.crateGtDust,
OrePrefixes.crateGtIngot,
OrePrefixes.crateGtGem,
- OrePrefixes.crateGtPlate);
+ OrePrefixes.crateGtPlate,
+ OrePrefixes.nanite);
INSTANCE = this;
int tLastID = 0;
Object[] o = new Object[0];
@@ -810,6 +811,6 @@ public class GT_MetaGenerated_Item_03 extends GT_MetaGenerated_Item_X32 {
@Override
public boolean doesShowInCreative(OrePrefixes aPrefix, Materials aMaterial, boolean aDoShowAllItems) {
- return aDoShowAllItems;
+ return aDoShowAllItems || (aPrefix.toString().toLowerCase().contains("nanite"));
}
}
diff --git a/src/main/java/gregtech/common/tileentities/machines/multi/GT_MetaTileEntity_NanoForge.java b/src/main/java/gregtech/common/tileentities/machines/multi/GT_MetaTileEntity_NanoForge.java
new file mode 100644
index 0000000000..6bff3c3338
--- /dev/null
+++ b/src/main/java/gregtech/common/tileentities/machines/multi/GT_MetaTileEntity_NanoForge.java
@@ -0,0 +1,453 @@
+package gregtech.common.tileentities.machines.multi;
+
+import static com.gtnewhorizon.structurelib.structure.StructureUtility.*;
+import static gregtech.api.enums.GT_HatchElement.*;
+import static gregtech.api.enums.GT_Values.AuthorBlueWeabo;
+import static gregtech.api.enums.Textures.BlockIcons.OVERLAY_FRONT_ASSEMBLY_LINE;
+import static gregtech.api.enums.Textures.BlockIcons.OVERLAY_FRONT_ASSEMBLY_LINE_ACTIVE;
+import static gregtech.api.enums.Textures.BlockIcons.OVERLAY_FRONT_ASSEMBLY_LINE_ACTIVE_GLOW;
+import static gregtech.api.enums.Textures.BlockIcons.OVERLAY_FRONT_ASSEMBLY_LINE_GLOW;
+import static gregtech.api.util.GT_StructureUtility.buildHatchAdder;
+import static gregtech.api.util.GT_StructureUtility.ofFrame;
+
+import com.gtnewhorizon.structurelib.alignment.IAlignmentLimits;
+import com.gtnewhorizon.structurelib.alignment.constructable.ISurvivalConstructable;
+import com.gtnewhorizon.structurelib.alignment.enumerable.Rotation;
+import com.gtnewhorizon.structurelib.structure.IStructureDefinition;
+import com.gtnewhorizon.structurelib.structure.ISurvivalBuildEnvironment;
+import com.gtnewhorizon.structurelib.structure.StructureDefinition;
+import gregtech.api.GregTech_API;
+import gregtech.api.enums.Materials;
+import gregtech.api.enums.Textures.BlockIcons;
+import gregtech.api.interfaces.ITexture;
+import gregtech.api.interfaces.metatileentity.IMetaTileEntity;
+import gregtech.api.interfaces.tileentity.IGregTechTileEntity;
+import gregtech.api.metatileentity.implementations.GT_MetaTileEntity_ExtendedPowerMultiBlockBase;
+import gregtech.api.metatileentity.implementations.GT_MetaTileEntity_Hatch_InputBus;
+import gregtech.api.render.TextureFactory;
+import gregtech.api.util.GT_ExoticEnergyInputHelper;
+import gregtech.api.util.GT_Multiblock_Tooltip_Builder;
+import gregtech.api.util.GT_Recipe;
+import gregtech.api.util.GT_Utility;
+import gregtech.common.blocks.GT_Block_Casings8;
+import java.util.ArrayList;
+import net.minecraft.entity.player.EntityPlayer;
+import net.minecraft.