aboutsummaryrefslogtreecommitdiff
path: root/src/main/java/gregtech/api
diff options
context:
space:
mode:
Diffstat (limited to 'src/main/java/gregtech/api')
-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
13 files changed, 190 insertions, 18 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. */