aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorGTNH-Colen <54497873+GTNH-Colen@users.noreply.github.com>2022-01-27 07:20:41 +0000
committerGitHub <noreply@github.com>2022-01-27 08:20:41 +0100
commitf185448ac0452b6d88319b27d91706f45cb7a09b (patch)
tree06ada33307cb9459b525674ff40f7bd187f43674
parent22bba6ee4da0b62b8b41ca9f0e70c6d6104d9cd8 (diff)
downloadGT5-Unofficial-f185448ac0452b6d88319b27d91706f45cb7a09b.tar.gz
GT5-Unofficial-f185448ac0452b6d88319b27d91706f45cb7a09b.tar.bz2
GT5-Unofficial-f185448ac0452b6d88319b27d91706f45cb7a09b.zip
Add new circuit tiers (#895)
* New circuits * Fix last tier ore dict * Colorfull tier tooltips (#898) * Make Repellator stop slimes spawning (#896) * Add special tooltip handling, requested by Colen Co-authored-by: Alkalus <3060479+draknyte1@users.noreply.github.com> Co-authored-by: glowredman <fredcraft00@gmail.com> Co-authored-by: Alkalus <3060479+draknyte1@users.noreply.github.com> Co-authored-by: glowredman <fredcraft00@gmail.com>
-rw-r--r--build.gradle100
-rw-r--r--src/main/java/gregtech/GT_Mod.java3
-rw-r--r--src/main/java/gregtech/api/enums/ItemList.java20
-rw-r--r--src/main/java/gregtech/api/enums/Materials.java15
-rw-r--r--src/main/java/gregtech/client/GT_TooltipEventHandler.java101
-rw-r--r--src/main/java/gregtech/common/items/GT_MetaGenerated_Item_03.java21
-rw-r--r--src/main/resources/assets/gregtech/textures/items/gt.metaitem.03/154.pngbin0 -> 608 bytes
-rw-r--r--src/main/resources/assets/gregtech/textures/items/gt.metaitem.03/155.pngbin0 -> 635 bytes
-rw-r--r--src/main/resources/assets/gregtech/textures/items/gt.metaitem.03/156.pngbin0 -> 1850 bytes
-rw-r--r--src/main/resources/assets/gregtech/textures/items/gt.metaitem.03/157.pngbin0 -> 4526 bytes
-rw-r--r--src/main/resources/assets/gregtech/textures/items/gt.metaitem.03/166.pngbin0 -> 2607 bytes
-rw-r--r--src/main/resources/assets/gregtech/textures/items/gt.metaitem.03/167.pngbin0 -> 2801 bytes
-rw-r--r--src/main/resources/assets/gregtech/textures/items/gt.metaitem.03/168.pngbin0 -> 1836 bytes
-rw-r--r--src/main/resources/assets/gregtech/textures/items/gt.metaitem.03/169.pngbin0 -> 23119 bytes
-rw-r--r--src/main/resources/assets/gregtech/textures/items/gt.metaitem.03/170.pngbin0 -> 2538 bytes
-rw-r--r--src/main/resources/assets/gregtech/textures/items/gt.metaitem.03/171.pngbin0 -> 2745 bytes
-rw-r--r--src/main/resources/assets/gregtech/textures/items/gt.metaitem.03/172.pngbin0 -> 1826 bytes
-rw-r--r--src/main/resources/assets/gregtech/textures/items/gt.metaitem.03/173.pngbin0 -> 22854 bytes
-rw-r--r--src/main/resources/assets/gregtech/textures/items/gt.metaitem.03/174.pngbin0 -> 815 bytes
-rw-r--r--src/main/resources/assets/gregtech/textures/items/gt.metaitem.03/174.png.mcmeta7
-rw-r--r--src/main/resources/assets/gregtech/textures/items/gt.metaitem.03/175.pngbin0 -> 1005 bytes
-rw-r--r--src/main/resources/assets/gregtech/textures/items/gt.metaitem.03/175.png.mcmeta7
-rw-r--r--src/main/resources/assets/gregtech/textures/items/gt.metaitem.03/176.pngbin0 -> 3331 bytes
-rw-r--r--src/main/resources/assets/gregtech/textures/items/gt.metaitem.03/176.png.mcmeta7
-rw-r--r--src/main/resources/assets/gregtech/textures/items/gt.metaitem.03/177.pngbin0 -> 18422 bytes
-rw-r--r--src/main/resources/assets/gregtech/textures/items/gt.metaitem.03/177.png.mcmeta7
26 files changed, 257 insertions, 31 deletions
diff --git a/build.gradle b/build.gradle
index b647108772..fd2582fc04 100644
--- a/build.gradle
+++ b/build.gradle
@@ -1,4 +1,4 @@
-//version: 1642484596
+//version: 1642964305
/*
DO NOT CHANGE THIS FILE!
@@ -32,16 +32,18 @@ buildscript {
}
}
dependencies {
- classpath 'com.github.GTNewHorizons:ForgeGradle:1.2.5'
+ classpath 'com.github.GTNewHorizons:ForgeGradle:1.2.6'
}
}
plugins {
id 'idea'
+ id 'eclipse'
id 'scala'
id("org.ajoberstar.grgit") version("3.1.1")
id("com.github.johnrengelman.shadow") version("4.0.4")
id("com.palantir.git-version") version("0.12.3")
+ id('de.undercouch.download') version('4.1.2')
id("maven-publish")
}
@@ -320,38 +322,29 @@ afterEvaluate {
}
}
}
+def arguments = []
+def jvmArguments = []
+if(usesMixins.toBoolean()) {
+ arguments += [
+ "--tweakClass org.spongepowered.asm.launch.MixinTweaker"
+ ]
+ jvmArguments += [
+ "-Dmixin.debug=true", "-Dmixin.debug.countInjections=true", "-Dmixin.debug.verbose=true", "-Dmixin.debug.export=true"
+ ]
+}
runClient {
- def arguments = []
-
- if(usesMixins.toBoolean()) {
- arguments += [
- "--mods=../build/libs/$modId-${version}.jar",
- "--tweakClass org.spongepowered.asm.launch.MixinTweaker"
- ]
- }
-
if(developmentEnvironmentUserName) {
- arguments += [
- "--username",
- developmentEnvironmentUserName
- ]
+ arguments += [ "--username", developmentEnvironmentUserName ]
}
args(arguments)
+ jvmArgs(jvmArguments)
}
runServer {
- def arguments = []
-
- if (usesMixins.toBoolean()) {
- arguments += [
- "--mods=../build/libs/$modId-${version}.jar",
- "--tweakClass org.spongepowered.asm.launch.MixinTweaker"
- ]
- }
-
args(arguments)
+ jvmArgs(jvmArguments)
}
tasks.withType(JavaExec).configureEach {
@@ -494,11 +487,21 @@ artifacts {
}
}
+// The gradle metadata includes all of the additional deps that we disabled from POM generation (including forgeBin with no groupID),
+// and isn't strictly needed with the POM so just disable it.
+tasks.withType(GenerateModuleMetadata) {
+ enabled = false
+}
+
+
// publishing
publishing {
publications {
maven(MavenPublication) {
- artifact source: usesShadowedDependencies.toBoolean() ? shadowJar : jar, classifier: ""
+ from components.java
+ if(usesShadowedDependencies.toBoolean()) {
+ artifact source: shadowJar, classifier: ""
+ }
if(!noPublishedSources) {
artifact source: sourcesJar, classifier: "src"
}
@@ -511,6 +514,18 @@ publishing {
artifactId = System.getenv("ARTIFACT_ID") ?: project.name
// Using the identified version, not project.version as it has the prepended 1.7.10
version = System.getenv("RELEASE_VERSION") ?: identifiedVersion
+
+ // Remove all non GTNH deps here.
+ // Original intention was to remove an invalid forgeBin being generated without a groupId (mandatory), but
+ // it also removes all of the MC deps
+ pom.withXml {
+ Node pomNode = asNode()
+ pomNode.dependencies.'*'.findAll() {
+ it.groupId.text() != 'com.github.GTNewHorizons'
+ }.each() {
+ it.parent().remove(it)
+ }
+ }
}
}
@@ -581,6 +596,41 @@ configure(updateBuildScript) {
description = 'Updates the build script to the latest version'
}
+// Deobfuscation
+
+def deobf(String sourceURL, String fileName) {
+ def bon2File = "$projectDir/deobf/BON2-2.5.0.jar"
+ def cacheFile = "$projectDir/deobf/out/" + fileName + ".jar"
+ def deobfFile = "$projectDir/deobf/out/" + fileName + "-deobf.jar"
+
+ if(file(deobfFile).exists()) {
+ return files(deobfFile)
+ }
+
+ download {
+ src 'https://github.com/GTNewHorizons/BON2/releases/download/2.5.0/BON2-2.5.0.CUSTOM-all.jar'
+ dest bon2File
+ quiet true
+ overwrite false
+ }
+
+ download {
+ src sourceURL
+ dest cacheFile
+ quiet true
+ overwrite false
+ }
+
+ exec {
+ commandLine 'java', '-jar', bon2File, '--inputJar', cacheFile, '--outputJar', deobfFile, '--mcVer', '1.7.10', '--mappingsVer', 'stable_12', '--notch'
+ workingDir "$projectDir/deobf"
+ standardOutput = new ByteArrayOutputStream()
+ }
+
+ delete(cacheFile)
+ return files(deobfFile)
+}
+
// Helper methods
def checkPropertyExists(String propertyName) {
diff --git a/src/main/java/gregtech/GT_Mod.java b/src/main/java/gregtech/GT_Mod.java
index f834af648d..474fd5decc 100644
--- a/src/main/java/gregtech/GT_Mod.java
+++ b/src/main/java/gregtech/GT_Mod.java
@@ -17,6 +17,7 @@ import gregtech.api.objects.ReverseShapelessRecipe;
import gregtech.api.objects.XSTR;
import gregtech.api.threads.GT_Runnable_MachineBlockUpdate;
import gregtech.api.util.*;
+import gregtech.client.GT_TooltipEventHandler;
import gregtech.common.GT_DummyWorld;
import gregtech.common.GT_Network;
import gregtech.common.GT_Proxy;
@@ -366,6 +367,8 @@ public class GT_Mod implements IGT_Mod {
GT_PostLoad.nerfVanillaTools();
new GT_ExtremeDieselFuelLoader().run();
+ GT_TooltipEventHandler.init();
+ MinecraftForge.EVENT_BUS.register(new GT_TooltipEventHandler());
/*
diff --git a/src/main/java/gregtech/api/enums/ItemList.java b/src/main/java/gregtech/api/enums/ItemList.java
index 4ec6f8f916..509364ef04 100644
--- a/src/main/java/gregtech/api/enums/ItemList.java
+++ b/src/main/java/gregtech/api/enums/ItemList.java
@@ -1779,6 +1779,26 @@ public enum ItemList implements IItemContainer {
Circuit_Bioprocessor,
Circuit_Biomainframe,
+ Circuit_OpticalProcessor,
+ Circuit_OpticalAssembly,
+ Circuit_OpticalComputer,
+ Circuit_OpticalMainframe,
+
+ Circuit_ExoticProcessor,
+ Circuit_ExoticAssembly,
+ Circuit_ExoticComputer,
+ Circuit_ExoticMainframe,
+
+ Circuit_CosmicProcessor,
+ Circuit_CosmicAssembly,
+ Circuit_CosmicComputer,
+ Circuit_CosmicMainframe,
+
+ Circuit_TranscendentProcessor,
+ Circuit_TranscendentAssembly,
+ Circuit_TranscendentComputer,
+ Circuit_TranscendentMainframe,
+
Machine_LV_CircuitAssembler,
Machine_MV_CircuitAssembler,
Machine_HV_CircuitAssembler,
diff --git a/src/main/java/gregtech/api/enums/Materials.java b/src/main/java/gregtech/api/enums/Materials.java
index 01be017a2a..0e270b1d44 100644
--- a/src/main/java/gregtech/api/enums/Materials.java
+++ b/src/main/java/gregtech/api/enums/Materials.java
@@ -332,12 +332,15 @@ public class Materials implements IColorModulationContainer, ISubTagContainer {
public static Materials Elite = new Materials( -1, TextureSet.SET_NONE , 1.0F, 0, 0, 0 , 255, 255, 255, 0, "Elite" , "Elite" , 0, 0, -1, 0, false, false, 1, 1, 1, Dyes.dyeLightGray , Arrays.asList(new TC_AspectStack(TC_Aspects.MACHINA, 6)));
public static Materials Master = new Materials( -1, TextureSet.SET_NONE , 1.0F, 0, 0, 0 , 255, 255, 255, 0, "Master" , "Master" , 0, 0, -1, 0, false, false, 1, 1, 1, Dyes.dyeLightGray , Arrays.asList(new TC_AspectStack(TC_Aspects.MACHINA, 7)));
public static Materials Ultimate = new Materials( -1, TextureSet.SET_NONE , 1.0F, 0, 0, 0 , 255, 255, 255, 0, "Ultimate" , "Ultimate" , 0, 0, -1, 0, false, false, 1, 1, 1, Dyes.dyeLightGray , Arrays.asList(new TC_AspectStack(TC_Aspects.MACHINA, 8)));
- public static Materials Infinite = new Materials( -1, TextureSet.SET_NONE , 1.0F, 0, 0, 0 , 255, 255, 255, 0, "Infinite" , "Infinite" , 0, 0, -1, 0, false, false, 1, 1, 1, Dyes.dyeLightGray , Arrays.asList(new TC_AspectStack(TC_Aspects.ELECTRUM, 10)));
- public static Materials Bio = new Materials( -1, TextureSet.SET_NONE , 1.0F, 0, 0, 0 , 255, 255, 255, 0, "Bio" , "Bio" , 0, 0, -1, 0, false, false, 1, 1, 1, Dyes.dyeLightGray , Arrays.asList(new TC_AspectStack(TC_Aspects.ELECTRUM, 11)));
- public static Materials Nano = new Materials( -1, TextureSet.SET_NONE , 1.0F, 0, 0, 0 , 255, 255, 255, 0, "Nano" , "Bio" , 0, 0, -1, 0, false, false, 1, 1, 1, Dyes.dyeLightGray , Arrays.asList(new TC_AspectStack(TC_Aspects.ELECTRUM, 12)));
- public static Materials Piko = new Materials( -1, TextureSet.SET_NONE , 1.0F, 0, 0, 0 , 255, 255, 255, 0, "Piko" , "Bio" , 0, 0, -1, 0, false, false, 1, 1, 1, Dyes.dyeLightGray , Arrays.asList(new TC_AspectStack(TC_Aspects.ELECTRUM, 13)));
- public static Materials Quantum = new Materials( -1, TextureSet.SET_NONE , 1.0F, 0, 0, 0 , 255, 255, 255, 0, "Quantum" , "Bio" , 0, 0, -1, 0, false, false, 1, 1, 1, Dyes.dyeLightGray , Arrays.asList(new TC_AspectStack(TC_Aspects.ELECTRUM, 14)));
-
+ public static Materials Infinite = new Materials( -1, TextureSet.SET_NONE , 1.0F, 0, 0, 0 , 255, 255, 255, 0, "Infinite" , "Infinite" , 0, 0, -1, 0, false, false, 1, 1, 1, Dyes.dyeLightGray , Arrays.asList(new TC_AspectStack(TC_Aspects.ELECTRUM, 9)));
+ public static Materials Bio = new Materials( -1, TextureSet.SET_NONE , 1.0F, 0, 0, 0 , 255, 255, 255, 0, "Bio" , "Bio" , 0, 0, -1, 0, false, false, 1, 1, 1, Dyes.dyeLightGray , Arrays.asList(new TC_AspectStack(TC_Aspects.ELECTRUM, 10)));
+ public static Materials Nano = new Materials( -1, TextureSet.SET_NONE , 1.0F, 0, 0, 0 , 255, 255, 255, 0, "Nano" , "Bio" , 0, 0, -1, 0, false, false, 1, 1, 1, Dyes.dyeLightGray , Arrays.asList(new TC_AspectStack(TC_Aspects.ELECTRUM, 11)));
+ public static Materials Piko = new Materials( -1, TextureSet.SET_NONE , 1.0F, 0, 0, 0 , 255, 255, 255, 0, "Piko" , "Bio" , 0, 0, -1, 0, false, false, 1, 1, 1, Dyes.dyeLightGray , Arrays.asList(new TC_AspectStack(TC_Aspects.ELECTRUM, 12)));
+ public static Materials Quantum = new Materials( -1, TextureSet.SET_NONE , 1.0F, 0, 0, 0 , 255, 255, 255, 0, "Quantum" , "Bio" , 0, 0, -1, 0, false, false, 1, 1, 1, Dyes.dyeLightGray , Arrays.asList(new TC_AspectStack(TC_Aspects.ELECTRUM, 13)));
+ public static Materials Optical = new Materials( -1, TextureSet.SET_NONE , 1.0F, 0, 0, 0 , 255, 255, 255, 0, "Optical" , "Optical" , 0, 0, -1, 0, false, false, 1, 1, 1, Dyes.dyeLightGray , Arrays.asList(new TC_AspectStack(TC_Aspects.ELECTRUM, 14)));
+ public static Materials Exotic = new Materials( -1, TextureSet.SET_NONE , 1.0F, 0, 0, 0 , 255, 255, 255, 0, "Exotic" , "Exotic" , 0, 0, -1, 0, false, false, 1, 1, 1, Dyes.dyeLightGray , Arrays.asList(new TC_AspectStack(TC_Aspects.ELECTRUM, 13)));
+ public static Materials Cosmic = new Materials( -1, TextureSet.SET_NONE , 1.0F, 0, 0, 0 , 255, 255, 255, 0, "Cosmic" , "Cosmic" , 0, 0, -1, 0, false, false, 1, 1, 1, Dyes.dyeLightGray , Arrays.asList(new TC_AspectStack(TC_Aspects.ELECTRUM, 14)));
+ public static Materials Transcendental = new Materials( -1, TextureSet.SET_NONE , 1.0F, 0, 0, 0 , 255, 255, 255, 0, "Transcendental" , "Transcendental" , 0, 0, -1, 0, false, false, 1, 1, 1, Dyes.dyeLightGray , Arrays.asList(new TC_AspectStack(TC_Aspects.ELECTRUM, 15)));
/**
* Not possible to determine exact Components
*/
diff --git a/src/main/java/gregtech/client/GT_TooltipEventHandler.java b/src/main/java/gregtech/client/GT_TooltipEventHandler.java
new file mode 100644
index 0000000000..1fb4995025
--- /dev/null
+++ b/src/main/java/gregtech/client/GT_TooltipEventHandler.java
@@ -0,0 +1,101 @@
+package gregtech.client;
+
+import static net.minecraft.util.EnumChatFormatting.*;
+
+import java.util.HashMap;
+import java.util.Map;
+import java.util.function.Supplier;
+
+import cpw.mods.fml.common.eventhandler.SubscribeEvent;
+import cpw.mods.fml.common.registry.GameRegistry;
+import net.minecraft.item.Item;
+import net.minecraft.item.ItemStack;
+import net.minecraft.util.EnumChatFormatting;
+import net.minecraftforge.event.entity.player.ItemTooltipEvent;
+import net.minecraftforge.oredict.OreDictionary;
+
+public class GT_TooltipEventHandler {
+
+ private static final Map<String, Supplier<String>[]> tooltipMap = new HashMap<>();
+
+ public static void init() {
+ addOredictTooltip("circuitPrimitive", formattedText("ULV-Tier", RED));
+ addOredictTooltip("circuitBasic", formattedText("LV-Tier", DARK_BLUE));
+ addOredictTooltip("circuitGood", formattedText("MV-Tier", GRAY));
+ addOredictTooltip("circuitAdvanced", formattedText("HV-Tier", GOLD));
+ addOredictTooltip("circuitData", formattedText("EV-Tier", DARK_PURPLE));
+ addOredictTooltip("circuitElite", formattedText("IV-Tier", DARK_BLUE));
+ addOredictTooltip("circuitMaster", formattedText("LuV-Tier", LIGHT_PURPLE));
+ addOredictTooltip("circuitUltimate", formattedText("ZPM-Tier", WHITE));
+ addOredictTooltip("circuitSuperconductor", formattedText("UV-Tier", AQUA));
+ addOredictTooltip("circuitInfinite", formattedText("UHV-Tier", DARK_RED));
+ addOredictTooltip("circuitBio", formattedText("UEV-Tier", GREEN));
+ //addOredictTooltip("circuitOptical", formattedText("UIV-Tier", DARK_GREEN));
+ //addOredictTooltip("circuitExotic", formattedText("UV-Tier", DARK_AQUA));
+ //addOredictTooltip("circuitCosmic", animatedString("UXV-Tier", 8, 500, BLACK, BLACK, BLACK, BLACK, BLACK, BLACK, BLACK, BLACK, WHITE, WHITE, WHITE, WHITE, WHITE, WHITE, WHITE, WHITE));
+ //addOredictTooltip("circuitTranscendental", animatedString("MAX-Tier", 1, 80, RED, GOLD, YELLOW, GREEN, AQUA, BLUE, LIGHT_PURPLE));
+ }
+
+ @SubscribeEvent
+ public void renderTooltip(ItemTooltipEvent event) {
+ Supplier<String>[] texts = tooltipMap.get(getStackIdentifier(event.itemStack));
+ if(texts == null) return;
+ String s = "";
+ for(Supplier<String> snippet : texts) {
+ s += snippet.get();
+ }
+ event.toolTip.add(s);
+ }
+
+ private static Supplier<String> text(String text) {
+ return () -> text;
+ }
+
+ private static Supplier<String> formattedText(String text, EnumChatFormatting formatting){
+ return () -> formatting + text;
+ }
+
+ /** Taken and adapted from <a href=https://github.com/GTNewHorizons/Avaritia/blob/7b7eaed652f6be320b10f33d8f8e6a04e66ca14f/src/main/java/fox/spiteful/avaritia/LudicrousText.java#L19>Avaritia</a>, licensed under MIT */
+ private static Supplier<String> animatedString(String text, int posstep, int delay, EnumChatFormatting... formattingArray) {
+ if(text.isEmpty()) return () -> "";
+
+ final int finalDelay = delay = delay <= 0 ? delay = 1 : delay;
+
+ return () -> {
+ StringBuilder sb = new StringBuilder(text.length() * 3);
+ int offset = (int) ((System.currentTimeMillis() / finalDelay) % formattingArray.length);
+ for(int i = 0; i < text.length(); i++) {
+ char c = text.charAt(i);
+ int indexColorArray = (i * posstep + formattingArray.length - offset) % formattingArray.length;
+ sb.append(formattingArray[indexColorArray]);
+ sb.append(c);
+ }
+ return sb.toString();
+ };
+ }
+
+ @SafeVarargs
+ private static void addOredictTooltip(String oredictName, Supplier<String>... tooltips) {
+ for(ItemStack item : OreDictionary.getOres(oredictName)) {
+ addItemTooltip(item, tooltips);
+ }
+ }
+
+ @SafeVarargs
+ private static void addItemTooltip(String modID, String registryName, int meta, Supplier<String>... tooltips) {
+ Item item = GameRegistry.findItem(modID, registryName);
+ if(item == null || meta < 0 || meta >= OreDictionary.WILDCARD_VALUE || tooltips == null) return;
+ tooltipMap.put(item.getUnlocalizedName() + "@" + meta, tooltips);
+ }
+
+ @SafeVarargs
+ private static void addItemTooltip(ItemStack item, Supplier<String>... tooltips) {
+ if(item == null || tooltips == null) return;
+ tooltipMap.put(getStackIdentifier(item), tooltips);
+ }
+
+ private static String getStackIdentifier(ItemStack stack) {
+ return stack == null ? "" : stack.getItem().getUnlocalizedName() + "@" + stack.getItemDamage();
+ }
+
+}
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 251842334a..6cb73278f0 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
@@ -214,6 +214,27 @@ public class GT_MetaGenerated_Item_03
ItemList.Circuit_Board_Bio_Ultra.set(addItem(tLastID = 107, "Ultra Bio Mutated Circuit Board", "Bio genetic mutated Board", o));
ItemList.Circuit_Biomainframe.set(addItem(tLastID = 120, "Bio Mainframe", "A Bio Circuit", OrePrefixes.circuit.get(Materials.Bio), SubTag.NO_UNIFICATION));
+ ItemList.Circuit_OpticalProcessor.set(addItem(tLastID = 154, "Optical Processor", "An Optical Circuit", OrePrefixes.circuit.get(Materials.Optical), SubTag.NO_UNIFICATION));
+ ItemList.Circuit_OpticalAssembly.set(addItem(tLastID = 155, "Optical Assembly", "An Optical Circuit", OrePrefixes.circuit.get(Materials.Optical), SubTag.NO_UNIFICATION));
+ ItemList.Circuit_OpticalComputer.set(addItem(tLastID = 156, "Optical Computer", "An Optical Circuit", OrePrefixes.circuit.get(Materials.Optical), SubTag.NO_UNIFICATION));
+ ItemList.Circuit_OpticalMainframe.set(addItem(tLastID = 157, "Optical Mainframe", "An Optical Circuit", OrePrefixes.circuit.get(Materials.Optical), SubTag.NO_UNIFICATION));
+
+ ItemList.Circuit_ExoticProcessor.set(addItem(tLastID = 166, "Exotic Processor", "An Exotic Circuit", OrePrefixes.circuit.get(Materials.Exotic), SubTag.NO_UNIFICATION));
+ ItemList.Circuit_ExoticAssembly.set(addItem(tLastID = 167, "Exotic Assembly", "An Exotic Circuit", OrePrefixes.circuit.get(Materials.Exotic), SubTag.NO_UNIFICATION));
+ ItemList.Circuit_ExoticComputer.set(addItem(tLastID = 168, "Exotic Computer", "An Exotic Circuit", OrePrefixes.circuit.get(Materials.Exotic), SubTag.NO_UNIFICATION));
+ ItemList.Circuit_ExoticMainframe.set(addItem(tLastID = 169, "Exotic Mainframe", "An Exotic Circuit", OrePrefixes.circuit.get(Materials.Exotic), SubTag.NO_UNIFICATION));
+
+ ItemList.Circuit_CosmicProcessor.set(addItem(tLastID = 170, "Cosmic Processor", "A Cosmic Circuit", OrePrefixes.circuit.get(Materials.Cosmic), SubTag.NO_UNIFICATION));
+ ItemList.Circuit_CosmicAssembly.set(addItem(tLastID = 171, "Cosmic Assembly", "A Cosmic Circuit", OrePrefixes.circuit.get(Materials.Cosmic), SubTag.NO_UNIFICATION));
+ ItemList.Circuit_CosmicComputer.set(addItem(tLastID = 172, "Cosmic Computer", "A Cosmic Circuit", OrePrefixes.circuit.get(Materials.Cosmic), SubTag.NO_UNIFICATION));
+ ItemList.Circuit_CosmicMainframe.set(addItem(tLastID = 173, "Cosmic Mainframe", "A Cosmic Circuit", OrePrefixes.circuit.get(Materials.Cosmic), SubTag.NO_UNIFICATION));
+
+ ItemList.Circuit_TranscendentProcessor.set(addItem(tLastID = 174, "Temporally Transcendent Processor", "A circuit operating outside of known spacetime", OrePrefixes.circuit.get(Materials.Transcendental), SubTag.NO_UNIFICATION));
+ ItemList.Circuit_TranscendentAssembly.set(addItem(tLastID = 175, "Temporally Transcendent Assembly", "A circuit operating outside of known spacetime", OrePrefixes.circuit.get(Materials.Transcendental), SubTag.NO_UNIFICATION));
+ ItemList.Circuit_TranscendentComputer.set(addItem(tLastID = 176, "Temporally Transcendent Computer", "A circuit operating outside of known spacetime", OrePrefixes.circuit.get(Materials.Transcendental), SubTag.NO_UNIFICATION));
+ ItemList.Circuit_TranscendentMainframe.set(addItem(tLastID = 177, "Temporally Transcendent Mainframe", "A circuit operating outside of known spacetime", OrePrefixes.circuit.get(Materials.Transcendental), SubTag.NO_UNIFICATION));
+
+
ItemList.Tube_Wires.set(addItem(tLastID = 110, "Tube Wires", "For the Vacuum Tubes", o));
ItemList.Cover_SolarPanel_UHV.set(addItem(tLastID = 130, "Solar Panel (UHV)", "Ultimate High Voltage Solar Panel (Needs cleaning with right click)", new TC_Aspects.TC_AspectStack(TC_Aspects.ELECTRUM, 128L), new TC_Aspects.TC_AspectStack(TC_Aspects.POTENTIA, 128L), new TC_Aspects.TC_AspectStack(TC_Aspects.TENEBRAE, 128L)));
diff --git a/src/main/resources/assets/gregtech/textures/items/gt.metaitem.03/154.png b/src/main/resources/assets/gregtech/textures/items/gt.metaitem.03/154.png
new file mode 100644
index 0000000000..d9a3c69a98
--- /dev/null
+++ b/src/main/resources/assets/gregtech/textures/items/gt.metaitem.03/154.png
Binary files differ
diff --git a/src/main/resources/assets/gregtech/textures/items/gt.metaitem.03/155.png b/src/main/resources/assets/gregtech/textures/items/gt.metaitem.03/155.png
new file mode 100644
index 0000000000..166b70636a
--- /dev/null
+++ b/src/main/resources/assets/gregtech/textures/items/gt.metaitem.03/155.png
Binary files differ
diff --git a/src/main/resources/assets/gregtech/textures/items/gt.metaitem.03/156.png b/src/main/resources/assets/gregtech/textures/items/gt.metaitem.03/156.png
new file mode 100644
index 0000000000..27e17024f8
--- /dev/null
+++ b/src/main/resources/assets/gregtech/textures/items/gt.metaitem.03/156.png
Binary files differ
diff --git a/src/main/resources/assets/gregtech/textures/items/gt.metaitem.03/157.png b/src/main/resources/assets/gregtech/textures/items/gt.metaitem.03/157.png
new file mode 100644
index 0000000000..105d2adde9
--- /dev/null
+++ b/src/main/resources/assets/gregtech/textures/items/gt.metaitem.03/157.png
Binary files differ
diff --git a/src/main/resources/assets/gregtech/textures/items/gt.metaitem.03/166.png b/src/main/resources/assets/gregtech/textures/items/gt.metaitem.03/166.png
new file mode 100644
index 0000000000..32268beac2
--- /dev/null
+++ b/src/main/resources/assets/gregtech/textures/items/gt.metaitem.03/166.png
Binary files differ
diff --git a/src/main/resources/assets/gregtech/textures/items/gt.metaitem.03/167.png b/src/main/resources/assets/gregtech/textures/items/gt.metaitem.03/167.png
new file mode 100644
index 0000000000..6273e9099f
--- /dev/null
+++ b/src/main/resources/assets/gregtech/textures/items/gt.metaitem.03/167.png
Binary files differ
diff --git a/src/main/resources/assets/gregtech/textures/items/gt.metaitem.03/168.png b/src/main/resources/assets/gregtech/textures/items/gt.metaitem.03/168.png
new file mode 100644
index 0000000000..fca0df8cbb
--- /dev/null
+++ b/src/main/resources/assets/gregtech/textures/items/gt.metaitem.03/168.png
Binary files differ
diff --git a/src/main/resources/assets/gregtech/textures/items/gt.metaitem.03/169.png b/src/main/resources/assets/gregtech/textures/items/gt.metaitem.03/169.png
new file mode 100644
index 0000000000..16acebbeac
--- /dev/null
+++ b/src/main/resources/assets/gregtech/textures/items/gt.metaitem.03/169.png
Binary files differ
diff --git a/src/main/resources/assets/gregtech/textures/items/gt.metaitem.03/170.png b/src/main/resources/assets/gregtech/textures/items/gt.metaitem.03/170.png
new file mode 100644
index 0000000000..498bd4362a
--- /dev/null
+++ b/src/main/resources/assets/gregtech/textures/items/gt.metaitem.03/170.png
Binary files differ
diff --git a/src/main/resources/assets/gregtech/textures/items/gt.metaitem.03/171.png b/src/main/resources/assets/gregtech/textures/items/gt.metaitem.03/171.png
new file mode 100644
index 0000000000..00cce1a49c
--- /dev/null
+++ b/src/main/resources/assets/gregtech/textures/items/gt.metaitem.03/171.png
Binary files differ
diff --git a/src/main/resources/assets/gregtech/textures/items/gt.metaitem.03/172.png b/src/main/resources/assets/gregtech/textures/items/gt.metaitem.03/172.png
new file mode 100644
index 0000000000..169588ebd3
--- /dev/null
+++ b/src/main/resources/assets/gregtech/textures/items/gt.metaitem.03/172.png
Binary files differ
diff --git a/src/main/resources/assets/gregtech/textures/items/gt.metaitem.03/173.png b/src/main/resources/assets/gregtech/textures/items/gt.metaitem.03/173.png
new file mode 100644
index 0000000000..3179b357c8
--- /dev/null
+++ b/src/main/resources/assets/gregtech/textures/items/gt.metaitem.03/173.png
Binary files differ
diff --git a/src/main/resources/assets/gregtech/textures/items/gt.metaitem.03/174.png b/src/main/resources/assets/gregtech/textures/items/gt.metaitem.03/174.png
new file mode 100644
index 0000000000..99d1057b16
--- /dev/null
+++ b/src/main/resources/assets/gregtech/textures/items/gt.metaitem.03/174.png
Binary files differ
diff --git a/src/main/resources/assets/gregtech/textures/items/gt.metaitem.03/174.png.mcmeta b/src/main/resources/assets/gregtech/textures/items/gt.metaitem.03/174.png.mcmeta
new file mode 100644
index 0000000000..1f1b5fe80e
--- /dev/null
+++ b/src/main/resources/assets/gregtech/textures/items/gt.metaitem.03/174.png.mcmeta
@@ -0,0 +1,7 @@
+{
+"animation": {
+"interpolate": true,
+"frametime": 5,
+"frames":[0,10,1,2,3,4,5,6,7,8,9,10]
+}
+} \ No newline at end of file
diff --git a/src/main/resources/assets/gregtech/textures/items/gt.metaitem.03/175.png b/src/main/resources/assets/gregtech/textures/items/gt.metaitem.03/175.png
new file mode 100644
index 0000000000..f14932409c
--- /dev/null
+++ b/src/main/resources/assets/gregtech/textures/items/gt.metaitem.03/175.png
Binary files differ
diff --git a/src/main/resources/assets/gregtech/textures/items/gt.metaitem.03/175.png.mcmeta b/src/main/resources/assets/gregtech/textures/items/gt.metaitem.03/175.png.mcmeta
new file mode 100644
index 0000000000..1f1b5fe80e
--- /dev/null
+++ b/src/main/resources/assets/gregtech/textures/items/gt.metaitem.03/175.png.mcmeta
@@ -0,0 +1,7 @@
+{
+"animation": {
+"interpolate": true,
+"frametime": 5,
+"frames":[0,10,1,2,3,4,5,6,7,8,9,10]
+}
+} \ No newline at end of file
diff --git a/src/main/resources/assets/gregtech/textures/items/gt.metaitem.03/176.png b/src/main/resources/assets/gregtech/textures/items/gt.metaitem.03/176.png
new file mode 100644
index 0000000000..4f846c60a1
--- /dev/null
+++ b/src/main/resources/assets/gregtech/textures/items/gt.metaitem.03/176.png
Binary files differ
diff --git a/src/main/resources/assets/gregtech/textures/items/gt.metaitem.03/176.png.mcmeta b/src/main/resources/assets/gregtech/textures/items/gt.metaitem.03/176.png.mcmeta
new file mode 100644
index 0000000000..1f1b5fe80e
--- /dev/null
+++ b/src/main/resources/assets/gregtech/textures/items/gt.metaitem.03/176.png.mcmeta
@@ -0,0 +1,7 @@
+{
+"animation": {
+"interpolate": true,
+"frametime": 5,
+"frames":[0,10,1,2,3,4,5,6,7,8,9,10]
+}
+} \ No newline at end of file
diff --git a/src/main/resources/assets/gregtech/textures/items/gt.metaitem.03/177.png b/src/main/resources/assets/gregtech/textures/items/gt.metaitem.03/177.png
new file mode 100644
index 0000000000..f635446dc0
--- /dev/null
+++ b/src/main/resources/assets/gregtech/textures/items/gt.metaitem.03/177.png
Binary files differ
diff --git a/src/main/resources/assets/gregtech/textures/items/gt.metaitem.03/177.png.mcmeta b/src/main/resources/assets/gregtech/textures/items/gt.metaitem.03/177.png.mcmeta
new file mode 100644
index 0000000000..1f1b5fe80e
--- /dev/null
+++ b/src/main/resources/assets/gregtech/textures/items/gt.metaitem.03/177.png.mcmeta
@@ -0,0 +1,7 @@
+{
+"animation": {
+"interpolate": true,
+"frametime": 5,
+"frames":[0,10,1,2,3,4,5,6,7,8,9,10]
+}
+} \ No newline at end of file