From e14a1b81efc252686afedadc1e203282d1ab8d49 Mon Sep 17 00:00:00 2001 From: asiekierka Date: Wed, 4 Nov 2015 15:22:45 +0100 Subject: [PATCH] fix #3086, fix #3100, fix #3111 --- common/buildcraft/robotics/RobotUtils.java | 11 +++++++++-- common/buildcraft/transport/BlockGenericPipe.java | 8 +++++--- .../buildcraft/transport/pipes/PipeItemsStripes.java | 4 ++++ .../transport/render/FacadeRenderHelper.java | 2 +- 4 files changed, 19 insertions(+), 6 deletions(-) diff --git a/common/buildcraft/robotics/RobotUtils.java b/common/buildcraft/robotics/RobotUtils.java index 0491ef25..5278adf5 100644 --- a/common/buildcraft/robotics/RobotUtils.java +++ b/common/buildcraft/robotics/RobotUtils.java @@ -27,7 +27,10 @@ public final class RobotUtils { ArrayList stations = new ArrayList(); if (tile instanceof IDockingStationProvider) { - stations.add(((IDockingStationProvider) tile).getStation()); + DockingStation station = ((IDockingStationProvider) tile).getStation(); + if (station != null) { + stations.add(station); + } } if (tile instanceof IPipeTile) { @@ -35,7 +38,11 @@ public final class RobotUtils { for (ForgeDirection d : ForgeDirection.VALID_DIRECTIONS) { if (pipeTile.getPipePluggable(d) instanceof IDockingStationProvider) { IDockingStationProvider pluggable = (IDockingStationProvider) pipeTile.getPipePluggable(d); - stations.add(pluggable.getStation()); + DockingStation station = pluggable.getStation(); + + if (station != null) { + stations.add(station); + } } } } diff --git a/common/buildcraft/transport/BlockGenericPipe.java b/common/buildcraft/transport/BlockGenericPipe.java index 3fbb579f..14adb05f 100644 --- a/common/buildcraft/transport/BlockGenericPipe.java +++ b/common/buildcraft/transport/BlockGenericPipe.java @@ -764,10 +764,12 @@ public class BlockGenericPipe extends BlockBuildCraft implements IColorRemovable pipe.wireSignalStrength[color.ordinal()] = 0; pipe.wireSet[color.ordinal()] = false; - pipe.propagateSignalState(color, 0); + if (!pipe.container.getWorldObj().isRemote) { + pipe.propagateSignalState(color, 0); - if (isFullyDefined(pipe)) { - pipe.resolveActions(); + if (isFullyDefined(pipe)) { + pipe.resolveActions(); + } } pipe.container.scheduleRenderUpdate(); diff --git a/common/buildcraft/transport/pipes/PipeItemsStripes.java b/common/buildcraft/transport/pipes/PipeItemsStripes.java index ea2f2468..89ea5ee0 100644 --- a/common/buildcraft/transport/pipes/PipeItemsStripes.java +++ b/common/buildcraft/transport/pipes/PipeItemsStripes.java @@ -85,6 +85,10 @@ public class PipeItemsStripes extends Pipe implements IEnerg EntityPlayer player = CoreProxy.proxy.getBuildCraftPlayer((WorldServer) getWorld(), (int) p.x, (int) p.y, (int) p.z).get(); + if (battery.useEnergy(10, 10, false) != 10) { + return; + } + for (IStripesHandler handler : PipeManager.stripesHandlers) { if (handler.getType() == StripesHandlerType.BLOCK_BREAK && handler.shouldHandle(stack)) { diff --git a/common/buildcraft/transport/render/FacadeRenderHelper.java b/common/buildcraft/transport/render/FacadeRenderHelper.java index d53f253d..6db27b54 100644 --- a/common/buildcraft/transport/render/FacadeRenderHelper.java +++ b/common/buildcraft/transport/render/FacadeRenderHelper.java @@ -101,7 +101,7 @@ public final class FacadeRenderHelper { Block renderBlock = pluggable.getCurrentBlock(); - if (renderBlock != null) { + if (renderBlock != null && tile != null) { IBlockAccess facadeBlockAccess = new FacadeBlockAccess(tile.getWorld(), direction); // If the facade is meant to render in the current pass