aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/main/java/gregtech/common/tileentities/machines/multi/GT_MetaTileEntity_PrimitiveBlastFurnace.java149
1 files changed, 82 insertions, 67 deletions
diff --git a/src/main/java/gregtech/common/tileentities/machines/multi/GT_MetaTileEntity_PrimitiveBlastFurnace.java b/src/main/java/gregtech/common/tileentities/machines/multi/GT_MetaTileEntity_PrimitiveBlastFurnace.java
index f81ce57624..955bc3620b 100644
--- a/src/main/java/gregtech/common/tileentities/machines/multi/GT_MetaTileEntity_PrimitiveBlastFurnace.java
+++ b/src/main/java/gregtech/common/tileentities/machines/multi/GT_MetaTileEntity_PrimitiveBlastFurnace.java
@@ -32,6 +32,7 @@ public abstract class GT_MetaTileEntity_PrimitiveBlastFurnace extends MetaTileEn
public volatile int mUpdate = 5;
public int mProgresstime = 0;
public boolean mMachine = false;
+ private boolean mChimneyBlocked = false;
public ItemStack[] mOutputItems = new ItemStack[OUTPUT_SLOTS];
@@ -40,7 +41,8 @@ public abstract class GT_MetaTileEntity_PrimitiveBlastFurnace extends MetaTileEn
@Deprecated
public ItemStack mOutputItem2;
- public GT_MetaTileEntity_PrimitiveBlastFurnace(int aID, String aName, String aNameRegional) {
+ public GT_MetaTileEntity_PrimitiveBlastFurnace(int aID, String aName,
+ String aNameRegional) {
super(aID, aName, aNameRegional, INPUT_SLOTS + OUTPUT_SLOTS);
}
@@ -119,7 +121,7 @@ public abstract class GT_MetaTileEntity_PrimitiveBlastFurnace extends MetaTileEn
return (GregTech_API.getCoverBehaviorNew(aCoverID.toStack()).isSimpleCover()) && (super.allowCoverOnSide(aSide, aCoverID));
}
- @Override
+ @Override
public abstract MetaTileEntity newMetaEntity(IGregTechTileEntity aTileEntity);
@Override
@@ -149,7 +151,8 @@ public abstract class GT_MetaTileEntity_PrimitiveBlastFurnace extends MetaTileEn
}
@Override
- public boolean onRightclick(IGregTechTileEntity aBaseMetaTileEntity, EntityPlayer aPlayer) {
+ public boolean onRightclick(IGregTechTileEntity aBaseMetaTileEntity,
+ EntityPlayer aPlayer) {
if (aBaseMetaTileEntity.isClientSide()) {
return true;
}
@@ -158,35 +161,43 @@ public abstract class GT_MetaTileEntity_PrimitiveBlastFurnace extends MetaTileEn
}
@Override
- public Object getServerGUI(int aID, InventoryPlayer aPlayerInventory, IGregTechTileEntity aBaseMetaTileEntity) {
- return new GT_Container_PrimitiveBlastFurnace(aPlayerInventory, aBaseMetaTileEntity);
+ public Object getServerGUI(int aID, InventoryPlayer aPlayerInventory,
+ IGregTechTileEntity aBaseMetaTileEntity) {
+ return new GT_Container_PrimitiveBlastFurnace(aPlayerInventory,
+ aBaseMetaTileEntity);
}
- @Override
- public Object getClientGUI(int aID, InventoryPlayer aPlayerInventory, IGregTechTileEntity aBaseMetaTileEntity) {
- return new GT_GUIContainer_PrimitiveBlastFurnace(aPlayerInventory, aBaseMetaTileEntity, getName(), GT_Recipe.GT_Recipe_Map.sPrimitiveBlastRecipes.mNEIName);
- }
+ @Override
+ public Object getClientGUI(int aID, InventoryPlayer aPlayerInventory,
+ IGregTechTileEntity aBaseMetaTileEntity) {
+ return new GT_GUIContainer_PrimitiveBlastFurnace(aPlayerInventory,
+ aBaseMetaTileEntity, getName(),
+ GT_Recipe.GT_Recipe_Map.sPrimitiveBlastRecipes.mNEIName);
+ }
private boolean checkMachine() {
- int xDir = ForgeDirection.getOrientation(getBaseMetaTileEntity().getBackFacing()).offsetX;
- int zDir = ForgeDirection.getOrientation(getBaseMetaTileEntity().getBackFacing()).offsetZ;
+ int xDir =
+ ForgeDirection.getOrientation(getBaseMetaTileEntity().getBackFacing()).offsetX;
+ int zDir =
+ ForgeDirection.getOrientation(getBaseMetaTileEntity().getBackFacing()).offsetZ;
for (int i = -1; i < 2; i++) {
for (int j = -1; j < 3; j++) {
for (int k = -1; k < 2; k++) {
if ((xDir + i != 0) || (j != 0) || (zDir + k != 0)) {
if ((i != 0) || (j == -1) || (k != 0)) {
- if (!isCorrectCasingBlock(getBaseMetaTileEntity().getBlockOffset(xDir + i, j, zDir + k))
- || !isCorrectCasingMetaID(getBaseMetaTileEntity().getMetaIDOffset(xDir + i, j, zDir + k))) {
+ if (!isCorrectCasingBlock(getBaseMetaTileEntity().getBlockOffset(xDir + i, j, zDir + k)) || !isCorrectCasingMetaID(getBaseMetaTileEntity().getMetaIDOffset(xDir + i, j, zDir + k))) {
+ mChimneyBlocked = false;
return false;
}
- } else if ((!GT_Utility.arrayContains(getBaseMetaTileEntity().getBlockOffset(xDir + i, j, zDir + k), Blocks.lava, Blocks.flowing_lava, null))
- && (!getBaseMetaTileEntity().getAirOffset(xDir + i, j, zDir + k))) {
+ } else if ((!GT_Utility.arrayContains(getBaseMetaTileEntity().getBlockOffset(xDir + i, j, zDir + k), Blocks.lava, Blocks.flowing_lava, null)) && (!getBaseMetaTileEntity().getAirOffset(xDir + i, j, zDir + k))) {
+ mChimneyBlocked = true;
return false;
}
}
}
}
}
+ mChimneyBlocked = false;
return true;
}
@@ -200,19 +211,16 @@ public abstract class GT_MetaTileEntity_PrimitiveBlastFurnace extends MetaTileEn
}
@Override
- public void onPostTick(IGregTechTileEntity aBaseMetaTileEntity, long aTimer) {
+ public void onPostTick(IGregTechTileEntity aBaseMetaTileEntity,
+ long aTimer) {
+ final int lavaX =
+ aBaseMetaTileEntity.getOffsetX(aBaseMetaTileEntity.getBackFacing(), 1);
+ final int lavaZ =
+ aBaseMetaTileEntity.getOffsetZ(aBaseMetaTileEntity.getBackFacing(), 1);
if ((aBaseMetaTileEntity.isClientSide()) && (aBaseMetaTileEntity.isActive())) {
- new WorldSpawnedEventBuilder.ParticleEventBuilder()
- .setMotion(0D,0.3D,0D)
- .setIdentifier(ParticleFX.LARGE_SMOKE)
- .setPosition(
- aBaseMetaTileEntity.getOffsetX(aBaseMetaTileEntity.getBackFacing(), 1) + XSTR_INSTANCE.nextFloat(),
- aBaseMetaTileEntity.getOffsetY(aBaseMetaTileEntity.getBackFacing(), 1),
- aBaseMetaTileEntity.getOffsetZ(aBaseMetaTileEntity.getBackFacing(), 1) + XSTR_INSTANCE.nextFloat()
- )
- .setWorld(getBaseMetaTileEntity().getWorld())
- .run();
+ new WorldSpawnedEventBuilder.ParticleEventBuilder().setMotion(0D,
+ 0.3D, 0D).setIdentifier(ParticleFX.LARGE_SMOKE).setPosition(lavaX + XSTR_INSTANCE.nextFloat(), aBaseMetaTileEntity.getOffsetY(aBaseMetaTileEntity.getBackFacing(), 1), lavaZ + XSTR_INSTANCE.nextFloat()).setWorld(getBaseMetaTileEntity().getWorld()).run();
}
if (aBaseMetaTileEntity.isServerSide()) {
if (this.mUpdate-- == 0) {
@@ -225,48 +233,46 @@ public abstract class GT_MetaTileEntity_PrimitiveBlastFurnace extends MetaTileEn
this.mOutputItems = null;
this.mProgresstime = 0;
this.mMaxProgresstime = 0;
- GT_Mod.achievements.issueAchievement(
- aBaseMetaTileEntity.getWorld().getPlayerEntityByName(aBaseMetaTileEntity.getOwnerName()), "steel");
+ GT_Mod.achievements.issueAchievement(aBaseMetaTileEntity.getWorld().getPlayerEntityByName(aBaseMetaTileEntity.getOwnerName()), "steel");
}
} else if (aBaseMetaTileEntity.isAllowedToWork()) {
checkRecipe();
}
}
if (this.mMaxProgresstime > 0 && (aTimer % 20L == 0L)) {
- GT_Pollution.addPollution(this.getBaseMetaTileEntity(), GT_Mod.gregtechproxy.mPollutionPrimitveBlastFurnacePerSecond);
+ GT_Pollution.addPollution(this.getBaseMetaTileEntity(),
+ GT_Mod.gregtechproxy.mPollutionPrimitveBlastFurnacePerSecond);
}
aBaseMetaTileEntity.setActive((this.mMaxProgresstime > 0) && (this.mMachine));
+ final short lavaY = aBaseMetaTileEntity.getYCoord();
if (aBaseMetaTileEntity.isActive()) {
- if (aBaseMetaTileEntity.getAir(aBaseMetaTileEntity.getOffsetX(aBaseMetaTileEntity.getBackFacing(), 1),
- aBaseMetaTileEntity.getYCoord(), aBaseMetaTileEntity.getOffsetZ(aBaseMetaTileEntity.getBackFacing(), 1))) {
- aBaseMetaTileEntity.getWorld().setBlock(aBaseMetaTileEntity.getOffsetX(aBaseMetaTileEntity.getBackFacing(), 1),
- aBaseMetaTileEntity.getYCoord(), aBaseMetaTileEntity.getOffsetZ(aBaseMetaTileEntity.getBackFacing(), 1),
- Blocks.lava, 1, 2);
+ if (aBaseMetaTileEntity.getAir(lavaX, lavaY, lavaZ)) {
+ aBaseMetaTileEntity.getWorld().setBlock(lavaX, lavaY,
+ lavaZ, Blocks.lava, 1, 2);
this.mUpdate = 1;
}
- if (aBaseMetaTileEntity.getAir(aBaseMetaTileEntity.getOffsetX(aBaseMetaTileEntity.getBackFacing(), 1),
- aBaseMetaTileEntity.getYCoord() + 1, aBaseMetaTileEntity.getOffsetZ(aBaseMetaTileEntity.getBackFacing(), 1))) {
- aBaseMetaTileEntity.getWorld().setBlock(aBaseMetaTileEntity.getOffsetX(aBaseMetaTileEntity.getBackFacing(), 1),
- aBaseMetaTileEntity.getYCoord() + 1, aBaseMetaTileEntity.getOffsetZ(aBaseMetaTileEntity.getBackFacing(), 1),
- Blocks.lava, 1, 2);
+ if (aBaseMetaTileEntity.getAir(lavaX, lavaY + 1, lavaZ)) {
+ aBaseMetaTileEntity.getWorld().setBlock(lavaX, lavaY + 1,
+ lavaZ, Blocks.lava, 1, 2);
this.mUpdate = 1;
}
} else {
- if (aBaseMetaTileEntity.getBlock(aBaseMetaTileEntity.getOffsetX(aBaseMetaTileEntity.getBackFacing(), 1),
- aBaseMetaTileEntity.getYCoord(),
- aBaseMetaTileEntity.getOffsetZ(aBaseMetaTileEntity.getBackFacing(), 1)) == Blocks.lava) {
- aBaseMetaTileEntity.getWorld().setBlock(aBaseMetaTileEntity.getOffsetX(aBaseMetaTileEntity.getBackFacing(), 1),
- aBaseMetaTileEntity.getYCoord(), aBaseMetaTileEntity.getOffsetZ(aBaseMetaTileEntity.getBackFacing(), 1),
- Blocks.air, 0, 2);
+ Block lowerLava = aBaseMetaTileEntity.getBlock(lavaX, lavaY,
+ lavaZ);
+ Block upperLava = aBaseMetaTileEntity.getBlock(lavaX,
+ lavaY + 1, lavaZ);
+ if (mChimneyBlocked && lowerLava == Blocks.air && upperLava == Blocks.air && aBaseMetaTileEntity.getAir(lavaX, lavaY + 2, lavaZ)) {
+ this.mUpdate = 0;
+ }
+ if (lowerLava == Blocks.lava) {
+ aBaseMetaTileEntity.getWorld().setBlock(lavaX, lavaY,
+ lavaZ, Blocks.air, 0, 2);
this.mUpdate = 1;
}
- if (aBaseMetaTileEntity.getBlock(aBaseMetaTileEntity.getOffsetX(aBaseMetaTileEntity.getBackFacing(), 1),
- aBaseMetaTileEntity.getYCoord() + 1,
- aBaseMetaTileEntity.getOffsetZ(aBaseMetaTileEntity.getBackFacing(), 1)) == Blocks.lava) {
- aBaseMetaTileEntity.getWorld().setBlock(aBaseMetaTileEntity.getOffsetX(aBaseMetaTileEntity.getBackFacing(), 1),
- aBaseMetaTileEntity.getYCoord() + 1, aBaseMetaTileEntity.getOffsetZ(aBaseMetaTileEntity.getBackFacing(), 1),
- Blocks.air, 0, 2);
+ if (upperLava == Blocks.lava) {
+ aBaseMetaTileEntity.getWorld().setBlock(lavaX, lavaY + 1,
+ lavaZ, Blocks.air, 0, 2);
this.mUpdate = 1;
}
}
@@ -274,9 +280,11 @@ public abstract class GT_MetaTileEntity_PrimitiveBlastFurnace extends MetaTileEn
}
/**
- * Draws random flames and smoke particles in front of Primitive Blast Furnace when active
+ * Draws random flames and smoke particles in front of Primitive Blast
+ * Furnace when active
*
- * @param aBaseMetaTileEntity The entity that will handle the {@link Block#randomDisplayTick}
+ * @param aBaseMetaTileEntity The entity that will handle the
+ * {@link Block#randomDisplayTick}
*/
@SideOnly(Side.CLIENT)
@Override
@@ -285,11 +293,14 @@ public abstract class GT_MetaTileEntity_PrimitiveBlastFurnace extends MetaTileEn
final byte frontFacing = aBaseMetaTileEntity.getFrontFacing();
- final double oX = aBaseMetaTileEntity.getOffsetX(frontFacing, 1) + 0.5D;
+ final double oX =
+ aBaseMetaTileEntity.getOffsetX(frontFacing, 1) + 0.5D;
final double oY = aBaseMetaTileEntity.getOffsetY(frontFacing, 1);
- final double oZ = aBaseMetaTileEntity.getOffsetZ(frontFacing, 1) + 0.5D;
+ final double oZ =
+ aBaseMetaTileEntity.getOffsetZ(frontFacing, 1) + 0.5D;
final double offset = -0.48D;
- final double horizontal = XSTR_INSTANCE.nextFloat() * 8D / 16D - 4D / 16D;
+ final double horizontal =
+ XSTR_INSTANCE.nextFloat() * 8D / 16D - 4D / 16D;
final double x, y, z;
@@ -311,10 +322,7 @@ public abstract class GT_MetaTileEntity_PrimitiveBlastFurnace extends MetaTileEn
}
ParticleEventBuilder particleEventBuilder =
- (new ParticleEventBuilder())
- .setMotion(0D, 0D, 0D)
- .setPosition(x, y, z)
- .setWorld(getBaseMetaTileEntity().getWorld());
+ (new ParticleEventBuilder()).setMotion(0D, 0D, 0D).setPosition(x, y, z).setWorld(getBaseMetaTileEntity().getWorld());
particleEventBuilder.setIdentifier(ParticleFX.SMOKE).run();
particleEventBuilder.setIdentifier(ParticleFX.FLAME).run();
}
@@ -333,15 +341,19 @@ public abstract class GT_MetaTileEntity_PrimitiveBlastFurnace extends MetaTileEn
for (int i = 0; i < limit; i++) {
int absi = INPUT_SLOTS + i;
if (this.mInventory[absi] == null) {
- this.mInventory[absi] = GT_Utility.copyOrNull(this.mOutputItems[i]);
- } else if (GT_Utility.areStacksEqual(this.mInventory[absi], this.mOutputItems[i])) {
- this.mInventory[absi].stackSize = Math.min(this.mInventory[absi].getMaxStackSize(),
+ this.mInventory[absi] =
+ GT_Utility.copyOrNull(this.mOutputItems[i]);
+ } else if (GT_Utility.areStacksEqual(this.mInventory[absi],
+ this.mOutputItems[i])) {
+ this.mInventory[absi].stackSize =
+ Math.min(this.mInventory[absi].getMaxStackSize(),
this.mInventory[absi].stackSize + this.mOutputItems[i].stackSize);
}
}
}
- private boolean spaceForOutput(ItemStack outputStack, int relativeOutputSlot) {
+ private boolean spaceForOutput(ItemStack outputStack,
+ int relativeOutputSlot) {
int absoluteSlot = relativeOutputSlot + INPUT_SLOTS;
if (this.mInventory[absoluteSlot] == null || outputStack == null) {
return true;
@@ -355,7 +367,8 @@ public abstract class GT_MetaTileEntity_PrimitiveBlastFurnace extends MetaTileEn
}
ItemStack[] inputs = new ItemStack[INPUT_SLOTS];
System.arraycopy(mInventory, 0, inputs, 0, INPUT_SLOTS);
- GT_Recipe recipe = GT_Recipe.GT_Recipe_Map.sPrimitiveBlastRecipes.findRecipe(getBaseMetaTileEntity(), false, 0, null, inputs);
+ GT_Recipe recipe =
+ GT_Recipe.GT_Recipe_Map.sPrimitiveBlastRecipes.findRecipe(getBaseMetaTileEntity(), false, 0, null, inputs);
if (recipe == null) {
this.mOutputItems = null;
return false;
@@ -388,12 +401,14 @@ public abstract class GT_MetaTileEntity_PrimitiveBlastFurnace extends MetaTileEn
}
@Override
- public boolean allowPullStack(IGregTechTileEntity aBaseMetaTileEntity, int aIndex, byte aSide, ItemStack aStack) {
+ public boolean allowPullStack(IGregTechTileEntity aBaseMetaTileEntity,
+ int aIndex, byte aSide, ItemStack aStack) {
return aIndex > INPUT_SLOTS;
}
@Override
- public boolean allowPutStack(IGregTechTileEntity aBaseMetaTileEntity, int aIndex, byte aSide, ItemStack aStack) {
+ public boolean allowPutStack(IGregTechTileEntity aBaseMetaTileEntity,
+ int aIndex, byte aSide, ItemStack aStack) {
return !GT_Utility.areStacksEqual(aStack, this.mInventory[0]);
}