aboutsummaryrefslogtreecommitdiff
path: root/src/main/java/kekztech
diff options
context:
space:
mode:
authorNotAPenguin <michiel.vandeginste@gmail.com>2024-09-02 23:17:17 +0200
committerGitHub <noreply@github.com>2024-09-02 23:17:17 +0200
commit1b820de08a05070909a267e17f033fcf58ac8710 (patch)
tree02831a025986a06b20f87e5bcc69d1e0c639a342 /src/main/java/kekztech
parentafd3fd92b6a6ab9ab0d0dc3214e6bc8ff7a86c9b (diff)
downloadGT5-Unofficial-1b820de08a05070909a267e17f033fcf58ac8710.tar.gz
GT5-Unofficial-1b820de08a05070909a267e17f033fcf58ac8710.tar.bz2
GT5-Unofficial-1b820de08a05070909a267e17f033fcf58ac8710.zip
The Great Renaming (#3014)
* move kekztech to a single root dir * move detrav to a single root dir * move gtnh-lanthanides to a single root dir * move tectech and delete some gross reflection in gt++ * remove more reflection inside gt5u * delete more reflection in gt++ * fix imports * move bartworks and bwcrossmod * fix proxies * move galactigreg and ggfab * move gtneioreplugin * try to fix gt++ bee loader * apply the rename rules to BW * apply rename rules to bwcrossmod * apply rename rules to detrav scanner mod * apply rename rules to galacticgreg * apply rename rules to ggfab * apply rename rules to goodgenerator * apply rename rules to gtnh-lanthanides * apply rename rules to gt++ * apply rename rules to kekztech * apply rename rules to kubatech * apply rename rules to tectech * apply rename rules to gt apply the rename rules to gt * fix tt import * fix mui hopefully * fix coremod except intergalactic * rename assline recipe class * fix a class name i stumbled on * rename StructureUtility to GTStructureUtility to prevent conflict with structurelib * temporary rename of GTTooltipDataCache to old name * fix gt client/server proxy names
Diffstat (limited to 'src/main/java/kekztech')
-rw-r--r--src/main/java/kekztech/Items.java9
-rw-r--r--src/main/java/kekztech/KekzCore.java4
-rw-r--r--src/main/java/kekztech/ServerProxy.java2
-rw-r--r--src/main/java/kekztech/client/ClientProxy.java18
-rw-r--r--src/main/java/kekztech/client/gui/KTUITextures.java21
-rw-r--r--src/main/java/kekztech/common/Blocks.java61
-rw-r--r--src/main/java/kekztech/common/CommonProxy.java46
-rw-r--r--src/main/java/kekztech/common/Recipes.java143
-rw-r--r--src/main/java/kekztech/common/Researches.java71
-rw-r--r--src/main/java/kekztech/common/TileEntities.java56
-rw-r--r--src/main/java/kekztech/common/blocks/BaseGTUpdateableBlock.java57
-rw-r--r--src/main/java/kekztech/common/blocks/BlockGDCUnit.java29
-rw-r--r--src/main/java/kekztech/common/blocks/BlockIchorJar.java229
-rw-r--r--src/main/java/kekztech/common/blocks/BlockLapotronicEnergyUnit.java172
-rw-r--r--src/main/java/kekztech/common/blocks/BlockLargeHexPlate.java65
-rw-r--r--src/main/java/kekztech/common/blocks/BlockTFFTStorageField.java91
-rw-r--r--src/main/java/kekztech/common/blocks/BlockThaumiumReinforcedJar.java251
-rw-r--r--src/main/java/kekztech/common/blocks/BlockYSZUnit.java29
-rw-r--r--src/main/java/kekztech/common/itemBlocks/ItemBlockIchorJar.java27
-rw-r--r--src/main/java/kekztech/common/itemBlocks/ItemBlockLapotronicEnergyUnit.java190
-rw-r--r--src/main/java/kekztech/common/itemBlocks/ItemBlockTFFTStorageField.java63
-rw-r--r--src/main/java/kekztech/common/itemBlocks/ItemBlockThaumiumReinforcedJar.java27
-rw-r--r--src/main/java/kekztech/common/items/ErrorItem.java48
-rw-r--r--src/main/java/kekztech/common/items/MetaItemCraftingComponent.java89
-rw-r--r--src/main/java/kekztech/common/recipeLoaders/AlloySmelter.java28
-rw-r--r--src/main/java/kekztech/common/recipeLoaders/Assembler.java294
-rw-r--r--src/main/java/kekztech/common/recipeLoaders/AssemblyLine.java226
-rw-r--r--src/main/java/kekztech/common/recipeLoaders/ChemicalReactor.java29
-rw-r--r--src/main/java/kekztech/common/recipeLoaders/Crafting.java71
-rw-r--r--src/main/java/kekztech/common/recipeLoaders/FormingPress.java28
-rw-r--r--src/main/java/kekztech/common/recipeLoaders/Mixer.java47
-rw-r--r--src/main/java/kekztech/common/recipeLoaders/ResearchableAssemblyLine.java133
-rw-r--r--src/main/java/kekztech/common/recipeLoaders/Unpackager.java199
-rw-r--r--src/main/java/kekztech/common/tileentities/MTEHatchTFFT.java271
-rw-r--r--src/main/java/kekztech/common/tileentities/MTELapotronicSuperCapacitor.java1213
-rw-r--r--src/main/java/kekztech/common/tileentities/MTESOFuelCellMK1.java221
-rw-r--r--src/main/java/kekztech/common/tileentities/MTESOFuelCellMK2.java222
-rw-r--r--src/main/java/kekztech/common/tileentities/MTETankTFFT.java787
-rw-r--r--src/main/java/kekztech/common/tileentities/TileEntityIchorJar.java10
-rw-r--r--src/main/java/kekztech/common/tileentities/TileEntityIchorVoidJar.java10
-rw-r--r--src/main/java/kekztech/common/tileentities/TileEntityThaumiumReinforcedJar.java10
-rw-r--r--src/main/java/kekztech/common/tileentities/TileEntityThaumiumReinforcedVoidJar.java10
-rw-r--r--src/main/java/kekztech/util/Util.java93
43 files changed, 5692 insertions, 8 deletions
diff --git a/src/main/java/kekztech/Items.java b/src/main/java/kekztech/Items.java
index 426dfb7f58..800f69c77e 100644
--- a/src/main/java/kekztech/Items.java
+++ b/src/main/java/kekztech/Items.java
@@ -5,9 +5,8 @@ import java.util.Arrays;
import net.minecraft.item.ItemStack;
import net.minecraftforge.oredict.OreDictionary;
-import common.items.MetaItem_CraftingComponent;
-
-import util.Util;
+import kekztech.common.items.MetaItemCraftingComponent;
+import kekztech.util.Util;
public enum Items {
@@ -52,12 +51,12 @@ public enum Items {
}
public ItemStack getNonOreDictedItemStack(int amount) {
- return new ItemStack(MetaItem_CraftingComponent.getInstance(), amount, this.getMetaID());
+ return new ItemStack(MetaItemCraftingComponent.getInstance(), amount, this.getMetaID());
}
public ItemStack getOreDictedItemStack(int amount) {
return this.getOreDictName() != null ? Util.getStackofAmountFromOreDict(this.getOreDictName(), amount)
- : new ItemStack(MetaItem_CraftingComponent.getInstance(), amount, this.getMetaID());
+ : new ItemStack(MetaItemCraftingComponent.getInstance(), amount, this.getMetaID());
}
public String getOreDictName() {
diff --git a/src/main/java/kekztech/KekzCore.java b/src/main/java/kekztech/KekzCore.java
index 3962faccf2..02ed1febd9 100644
--- a/src/main/java/kekztech/KekzCore.java
+++ b/src/main/java/kekztech/KekzCore.java
@@ -7,7 +7,6 @@ import org.apache.logging.log4j.LogManager;
import org.apache.logging.log4j.Logger;
import com.google.common.collect.ImmutableSet;
-import common.CommonProxy;
import cpw.mods.fml.common.Mod;
import cpw.mods.fml.common.SidedProxy;
@@ -17,6 +16,7 @@ import cpw.mods.fml.common.event.FMLPostInitializationEvent;
import cpw.mods.fml.common.event.FMLPreInitializationEvent;
import gregtech.GT_Version;
import gregtech.api.enums.Mods;
+import kekztech.common.CommonProxy;
/**
* My GT-Meta-IDs are: 13101 - 13500
@@ -47,7 +47,7 @@ public class KekzCore {
@Mod.Instance(Mods.Names.KEKZ_TECH)
public static KekzCore instance;
- @SidedProxy(clientSide = "client.ClientProxy", serverSide = "kekztech.ServerProxy")
+ @SidedProxy(clientSide = "kekztech.client.ClientProxy", serverSide = "kekztech.ServerProxy")
public static CommonProxy proxy;
@Mod.EventHandler
diff --git a/src/main/java/kekztech/ServerProxy.java b/src/main/java/kekztech/ServerProxy.java
index e509ab1722..7453b44b3f 100644
--- a/src/main/java/kekztech/ServerProxy.java
+++ b/src/main/java/kekztech/ServerProxy.java
@@ -1,6 +1,6 @@
package kekztech;
-import common.CommonProxy;
+import kekztech.common.CommonProxy;
public class ServerProxy extends CommonProxy {
}
diff --git a/src/main/java/kekztech/client/ClientProxy.java b/src/main/java/kekztech/client/ClientProxy.java
new file mode 100644
index 0000000000..8ac8bbd710
--- /dev/null
+++ b/src/main/java/kekztech/client/ClientProxy.java
@@ -0,0 +1,18 @@
+package kekztech.client;
+
+import cpw.mods.fml.common.event.FMLInitializationEvent;
+import cpw.mods.fml.common.event.FMLPreInitializationEvent;
+import kekztech.common.CommonProxy;
+
+public class ClientProxy extends CommonProxy {
+
+ @Override
+ public void preInit(final FMLPreInitializationEvent e) {
+ super.preInit(e);
+ }
+
+ @Override
+ public void init(final FMLInitializationEvent e) {
+ super.init(e);
+ }
+}
diff --git a/src/main/java/kekztech/client/gui/KTUITextures.java b/src/main/java/kekztech/client/gui/KTUITextures.java
new file mode 100644
index 0000000000..c502646b5a
--- /dev/null
+++ b/src/main/java/kekztech/client/gui/KTUITextures.java
@@ -0,0 +1,21 @@
+package kekztech.client.gui;
+
+import com.gtnewhorizons.modularui.api.drawable.UITexture;
+
+import kekztech.KekzCore;
+
+public class KTUITextures {
+
+ public static final UITexture OVERLAY_BUTTON_WIRELESS_ON = UITexture
+ .fullImage(KekzCore.MODID, "gui/overlay_button/wireless_on");
+
+ public static final UITexture OVERLAY_BUTTON_WIRELESS_OFF = UITexture
+ .fullImage(KekzCore.MODID, "gui/overlay_button/wireless_off");
+
+ public static final UITexture OVERLAY_BUTTON_WIRELESS_OFF_DISABLED = UITexture
+ .fullImage(KekzCore.MODID, "gui/overlay_button/wireless_off_disabled");
+
+ public static final UITexture OVERLAY_BUTTON_WIRELESS_REBALANCE = UITexture
+ .fullImage(KekzCore.MODID, "gui/overlay_button/wireless_rebalance");
+
+}
diff --git a/src/main/java/kekztech/common/Blocks.java b/src/main/java/kekztech/common/Blocks.java
new file mode 100644
index 0000000000..013bcf54d5
--- /dev/null
+++ b/src/main/java/kekztech/common/Blocks.java
@@ -0,0 +1,61 @@
+package kekztech.common;
+
+import net.minecraft.block.Block;
+
+import gregtech.api.enums.Mods;
+import kekztech.KekzCore;
+import kekztech.common.blocks.BlockGDCUnit;
+import kekztech.common.blocks.BlockIchorJar;
+import kekztech.common.blocks.BlockLapotronicEnergyUnit;
+import kekztech.common.blocks.BlockLargeHexPlate;
+import kekztech.common.blocks.BlockTFFTStorageField;
+import kekztech.common.blocks.BlockThaumiumReinforcedJar;
+import kekztech.common.blocks.BlockYSZUnit;
+
+public class Blocks {
+
+ public static Block yszUnit;
+ public static Block gdcUnit;
+ public static Block tfftStorageField;
+ public static Block jarThaumiumReinforced;
+ public static Block jarIchor;
+ public static Block lscLapotronicEnergyUnit;
+
+ public static Block largeHexPlate;
+
+ public static void preInit() {
+ KekzCore.LOGGER.info("Registering blocks...");
+
+ registerBlocks_SOFC();
+ registerBlocks_TFFT();
+ if (Mods.Thaumcraft.isModLoaded()) {
+ registerBlocks_Jars();
+ }
+ registerBlocks_LSC();
+ registerBlocks_Cosmetics();
+
+ KekzCore.LOGGER.info("Finished registering blocks");
+ }
+
+ private static void registerBlocks_SOFC() {
+ yszUnit = BlockYSZUnit.registerBlock();
+ gdcUnit = BlockGDCUnit.registerBlock();
+ }
+
+ private static void registerBlocks_TFFT() {
+ tfftStorageField = BlockTFFTStorageField.registerBlock();
+ }
+
+ private static void registerBlocks_Jars() {
+ jarThaumiumReinforced = BlockThaumiumReinforcedJar.registerBlock();
+ jarIchor = BlockIchorJar.registerBlock();
+ }
+
+ private static void registerBlocks_LSC() {
+ lscLapotronicEnergyUnit = BlockLapotronicEnergyUnit.registerBlock();
+ }
+
+ private static void registerBlocks_Cosmetics() {
+ largeHexPlate = BlockLargeHexPlate.registerBlock();
+ }
+}
diff --git a/src/main/java/kekztech/common/CommonProxy.java b/src/main/java/kekztech/common/CommonProxy.java
new file mode 100644
index 0000000000..1baa4e5c69
--- /dev/null
+++ b/src/main/java/kekztech/common/CommonProxy.java
@@ -0,0 +1,46 @@
+package kekztech.common;
+
+import cpw.mods.fml.common.event.FMLInitializationEvent;
+import cpw.mods.fml.common.event.FMLPostInitializationEvent;
+import cpw.mods.fml.common.event.FMLPreInitializationEvent;
+import gregtech.api.enums.Mods;
+import kekztech.Items;
+import kekztech.common.items.ErrorItem;
+import kekztech.common.items.MetaItemCraftingComponent;
+import kekztech.common.tileentities.MTEHatchTFFT;
+
+public class CommonProxy {
+
+ public void preInit(final FMLPreInitializationEvent e) {
+ // Items
+ ErrorItem.getInstance()
+ .registerItem();
+ MetaItemCraftingComponent.getInstance()
+ .registerItem();
+ Items.registerOreDictNames();
+ // Blocks
+ Blocks.preInit();
+ // TileEntities
+ TileEntities.preInit();
+ if (Mods.Thaumcraft.isModLoaded() && Mods.ThaumicTinkerer.isModLoaded()) {
+ // TC Research
+ Researches.preInit();
+ }
+ }
+
+ public void init(final FMLInitializationEvent e) {
+ // GregTech Meta TileEntities
+ TileEntities.init();
+ }
+
+ public void postInit(final FMLPostInitializationEvent e) {
+ // Recipes
+ Recipes.postInit();
+ if (Mods.Thaumcraft.isModLoaded() && Mods.ThaumicTinkerer.isModLoaded()) {
+ // Research
+ Researches.postInit();
+ }
+
+ MTEHatchTFFT.registerAEIntegration();
+ }
+}
diff --git a/src/main/java/kekztech/common/Recipes.java b/src/main/java/kekztech/common/Recipes.java
new file mode 100644
index 0000000000..e6472c23a3
--- /dev/null
+++ b/src/main/java/kekztech/common/Recipes.java
@@ -0,0 +1,143 @@
+package kekztech.common;
+
+import static gregtech.api.enums.Mods.ThaumicTinkerer;
+
+import java.util.HashMap;
+
+import net.minecraft.item.ItemStack;
+
+import cpw.mods.fml.common.registry.GameRegistry;
+import gregtech.api.enums.Materials;
+import gregtech.api.enums.Mods;
+import gregtech.api.enums.OrePrefixes;
+import gregtech.api.util.GTModHandler;
+import gregtech.api.util.GTOreDictUnificator;
+import kekztech.KekzCore;
+import kekztech.common.recipeLoaders.AlloySmelter;
+import kekztech.common.recipeLoaders.Assembler;
+import kekztech.common.recipeLoaders.AssemblyLine;
+import kekztech.common.recipeLoaders.ChemicalReactor;
+import kekztech.common.recipeLoaders.Crafting;
+import kekztech.common.recipeLoaders.FormingPress;
+import kekztech.common.recipeLoaders.Mixer;
+import kekztech.common.recipeLoaders.ResearchableAssemblyLine;
+import kekztech.common.recipeLoaders.Unpackager;
+import thaumcraft.api.ItemApi;
+import thaumcraft.api.ThaumcraftApi;
+import thaumcraft.api.aspects.Aspect;
+import thaumcraft.api.aspects.AspectList;
+import thaumcraft.api.crafting.InfusionRecipe;
+
+public class Recipes {
+
+ public static final HashMap<String, InfusionRecipe> infusionRecipes = new HashMap<>();
+
+ public static void postInit() {
+ KekzCore.LOGGER.info("Registering recipes...");
+
+ new AlloySmelter().run();
+ new Assembler().run();
+ new AssemblyLine().run();
+ new ChemicalReactor().run();
+ new Crafting().run();
+ new FormingPress().run();
+ new Mixer().run();
+ new ResearchableAssemblyLine().run();
+ new Unpackager().run();
+
+ if (Mods.Thaumcraft.isModLoaded()) {
+ registerRecipes_Jars();
+ }
+
+ KekzCore.LOGGER.info("Finished registering recipes");
+ }
+
+ private static void registerRecipes_Jars() {
+
+ // Thaumium Reinforced Jar
+ final ItemStack[] recipe_jarthaumiumreinforced = {
+ GameRegistry.makeItemStack("Thaumcraft:ItemResource", 15, 1, null),
+ GTOreDictUnificator.get(OrePrefixes.plateDense, Materials.Thaumium, 1),
+ new ItemStack(net.minecraft.init.Blocks.glass_pane),
+ GTOreDictUnificator.get(OrePrefixes.plateDense, Materials.Thaumium, 1),
+ new ItemStack(net.minecraft.init.Blocks.glass_pane),
+ GTOreDictUnificator.get(OrePrefixes.frameGt, Materials.Titanium, 1),
+ GTOreDictUnificator.get(OrePrefixes.plateDense, Materials.Thaumium, 1),
+ new ItemStack(net.minecraft.init.Blocks.glass_pane),
+ GTOreDictUnificator.get(OrePrefixes.plateDense, Materials.Thaumium, 1),
+ new ItemStack(net.minecraft.init.Blocks.glass_pane), };
+ final AspectList aspects_jarthaumiumreinforced = new AspectList().add(Aspect.ARMOR, 64)
+ .add(Aspect.ORDER, 32)
+ .add(Aspect.WATER, 32)
+ .add(Aspect.GREED, 16)
+ .add(Aspect.VOID, 16)
+ .add(Aspect.AIR, 8);
+ infusionRecipes.put(
+ "THAUMIUMREINFORCEDJAR",
+ ThaumcraftApi.addInfusionCraftingRecipe(
+ "THAUMIUMREINFORCEDJAR",
+ new ItemStack(Blocks.jarThaumiumReinforced, 1, 0),
+ 5,
+ aspects_jarthaumiumreinforced,
+ ItemApi.getBlock("blockJar", 0),
+ recipe_jarthaumiumreinforced));
+ // Thaumium Reinforced Void Jar
+ final ItemStack[] recipe_voidjarupgrade = {
+ GTOreDictUnificator.get(OrePrefixes.plateDense, Materials.Obsidian, 1),
+ GTOreDictUnificator.get(OrePrefixes.dust, Materials.Blaze, 1),
+ GTOreDictUnificator.get(OrePrefixes.plate, Materials.EnderEye, 1), ItemApi.getItem("itemNugget", 5) };
+ final AspectList aspects_voidjarupgrade = new AspectList().add(Aspect.VOID, 14)
+ .add(Aspect.MAGIC, 14)
+ .add(Aspect.ENTROPY, 14)
+ .add(Aspect.WATER, 14);
+ infusionRecipes.put(
+ "THAUMIUMREINFORCEDVOIDJAR",
+ ThaumcraftApi.addInfusionCraftingRecipe(
+ "THAUMIUMREINFORCEDJAR",
+ new ItemStack(Blocks.jarThaumiumReinforced, 1, 3),
+ 2,
+ aspects_voidjarupgrade,
+ new ItemStack(Blocks.jarThaumiumReinforced, 1, 0),
+ recipe_voidjarupgrade));
+
+ final ItemStack[] recipe_jarichor = { GTModHandler.getModItem(ThaumicTinkerer.ID, "kamiResource", 1, 0),
+ GTOreDictUnificator.get(OrePrefixes.plate, Materials.Diamond, 1),
+ new ItemStack(net.minecraft.init.Blocks.glass_pane),
+ GTOreDictUnificator.get(OrePrefixes.foil, Materials.Osmiridium, 1),
+ GTOreDictUnificator.get(OrePrefixes.plate, Materials.Diamond, 1),
+ new ItemStack(net.minecraft.init.Blocks.glass_pane),
+ GTOreDictUnificator.get(OrePrefixes.gemExquisite, Materials.Diamond, 1),
+ GTOreDictUnificator.get(OrePrefixes.plate, Materials.Diamond, 1),
+ new ItemStack(net.minecraft.init.Blocks.glass_pane),
+ GTOreDictUnificator.get(OrePrefixes.foil, Materials.Osmiridium, 1),
+ GTOreDictUnificator.get(OrePrefixes.plate, Materials.Diamond, 1),
+ new ItemStack(net.minecraft.init.Blocks.glass_pane), };
+ final AspectList aspects_jarichor = new AspectList().add(Aspect.ARMOR, 256)
+ .add(Aspect.ELDRITCH, 128)
+ .add(Aspect.ORDER, 128)
+ .add(Aspect.WATER, 128)
+ .add(Aspect.GREED, 64)
+ .add(Aspect.VOID, 64)
+ .add(Aspect.AIR, 32);
+ infusionRecipes.put(
+ "ICHORJAR",
+ ThaumcraftApi.addInfusionCraftingRecipe(
+ "ICHORJAR",
+ new ItemStack(Blocks.jarIchor, 1, 0),
+ 15,
+ aspects_jarichor,
+ ItemApi.getBlock("blockJar", 0),
+ recipe_jarichor));
+ // Ichor Void Jar
+ infusionRecipes.put(
+ "ICHORVOIDJAR",
+ ThaumcraftApi.addInfusionCraftingRecipe(
+ "ICHORJAR",
+ new ItemStack(Blocks.jarIchor, 1, 3),
+ 5,
+ aspects_voidjarupgrade,
+ new ItemStack(Blocks.jarIchor, 1, 0),
+ recipe_voidjarupgrade));
+ }
+
+}
diff --git a/src/main/java/kekztech/common/Researches.java b/src/main/java/kekztech/common/Researches.java
new file mode 100644
index 0000000000..8944f7a486
--- /dev/null
+++ b/src/main/java/kekztech/common/Researches.java
@@ -0,0 +1,71 @@
+package kekztech.common;
+
+import net.minecraft.item.ItemStack;
+
+import kekztech.KekzCore;
+import thaumcraft.api.aspects.Aspect;
+import thaumcraft.api.aspects.AspectList;
+import thaumcraft.api.research.ResearchItem;
+import thaumcraft.api.research.ResearchPage;
+import thaumic.tinkerer.common.research.KamiResearchItem;
+
+public class Researches {
+
+ public static final String THAUMIUMREINFORCEDJAR = "THAUMIUMREINFORCEDJAR";
+ public static final String ICHORJAR = "ICHORJAR";
+
+ public static void preInit() {
+ // Blacklist these researches from being a requirement to unlock TTKami
+ KekzCore.LOGGER.info("Blacklisting research " + THAUMIUMREINFORCEDJAR + " from /iskamiunlocked");
+ KamiResearchItem.Blacklist.add(ICHORJAR);
+ KekzCore.LOGGER.info("Blacklisting research" + ICHORJAR + "from /iskamiunlocked");
+ KamiResearchItem.Blacklist.add(ICHORJAR);
+ }
+
+ public static void postInit() {
+ final AspectList aspects_jarthaumiumreinforced = new AspectList().add(Aspect.ARMOR, 3)
+ .add(Aspect.WATER, 3)
+ .add(Aspect.GREED, 3)
+ .add(Aspect.VOID, 3);
+ @SuppressWarnings("unused")
+ final ResearchItem jar_thaumiumreinforced = new ResearchItem(
+ "THAUMIUMREINFORCEDJAR",
+ "ALCHEMY",
+ aspects_jarthaumiumreinforced,
+ 3,
+ -4,
+ 2,
+ new ItemStack(Blocks.jarThaumiumReinforced, 1))
+ .setPages(
+ new ResearchPage("kekztech.research_page.THAUMIUMREINFORCEDJAR.0"),
+ new ResearchPage(Recipes.infusionRecipes.get("THAUMIUMREINFORCEDJAR")),
+ new ResearchPage(Recipes.infusionRecipes.get("THAUMIUMREINFORCEDVOIDJAR")),
+ new ResearchPage("kekztech.research_page.THAUMIUMREINFORCEDJAR.1"))
+ .setConcealed()
+ .setParents("JARLABEL")
+ .registerResearchItem();
+
+ final AspectList aspects_jarichor = new AspectList().add(Aspect.ARMOR, 3)
+ .add(Aspect.ELDRITCH, 3)
+ .add(Aspect.WATER, 3)
+ .add(Aspect.GREED, 5)
+ .add(Aspect.VOID, 5);
+ @SuppressWarnings("unused")
+ final ResearchItem jar_ichor = new ResearchItem(
+ "ICHORJAR",
+ "ALCHEMY",
+ aspects_jarichor,
+ 2,
+ -5,
+ 3,
+ new ItemStack(Blocks.jarIchor, 1))
+ .setPages(
+ new ResearchPage("kekztech.research_page.ICHORJAR.0"),
+ new ResearchPage(Recipes.infusionRecipes.get("ICHORJAR")),
+ new ResearchPage(Recipes.infusionRecipes.get("ICHORVOIDJAR")))
+ .setConcealed()
+ .setParents("THAUMIUMREINFORCEDJAR")
+ .setParentsHidden("ICHOR")
+ .registerResearchItem();
+ }
+}
diff --git a/src/main/java/kekztech/common/TileEntities.java b/src/main/java/kekztech/common/TileEntities.java
new file mode 100644
index 0000000000..f510b481f9
--- /dev/null
+++ b/src/main/java/kekztech/common/TileEntities.java
@@ -0,0 +1,56 @@
+package kekztech.common;
+
+import cpw.mods.fml.common.registry.GameRegistry;
+import gregtech.api.enums.MetaTileEntityIDs;
+import gregtech.api.enums.Mods;
+import kekztech.common.tileentities.MTEHatchTFFT;
+import kekztech.common.tileentities.MTELapotronicSuperCapacitor;
+import kekztech.common.tileentities.MTESOFuelCellMK1;
+import kekztech.common.tileentities.MTESOFuelCellMK2;
+import kekztech.common.tileentities.MTETankTFFT;
+import kekztech.common.tileentities.TileEntityIchorJar;
+import kekztech.common.tileentities.TileEntityIchorVoidJar;
+import kekztech.common.tileentities.TileEntityThaumiumReinforcedJar;
+import kekztech.common.tileentities.TileEntityThaumiumReinforcedVoidJar;
+
+public class TileEntities {
+
+ // Multiblock controllers
+ public static MTESOFuelCellMK1 sofc1;
+ public static MTESOFuelCellMK2 sofc2;
+ public static MTETankTFFT tfft;
+ public static MTELapotronicSuperCapacitor lsc;
+
+ // Singleblocks
+ public static MTEHatchTFFT tfftHatch;
+
+ public static void preInit() {
+ if (Mods.Thaumcraft.isModLoaded()) {
+ GameRegistry.registerTileEntity(TileEntityThaumiumReinforcedJar.class, "kekztech_thaumiumreinforcedjar");
+ GameRegistry
+ .registerTileEntity(TileEntityThaumiumReinforcedVoidJar.class, "kekztech_thaumiumreinforcedvoidjar");
+ GameRegistry.registerTileEntity(TileEntityIchorJar.class, "kekztech_ichorjar");
+ GameRegistry.registerTileEntity(TileEntityIchorVoidJar.class, "kekztech_ichorvoidjar");
+ }
+ }
+
+ public static void init() {
+ // Multiblock controllers
+ sofc1 = new MTESOFuelCellMK1(
+ MetaTileEntityIDs.sofc1.ID,
+ "multimachine.fuelcellmk1",
+ "Solid-Oxide Fuel Cell Mk I");
+ sofc2 = new MTESOFuelCellMK2(
+ MetaTileEntityIDs.sofc2.ID,
+ "multimachine.fuelcellmk2",
+ "Solid-Oxide Fuel Cell Mk II");
+ tfft = new MTETankTFFT(MetaTileEntityIDs.tfft.ID, "multimachine.tfft", "T.F.F.T");
+ lsc = new MTELapotronicSuperCapacitor(
+ MetaTileEntityIDs.lsc.ID,
+ "multimachine.supercapacitor",
+ "Lapotronic Supercapacitor");
+
+ // Singleblocks
+ tfftHatch = new MTEHatchTFFT(MetaTileEntityIDs.tfftHatch.ID, "machine.tffthatch", "T.F.F.T Multi I/O Hatch");
+ }
+}
diff --git a/src/main/java/kekztech/common/blocks/BaseGTUpdateableBlock.java b/src/main/java/kekztech/common/blocks/BaseGTUpdateableBlock.java
new file mode 100644
index 0000000000..6c81807a82
--- /dev/null
+++ b/src/main/java/kekztech/common/blocks/BaseGTUpdateableBlock.java
@@ -0,0 +1,57 @@
+package kekztech.common.blocks;
+
+import net.minecraft.block.Block;
+import net.minecraft.block.material.Material;
+import net.minecraft.entity.Entity;
+import net.minecraft.entity.EnumCreatureType;
+import net.minecraft.world.IBlockAccess;
+import net.minecraft.world.World;
+
+import gregtech.api.GregTechAPI;
+
+/**
+ * Any blocks that are used as structure parts for GregTech multi machines have to inherit from this class. Otherwise
+ * the checkMachine() method that verifies a machine's structure won't be called correctly.
+ */
+public abstract class BaseGTUpdateableBlock extends Block {
+
+ protected BaseGTUpdateableBlock(Material material) {
+ super(material);
+ GregTechAPI.registerMachineBlock(this, -1);
+ super.setHarvestLevel("wrench", 2);
+ }
+
+ @Override
+ public int damageDropped(int meta) {
+ return meta;
+ }
+
+ @Override
+ public boolean canBeReplacedByLeaves(IBlockAccess world, int x, int y, int z) {
+ return false;
+ }
+
+ @Override
+ public boolean canEntityDestroy(IBlockAccess world, int x, int y, int z, Entity entity) {
+ return false;
+ }
+