From 89acd880dc0cd688f940b539403e76ebb249ed8e Mon Sep 17 00:00:00 2001 From: SpaceToad Date: Sun, 9 Mar 2014 15:34:01 +0100 Subject: [PATCH] minor tweaks and fixes for server release --- common/buildcraft/builders/TileArchitect.java | 1 + common/buildcraft/builders/TileBuilder.java | 20 ++++++++++++++----- 2 files changed, 16 insertions(+), 5 deletions(-) diff --git a/common/buildcraft/builders/TileArchitect.java b/common/buildcraft/builders/TileArchitect.java index 9eea5f4a..7e429ac0 100644 --- a/common/buildcraft/builders/TileArchitect.java +++ b/common/buildcraft/builders/TileArchitect.java @@ -111,6 +111,7 @@ public class TileArchitect extends TileBuildCraft implements IInventory, IBoxPro } public void createBpt() { + writingBlueprint.id.name = name; BuildCraftBuilders.serverDB.add(writingBlueprint); setInventorySlotContents(1, ItemBlueprint.getBlueprintItem(writingBlueprint)); diff --git a/common/buildcraft/builders/TileBuilder.java b/common/buildcraft/builders/TileBuilder.java index 5b45061e..40aabf96 100644 --- a/common/buildcraft/builders/TileBuilder.java +++ b/common/buildcraft/builders/TileBuilder.java @@ -21,6 +21,7 @@ import net.minecraft.util.AxisAlignedBB; import net.minecraftforge.common.util.ForgeDirection; import buildcraft.BuildCraftBuilders; import buildcraft.api.blueprints.SchematicToBuild; +import buildcraft.api.core.SafeTimeTracker; import buildcraft.api.gates.IAction; import buildcraft.api.power.IPowerReceptor; import buildcraft.api.power.PowerHandler; @@ -66,6 +67,8 @@ public class TileBuilder extends TileBuildCraft implements IBuilderInventory, private LinkedList requiredToBuild; + private SafeTimeTracker debugBuildTracker = new SafeTimeTracker(5); + private class PathIterator { public Iterator currentIterator; @@ -421,8 +424,12 @@ public class TileBuilder extends TileBuildCraft implements IBuilderInventory, result = tmp; } - if (i == 0) { - iterateBpt(); + if (!worldObj.isRemote) { + if (i == 0) { + RPCHandler.rpcBroadcastPlayers(this, "setItemRequirements", + null, null); + iterateBpt(); + } } return result; @@ -434,6 +441,7 @@ public class TileBuilder extends TileBuildCraft implements IBuilderInventory, if (!worldObj.isRemote) { if (i == 0) { + RPCHandler.rpcBroadcastPlayers(this, "setItemRequirements", null, null); iterateBpt(); done = false; } @@ -609,7 +617,7 @@ public class TileBuilder extends TileBuildCraft implements IBuilderInventory, requiredToBuild = rq; - if (rq.size() > 0) { + if (rq != null && rq.size() > 0) { Iterator itStack = rq.iterator(); Iterator size = realSizes.iterator(); @@ -664,6 +672,10 @@ public class TileBuilder extends TileBuildCraft implements IBuilderInventory, } public void debugForceBlueprintCompletion () { + if (!debugBuildTracker.markTimeIfDelay(worldObj)) { + return; + } + if (bluePrintBuilder != null) { SchematicToBuild slot = bluePrintBuilder.getNextBlock(worldObj, this); @@ -673,8 +685,6 @@ public class TileBuilder extends TileBuildCraft implements IBuilderInventory, } if (bluePrintBuilder instanceof BptBuilderBlueprint) { - ((BptBuilderBlueprint) bluePrintBuilder).recomputeNeededItems(); - LinkedList realSize = new LinkedList(); for (ItemStack stack : ((BptBuilderBlueprint) bluePrintBuilder).neededItems) {