aboutsummaryrefslogtreecommitdiff
path: root/kekztech/src/main/java
diff options
context:
space:
mode:
Diffstat (limited to 'kekztech/src/main/java')
-rw-r--r--kekztech/src/main/java/client/ClientProxy.java19
-rw-r--r--kekztech/src/main/java/client/gui/KT_UITextures.java17
-rw-r--r--kekztech/src/main/java/common/Blocks.java59
-rw-r--r--kekztech/src/main/java/common/CommonProxy.java42
-rw-r--r--kekztech/src/main/java/common/Recipes.java141
-rw-r--r--kekztech/src/main/java/common/Researches.java71
-rw-r--r--kekztech/src/main/java/common/TileEntities.java43
-rw-r--r--kekztech/src/main/java/common/blocks/BaseGTUpdateableBlock.java57
-rw-r--r--kekztech/src/main/java/common/blocks/Block_GDCUnit.java29
-rw-r--r--kekztech/src/main/java/common/blocks/Block_IchorJar.java230
-rw-r--r--kekztech/src/main/java/common/blocks/Block_LapotronicEnergyUnit.java173
-rw-r--r--kekztech/src/main/java/common/blocks/Block_LargeHexPlate.java65
-rw-r--r--kekztech/src/main/java/common/blocks/Block_TFFTStorageField.java92
-rw-r--r--kekztech/src/main/java/common/blocks/Block_ThaumiumReinforcedJar.java252
-rw-r--r--kekztech/src/main/java/common/blocks/Block_YSZUnit.java29
-rw-r--r--kekztech/src/main/java/common/itemBlocks/IB_IchorJar.java27
-rw-r--r--kekztech/src/main/java/common/itemBlocks/IB_LapotronicEnergyUnit.java190
-rw-r--r--kekztech/src/main/java/common/itemBlocks/IB_TFFTStorageField.java63
-rw-r--r--kekztech/src/main/java/common/itemBlocks/IB_ThaumiumReinforcedJar.java27
-rw-r--r--kekztech/src/main/java/common/items/ErrorItem.java48
-rw-r--r--kekztech/src/main/java/common/items/MetaItem_CraftingComponent.java89
-rw-r--r--kekztech/src/main/java/common/recipeLoaders/AlloySmelter.java32
-rw-r--r--kekztech/src/main/java/common/recipeLoaders/Assembler.java295
-rw-r--r--kekztech/src/main/java/common/recipeLoaders/AssemblyLine.java227
-rw-r--r--kekztech/src/main/java/common/recipeLoaders/ChemicalReactor.java30
-rw-r--r--kekztech/src/main/java/common/recipeLoaders/Crafting.java72
-rw-r--r--kekztech/src/main/java/common/recipeLoaders/FormingPress.java29
-rw-r--r--kekztech/src/main/java/common/recipeLoaders/Mixer.java48
-rw-r--r--kekztech/src/main/java/common/recipeLoaders/ResearchableAssemblyLine.java137
-rw-r--r--kekztech/src/main/java/common/recipeLoaders/Unpackager.java200
-rw-r--r--kekztech/src/main/java/common/tileentities/GTMTE_LapotronicSuperCapacitor.java1189
-rw-r--r--kekztech/src/main/java/common/tileentities/GTMTE_SOFuelCellMK1.java221
-rw-r--r--kekztech/src/main/java/common/tileentities/GTMTE_SOFuelCellMK2.java222
-rw-r--r--kekztech/src/main/java/common/tileentities/GTMTE_TFFT.java787
-rw-r--r--kekztech/src/main/java/common/tileentities/GTMTE_TFFTHatch.java271
-rw-r--r--kekztech/src/main/java/common/tileentities/TE_IchorJar.java10
-rw-r--r--kekztech/src/main/java/common/tileentities/TE_IchorVoidJar.java10
-rw-r--r--kekztech/src/main/java/common/tileentities/TE_ThaumiumReinforcedJar.java10
-rw-r--r--kekztech/src/main/java/common/tileentities/TE_ThaumiumReinforcedVoidJar.java10
-rw-r--r--kekztech/src/main/java/kekztech/Items.java70
-rw-r--r--kekztech/src/main/java/kekztech/KekzCore.java83
-rw-r--r--kekztech/src/main/java/kekztech/ServerProxy.java6
-rw-r--r--kekztech/src/main/java/util/Util.java93
43 files changed, 5815 insertions, 0 deletions
diff --git a/kekztech/src/main/java/client/ClientProxy.java b/kekztech/src/main/java/client/ClientProxy.java
new file mode 100644
index 0000000000..9dfaea0d33
--- /dev/null
+++ b/kekztech/src/main/java/client/ClientProxy.java
@@ -0,0 +1,19 @@
+package client;
+
+import common.CommonProxy;
+
+import cpw.mods.fml.common.event.FMLInitializationEvent;
+import cpw.mods.fml.common.event.FMLPreInitializationEvent;
+
+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/kekztech/src/main/java/client/gui/KT_UITextures.java b/kekztech/src/main/java/client/gui/KT_UITextures.java
new file mode 100644
index 0000000000..6f28a0280b
--- /dev/null
+++ b/kekztech/src/main/java/client/gui/KT_UITextures.java
@@ -0,0 +1,17 @@
+package client.gui;
+
+import com.gtnewhorizons.modularui.api.drawable.UITexture;
+
+import kekztech.KekzCore;
+
+public class KT_UITextures {
+
+ 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");
+}
diff --git a/kekztech/src/main/java/common/Blocks.java b/kekztech/src/main/java/common/Blocks.java
new file mode 100644
index 0000000000..4003e8e9e4
--- /dev/null
+++ b/kekztech/src/main/java/common/Blocks.java
@@ -0,0 +1,59 @@
+package common;
+
+import net.minecraft.block.Block;
+
+import common.blocks.Block_GDCUnit;
+import common.blocks.Block_IchorJar;
+import common.blocks.Block_LapotronicEnergyUnit;
+import common.blocks.Block_LargeHexPlate;
+import common.blocks.Block_TFFTStorageField;
+import common.blocks.Block_ThaumiumReinforcedJar;
+import common.blocks.Block_YSZUnit;
+
+import kekztech.KekzCore;
+
+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();
+ registerBlocks_Jars();
+ registerBlocks_LSC();
+ registerBlocks_Cosmetics();
+
+ KekzCore.LOGGER.info("Finished registering blocks");
+ }
+
+ private static void registerBlocks_SOFC() {
+ yszUnit = Block_YSZUnit.registerBlock();
+ gdcUnit = Block_GDCUnit.registerBlock();
+ }
+
+ private static void registerBlocks_TFFT() {
+ tfftStorageField = Block_TFFTStorageField.registerBlock();
+ }
+
+ private static void registerBlocks_Jars() {
+ jarThaumiumReinforced = Block_ThaumiumReinforcedJar.registerBlock();
+ jarIchor = Block_IchorJar.registerBlock();
+ }
+
+ private static void registerBlocks_LSC() {
+ lscLapotronicEnergyUnit = Block_LapotronicEnergyUnit.registerBlock();
+ }
+
+ private static void registerBlocks_Cosmetics() {
+ largeHexPlate = Block_LargeHexPlate.registerBlock();
+ }
+}
diff --git a/kekztech/src/main/java/common/CommonProxy.java b/kekztech/src/main/java/common/CommonProxy.java
new file mode 100644
index 0000000000..777a8af268
--- /dev/null
+++ b/kekztech/src/main/java/common/CommonProxy.java
@@ -0,0 +1,42 @@
+package common;
+
+import common.items.ErrorItem;
+import common.items.MetaItem_CraftingComponent;
+import common.tileentities.GTMTE_TFFTHatch;
+
+import cpw.mods.fml.common.event.FMLInitializationEvent;
+import cpw.mods.fml.common.event.FMLPostInitializationEvent;
+import cpw.mods.fml.common.event.FMLPreInitializationEvent;
+import kekztech.Items;
+
+public class CommonProxy {
+
+ public void preInit(final FMLPreInitializationEvent e) {
+ // Items
+ ErrorItem.getInstance()
+ .registerItem();
+ MetaItem_CraftingComponent.getInstance()
+ .registerItem();
+ Items.registerOreDictNames();
+ // Blocks
+ Blocks.preInit();
+ // TileEntities
+ TileEntities.preInit();
+ // TC Research
+ Researches.preInit();
+ }
+
+ public void init(final FMLInitializationEvent e) {
+ // GregTech Meta TileEntities
+ TileEntities.init();
+ }
+
+ public void postInit(final FMLPostInitializationEvent e) {
+ // Recipes
+ Recipes.postInit();
+ // Research
+ Researches.postInit();
+
+ GTMTE_TFFTHatch.registerAEIntegration();
+ }
+}
diff --git a/kekztech/src/main/java/common/Recipes.java b/kekztech/src/main/java/common/Recipes.java
new file mode 100644
index 0000000000..2560e8dc37
--- /dev/null
+++ b/kekztech/src/main/java/common/Recipes.java
@@ -0,0 +1,141 @@
+package common;
+
+import static gregtech.api.enums.Mods.ThaumicTinkerer;
+
+import java.util.HashMap;
+
+import net.minecraft.item.ItemStack;
+
+import common.recipeLoaders.AlloySmelter;
+import common.recipeLoaders.Assembler;
+import common.recipeLoaders.AssemblyLine;
+import common.recipeLoaders.ChemicalReactor;
+import common.recipeLoaders.Crafting;
+import common.recipeLoaders.FormingPress;
+import common.recipeLoaders.Mixer;
+import common.recipeLoaders.ResearchableAssemblyLine;
+import common.recipeLoaders.Unpackager;
+
+import cpw.mods.fml.common.registry.GameRegistry;
+import gregtech.api.enums.Materials;
+import gregtech.api.enums.OrePrefixes;
+import gregtech.api.util.GT_ModHandler;
+import gregtech.api.util.GT_OreDictUnificator;
+import kekztech.KekzCore;
+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();
+
+ 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),
+ GT_OreDictUnificator.get(OrePrefixes.plateDense, Materials.Thaumium, 1),
+ new ItemStack(net.minecraft.init.Blocks.glass_pane),
+ GT_OreDictUnificator.get(OrePrefixes.plateDense, Materials.Thaumium, 1),
+ new ItemStack(net.minecraft.init.Blocks.glass_pane),
+ GT_OreDictUnificator.get(OrePrefixes.frameGt, Materials.Titanium, 1),
+ GT_OreDictUnificator.get(OrePrefixes.plateDense, Materials.Thaumium, 1),
+ new ItemStack(net.minecraft.init.Blocks.glass_pane),
+ GT_OreDictUnificator.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 = {
+ GT_OreDictUnificator.get(OrePrefixes.plateDense, Materials.Obsidian, 1),
+ GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Blaze, 1),
+ GT_OreDictUnificator.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 = { GT_ModHandler.getModItem(ThaumicTinkerer.ID, "kamiResource", 1, 0),
+ GT_OreDictUnificator.get(OrePrefixes.plate, Materials.Diamond, 1),
+ new ItemStack(net.minecraft.init.Blocks.glass_pane),
+ GT_OreDictUnificator.get(OrePrefixes.foil, Materials.Osmiridium, 1),
+ GT_OreDictUnificator.get(OrePrefixes.plate, Materials.Diamond, 1),
+ new ItemStack(net.minecraft.init.Blocks.glass_pane),
+ GT_OreDictUnificator.get(OrePrefixes.gemExquisite, Materials.Diamond, 1),
+ GT_OreDictUnificator.get(OrePrefixes.plate, Materials.Diamond, 1),
+ new ItemStack(net.minecraft.init.Blocks.glass_pane),
+ GT_OreDictUnificator.get(OrePrefixes.foil, Materials.Osmiridium, 1),
+ GT_OreDictUnificator.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/kekztech/src/main/java/common/Researches.java b/kekztech/src/main/java/common/Researches.java
new file mode 100644
index 0000000000..0ebe161da4
--- /dev/null
+++ b/kekztech/src/main/java/common/Researches.java
@@ -0,0 +1,71 @@
+package 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/kekztech/src/main/java/common/TileEntities.java b/kekztech/src/main/java/common/TileEntities.java
new file mode 100644
index 0000000000..31246ac5d8
--- /dev/null
+++ b/kekztech/src/main/java/common/TileEntities.java
@@ -0,0 +1,43 @@
+package common;
+
+import common.tileentities.GTMTE_LapotronicSuperCapacitor;
+import common.tileentities.GTMTE_SOFuelCellMK1;
+import common.tileentities.GTMTE_SOFuelCellMK2;
+import common.tileentities.GTMTE_TFFT;
+import common.tileentities.GTMTE_TFFTHatch;
+import common.tileentities.TE_IchorJar;
+import common.tileentities.TE_IchorVoidJar;
+import common.tileentities.TE_ThaumiumReinforcedJar;
+import common.tileentities.TE_ThaumiumReinforcedVoidJar;
+
+import cpw.mods.fml.common.registry.GameRegistry;
+
+public class TileEntities {
+
+ // Multiblock controllers
+ public static GTMTE_SOFuelCellMK1 sofc1;
+ public static GTMTE_SOFuelCellMK2 sofc2;
+ public static GTMTE_TFFT tfft;
+ public static GTMTE_LapotronicSuperCapacitor lsc;
+
+ // Singleblocks
+ public static GTMTE_TFFTHatch tfftHatch;
+
+ public static void preInit() {
+ GameRegistry.registerTileEntity(TE_ThaumiumReinforcedJar.class, "kekztech_thaumiumreinforcedjar");
+ GameRegistry.registerTileEntity(TE_ThaumiumReinforcedVoidJar.class, "kekztech_thaumiumreinforcedvoidjar");
+ GameRegistry.registerTileEntity(TE_IchorJar.class, "kekztech_ichorjar");
+ GameRegistry.registerTileEntity(TE_IchorVoidJar.class, "kekztech_ichorvoidjar");
+ }
+
+ public static void init() {
+ // Multiblock controllers
+ sofc1 = new GTMTE_SOFuelCellMK1(13101, "multimachine.fuelcellmk1", "Solid-Oxide Fuel Cell Mk I");
+ sofc2 = new GTMTE_SOFuelCellMK2(13102, "multimachine.fuelcellmk2", "Solid-Oxide Fuel Cell Mk II");
+ tfft = new GTMTE_TFFT(13104, "multimachine.tfft", "T.F.F.T");
+ lsc = new GTMTE_LapotronicSuperCapacitor(13106, "multimachine.supercapacitor", "Lapotronic Supercapacitor");
+
+ // Singleblocks
+ tfftHatch = new GTMTE_TFFTHatch(13109, "machine.tffthatch", "T.F.F.T Multi I/O Hatch");
+ }
+}
diff --git a/kekztech/src/main/java/common/blocks/BaseGTUpdateableBlock.java b/kekztech/src/main/java/common/blocks/BaseGTUpdateableBlock.java
new file mode 100644
index 0000000000..ef61327dd7
--- /dev/null
+++ b/kekztech/src/main/java/common/blocks/BaseGTUpdateableBlock.java
@@ -0,0 +1,57 @@
+package 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.GregTech_API;
+
+/**
+ * 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);
+ GregTech_API.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;
+ }
+
+ @Override
+ public boolean canCreatureSpawn(EnumCreatureType type, IBlockAccess world, int x, int y, int z) {
+ return false;
+ }
+
+ @Override
+ public void onBlockAdded(World aWorld, int aX, int aY, int aZ) {
+ if (GregTech_API.isMachineBlock(this, aWorld.getBlockMetadata(aX, aY, aZ))) {
+ GregTech_API.causeMachineUpdate(aWorld, aX, aY, aZ);
+ }
+ }
+
+ @Override
+ public void breakBlock(World aWorld, int aX, int aY, int aZ, Block aBlock, int aMetaData) {
+ if (GregTech_API.isMachineBlock(this, aWorld.getBlockMetadata(aX, aY, aZ))) {
+ GregTech_API.causeMachineUpdate(aWorld, aX, aY, aZ);
+ }
+ }
+}
diff --git a/kekztech/src/main/java/common/blocks/Block_GDCUnit.java b/kekztech/src/main/java/common/blocks/Block_GDCUnit.java
new file mode 100644
index 0000000000..27bc95759d
--- /dev/null
+++ b/kekztech/src/main/java/common/blocks/Block_GDCUnit.java
@@ -0,0 +1,29 @@
+package common.blocks;
+
+import net.minecraft.block.Block;
+import net.minecraft.block.material.Material;
+import net.minecraft.creativetab.CreativeTabs;
+
+import cpw.mods.fml.common.registry.GameRegistry;
+import kekztech.KekzCore;
+
+public class Block_GDCUnit extends BaseGTUpdateableBlock {
+
+ private static final Block_GDCUnit instance = new Block_GDCUnit();
+
+ private Block_GDCUnit() {
+ super(Material.iron);
+ }
+
+ public static Block registerBlock() {
+ final String blockName = "kekztech_gdcceramicelectrolyteunit_block";
+ instance.setBlockName(blockName);
+ instance.setCreativeTab(CreativeTabs.tabMisc);
+ instance.setBlockTextureName(KekzCore.MODID + ":" + "GDCCeramicElectrolyteUnit");
+ instance.setHardness(5.0f);
+ instance.setResistance(6.0f);
+ GameRegistry.registerBlock(instance, blockName);
+
+ return instance;
+ }
+}
diff --git a/kekztech/src/main/java/common/blocks/Block_IchorJar.java b/kekztech/src/main/java/common/blocks/Block_IchorJar.java
new file mode 100644
index 0000000000..a82f9862f0
--- /dev/null
+++ b/kekztech/src/main/java/common/blocks/Block_IchorJar.java
@@ -0,0 +1,230 @@
+package common.blocks;
+
+import java.util.ArrayList;
+import java.util.Collections;
+import java.util.List;
+
+import net.minecraft.block.Block;
+import net.minecraft.client.renderer.texture.IIconRegister;
+import net.minecraft.creativetab.CreativeTabs;
+import net.minecraft.entity.item.EntityItem;
+import net.minecraft.entity.player.EntityPlayer;
+import net.minecraft.item.Item;
+import net.minecraft.item.ItemStack;
+import net.minecraft.tileentity.TileEntity;
+import net.minecraft.world.Explosion;
+import net.minecraft.world.World;
+
+import common.itemBlocks.IB_IchorJar;
+import common.tileentities.TE_IchorJar;
+import common.tileentities.TE_IchorVoidJar;
+
+import cpw.mods.fml.common.registry.GameRegistry;
+import cpw.mods.fml.relauncher.Side;
+import cpw.mods.fml.relauncher.SideOnly;
+import thaumcraft.api.aspects.Aspect;
+import thaumcraft.api.aspects.AspectList;
+import thaumcraft.common.blocks.BlockJar;
+import thaumcraft.common.config.ConfigBlocks;
+import thaumcraft.common.config.ConfigItems;
+import thaumcraft.common.items.ItemEssence;
+import thaumcraft.common.tiles.TileJarFillable;
+
+public class Block_IchorJar extends BlockJar {
+
+ private static final Block_IchorJar INSTANCE = new Block_IchorJar();
+
+ private Block_IchorJar() {
+ super();
+
+ super.setHardness(12.0F);
+ super.setResistance(3.0f);
+ }
+
+ public static Block registerBlock() {
+ final String blockName = "kekztech_ichorjar_block";
+ INSTANCE.setBlockName(blockName);
+ INSTANCE.setHarvestLevel("pickaxe", 3);
+ GameRegistry.registerBlock(INSTANCE, IB_IchorJar.class, blockName);
+
+ return INSTANCE;
+ }
+
+ @Override
+ @SideOnly(Side.CLIENT)
+ public void registerBlockIcons(IIconRegister ir) {
+ super.iconLiquid = ir.registerIcon("thaumcraft:animatedglow");
+ super.iconJarSide = ir.registerIcon("kekztech:ichor_jar_side");
+ super.iconJarTop = ir.registerIcon("kekztech:ichor_jar_top");
+ super.iconJarTopVoid = ir.registerIcon("kekztech:ichor_jar_top_void");
+ super.iconJarSideVoid = ir.registerIcon("kekztech:ichor_jar_side_void");
+ super.iconJarBottom = ir.registerIcon("kekztech:ichor_jar_bottom");
+ }
+
+ @