diff --git a/api/buildcraft/api/blueprints/MappingRegistry.java b/api/buildcraft/api/blueprints/MappingRegistry.java index 0e46115b..c9f11f5f 100755 --- a/api/buildcraft/api/blueprints/MappingRegistry.java +++ b/api/buildcraft/api/blueprints/MappingRegistry.java @@ -329,6 +329,7 @@ public class MappingRegistry { BCLog.logger.log(Level.WARN, "Can't load an item - corrupt blueprint!"); continue; } + String name = sub.getString("name"); Item item = null; diff --git a/api/buildcraft/api/statements/StatementParameterItemStack.java b/api/buildcraft/api/statements/StatementParameterItemStack.java index 4de44608..3bccda5d 100755 --- a/api/buildcraft/api/statements/StatementParameterItemStack.java +++ b/api/buildcraft/api/statements/StatementParameterItemStack.java @@ -7,7 +7,6 @@ * as "LICENSE.API" in the BuildCraft source code distribution. */ package buildcraft.api.statements; - import net.minecraft.client.renderer.texture.IIconRegister; import net.minecraft.item.ItemStack; import net.minecraft.nbt.NBTTagCompound; @@ -32,6 +31,8 @@ public class StatementParameterItemStack implements IStatementParameter { if (stack != null) { this.stack = stack.copy(); this.stack.stackSize = 1; + } else { + this.stack = null; } } diff --git a/buildcraft_resources/changelog/6.4.12 b/buildcraft_resources/changelog/6.4.12 new file mode 100644 index 00000000..997532b1 --- /dev/null +++ b/buildcraft_resources/changelog/6.4.12 @@ -0,0 +1,13 @@ +Improvements: + +* [#2632] Filters on gates can be cleared by a mere click (asie) + +Bugs fixed: + +* [#2650] Server crash with Horizon pattern (asie) +* [#2649] Server crash with Oil in Nether (asie) +* [#2639] Dupe bug with finite liquids (asie) +* [#2638] Wooden pipes massive power usage (asie) +* [#2629] Stripes pipes cannot place blocks properly (asie) +* Miscellanous builder/blueprint issues (asie) +* Pump entity spam on the client side (asie) diff --git a/buildcraft_resources/versions.txt b/buildcraft_resources/versions.txt index 7f1bcbd2..caa64dd6 100755 --- a/buildcraft_resources/versions.txt +++ b/buildcraft_resources/versions.txt @@ -1,3 +1,3 @@ 1.6.4:BuildCraft:4.2.2 1.7.2:BuildCraft:6.0.16 -1.7.10:BuildCraft:6.4.11 +1.7.10:BuildCraft:6.4.12 diff --git a/common/buildcraft/core/builders/patterns/PatternHorizon.java b/common/buildcraft/core/builders/patterns/PatternHorizon.java index 1e21831c..b7118228 100644 --- a/common/buildcraft/core/builders/patterns/PatternHorizon.java +++ b/common/buildcraft/core/builders/patterns/PatternHorizon.java @@ -33,7 +33,7 @@ public class PatternHorizon extends FillerPattern { Template bpt = new Template(box.sizeX(), yMax - yMin + 1, box.sizeZ()); - if (box.pMin().y > 0) { + if (box.sizeY() > 0) { for (int x = xMin; x <= xMax; ++x) { for (int z = zMin; z <= zMax; ++z) { bpt.contents[x - xMin][0][z - zMin] = new SchematicMask(true); diff --git a/common/buildcraft/core/lib/block/BlockBuildCraftFluid.java b/common/buildcraft/core/lib/block/BlockBuildCraftFluid.java index b44674ea..af2c2743 100644 --- a/common/buildcraft/core/lib/block/BlockBuildCraftFluid.java +++ b/common/buildcraft/core/lib/block/BlockBuildCraftFluid.java @@ -63,8 +63,8 @@ public class BlockBuildCraftFluid extends BlockFluidClassic { public void onNeighborBlockChange(World world, int x, int y, int z, Block block) { super.onNeighborBlockChange(world, x, y, z, block); if (flammable && world.provider.dimensionId == -1) { - world.newExplosion(null, x, y, z, 4F, true, true); world.setBlockToAir(x, y, z); + world.newExplosion(null, x, y, z, 4F, true, true); } } diff --git a/common/buildcraft/core/lib/utils/BlockUtils.java b/common/buildcraft/core/lib/utils/BlockUtils.java index 1b920bfd..b5b84892 100644 --- a/common/buildcraft/core/lib/utils/BlockUtils.java +++ b/common/buildcraft/core/lib/utils/BlockUtils.java @@ -179,18 +179,22 @@ public final class BlockUtils { int meta = world.getBlockMetadata(x, y, z); if (block instanceof IFluidBlock) { - if (!((IFluidBlock) block).canDrain(world, x, y, z)) { + IFluidBlock fluidBlock = (IFluidBlock) block; + if (!fluidBlock.canDrain(world, x, y, z)) { + return null; + } + return fluidBlock.drain(world, x, y, z, doDrain); + } else { + if (meta != 0) { return null; } - } else if (meta != 0) { - return null; - } - if (doDrain) { - world.setBlockToAir(x, y, z); - } + if (doDrain) { + world.setBlockToAir(x, y, z); + } - return new FluidStack(fluid, FluidContainerRegistry.BUCKET_VOLUME); + return new FluidStack(fluid, FluidContainerRegistry.BUCKET_VOLUME); + } } else { return null; } diff --git a/common/buildcraft/factory/TilePump.java b/common/buildcraft/factory/TilePump.java index b477017a..56c8eb2c 100644 --- a/common/buildcraft/factory/TilePump.java +++ b/common/buildcraft/factory/TilePump.java @@ -428,6 +428,15 @@ public class TilePump extends TileBuildCraft implements IHasWork, IFluidHandler, } } + @Override + public void onChunkUnload() { + super.onChunkUnload(); + if (tube != null) { + CoreProxy.proxy.removeEntity(tube); + tube = null; + } + } + @Override public void validate() { super.validate(); diff --git a/common/buildcraft/transport/gates/GateExpansionNote.java b/common/buildcraft/transport/gates/GateExpansionNote.java new file mode 100644 index 00000000..a8eb87cc --- /dev/null +++ b/common/buildcraft/transport/gates/GateExpansionNote.java @@ -0,0 +1,34 @@ +/** + * Copyright (c) 2011-2015, SpaceToad and the BuildCraft Team + * http://www.mod-buildcraft.com + * + * BuildCraft is distributed under the terms of the Minecraft Mod Public + * License 1.0, or MMPL. Please check the contents of the license located in + * http://www.mod-buildcraft.com/MMPL-1.0.txt + */ +package buildcraft.transport.gates; + +import net.minecraft.tileentity.TileEntity; +import buildcraft.api.gates.GateExpansionController; +import buildcraft.api.gates.IGateExpansion; + +public final class GateExpansionNote extends GateExpansionBuildcraft implements IGateExpansion { + + public static GateExpansionNote INSTANCE = new GateExpansionNote(); + + private GateExpansionNote() { + super("note"); + } + + @Override + public GateExpansionController makeController(TileEntity pipeTile) { + return new GateExpansionControllerNote(pipeTile); + } + + private class GateExpansionControllerNote extends GateExpansionController { + + public GateExpansionControllerNote(TileEntity pipeTile) { + super(GateExpansionNote.this, pipeTile); + } + } +} diff --git a/common/buildcraft/transport/pipes/PipeFluidsWood.java b/common/buildcraft/transport/pipes/PipeFluidsWood.java index 0396477a..4f9d7b2b 100644 --- a/common/buildcraft/transport/pipes/PipeFluidsWood.java +++ b/common/buildcraft/transport/pipes/PipeFluidsWood.java @@ -161,7 +161,7 @@ public class PipeFluidsWood extends Pipe implements IEnergy } int maxToReceive = (1000 - liquidToExtract) / ENERGY_MULTIPLIER; - int received = Math.max(maxReceive, maxToReceive); + int received = Math.min(maxReceive, maxToReceive); if (!simulate) { liquidToExtract += ENERGY_MULTIPLIER * received; } diff --git a/common/buildcraft/transport/statements/TriggerPipeSignal.java b/common/buildcraft/transport/statements/TriggerPipeSignal.java index b2ffc621..d2d4a686 100644 --- a/common/buildcraft/transport/statements/TriggerPipeSignal.java +++ b/common/buildcraft/transport/statements/TriggerPipeSignal.java @@ -8,7 +8,9 @@ */ package buildcraft.transport.statements; +import java.util.Collections; import java.util.Locale; +import org.objectweb.asm.tree.MethodNode; import net.minecraft.client.renderer.texture.IIconRegister; import buildcraft.api.gates.IGate; import buildcraft.api.statements.IStatementContainer; diff --git a/common/buildcraft/transport/stripes/StripesHandlerPlaceBlock.java b/common/buildcraft/transport/stripes/StripesHandlerPlaceBlock.java index 932efcf4..87c6a5c1 100644 --- a/common/buildcraft/transport/stripes/StripesHandlerPlaceBlock.java +++ b/common/buildcraft/transport/stripes/StripesHandlerPlaceBlock.java @@ -13,6 +13,7 @@ import net.minecraft.item.ItemBlock; import net.minecraft.item.ItemStack; import net.minecraft.world.World; import net.minecraftforge.common.util.ForgeDirection; + import buildcraft.api.core.Position; import buildcraft.api.transport.IStripesActivator; import buildcraft.api.transport.IStripesHandler; @@ -45,5 +46,4 @@ public class StripesHandlerPlaceBlock implements IStripesHandler { } return false; } - } diff --git a/common/buildcraft/transport/utils/ConnectionMatrix.java b/common/buildcraft/transport/utils/ConnectionMatrix.java index 4b001b70..0dbbc465 100644 --- a/common/buildcraft/transport/utils/ConnectionMatrix.java +++ b/common/buildcraft/transport/utils/ConnectionMatrix.java @@ -8,6 +8,9 @@ */ package buildcraft.transport.utils; +import java.util.Map; +import java.util.Set; +import java.util.concurrent.ConcurrentHashMap; import io.netty.buffer.ByteBuf; import net.minecraftforge.common.util.ForgeDirection; @@ -15,6 +18,16 @@ public class ConnectionMatrix { private int mask = 0; private boolean dirty = false; + private Set s; + + public ConnectionMatrix() { + s = getSet(); + } + + public static Set getSet() { + return null; + } + public boolean isConnected(ForgeDirection direction) { // test if the direction.ordinal()'th bit of mask is set return (mask & (1 << direction.ordinal())) != 0; diff --git a/common/com.zip b/common/com.zip new file mode 100644 index 00000000..2dba5638 Binary files /dev/null and b/common/com.zip differ