aboutsummaryrefslogtreecommitdiff
path: root/src/main/java/goodgenerator/blocks
diff options
context:
space:
mode:
authorRaven Szewczyk <git@eigenraven.me>2024-05-25 14:13:58 +0100
committerRaven Szewczyk <git@eigenraven.me>2024-05-25 14:13:58 +0100
commit91b1909427bb0cab0f72505c325b07f8fb39c62e (patch)
treed6570897b7150afd4f3cb1470202af11e3e9ece3 /src/main/java/goodgenerator/blocks
parent40efa0d238677418071b658b11b0a1a7c9e0d864 (diff)
downloadGT5-Unofficial-91b1909427bb0cab0f72505c325b07f8fb39c62e.tar.gz
GT5-Unofficial-91b1909427bb0cab0f72505c325b07f8fb39c62e.tar.bz2
GT5-Unofficial-91b1909427bb0cab0f72505c325b07f8fb39c62e.zip
Move GoodGen sources
Diffstat (limited to 'src/main/java/goodgenerator/blocks')
-rw-r--r--src/main/java/goodgenerator/blocks/myFluids/BaseFluid.java54
-rw-r--r--src/main/java/goodgenerator/blocks/myFluids/FluidsBuilder.java203
-rw-r--r--src/main/java/goodgenerator/blocks/regularBlock/Casing.java124
-rw-r--r--src/main/java/goodgenerator/blocks/regularBlock/ComplexTextureCasing.java58
-rw-r--r--src/main/java/goodgenerator/blocks/regularBlock/Frame.java37
-rw-r--r--src/main/java/goodgenerator/blocks/regularBlock/ITextureBlock.java18
-rw-r--r--src/main/java/goodgenerator/blocks/regularBlock/TEBlock.java207
-rw-r--r--src/main/java/goodgenerator/blocks/regularBlock/TurbineCasing.java103
-rw-r--r--src/main/java/goodgenerator/blocks/tileEntity/ComponentAssemblyLine.java403
-rw-r--r--src/main/java/goodgenerator/blocks/tileEntity/CoolantTower.java225
-rw-r--r--src/main/java/goodgenerator/blocks/tileEntity/EssentiaHatch.java244
-rw-r--r--src/main/java/goodgenerator/blocks/tileEntity/EssentiaOutputHatch.java179
-rw-r--r--src/main/java/goodgenerator/blocks/tileEntity/EssentiaOutputHatch_ME.java150
-rw-r--r--src/main/java/goodgenerator/blocks/tileEntity/ExtremeHeatExchanger.java416
-rw-r--r--src/main/java/goodgenerator/blocks/tileEntity/FuelRefineFactory.java376
-rw-r--r--src/main/java/goodgenerator/blocks/tileEntity/GTMetaTileEntity/DieselGenerator.java214
-rw-r--r--src/main/java/goodgenerator/blocks/tileEntity/GTMetaTileEntity/NeutronAccelerator.java48
-rw-r--r--src/main/java/goodgenerator/blocks/tileEntity/GTMetaTileEntity/NeutronSensor.java277
-rw-r--r--src/main/java/goodgenerator/blocks/tileEntity/GTMetaTileEntity/YOTTAHatch.java470
-rw-r--r--src/main/java/goodgenerator/blocks/tileEntity/LargeEssentiaGenerator.java511
-rw-r--r--src/main/java/goodgenerator/blocks/tileEntity/LargeEssentiaSmeltery.java558
-rw-r--r--src/main/java/goodgenerator/blocks/tileEntity/LargeFusionComputer1.java170
-rw-r--r--src/main/java/goodgenerator/blocks/tileEntity/LargeFusionComputer2.java171
-rw-r--r--src/main/java/goodgenerator/blocks/tileEntity/LargeFusionComputer3.java172
-rw-r--r--src/main/java/goodgenerator/blocks/tileEntity/LargeFusionComputer4.java227
-rw-r--r--src/main/java/goodgenerator/blocks/tileEntity/LargeFusionComputer5.java231
-rw-r--r--src/main/java/goodgenerator/blocks/tileEntity/MultiNqGenerator.java471
-rw-r--r--src/main/java/goodgenerator/blocks/tileEntity/NeutronActivator.java515
-rw-r--r--src/main/java/goodgenerator/blocks/tileEntity/PreciseAssembler.java491
-rw-r--r--src/main/java/goodgenerator/blocks/tileEntity/SupercriticalFluidTurbine.java184
-rw-r--r--src/main/java/goodgenerator/blocks/tileEntity/UniversalChemicalFuelEngine.java393
-rw-r--r--src/main/java/goodgenerator/blocks/tileEntity/YottaFluidTank.java709
-rw-r--r--src/main/java/goodgenerator/blocks/tileEntity/base/GT_MetaTileEntity_LargeTurbineBase.java345
-rw-r--r--src/main/java/goodgenerator/blocks/tileEntity/base/GT_MetaTileEntity_TooltipMultiBlockBase_EM.java62
-rw-r--r--src/main/java/goodgenerator/blocks/tileEntity/base/LargeFusionComputer.java733
-rw-r--r--src/main/java/goodgenerator/blocks/tileEntity/base/LargeFusionComputerPP.java53
36 files changed, 9802 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..47f73b186b
--- /dev/null
+++ b/src/main/java/goodgenerator/blocks/myFluids/BaseFluid.java
@@ -0,0 +1,54 @@
+package goodgenerator.blocks.myFluids;
+
+import static goodgenerator.main.GoodGenerator.MOD_ID;
+
+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 cpw.mods.fml.relauncher.Side;
+import cpw.mods.fml.relauncher.SideOnly;
+
+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..de8cca2b43
--- /dev/null
+++ b/src/main/java/goodgenerator/blocks/myFluids/FluidsBuilder.java
@@ -0,0 +1,203 @@
+package goodgenerator.blocks.myFluids;
+
+import net.minecraft.block.material.Material;
+import net.minecraftforge.fluids.Fluid;
+
+import cpw.mods.fml.common.registry.GameRegistry;
+import goodgenerator.crossmod.nei.NEI_Config;
+
+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();
+ coalTar();
+ supercriticalSteam();
+ }
+
+ 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);
+ }
+
+ public static void coalTar() {
+ Fluid tmp = BaseFluid.BuildFluid("fluid.coalTar");
+ tmp.setGaseous(false)
+ .setTemperature(450)
+ .setUnlocalizedName("fluid.coalTar");
+ BaseFluid tmp2 = new BaseFluid(tmp, Material.water);
+ tmp2.SetTexture("coalTar");
+ tmp2.setBlockTextureName("coalTar");
+ GameRegistry.registerBlock(tmp2, "coalTar");
+ NEI_Config.hide(tmp2);
+ }
+
+ public static void supercriticalSteam() {
+ Fluid tmp = BaseFluid.BuildFluid("supercriticalSteam");
+ tmp.setGaseous(true)
+ .setTemperature(648)
+ .setUnlocalizedName("supercriticalSteam");
+ BaseFluid tmp2 = new BaseFluid(tmp, Material.water);
+ tmp2.SetTexture("supercriticalSteam");
+ tmp2.setBlockTextureName("supercriticalSteam");
+ GameRegistry.registerBlock(tmp2, "supercriticalSteam");
+ 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..9e01d783d2
--- /dev/null
+++ b/src/main/java/goodgenerator/blocks/regularBlock/Casing.java
@@ -0,0 +1,124 @@
+package goodgenerator.blocks.regularBlock;
+
+import java.util.List;
+
+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 cpw.mods.fml.relauncher.Side;
+import cpw.mods.fml.relauncher.SideOnly;
+import goodgenerator.main.GoodGenerator;
+import gregtech.api.GregTech_API;
+
+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..0a0169d0b4
--- /dev/null
+++ b/src/main/java/goodgenerator/blocks/regularBlock/ComplexTextureCasing.java
@@ -0,0 +1,58 @@
+package goodgenerator.blocks.regularBlock;
+
+import java.util.List;
+
+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 cpw.mods.fml.relauncher.Side;
+import cpw.mods.fml.relauncher.SideOnly;
+
+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..b4acb03518
--- /dev/null
+++ b/src/main/java/goodgenerator/blocks/regularBlock/Frame.java
@@ -0,0 +1,37 @@
+package goodgenerator.blocks.regularBlock;
+
+import net.minecraft.block.material.Material;
+import net.minecraft.world.IBlockAccess;
+
+import cpw.mods.fml.relauncher.Side;
+import cpw.mods.fml.relauncher.SideOnly;
+
+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/ITextureBlock.java b/src/main/java/goodgenerator/blocks/regularBlock/ITextureBlock.java
new file mode 100644
index 0000000000..fae196a64b
--- /dev/null
+++ b/src/main/java/goodgenerator/blocks/regularBlock/ITextureBlock.java
@@ -0,0 +1,18 @@
+package goodgenerator.blocks.regularBlock;
+
+import net.minecraft.block.Block;
+import net.minecraft.world.IBlockAccess;
+import net.minecraftforge.common.util.ForgeDirection;
+
+import gregtech.api.interfaces.ITexture;
+
+public interface ITextureBlock {
+
+ default ITexture[] getTexture(Block aBlock, ForgeDirection side) {
+ return getTexture(aBlock, 0, side);
+ }
+
+ ITexture[] getTexture(Block aBlock, ForgeDirection side, IBlockAccess aWorld, int xCoord, int yCoord, int zCoord);
+
+ ITexture[] getTexture(Block aBlock, int aMeta, ForgeDirection side);
+}
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..6c13a9c680
--- /dev/null
+++ b/src/main/java/goodgenerator/blocks/regularBlock/TEBlock.java
@@ -0,0 +1,207 @@
+package goodgenerator.blocks.regularBlock;
+
+import java.util.List;
+
+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;
+import net.minecraft.entity.EnumCreatureType;
+import net.minecraft.entity.player.EntityPlayer;
+import net.minecraft.item.Item;
+import net.minecraft.item.ItemStack;
+import net.minecraft.tileentity.TileEntity;
+import net.minecraft.util.IIcon;
+import net.minecraft.util.StatCollector;
+import net.minecraft.world.IBlockAccess;
+import net.minecraft.world.World;
+
+import cpw.mods.fml.relauncher.Side;
+import cpw.mods.fml.relauncher.SideOnly;
+import goodgenerator.blocks.tileEntity.EssentiaHatch;
+import goodgenerator.blocks.tileEntity.EssentiaOutputHatch;
+import goodgenerator.blocks.tileEntity.EssentiaOutputHatch_ME;
+import goodgenerator.main.GoodGenerator;
+import gregtech.api.GregTech_API;
+import gregtech.api.util.GT_Utility;
+import thaumcraft.api.aspects.Aspect;
+import thaumcraft.api.aspects.IEssentiaContainerItem;
+
+public class TEBlock extends BlockContainer {
+
+ @SideOnly(Side.CLIENT)
+ protected IIcon[] texture;
+
+ String[] textureNames;
+ protected String name;
+ protected int index;
+
+ public TEBlock(String name, String[] texture, CreativeTabs Tab) {
+ 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 TEBlock(String name, String[] texture, int index) {
+ super(Material.iron);
+ this.setHardness(9.0F);
+ this.setResistance(5.0F);
+ this.name = name;
+ this.textureNames = texture;
+ this.setHarvestLevel("wrench", 2);
+ this.index = index;
+ this.setCreativeTab(GoodGenerator.GG);
+ GregTech_API.registerMachineBlock(this, -1);
+ }
+
+ public TEBlock(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);
+ }
+
+ public int getIndex() {
+ return this.index;
+ }
+
+ @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);
+ }
+ aWorld.removeTileEntity(aX, aY, aZ);
+ }
+
+ @Override
+ public String getUnlocalizedName() {
+ return this.name;
+ }
+
+ @Override
+ public boolean canBeReplacedByLeaves(IBlockAccess world, int x, int y, int z) {
+ return false;
+ }