Patches so that pumps and pipes can be moved by frames properly, other buildcraft tiles not tested

This commit is contained in:
Chicken Bones 2012-07-09 23:41:27 +10:00
parent 7fbe8623ac
commit 9755eadfb0
8 changed files with 23 additions and 7 deletions

View file

@ -290,6 +290,7 @@ public class TileArchitect extends TileBuildCraft implements IInventory {
@Override @Override
public void invalidate() { public void invalidate() {
super.invalidate();
destroy(); destroy();
} }

View file

@ -507,6 +507,7 @@ public class TileBuilder extends TileBuildCraft implements IBuilderInventory, IP
@Override @Override
public void invalidate() { public void invalidate() {
super.invalidate();
destroy(); destroy();
} }

View file

@ -290,6 +290,7 @@ public class TileFiller extends TileBuildCraft implements ISpecialInventory, IPo
@Override @Override
public void invalidate() { public void invalidate() {
super.invalidate();
destroy(); destroy();
} }

View file

@ -334,6 +334,7 @@ public class TileMarker extends TileBuildCraft implements IAreaProvider {
@Override @Override
public void invalidate() { public void invalidate() {
super.invalidate();
destroy(); destroy();
} }

View file

@ -48,7 +48,7 @@ public abstract class TileBuildCraft extends TileEntity implements ISynchronized
@Override @Override
public void updateEntity() { public void updateEntity() {
if (!init) { if (!init && !isInvalid()) {
initialize(); initialize();
init = true; init = true;
} }
@ -59,6 +59,13 @@ public abstract class TileBuildCraft extends TileEntity implements ISynchronized
receptor.getPowerProvider().update(receptor); receptor.getPowerProvider().update(receptor);
} }
} }
@Override
public void invalidate()
{
init = false;
super.invalidate();
}
public void initialize() { public void initialize() {
Utils.handleBufferedDescription(this); Utils.handleBufferedDescription(this);

View file

@ -344,6 +344,7 @@ public class TilePump extends TileMachine implements IMachine, IPowerReceptor {
@Override @Override
public void invalidate() { public void invalidate() {
super.invalidate();
destroy(); destroy();
} }
@ -352,6 +353,9 @@ public class TilePump extends TileMachine implements IMachine, IPowerReceptor {
if (tube != null) { if (tube != null) {
APIProxy.removeEntity(tube); APIProxy.removeEntity(tube);
tube = null; tube = null;
tubeY = Double.NaN;
aimY = 0;
blocksToPump.clear();
} }
} }

View file

@ -518,12 +518,12 @@ public class BlockGenericPipe extends BlockContainer implements IBlockPipe, ITex
public static Pipe getPipe(IBlockAccess blockAccess, int i, int j, int k) { public static Pipe getPipe(IBlockAccess blockAccess, int i, int j, int k) {
TileGenericPipe tile = (TileGenericPipe) blockAccess.getBlockTileEntity(i, j, k); TileEntity tile = blockAccess.getBlockTileEntity(i, j, k);
if (tile != null && !tile.isInvalid())
return tile.pipe;
return null; if(!(tile instanceof TileGenericPipe) || tile.isInvalid())
return null;
return ((TileGenericPipe)tile).pipe;
} }
public static boolean isFullyDefined(Pipe pipe) { public static boolean isFullyDefined(Pipe pipe) {

View file

@ -103,7 +103,7 @@ public class TileGenericPipe extends TileEntity implements IPowerReceptor, ILiqu
@Override @Override
public void invalidate() { public void invalidate() {
initialized = false;
super.invalidate(); super.invalidate();
// if (BlockGenericPipe.isValid(pipe)) // if (BlockGenericPipe.isValid(pipe))
@ -112,6 +112,7 @@ public class TileGenericPipe extends TileEntity implements IPowerReceptor, ILiqu
@Override @Override
public void validate() { public void validate() {
super.validate();
bindPipe(); bindPipe();
} }