Shift clicking a facade with facade equipped will now remove the facade from the pipe

This commit is contained in:
Krapht 2012-07-15 01:32:00 +02:00
parent c8aa189aa8
commit ebe9e3a020
2 changed files with 32 additions and 2 deletions

View file

@ -66,6 +66,22 @@ public class ItemFacade extends ItemBuildCraft {
return false;
}
@Override
public boolean onItemUseFirst(ItemStack stack, EntityPlayer player, World worldObj, int x, int y, int z, int side) {
if (worldObj.isRemote) return false;
if (!player.isSneaking()) return false;
TileEntity tile = worldObj.getBlockTileEntity(x, y, z);
if (!(tile instanceof TileGenericPipe)) return false;
TileGenericPipe pipeTile = (TileGenericPipe)tile;
if (!pipeTile.hasFacade(Orientations.dirs()[side])) return false;
pipeTile.dropFacade(Orientations.dirs()[side]);
return true;
}
@SuppressWarnings("rawtypes")
public static void initialize(){
List creativeItems = getCreativeContents();

View file

@ -531,8 +531,8 @@ public class TileGenericPipe extends TileEntity implements IPowerReceptor, ILiqu
if (this.worldObj.isRemote) return false;
if (this.facadeBlocks[direction.ordinal()] == blockid) return false;
if (this.facadeBlocks[direction.ordinal()] != 0){
Utils.dropItems(worldObj, new ItemStack(BuildCraftTransport.facadeItem, 1, ItemFacade.encode(this.facadeBlocks[direction.ordinal()], this.facadeMeta[direction.ordinal()])), this.xCoord, this.yCoord, this.zCoord);
if (hasFacade(direction)){
dropFacade(direction);
}
this.facadeBlocks[direction.ordinal()] = blockid;
@ -541,6 +541,20 @@ public class TileGenericPipe extends TileEntity implements IPowerReceptor, ILiqu
return true;
}
public boolean hasFacade(Orientations direction){
if (this.worldObj.isRemote) return false;
return (this.facadeBlocks[direction.ordinal()] != 0);
}
public void dropFacade(Orientations direction){
if (this.worldObj.isRemote) return;
if (!hasFacade(direction)) return;
Utils.dropItems(worldObj, new ItemStack(BuildCraftTransport.facadeItem, 1, ItemFacade.encode(this.facadeBlocks[direction.ordinal()], this.facadeMeta[direction.ordinal()])), this.xCoord, this.yCoord, this.zCoord);
this.facadeBlocks[direction.ordinal()] = 0;
this.facadeMeta[direction.ordinal()] = 0;
refreshRenderState();
}
/** IPipeRenderState implementation **/
@Override