aboutsummaryrefslogtreecommitdiff
path: root/src/main/java/goodgenerator
diff options
context:
space:
mode:
Diffstat (limited to 'src/main/java/goodgenerator')
-rw-r--r--src/main/java/goodgenerator/blocks/myFluids/BaseFluid.java54
-rw-r--r--src/main/java/goodgenerator/blocks/myFluids/FluidsBuilder.java176
-rw-r--r--src/main/java/goodgenerator/blocks/regularBlock/Casing.java123
-rw-r--r--src/main/java/goodgenerator/blocks/regularBlock/ComplexTextureCasing.java58
-rw-r--r--src/main/java/goodgenerator/blocks/regularBlock/Frame.java36
-rw-r--r--src/main/java/goodgenerator/blocks/regularBlock/TEBlock.java180
-rw-r--r--src/main/java/goodgenerator/blocks/tileEntity/EssentiaHatch.java225
-rw-r--r--src/main/java/goodgenerator/blocks/tileEntity/FuelRefineFactory.java368
-rw-r--r--src/main/java/goodgenerator/blocks/tileEntity/GTMetaTileEntity/NeutronAccelerator.java66
-rw-r--r--src/main/java/goodgenerator/blocks/tileEntity/GTMetaTileEntity/NeutronSensor.java168
-rw-r--r--src/main/java/goodgenerator/blocks/tileEntity/LargeEssentiaGenerator.java539
-rw-r--r--src/main/java/goodgenerator/blocks/tileEntity/MegaPlasmaTurbine.java50
-rw-r--r--src/main/java/goodgenerator/blocks/tileEntity/MetalVaporTurbine.java5
-rw-r--r--src/main/java/goodgenerator/blocks/tileEntity/MultiNqGenerator.java427
-rw-r--r--src/main/java/goodgenerator/blocks/tileEntity/NeutronActivator.java441
-rw-r--r--src/main/java/goodgenerator/blocks/tileEntity/UniversalChemicalFuelEngine.java348
-rw-r--r--src/main/java/goodgenerator/blocks/tileEntity/YottaFluidTank.java424
-rw-r--r--src/main/java/goodgenerator/client/ClientProxy.java21
-rw-r--r--src/main/java/goodgenerator/client/GUI/NeutronActivatorGUIClient.java43
-rw-r--r--src/main/java/goodgenerator/client/GUI/NeutronSensorGUIClient.java110
-rw-r--r--src/main/java/goodgenerator/client/GUI/YOTTankGUIClient.java28
-rw-r--r--src/main/java/goodgenerator/common/CommonProxy.java11
-rw-r--r--src/main/java/goodgenerator/common/container/NeutronActivatorGUIContainer.java80
-rw-r--r--src/main/java/goodgenerator/common/container/NeutronSensorGUIContainer.java12
-rw-r--r--src/main/java/goodgenerator/common/container/YOTTankGUIContainer.java133
-rw-r--r--src/main/java/goodgenerator/crossmod/nei/IMCForNEI.java24
-rw-r--r--src/main/java/goodgenerator/crossmod/nei/NEI_Config.java38
-rw-r--r--src/main/java/goodgenerator/crossmod/nei/NeutronActivatorHandler.java43
-rw-r--r--src/main/java/goodgenerator/crossmod/thaumcraft/LargeEssentiaEnergyData.java124
-rw-r--r--src/main/java/goodgenerator/crossmod/thaumcraft/Research.java620
-rw-r--r--src/main/java/goodgenerator/items/FuelRod.java183
-rw-r--r--src/main/java/goodgenerator/items/MyItemBlocks.java89
-rw-r--r--src/main/java/goodgenerator/items/MyItems.java112
-rw-r--r--src/main/java/goodgenerator/items/MyMaterial.java1015
-rw-r--r--src/main/java/goodgenerator/items/RadioactiveItem.java40
-rw-r--r--src/main/java/goodgenerator/items/nuclear/IsotopeMaterial.java55
-rw-r--r--src/main/java/goodgenerator/items/nuclear/IsotopeMaterialLoader.java16
-rw-r--r--src/main/java/goodgenerator/items/nuclear/NuclearMetaItemGenerator.java103
-rw-r--r--src/main/java/goodgenerator/items/nuclear/NuclearTextures.java31
-rw-r--r--src/main/java/goodgenerator/loader/AchievementLoader.java4
-rw-r--r--src/main/java/goodgenerator/loader/FuelRecipeLoader.java79
-rw-r--r--src/main/java/goodgenerator/loader/FuelRodLoader.java56
-rw-r--r--src/main/java/goodgenerator/loader/Loaders.java215
-rw-r--r--src/main/java/goodgenerator/loader/NaquadahReworkRecipeLoader.java1125
-rw-r--r--src/main/java/goodgenerator/loader/NeutronActivatorLoader.java24
-rw-r--r--src/main/java/goodgenerator/loader/RecipeLoader.java1904
-rw-r--r--src/main/java/goodgenerator/loader/RecipeLoader_02.java670
-rw-r--r--src/main/java/goodgenerator/main/GG_Config_Loader.java69
-rw-r--r--src/main/java/goodgenerator/main/GoodGenerator.java76
-rw-r--r--src/main/java/goodgenerator/network/MessageMTEBase.java98
-rw-r--r--src/main/java/goodgenerator/network/MessageOpenNeutronSensorGUI.java50
-rw-r--r--src/main/java/goodgenerator/network/MessageSetNeutronSensorData.java52
-rw-r--r--src/main/java/goodgenerator/tabs/MyTabs.java16
-rw-r--r--src/main/java/goodgenerator/tabs/NuclearTab.java16
-rw-r--r--src/main/java/goodgenerator/util/CharExchanger.java124
-rw-r--r--src/main/java/goodgenerator/util/CrackRecipeAdder.java78
-rw-r--r--src/main/java/goodgenerator/util/DescTextLocalization.java17
-rw-r--r--src/main/java/goodgenerator/util/ItemRefer.java152
-rw-r--r--src/main/java/goodgenerator/util/MaterialFix.java50
-rw-r--r--src/main/java/goodgenerator/util/MyRecipeAdder.java100
-rw-r--r--src/main/java/goodgenerator/util/StructureHelper.java112
61 files changed, 11706 insertions, 0 deletions
diff --git a/src/main/java/goodgenerator/blocks/myFluids/BaseFluid.java b/src/main/java/goodgenerator/blocks/myFluids/BaseFluid.java
new file mode 100644
index 0000000000..9ccbd27e70
--- /dev/null
+++ b/src/main/java/goodgenerator/blocks/myFluids/BaseFluid.java
@@ -0,0 +1,54 @@
+package goodgenerator.blocks.myFluids;
+
+import cpw.mods.fml.relauncher.Side;
+import cpw.mods.fml.relauncher.SideOnly;
+import net.minecraft.block.material.Material;
+import net.minecraft.client.renderer.texture.IIconRegister;
+import net.minecraft.util.IIcon;
+import net.minecraftforge.fluids.BlockFluidClassic;
+import net.minecraftforge.fluids.Fluid;
+import net.minecraftforge.fluids.FluidRegistry;
+
+import static goodgenerator.main.GoodGenerator.MOD_ID;
+
+public class BaseFluid extends BlockFluidClassic{
+ @SideOnly( Side.CLIENT )
+ protected IIcon stillIcon;
+ @SideOnly( Side.CLIENT )
+ protected IIcon flowingIcon;
+ private String stillTexture;
+ private String flowingTexture;
+
+ public BaseFluid(Fluid fluid, Material material)
+ {
+ super( fluid, material );
+ }
+
+ public void SetTexture(String fluidName)
+ {
+ stillTexture = MOD_ID + ":fluids/" + fluidName + ".still";
+ flowingTexture = MOD_ID + ":fluids/" + fluidName + ".flowing";
+ }
+
+ public static Fluid BuildFluid(String fluidName){
+ Fluid tFluid = new Fluid(fluidName);
+ FluidRegistry.registerFluid(tFluid);
+ return tFluid;
+ }
+
+ @SideOnly( Side.CLIENT )
+ @Override
+ public void registerBlockIcons( IIconRegister register )
+ {
+ stillIcon = register.registerIcon(stillTexture);
+ flowingIcon = register.registerIcon(flowingTexture);
+
+ super.getFluid().setIcons( stillIcon, flowingIcon );
+ }
+
+ @Override
+ public IIcon getIcon( int side, int meta )
+ {
+ return ( side == 0 || side == 1 ) ? stillIcon : flowingIcon;
+ }
+}
diff --git a/src/main/java/goodgenerator/blocks/myFluids/FluidsBuilder.java b/src/main/java/goodgenerator/blocks/myFluids/FluidsBuilder.java
new file mode 100644
index 0000000000..94857b73f6
--- /dev/null
+++ b/src/main/java/goodgenerator/blocks/myFluids/FluidsBuilder.java
@@ -0,0 +1,176 @@
+package goodgenerator.blocks.myFluids;
+
+import goodgenerator.crossmod.nei.NEI_Config;
+import cpw.mods.fml.common.registry.GameRegistry;
+import net.minecraft.block.material.Material;
+import net.minecraftforge.fluids.Fluid;
+
+public class FluidsBuilder {
+ public FluidsBuilder(){
+ }
+
+ public static void Register() {
+ crackedNaquadahGas_Lightly();
+ crackedNaquadahGas_Moderately();
+ crackedNaquadahGas_Heavily();
+ crackedLightNaquadahFuel_Lightly();
+ crackedLightNaquadahFuel_Moderately();
+ crackedLightNaquadahFuel_Heavily();
+ crackedHeavyNaquadahFuel_Lightly();
+ crackedHeavyNaquadahFuel_Moderately();
+ crackedHeavyNaquadahFuel_Heavily();
+ crackedNaquadahAsphalt_Lightly();
+ crackedNaquadahAsphalt_Moderately();
+ crackedNaquadahAsphalt_Heavily();
+ combustionPromotor();
+ }
+
+ public static void crackedNaquadahGas_Lightly(){
+ Fluid tmp = BaseFluid.BuildFluid("lightlyCrackedNaquadahGas");
+ tmp.setGaseous(true)
+ .setTemperature(800);
+ BaseFluid tmp2 = new BaseFluid(tmp, Material.water);
+ tmp2.SetTexture("lightlyCrackedNaquadahGas");
+ tmp2.setBlockName("lightlyCrackedNaquadahGas");
+ GameRegistry.registerBlock(tmp2,"lightlyCrackedNaquadahGas");
+ NEI_Config.hide(tmp2);
+ }
+
+ public static void crackedNaquadahGas_Moderately(){
+ Fluid tmp = BaseFluid.BuildFluid("moderatelyCrackedNaquadahGas");
+ tmp.setGaseous(true)
+ .setTemperature(800);
+ BaseFluid tmp2 = new BaseFluid(tmp, Material.water);
+ tmp2.SetTexture("moderatelyCrackedNaquadahGas");
+ tmp2.setBlockName("moderatelyCrackedNaquadahGas");
+ GameRegistry.registerBlock(tmp2,"moderatelyCrackedNaquadahGas");
+ NEI_Config.hide(tmp2);
+ }
+
+ public static void crackedNaquadahGas_Heavily(){
+ Fluid tmp = BaseFluid.BuildFluid("heavilyCrackedNaquadahGas");
+ tmp.setGaseous(true)
+ .setTemperature(800);
+ BaseFluid tmp2 = new BaseFluid(tmp, Material.water);
+ tmp2.SetTexture("heavilyCrackedNaquadahGas");
+ tmp2.setBlockName("heavilyCrackedNaquadahGas");
+ GameRegistry.registerBlock(tmp2,"heavilyCrackedNaquadahGas");
+ NEI_Config.hide(tmp2);
+ }
+
+ public static void crackedLightNaquadahFuel_Lightly(){
+ Fluid tmp = BaseFluid.BuildFluid("lightlyCrackedLightNaquadahFuel");
+ tmp.setGaseous(false)
+ .setTemperature(1200);
+ BaseFluid tmp2 = new BaseFluid(tmp, Material.water);
+ tmp2.SetTexture("lightlyCrackedLightNaquadahFuel");
+ tmp2.setBlockName("lightlyCrackedLightNaquadahFuel");
+ GameRegistry.registerBlock(tmp2,"lightlyCrackedLightNaquadahFuel");
+ NEI_Config.hide(tmp2);
+ }
+
+ public static void crackedLightNaquadahFuel_Moderately(){
+ Fluid tmp = BaseFluid.BuildFluid("moderatelyCrackedLightNaquadahFuel");
+ tmp.setGaseous(false)
+ .setTemperature(1200);
+ BaseFluid tmp2 = new BaseFluid(tmp, Material.water);
+ tmp2.SetTexture("moderatelyCrackedLightNaquadahFuel");
+ tmp2.setBlockName("moderatelyCrackedLightNaquadahFuel");
+ GameRegistry.registerBlock(tmp2,"moderatelyCrackedLightNaquadahFuel");
+ NEI_Config.hide(tmp2);
+ }
+
+ public static void crackedLightNaquadahFuel_Heavily(){
+ Fluid tmp = BaseFluid.BuildFluid("heavilyCrackedLightNaquadahFuel");
+ tmp.setGaseous(false)
+ .setTemperature(1200);
+ BaseFluid tmp2 = new BaseFluid(tmp, Material.water);
+ tmp2.SetTexture("heavilyCrackedLightNaquadahFuel");
+ tmp2.setBlockName("heavilyCrackedLightNaquadahFuel");
+ GameRegistry.registerBlock(tmp2,"heavilyCrackedLightNaquadahFuel");
+ NEI_Config.hide(tmp2);
+ }
+
+ public static void crackedHeavyNaquadahFuel_Lightly(){
+ Fluid tmp = BaseFluid.BuildFluid("lightlyCrackedHeavyNaquadahFuel");
+ tmp.setGaseous(false)
+ .setTemperature(1200);
+ BaseFluid tmp2 = new BaseFluid(tmp, Material.water);
+ tmp2.SetTexture("lightlyCrackedHeavyNaquadahFuel");
+ tmp2.setBlockName("lightlyCrackedHeavyNaquadahFuel");
+ GameRegistry.registerBlock(tmp2,"lightlyCrackedHeavyNaquadahFuel");
+ NEI_Config.hide(tmp2);
+ }
+
+ public static void crackedHeavyNaquadahFuel_Moderately(){
+ Fluid tmp = BaseFluid.BuildFluid("moderatelyCrackedHeavyNaquadahFuel");
+ tmp.setGaseous(false)
+ .setTemperature(1200);
+ BaseFluid tmp2 = new BaseFluid(tmp, Material.water);
+ tmp2.SetTexture("moderatelyCrackedHeavyNaquadahFuel");
+ tmp2.setBlockName("moderatelyCrackedHeavyNaquadahFuel");
+ GameRegistry.registerBlock(tmp2,"moderatelyCrackedHeavyNaquadahFuel");
+ NEI_Config.hide(tmp2);
+ }
+
+ public static void crackedHeavyNaquadahFuel_Heavily(){
+ Fluid tmp = BaseFluid.BuildFluid("heavilyCrackedHeavyNaquadahFuel");
+ tmp.setGaseous(false)
+ .setTemperature(1200);
+ BaseFluid tmp2 = new BaseFluid(tmp, Material.water);
+ tmp2.SetTexture("heavilyCrackedHeavyNaquadahFuel");
+ tmp2.setBlockName("heavilyCrackedHeavyNaquadahFuel");
+ GameRegistry.registerBlock(tmp2,"heavilyCrackedHeavyNaquadahFuel");
+ NEI_Config.hide(tmp2);
+ }
+
+ public static void crackedNaquadahAsphalt_Lightly(){
+ Fluid tmp = BaseFluid.BuildFluid("lightlyCrackedNaquadahAsphalt");
+ tmp.setGaseous(false)
+ .setTemperature(1800)
+ .setDensity(20000)
+ .setViscosity(20000);
+ BaseFluid tmp2 = new BaseFluid(tmp, Material.water);
+ tmp2.SetTexture("lightlyCrackedNaquadahAsphalt");
+ tmp2.setBlockName("lightlyCrackedNaquadahAsphalt");
+ GameRegistry.registerBlock(tmp2,"lightlyCrackedNaquadahAsphalt");
+ NEI_Config.hide(tmp2);
+ }
+
+ public static void crackedNaquadahAsphalt_Moderately(){
+ Fluid tmp = BaseFluid.BuildFluid("moderatelyCrackedNaquadahAsphalt");
+ tmp.setGaseous(false)
+ .setTemperature(1800)
+ .setDensity(20000)
+ .setViscosity(20000);
+ BaseFluid tmp2 = new BaseFluid(tmp, Material.water);
+ tmp2.SetTexture("moderatelyCrackedNaquadahAsphalt");
+ tmp2.setBlockName("moderatelyCrackedNaquadahAsphalt");
+ GameRegistry.registerBlock(tmp2,"moderatelyCrackedNaquadahAsphalt");
+ NEI_Config.hide(tmp2);
+ }
+
+ public static void crackedNaquadahAsphalt_Heavily(){
+ Fluid tmp = BaseFluid.BuildFluid("heavilyCrackedNaquadahAsphalt");
+ tmp.setGaseous(false)
+ .setTemperature(1800)
+ .setDensity(20000)
+ .setViscosity(20000);
+ BaseFluid tmp2 = new BaseFluid(tmp, Material.water);
+ tmp2.SetTexture("heavilyCrackedNaquadahAsphalt");
+ tmp2.setBlockName("heavilyCrackedNaquadahAsphalt");
+ GameRegistry.registerBlock(tmp2,"heavilyCrackedNaquadahAsphalt");
+ NEI_Config.hide(tmp2);
+ }
+
+ public static void combustionPromotor(){
+ Fluid tmp = BaseFluid.BuildFluid("combustionPromotor");
+ tmp.setGaseous(false)
+ .setTemperature(300);
+ BaseFluid tmp2 = new BaseFluid(tmp, Material.water);
+ tmp2.SetTexture("combustionPromotor");
+ tmp2.setBlockName("combustionPromotor");
+ GameRegistry.registerBlock(tmp2,"combustionPromotor");
+ NEI_Config.hide(tmp2);
+ }
+}
diff --git a/src/main/java/goodgenerator/blocks/regularBlock/Casing.java b/src/main/java/goodgenerator/blocks/regularBlock/Casing.java
new file mode 100644
index 0000000000..7a1db3278d
--- /dev/null
+++ b/src/main/java/goodgenerator/blocks/regularBlock/Casing.java
@@ -0,0 +1,123 @@
+package goodgenerator.blocks.regularBlock;
+
+import goodgenerator.main.GoodGenerator;
+import cpw.mods.fml.relauncher.Side;
+import cpw.mods.fml.relauncher.SideOnly;
+import gregtech.api.GregTech_API;
+import net.minecraft.block.Block;
+import net.minecraft.block.material.Material;
+import net.minecraft.client.renderer.texture.IIconRegister;
+import net.minecraft.creativetab.CreativeTabs;
+import net.minecraft.entity.Entity;
+import net.minecraft.entity.EnumCreatureType;
+import net.minecraft.item.Item;
+import net.minecraft.item.ItemStack;
+import net.minecraft.util.IIcon;
+import net.minecraft.world.IBlockAccess;
+import net.minecraft.world.World;
+
+import java.util.List;
+
+public class Casing extends Block {
+
+ @SideOnly(Side.CLIENT)
+ protected IIcon[] texture;
+ String[] textureNames;
+ protected String name;
+
+ public Casing(String name) {
+ super(Material.iron);
+ this.setHardness(9.0F);
+ this.setResistance(5.0F);
+ this.name = name;
+ this.setHarvestLevel("wrench",2);
+ this.setCreativeTab(GoodGenerator.GG);
+ GregTech_API.registerMachineBlock(this, -1);
+ }
+
+ public Casing(String name, String[] texture){
+ super(Material.iron);
+ this.setHardness(9.0F);
+ this.setResistance(5.0F);
+ this.name = name;
+ this.textureNames = texture;
+ this.setHarvestLevel("wrench",2);
+ this.setCreativeTab(GoodGenerator.GG);
+ GregTech_API.registerMachineBlock(this, -1);
+ }
+
+ public Casing(String name, String[] texture, Material material){
+ super(material);
+ this.setHardness(9.0F);
+ this.setResistance(5.0F);
+ this.name = name;
+ this.textureNames = texture;
+ this.setHarvestLevel("wrench",2);
+ this.setCreativeTab(GoodGenerator.GG);
+ GregTech_API.registerMachineBlock(this, -1);
+ }
+
+ @Override
+ public int damageDropped(int meta) {
+ return meta;
+ }
+
+ @Override
+ @SideOnly(Side.CLIENT)
+ public IIcon getIcon(int side, int meta) {
+ return meta < this.texture.length ? this.texture[meta] : this.texture[0];
+ }
+
+ @Override
+ @SideOnly(Side.CLIENT)
+ public void registerBlockIcons(IIconRegister par1IconRegister) {
+ this.texture = new IIcon[this.textureNames.length];
+ for (int i = 0; i < this.textureNames.length; i++) {
+ this.texture[i] = par1IconRegister.registerIcon(this.textureNames[i]);
+ }
+ }
+
+ @Override
+ @SideOnly(Side.CLIENT)
+ @SuppressWarnings("unchecked")
+ public void getSubBlocks(Item item, CreativeTabs tab, List list) {
+ for (int i = 0; i < this.textureNames.length; i++) {
+ list.add(new ItemStack(item, 1, i));
+ }
+ }
+
+ @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);
+ }
+ }
+
+ @Override
+ public String getUnlocalizedName() {
+ return this.name;
+ }
+
+ @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;
+ }
+
+}
diff --git a/src/main/java/goodgenerator/blocks/regularBlock/ComplexTextureCasing.java b/src/main/java/goodgenerator/blocks/regularBlock/ComplexTextureCasing.java
new file mode 100644
index 0000000000..18a1629cbf
--- /dev/null
+++ b/src/main/java/goodgenerator/blocks/regularBlock/ComplexTextureCasing.java
@@ -0,0 +1,58 @@
+package goodgenerator.blocks.regularBlock;
+
+import cpw.mods.fml.relauncher.Side;
+import cpw.mods.fml.relauncher.SideOnly;
+import net.minecraft.client.renderer.texture.IIconRegister;
+import net.minecraft.creativetab.CreativeTabs;
+import net.minecraft.item.Item;
+import net.minecraft.item.ItemStack;
+import net.minecraft.util.IIcon;
+
+import java.util.List;
+
+public class ComplexTextureCasing extends Casing{
+
+ @SideOnly(Side.CLIENT)
+ protected IIcon[] texture1, texture2;
+ String[] textureSide;
+ String[] textureTopAndDown;
+
+ public ComplexTextureCasing(String name, String[] textureSide, String[] textureTopAndDown){
+ super(name);
+ this.textureSide = textureSide;
+ this.textureTopAndDown = textureTopAndDown;
+ }
+
+ @Override
+ @SideOnly(Side.CLIENT)
+ public IIcon getIcon(int side, int meta) {
+ if (side < 2) {
+ return meta < this.texture2.length ? this.texture2[meta] : this.texture2[0];
+ }
+ else {
+ return meta < this.texture1.length ? this.texture1[meta] : this.texture1[0];
+ }
+ }
+
+ @Override
+ @SideOnly(Side.CLIENT)
+ public void registerBlockIcons(IIconRegister par1IconRegister) {
+ this.texture1 = new IIcon[this.textureSide.length];
+ for (int i = 0; i < this.textureSide.length; i++) {
+ this.texture1[i] = par1IconRegister.registerIcon(this.textureSide[i]);
+ }
+ this.texture2 = new IIcon[this.textureTopAndDown.length];
+ for (int i = 0; i < this.textureTopAndDown.length; i++) {
+ this.texture2[i] = par1IconRegister.registerIcon(this.textureTopAndDown[i]);
+ }
+ }
+
+ @Override
+ @SideOnly(Side.CLIENT)
+ @SuppressWarnings("unchecked")
+ public void getSubBlocks(Item item, CreativeTabs tab, List list) {
+ for (int i = 0; i < Math.max(this.textureSide.length, this.textureTopAndDown.length); i++) {
+ list.add(new ItemStack(item, 1, i));
+ }
+ }
+}
diff --git a/src/main/java/goodgenerator/blocks/regularBlock/Frame.java b/src/main/java/goodgenerator/blocks/regularBlock/Frame.java
new file mode 100644
index 0000000000..90c38c4cce
--- /dev/null
+++ b/src/main/java/goodgenerator/blocks/regularBlock/Frame.java
@@ -0,0 +1,36 @@
+package goodgenerator.blocks.regularBlock;
+
+import cpw.mods.fml.relauncher.Side;
+import cpw.mods.fml.relauncher.SideOnly;
+import net.minecraft.block.material.Material;
+import net.minecraft.world.IBlockAccess;
+
+public class Frame extends Casing{
+ public Frame(String name,String[] texture){
+ super(name,texture, Material.iron);
+ }
+
+ @Override
+ public boolean isOpaqueCube() {
+ return false;
+ }
+
+ @Override
+ @SideOnly(Side.CLIENT)
+ public boolean shouldSideBeRendered(IBlockAccess worldClient, int xCoord, int yCoord, int zCoord, int aSide) {
+ if (worldClient.getBlock(xCoord, yCoord, zCoord) instanceof Frame)
+ return false;
+ return super.shouldSideBeRendered(worldClient, xCoord, yCoord, zCoord, aSide);
+ }
+
+ @Override
+ @SideOnly(Side.CLIENT)
+ public int getRenderBlockPass() {
+ return 1;
+ }
+
+ @Override
+ public boolean renderAsNormalBlock() {
+ return false;
+ }
+}
diff --git a/src/main/java/goodgenerator/blocks/regularBlock/TEBlock.java b/src/main/java/goodgenerator/blocks/regularBlock/TEBlock.java
new file mode 100644
index 0000000000..b33dbffdec
--- /dev/null
+++ b/src/main/java/goodgenerator/blocks/regularBlock/TEBlock.java
@@ -0,0 +1,180 @@
+package goodgenerator.blocks.regularBlock;
+
+import goodgenerator.blocks.tileEntity.EssentiaHatch;
+import goodgenerator.main.GoodGenerator;
+import cpw.mods.fml.relauncher.Side;
+import cpw.mods.fml.relauncher.SideOnly;
+import gregtech.api.GregTech_API;
+import gregtech.api.util.GT_Utility;
+import net.minecraft.block.Block;
+import net.minecraft.block.BlockContainer;
+import net.minecraft.block.material.Material;
+import net.minecraft.client.renderer.texture.IIconRegister;
+import net.minecraft.creativetab.CreativeTabs;
+import net.minecraft.entity.Entity;
+