aboutsummaryrefslogtreecommitdiff
path: root/src/main/java/gregtech/common/tileentities
diff options
context:
space:
mode:
authorMuramasa <haydenkilloh@gmail.com>2016-05-20 05:36:32 +0100
committerMuramasa <haydenkilloh@gmail.com>2016-05-20 05:36:32 +0100
commit8880eb8d6dccdcf4acee8d268efba74db4d093a3 (patch)
tree8a7bffc2e2a81b406293251f9ac0b588a974233a /src/main/java/gregtech/common/tileentities
parent4a59d0efbd2678cfa67a29d8acc9a3705a78712e (diff)
downloadGT5-Unofficial-8880eb8d6dccdcf4acee8d268efba74db4d093a3.tar.gz
GT5-Unofficial-8880eb8d6dccdcf4acee8d268efba74db4d093a3.tar.bz2
GT5-Unofficial-8880eb8d6dccdcf4acee8d268efba74db4d093a3.zip
Basically a rewrite
Diffstat (limited to 'src/main/java/gregtech/common/tileentities')
-rw-r--r--src/main/java/gregtech/common/tileentities/machines/multi/GT_MetaTileEntity_DieselEngine.java234
-rw-r--r--src/main/java/gregtech/common/tileentities/machines/multi/GT_MetaTileEntity_DieselEngineTurbo.java49
-rw-r--r--src/main/java/gregtech/common/tileentities/machines/multi/GT_MetaTileEntity_LargeDieselEngine.java236
3 files changed, 283 insertions, 236 deletions
diff --git a/src/main/java/gregtech/common/tileentities/machines/multi/GT_MetaTileEntity_DieselEngine.java b/src/main/java/gregtech/common/tileentities/machines/multi/GT_MetaTileEntity_DieselEngine.java
new file mode 100644
index 0000000000..492607f6f7
--- /dev/null
+++ b/src/main/java/gregtech/common/tileentities/machines/multi/GT_MetaTileEntity_DieselEngine.java
@@ -0,0 +1,234 @@
+package gregtech.common.tileentities.machines.multi;
+
+import gregtech.api.GregTech_API;
+import gregtech.api.enums.Textures;
+import gregtech.api.gui.GT_GUIContainer_MultiMachine;
+import gregtech.api.interfaces.ITexture;
+import gregtech.api.interfaces.metatileentity.IMetaTileEntity;
+import gregtech.api.interfaces.tileentity.IGregTechTileEntity;
+import gregtech.api.metatileentity.implementations.GT_MetaTileEntity_Hatch;
+import gregtech.api.metatileentity.implementations.GT_MetaTileEntity_Hatch_Dynamo;
+import gregtech.api.metatileentity.implementations.GT_MetaTileEntity_MultiBlockBase;
+import gregtech.api.objects.GT_RenderedTexture;
+import gregtech.api.util.GT_Recipe;
+import gregtech.api.util.GT_Utility;
+import net.minecraft.block.Block;
+import net.minecraft.entity.player.InventoryPlayer;
+import net.minecraft.item.ItemStack;
+import net.minecraft.nbt.NBTTagCompound;
+import net.minecraftforge.fluids.FluidStack;
+
+import java.util.ArrayList;
+import java.util.Collection;
+
+public class GT_MetaTileEntity_DieselEngine extends GT_MetaTileEntity_MultiBlockBase {
+ public GT_MetaTileEntity_DieselEngine(int aID, String aName, String aNameRegional) {
+ super(aID, aName, aNameRegional);
+ }
+ public GT_MetaTileEntity_DieselEngine(String aName) {
+ super(aName);
+ }
+
+ public String[] getDescription() {
+ return new String[]{
+ "Controller Block for the Large Diesel Engine",
+ "Size: 3x3x4",
+ "Controller (front centered)",
+ "3x3x4 of Stable Titanium Casing (hollow, Min 24!)",
+ "2x Titanium Pipe Casing Block inside the Hollow Casing",
+ "1x Input Hatch (one of the Casings)",
+ "1x Maintenance Hatch (one of the Casings)",
+ "1x Muffler Hatch (top middle back)",
+ "1x Dynamo Hatch (back centered)",
+ "Engine Intake Casings not obstructed (only air blocks)"};
+ }
+
+ public ITexture[] getTexture(IGregTechTileEntity aBaseMetaTileEntity, byte aSide, byte aFacing, byte aColorIndex, boolean aActive, boolean aRedstone) {
+ if (aSide == aFacing) {
+ return new ITexture[]{Textures.BlockIcons.CASING_BLOCKS[50], new GT_RenderedTexture(aActive ? Textures.BlockIcons.OVERLAY_FRONT_LARGE_BOILER_ACTIVE : Textures.BlockIcons.OVERLAY_FRONT_LARGE_BOILER)};
+ }
+ return new ITexture[]{Textures.BlockIcons.CASING_BLOCKS[50]};
+ }
+
+ @Override
+ public boolean isCorrectMachinePart(ItemStack aStack) {
+ return getMaxEfficiency(aStack) > 0;
+ }
+
+ public Object getClientGUI(int aID, InventoryPlayer aPlayerInventory, IGregTechTileEntity aBaseMetaTileEntity) {
+ return new GT_GUIContainer_MultiMachine(aPlayerInventory, aBaseMetaTileEntity, getLocalName(), "LargeDieselEngine.png");
+ }
+
+ @Override
+ public boolean checkRecipe(ItemStack aStack) {
+ ArrayList<FluidStack> tFluids = getStoredFluids();
+ Collection<GT_Recipe> tRecipeList = GT_Recipe.GT_Recipe_Map.sDieselFuels.mRecipeList;
+ int baseEUt = requiresTurboHatch() ? 8192 : 2048;
+
+ if(tFluids.size() > 0 && tRecipeList != null) {
+ for (FluidStack hatchFluid1 : tFluids) { //Loops through hatches
+ for(GT_Recipe aFuel : tRecipeList) { //Loops through diesel fuel recipes
+ FluidStack tLiquid;
+ if ((tLiquid = GT_Utility.getFluidForFilledItem(aFuel.getRepresentativeInput(0), true)) != null) {
+ if (hatchFluid1.isFluidEqual(tLiquid)) { //Has a diesel fluid
+ System.out.println("Fuel Value: "+aFuel.mSpecialValue); //For testing, needs to be removed
+ tLiquid.amount = baseEUt / aFuel.mSpecialValue; //Calc fuel consumption
+ depleteInput(tLiquid); //Deplete that amount
+ mProgresstime = 1;
+ mMaxProgresstime = 1;
+ mEfficiencyIncrease = 10;
+ mEUt = mEfficiency <= 2000 ? 0 : baseEUt * (mEfficiency / 10000); //Output 0 if startup is 20% or less
+ return true;
+ }
+ }
+ }
+ }
+ }
+ return false;
+ }
+
+ @Override
+ public boolean checkMachine(IGregTechTileEntity aBaseMetaTileEntity, ItemStack aStack) {
+ byte tSide = getBaseMetaTileEntity().getBackFacing();
+ int tX = getBaseMetaTileEntity().getXCoord();
+ int tY = getBaseMetaTileEntity().getYCoord();
+ int tZ = getBaseMetaTileEntity().getZCoord();
+
+ if(getBaseMetaTileEntity().getBlockAtSideAndDistance(tSide, 1) != getGearboxBlock() && getBaseMetaTileEntity().getBlockAtSideAndDistance(tSide, 2) != getGearboxBlock()) {
+ return false;
+ }
+ if(getBaseMetaTileEntity().getMetaIDAtSideAndDistance(tSide, 1) != getGearboxMeta() && getBaseMetaTileEntity().getMetaIDAtSideAndDistance(tSide, 2) != getGearboxMeta()) {
+ return false;
+ }
+ for (byte i = -1; i < 2; i = (byte) (i + 1)) {
+ for (byte j = -1; j < 2; j = (byte) (j + 1)) {
+ if ((i != 0) || (j != 0)) {
+ for (byte k = 0; k < 4; k = (byte) (k + 1)) {
+ Block frontAir = getBaseMetaTileEntity().getBlock(tX - (tSide == 5 ? 1 : tSide == 4 ? -1 : i), tY + j, tZ - (tSide == 2 ? -1 : tSide == 3 ? 1 : i));
+ if(!(frontAir.getUnlocalizedName().equalsIgnoreCase("tile.air") || frontAir.getUnlocalizedName().equalsIgnoreCase("tile.railcraft.residual.heat"))) {
+ return false; //Fail if vent blocks are obstructed
+ }
+ if (((i == 0) || (j == 0)) && ((k == 1) || (k == 2))) {
+ if (getBaseMetaTileEntity().getBlock(tX + (tSide == 5 ? k : tSide == 4 ? -k : i), tY + j, tZ + (tSide == 2 ? -k : tSide == 3 ? k : i)) == getCasingBlock() && getBaseMetaTileEntity().getMetaID(tX + (tSide == 5 ? k : tSide == 4 ? -k : i), tY + j, tZ + (tSide == 2 ? -k : tSide == 3 ? k : i)) == getCasingMeta()) {
+ } else if (!addMufflerToMachineList(getBaseMetaTileEntity().getIGregTechTileEntity(tX + (tSide == 5 ? 2 : tSide == 4 ? -2 : 0), tY + 1, tZ + (tSide == 3 ? 2 : tSide == 2 ? -2 : 0)), getCasingTextureIndex())) {
+ return false; //Fail if no muffler top middle back
+ } else if (!requiresTurboHatch() && addTurboToMachineList(getBaseMetaTileEntity().getIGregTechTileEntity(tX + (tSide == 5 ? k : tSide == 4 ? -k : i), tY + j, tZ + (tSide == 2 ? -k : tSide == 3 ? k : i)), getCasingTextureIndex())) {
+ return false; //Fail if has turbo hatch and !requiresTurboHatch()
+ } else if (requiresTurboHatch() && !addTurboToMachineList(getBaseMetaTileEntity().getIGregTechTileEntity(tX + (tSide == 5 ? k : tSide == 4 ? -k : i), tY + j, tZ + (tSide == 2 ? -k : tSide == 3 ? k : i)), getCasingTextureIndex())) {
+ return false; //Fail if does not have turbo hatch and requiresTurboHatch()
+ } else if (!addToMachineList(getBaseMetaTileEntity().getIGregTechTileEntity(tX + (tSide == 5 ? k : tSide == 4 ? -k : i), tY + j, tZ + (tSide == 2 ? -k : tSide == 3 ? k : i)))) {
+ return false;
+ }
+ } else if (k == 0) {
+ if(!(getBaseMetaTileEntity().getBlock(tX + (tSide == 5 ? k : tSide == 4 ? -k : i), tY + j, tZ + (tSide == 2 ? -k : tSide == 3 ? k : i)) == getIntakeBlock() && getBaseMetaTileEntity().getMetaID(tX + (tSide == 5 ? k : tSide == 4 ? -k : i), tY + j, tZ + (tSide == 2 ? -k : tSide == 3 ? k : i)) == getIntakeMeta())) {
+ return false;
+ }
+ } else if (getBaseMetaTileEntity().getBlock(tX + (tSide == 5 ? k : tSide == 4 ? -k : i), tY + j, tZ + (tSide == 2 ? -k : tSide == 3 ? k : i)) == getCasingBlock() && getBaseMetaTileEntity().getMetaID(tX + (tSide == 5 ? k : tSide == 4 ? -k : i), tY + j, tZ + (tSide == 2 ? -k : tSide == 3 ? k : i)) == getCasingMeta()) {
+ } else {
+ return false;
+ }
+ }
+ }
+ }
+ }
+ this.mDynamoHatches.clear();
+ IGregTechTileEntity tTileEntity = getBaseMetaTileEntity().getIGregTechTileEntityAtSideAndDistance(getBaseMetaTileEntity().getBackFacing(), 3);
+ if ((tTileEntity != null) && (tTileEntity.getMetaTileEntity() != null)) {
+ if ((tTileEntity.getMetaTileEntity() instanceof GT_MetaTileEntity_Hatch_Dynamo)) {
+ this.mDynamoHatches.add((GT_MetaTileEntity_Hatch_Dynamo) tTileEntity.getMetaTileEntity());
+ ((GT_MetaTileEntity_Hatch) tTileEntity.getMetaTileEntity()).mMachineBlock = getCasingTextureIndex();
+ } else {
+ return false;
+ }
+ }
+ return true;
+ }
+
+ public boolean requiresTurboHatch() {
+ return false;
+ }
+
+ public Block getCasingBlock() {
+ return GregTech_API.sBlockCasings4;
+ }
+
+ public byte getCasingMeta() {
+ return 2;
+ }
+
+ public Block getIntakeBlock() {
+ return GregTech_API.sBlockCasings4;
+ }
+
+ public byte getIntakeMeta() {
+ return 13;
+ }
+
+ public Block getGearboxBlock() {
+ return GregTech_API.sBlockCasings2;
+ }
+
+ public byte getGearboxMeta() {
+ return 4;
+ }
+
+ public byte getCasingTextureIndex() {
+ return 50;
+ }
+
+ private boolean addToMachineList(IGregTechTileEntity tTileEntity) {
+ return ((addTurboToMachineList(tTileEntity, getCasingTextureIndex()) && requiresTurboHatch()) || (addMaintenanceToMachineList(tTileEntity, getCasingTextureIndex())) || (addInputToMachineList(tTileEntity, getCasingTextureIndex())) || (addOutputToMachineList(tTileEntity, getCasingTextureIndex())) || (addMufflerToMachineList(tTileEntity, getCasingTextureIndex())));
+ }
+
+ @Override
+ public IMetaTileEntity newMetaEntity(IGregTechTileEntity aTileEntity) {
+ return new GT_MetaTileEntity_DieselEngine(this.mName);
+ }
+
+ @Override
+ public void saveNBTData(NBTTagCompound aNBT) {
+ super.saveNBTData(aNBT);
+ }
+
+ @Override
+ public void loadNBTData(NBTTagCompound aNBT) {
+ super.loadNBTData(aNBT);
+ }
+
+ @Override
+ public int getDamageToComponent(ItemStack aStack) {
+ return 1;
+ }
+
+ public int getMaxEfficiency(ItemStack aStack) {
+ return 10000;
+ }
+
+ @Override
+ public int getPollutionPerTick(ItemStack aStack) {
+ return 0;
+ }
+
+ @Override
+ public int getAmountOfOutputs() {
+ return 0;
+ }
+
+ @Override
+ public boolean explodesOnComponentBreak(ItemStack aStack) {
+ return true;
+ }
+
+ @Override
+ public String[] getInfoData() {
+ return new String[]{
+ "Diesel Engine",
+ "Current Output: "+mEUt+" EU/t",
+ "Current Efficiency: "+(mEfficiency/100)+"%"};
+ }
+
+ @Override
+ public boolean isGivingInformation() {
+ return true;
+ }
+}
diff --git a/src/main/java/gregtech/common/tileentities/machines/multi/GT_MetaTileEntity_DieselEngineTurbo.java b/src/main/java/gregtech/common/tileentities/machines/multi/GT_MetaTileEntity_DieselEngineTurbo.java
new file mode 100644
index 0000000000..e124214584
--- /dev/null
+++ b/src/main/java/gregtech/common/tileentities/machines/multi/GT_MetaTileEntity_DieselEngineTurbo.java
@@ -0,0 +1,49 @@
+package gregtech.common.tileentities.machines.multi;
+
+import gregtech.api.interfaces.metatileentity.IMetaTileEntity;
+import gregtech.api.interfaces.tileentity.IGregTechTileEntity;
+
+public class GT_MetaTileEntity_DieselEngineTurbo extends GT_MetaTileEntity_DieselEngine {
+ public GT_MetaTileEntity_DieselEngineTurbo(int aID, String aName, String aNameRegional) {
+ super(aID, aName, aNameRegional);
+ }
+ public GT_MetaTileEntity_DieselEngineTurbo(String aName) {
+ super(aName);
+ }
+
+ @Override
+ public String[] getDescription() {
+ return new String[]{
+ "Controller Block for the Large Diesel Engine",
+ "Size: 3x3x4",
+ "Controller (front centered)",
+ "3x3x4 of Stable Titanium Casing (hollow, Min 24!)",
+ "2x Titanium Pipe Casing Block inside the Hollow Casing",
+ "1x Input Hatch (one of the Casings)",
+ "1x Maintenance Hatch (one of the Casings)",
+ "1x Muffler Hatch (top middle back)",
+ "1x Dynamo Hatch (back centered)",
+ "Engine Intake Casings not obstructed (only air blocks)"};
+ }
+
+ @Override
+ public boolean requiresTurboHatch() {
+ return true;
+ }
+
+ @Override
+ public IMetaTileEntity newMetaEntity(IGregTechTileEntity aTileEntity) {
+ return new GT_MetaTileEntity_DieselEngineTurbo(this.mName);
+ }
+
+ @Override
+ public String[] getInfoData() {
+ return new String[]{
+ "Large Diesel Engine",
+ "Current Output: " + mEUt + " EU/t",
+
+ "Efficiency: " + (float) mEfficiency / 100 + "%",
+ "EfficiencyRaw: " + mEfficiency //For testing only, needs to be removed
+ };
+ }
+}
diff --git a/src/main/java/gregtech/common/tileentities/machines/multi/GT_MetaTileEntity_LargeDieselEngine.java b/src/main/java/gregtech/common/tileentities/machines/multi/GT_MetaTileEntity_LargeDieselEngine.java
deleted file mode 100644
index 4dd76caa67..0000000000
--- a/src/main/java/gregtech/common/tileentities/machines/multi/GT_MetaTileEntity_LargeDieselEngine.java
+++ /dev/null
@@ -1,236 +0,0 @@
-package gregtech.common.tileentities.machines.multi;
-
-import gregtech.api.GregTech_API;
-import gregtech.api.enums.Materials;
-import gregtech.api.enums.Textures;
-import gregtech.api.gui.GT_GUIContainer_MultiMachine;
-import gregtech.api.interfaces.ITexture;
-import gregtech.api.interfaces.metatileentity.IMetaTileEntity;
-import gregtech.api.interfaces.tileentity.IGregTechTileEntity;
-import gregtech.api.metatileentity.implementations.GT_MetaTileEntity_MultiBlockBase;
-import gregtech.api.objects.GT_RenderedTexture;
-import gregtech.api.util.GT_Recipe;
-import gregtech.api.util.GT_Utility;
-import net.minecraft.block.Block;
-import net.minecraft.entity.player.InventoryPlayer;
-import net.minecraft.item.ItemStack;
-import net.minecraftforge.common.util.ForgeDirection;
-import net.minecraftforge.fluids.FluidRegistry;
-import net.minecraftforge.fluids.FluidStack;
-
-import java.util.ArrayList;
-import java.util.Collection;
-
-public class GT_MetaTileEntity_LargeDieselEngine extends GT_MetaTileEntity_MultiBlockBase {
- boolean firstRun = true;
- boolean hasLubricant = false;
- boolean hasCoolant = false;
- boolean hasOxygen = false;
-
- public GT_MetaTileEntity_LargeDieselEngine(int aID, String aName, String aNameRegional) {
- super(aID, aName, aNameRegional);
- }
- public GT_MetaTileEntity_LargeDieselEngine(String aName) {
- super(aName);
- }
-
- public String[] getDescription() {
- return new String[]{
- "Controller Block for the Large Diesel Engine",
- "Size: 3x3x3",
- "Controller (front centered)",
- "3x3x3 of Stable Titanium Casing (hollow, Min 24!)",
- "1x Titanium Pipe Casing Block inside the Hollow Casing",
- "3x Input Hatch (one of the Casings)",
- "1x Maintenance Hatch (one of the Casings)",
- "1x Muffler Hatch (one of the Casings)",
- "1x Dynamo Hatch (back centered)"};
- }
-
- public ITexture[] getTexture(IGregTechTileEntity aBaseMetaTileEntity, byte aSide, byte aFacing, byte aColorIndex, boolean aActive, boolean aRedstone) {
- if (aSide == aFacing) {
- return new ITexture[]{Textures.BlockIcons.CASING_BLOCKS[50], new GT_RenderedTexture(aActive ? Textures.BlockIcons.OVERLAY_FRONT_LARGE_BOILER_ACTIVE : Textures.BlockIcons.OVERLAY_FRONT_LARGE_BOILER)};
- }
- return new ITexture[]{Textures.BlockIcons.CASING_BLOCKS[50]};
- }
-
- public Object getClientGUI(int aID, InventoryPlayer aPlayerInventory, IGregTechTileEntity aBaseMetaTileEntity) {
- return new GT_GUIContainer_MultiMachine(aPlayerInventory, aBaseMetaTileEntity, getLocalName(), "LargeDieselEngine.png");
- }
-
- public boolean isCorrectMachinePart(ItemStack aStack) {
- return true;
- }
-
- public boolean isFacingValid(byte aFacing) {
- return aFacing > 1;
- }
-
- public boolean checkRecipe(ItemStack aStack) {
- ArrayList<FluidStack> tFluids = getStoredFluids();
- Collection<GT_Recipe> tRecipeList = GT_Recipe.GT_Recipe_Map.sDieselFuels.mRecipeList;
- hasLubricant = false;
- hasCoolant = false;
- hasOxygen = false;
-
- if(tFluids.size() > 0 && tRecipeList != null) {
-
- for (FluidStack hatchFluid1 : tFluids) { //Loops through hatches
- for(GT_Recipe aFuel : tRecipeList) { //Loops through diesel fuel recipes
- FluidStack tLiquid;
- if ((tLiquid = GT_Utility.getFluidForFilledItem(aFuel.getRepresentativeInput(0), true)) != null) {
- if (hatchFluid1.isFluidEqual(tLiquid)) {
- for (FluidStack hatchFluid2 : tFluids) {
- if(hatchFluid2.isFluidEqual(Materials.Lubricant.getFluid(1L))) hasLubricant = true;
- if(hatchFluid2.isFluidEqual(FluidRegistry.getFluidStack("ic2coolant", 1))) hasCoolant = true;
- if(hatchFluid2.isFluidEqual(Materials.Oxygen.getGas(1L))) {
- if(hatchFluid2.amount >= aFuel.mSpecialValue / 10) {
- hasOxygen = true;
- }
- }
- }
-
- System.out.println("Fuel Value: "+aFuel.mSpecialValue);
-
- //Deplete Oxygen
- if(hasOxygen) depleteInput(Materials.Oxygen.getGas(aFuel.mSpecialValue / 10));
-
- //Deplete coolant every IRL hour
- //Create Maintenance issues every hour if there is no coolant
- if(hasCoolant) {
- int amount = hasOxygen ? 3 ^ (mEfficiency / 10000) : (mEfficiency / 10000);
- if(firstRun) {
- depleteInput(FluidRegistry.getFluidStack("ic2coolant", amount));
- } else if(mRuntime % 720 == 0) {
- depleteInput(FluidRegistry.getFluidStack("ic2coolant", amount));
- }
- } else {
- doRandomMaintenanceDamage();
- }
-
- //Deplete Lubricant every 12096 ticks or 10.08 minutes (Every 1000L should last an IRL week)
- if(hasLubricant) {
- if(firstRun) {
- depleteInput(Materials.Lubricant.getFluid(1L));
- } else if(mRuntime % 12096 == 0) {
- depleteInput(Materials.Lubricant.getFluid(1L));
- }
- } else {
- //Negative Effect?
- }
-
- tLiquid.amount = 1;
- depleteInput(tLiquid);
-
- mProgresstime = 1;
- mMaxProgresstime = 1;
- mEfficiencyIncrease = 10;
-
- int baseEUt = 768;
- mEUt = (baseEUt + (aFuel.mSpecialValue * 10) * mEfficiency / 10000);
- return true;
- }
- }
- }
- }
- }
- return false;
- }
-
- @Override
- public void onPostTick(IGregTechTileEntity aBaseMetaTileEntity, long aTick) {
- if (mProgresstime > 0 && firstRun) {
- firstRun = false;
- try {
- //Implement Achievement
- //GT_Mod.instance.achievements.issueAchievement(aBaseMetaTileEntity.getWorld().getPlayerEntityByName(aBaseMetaTileEntity.getOwnerName()), "extremepressure");
- } catch (Exception e) {
- }
- }
- super.onPostTick(aBaseMetaTileEntity, aTick);
- }
-
- public boolean checkMachine(IGregTechTileEntity aBaseMetaTileEntity, ItemStack aStack) {
- int xDir = ForgeDirection.getOrientation(aBaseMetaTileEntity.getBackFacing()).offsetX;
- int zDir = ForgeDirection.getOrientation(aBaseMetaTileEntity.getBackFacing()).offsetZ;
- if (aBaseMetaTileEntity.getBlockOffset(xDir, 0, zDir) != getPipeBlock()) {
- return false;
- }
- if (aBaseMetaTileEntity.getMetaIDOffset(xDir, 0, zDir) != getPipeMeta()) {
- return false;
- }
- int tAmount = 0;
- for (int i = -1; i < 2; i++) {
- for (int j = -1; j < 2; j++) {
- for (int h = -1; h < 2; h++) {
- if ((h != 0) || (((xDir + i != 0) || (zDir + j != 0)) && ((i != 0) || (j != 0)))) {
- IGregTechTileEntity tTileEntity = aBaseMetaTileEntity.getIGregTechTileEntityOffset(xDir + i, h, zDir + j);
- if ((!addMaintenanceToMachineList(tTileEntity, 50)) && (!addMufflerToMachineList(tTileEntity, 50)) && (!addInputToMachineList(tTileEntity, 50)) && (!addInputToMachineList(tTileEntity, 50)) && (!addInputToMachineList(tTileEntity, 50)) && (!addInputToMachineList(tTileEntity, 50)) && (!addOutputToMachineList(tTileEntity, 50)) && (!addDynamoToMachineList(tTileEntity, 50))) {
- Block tBlock = aBaseMetaTileEntity.getBlockOffset(xDir + i, h, zDir + j);
- byte tMeta = aBaseMetaTileEntity.getMetaIDOffset(xDir + i, h, zDir + j);
- if (((tBlock != GregTech_API.sBlockCasings4) || (tMeta != 2))) {
- return false;
- }
- tAmount++;
- }
- }
- }
- }
- }
- return tAmount >= 16;
- }
-
- public Block getCasingBlock() {
- return GregTech_API.sBlockCasings4;
- }
-
- public byte getCasingMeta() {
- return 2;
- }
-
- public byte getCasingTextureIndex() {
- return 50;
- }
-
- public Block getPipeBlock() {
- return GregTech_API.sBlockCasings2;
- }
-
- public byte getPipeMeta() {
- return 14;
- }
-
- public int getMaxEfficiency(ItemStack aStack) {
- return hasOxygen ? 14500 : 10000;
- }
-
- public int getPollutionPerTick(ItemStack aStack) {
- return 0;
- }
-
- public int getDamageToComponent(ItemStack aStack) {
- return 0;
- }
-
- public int getAmountOfOutputs() {
- return 1;
- }
-
- public boolean explodesOnComponentBreak(ItemStack aStack) {
- return false;
- }
-
- public IMetaTileEntity newMetaEntity(IGregTechTileEntity aTileEntity) {
- return new GT_MetaTileEntity_LargeDieselEngine(this.mName);
- }
-
- @Override
- public String[] getInfoData() {
- return new String[]{
- "Large Diesel Engine",
- "Efficiency: " + (float) mEfficiency / 100 + "%",
- "EfficiencyRaw: " + mEfficiency,
- "Current Output: " + mEUt + " EU/t"
- };
- }
-}