fix #2929
This commit is contained in:
parent
ce9caf6dc8
commit
ac59ef27e8
6 changed files with 39 additions and 3 deletions
|
@ -6,8 +6,10 @@ Improvements:
|
|||
Bugs fixed:
|
||||
|
||||
* [#2935, attempted] Programming Table robot board mixups (asie)
|
||||
* [#2929] Builders unable to place liquid in survival mode (asie)
|
||||
* [#2914] Advanced Crafting Table excess tick times in certain circumstances (asie)
|
||||
* [#2898] Robot crash on chunk unload/reload (hea3ven)
|
||||
* Fluid tanks rendering incorrectly in Builder (asie)
|
||||
* Knight/Butcher not emitting Forge attack events (asie)
|
||||
* Restoring robot block breaking state could fail (hea3ven)
|
||||
* Stripes pipes placing extra blocks, and the behaviour of the stripes robot placing blocks (hea3ven)
|
||||
|
|
|
@ -967,4 +967,8 @@ public class TileBuilder extends TileAbstractBuilder implements IHasWork, IFluid
|
|||
box.readData(stream);
|
||||
fluidTank.readData(stream);
|
||||
}
|
||||
|
||||
public Tank[] getFluidTanks() {
|
||||
return fluidTanks;
|
||||
}
|
||||
}
|
||||
|
|
|
@ -26,6 +26,7 @@ import buildcraft.core.lib.gui.AdvancedSlot;
|
|||
import buildcraft.core.lib.gui.GuiAdvancedInterface;
|
||||
import buildcraft.core.lib.network.command.CommandWriter;
|
||||
import buildcraft.core.lib.network.command.PacketCommand;
|
||||
import buildcraft.core.lib.render.FluidRenderer;
|
||||
import buildcraft.core.lib.utils.StringUtils;
|
||||
|
||||
public class GuiBuilder extends GuiAdvancedInterface {
|
||||
|
@ -128,6 +129,7 @@ public class GuiBuilder extends GuiAdvancedInterface {
|
|||
for (int i = 0; i < builder.fluidTanks.length; i++) {
|
||||
Tank tank = builder.fluidTanks[i];
|
||||
if (tank.getFluid() != null && tank.getFluid().amount > 0) {
|
||||
mc.renderEngine.bindTexture(FluidRenderer.getFluidSheet(tank.getFluid()));
|
||||
drawFluid(tank.getFluid(), guiLeft + 179 + 18 * i, guiTop + 145, 16, 47, tank.getCapacity());
|
||||
drawTexturedModalRect(guiLeft + 179 + 18 * i, guiTop + 145, 0, 54, 16, 47);
|
||||
}
|
||||
|
|
|
@ -14,7 +14,14 @@ import java.util.List;
|
|||
import java.util.Map;
|
||||
import java.util.Set;
|
||||
|
||||
import net.minecraft.block.Block;
|
||||
import net.minecraft.init.Blocks;
|
||||
import net.minecraft.item.ItemBlock;
|
||||
import net.minecraft.item.ItemStack;
|
||||
import net.minecraft.world.WorldSettings;
|
||||
import net.minecraftforge.fluids.FluidStack;
|
||||
import buildcraft.core.lib.fluids.Tank;
|
||||
import buildcraft.core.lib.utils.FluidUtils;
|
||||
|
||||
public class BuildingSlotMapIterator {
|
||||
private static final int MAX_PER_ITEM = 80;
|
||||
|
@ -39,7 +46,15 @@ public class BuildingSlotMapIterator {
|
|||
if (builder != null) {
|
||||
availablePairs.add(new BuilderItemMetaPair(null));
|
||||
for (int i = 0; i < builder.getSizeInventory(); i++) {
|
||||
availablePairs.add(new BuilderItemMetaPair(builder.getStackInSlot(i)));
|
||||
ItemStack stack = builder.getStackInSlot(i);
|
||||
if (stack != null) {
|
||||
availablePairs.add(new BuilderItemMetaPair(stack));
|
||||
}
|
||||
}
|
||||
for (Tank t : builder.getFluidTanks()) {
|
||||
if (t.getFluid() != null && t.getFluid().getFluid().getBlock() != null) {
|
||||
availablePairs.add(new BuilderItemMetaPair(new ItemStack(t.getFluid().getFluid().getBlock())));
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
@ -28,6 +28,7 @@ import buildcraft.core.LaserData;
|
|||
import buildcraft.core.internal.IBoxProvider;
|
||||
import buildcraft.core.lib.RFBattery;
|
||||
import buildcraft.core.lib.block.TileBuildCraft;
|
||||
import buildcraft.core.lib.fluids.Tank;
|
||||
import buildcraft.core.lib.network.Packet;
|
||||
import buildcraft.core.lib.network.command.CommandWriter;
|
||||
import buildcraft.core.lib.network.command.ICommandReceiver;
|
||||
|
@ -189,4 +190,8 @@ public abstract class TileAbstractBuilder extends TileBuildCraft implements ITil
|
|||
public boolean drainBuild(FluidStack fluidStack, boolean realDrain) {
|
||||
return false;
|
||||
}
|
||||
|
||||
public Tank[] getFluidTanks() {
|
||||
return new Tank[0];
|
||||
}
|
||||
}
|
||||
|
|
|
@ -1,10 +1,12 @@
|
|||
package buildcraft.core.lib.utils;
|
||||
|
||||
import net.minecraft.block.Block;
|
||||
import net.minecraft.init.Blocks;
|
||||
import net.minecraft.item.ItemBlock;
|
||||
import net.minecraft.item.ItemStack;
|
||||
import net.minecraftforge.fluids.Fluid;
|
||||
import net.minecraftforge.fluids.FluidContainerRegistry;
|
||||
import net.minecraftforge.fluids.FluidRegistry;
|
||||
import net.minecraftforge.fluids.FluidStack;
|
||||
import net.minecraftforge.fluids.IFluidBlock;
|
||||
import net.minecraftforge.fluids.IFluidContainerItem;
|
||||
|
@ -23,8 +25,14 @@ public final class FluidUtils {
|
|||
return FluidContainerRegistry.getFluidForFilledItem(stack);
|
||||
} else if (stack.getItem() instanceof ItemBlock) {
|
||||
Block b = Block.getBlockFromItem(stack.getItem());
|
||||
if (b != null && b instanceof IFluidBlock && ((IFluidBlock) b).getFluid() != null) {
|
||||
return new FluidStack(((IFluidBlock) b).getFluid(), 1000);
|
||||
if (b != null) {
|
||||
if (b instanceof IFluidBlock && ((IFluidBlock) b).getFluid() != null) {
|
||||
return new FluidStack(((IFluidBlock) b).getFluid(), 1000);
|
||||
} else if (b == Blocks.lava) {
|
||||
return new FluidStack(FluidRegistry.getFluid("lava"), 1000);
|
||||
} else if (b == Blocks.water) {
|
||||
return new FluidStack(FluidRegistry.getFluid("water"), 1000);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
Loading…
Reference in a new issue