diff --git a/buildnumber.txt b/buildnumber.txt index 555f733b..d0db719f 100644 --- a/buildnumber.txt +++ b/buildnumber.txt @@ -1 +1 @@ -72 +73 diff --git a/info.txt b/info.txt index 927d8223..ff81bbfa 100644 --- a/info.txt +++ b/info.txt @@ -65,3 +65,4 @@ x AssemblyLine_v0.2.4.64.jar AssemblyLine_v0.2.4.64_api.zip @ AssemblyLine_v0.2.5.70.jar AssemblyLine_v0.2.5.70_api.zip @ AssemblyLine_v0.2.5.71.jar AssemblyLine_v0.2.5.71_api.zip @ AssemblyLine_v0.2.5.72.jar AssemblyLine_v0.2.5.72_api.zip +* AssemblyLine_v0.2.5.73.jar AssemblyLine_v0.2.5.73_api.zip diff --git a/recommendedversion.txt b/recommendedversion.txt index c1ce816c..676a6027 100644 --- a/recommendedversion.txt +++ b/recommendedversion.txt @@ -1 +1 @@ -0.2.4 +0.2.5 diff --git a/src/minecraft/assemblyline/client/gui/GuiImprinter.java b/src/minecraft/assemblyline/client/gui/GuiImprinter.java index a0d5cb47..a6393d9a 100644 --- a/src/minecraft/assemblyline/client/gui/GuiImprinter.java +++ b/src/minecraft/assemblyline/client/gui/GuiImprinter.java @@ -29,6 +29,8 @@ public class GuiImprinter extends GuiContainer @Override protected void drawGuiContainerForegroundLayer(int par1, int par2) { + this.fontRenderer.drawString("Use Inventories:", 70, 58, 4210752); + this.fontRenderer.drawString("" + this.tileEntity.searchInventories, 105, 67, 4210752); this.fontRenderer.drawString(TranslationHelper.getLocal("tile.imprinter.name"), 68, 6, 4210752); } diff --git a/src/minecraft/assemblyline/common/block/BlockCrate.java b/src/minecraft/assemblyline/common/block/BlockCrate.java index 82144b36..83c1a3c4 100644 --- a/src/minecraft/assemblyline/common/block/BlockCrate.java +++ b/src/minecraft/assemblyline/common/block/BlockCrate.java @@ -164,13 +164,18 @@ public class BlockCrate extends BlockMachine */ public boolean insertAllItems(TileEntityCrate tileEntity, EntityPlayer player) { - ItemStack requestStack = player.getCurrentEquippedItem(); + ItemStack requestStack = null; - if (requestStack == null && tileEntity.getStackInSlot(0) != null) + if (tileEntity.getStackInSlot(0) != null) { requestStack = tileEntity.getStackInSlot(0).copy(); } + if (requestStack == null) + { + requestStack = player.getCurrentEquippedItem(); + } + if (requestStack != null) { if (requestStack.isStackable()) diff --git a/src/minecraft/assemblyline/common/machine/crane/BlockCraneController.java b/src/minecraft/assemblyline/common/machine/crane/BlockCraneController.java index a3bb5f98..774bd213 100644 --- a/src/minecraft/assemblyline/common/machine/crane/BlockCraneController.java +++ b/src/minecraft/assemblyline/common/machine/crane/BlockCraneController.java @@ -7,7 +7,6 @@ import net.minecraftforge.common.ForgeDirection; import universalelectricity.core.UniversalElectricity; import universalelectricity.prefab.BlockMachine; import assemblyline.client.render.BlockRenderingHandler; -import assemblyline.common.TabAssemblyLine; import cpw.mods.fml.relauncher.Side; import cpw.mods.fml.relauncher.SideOnly; @@ -19,7 +18,7 @@ public class BlockCraneController extends BlockMachine super("cranecontroller", id, UniversalElectricity.machine); this.setResistance(5.0f); this.setHardness(5.0f); - //this.setCreativeTab(TabAssemblyLine.INSTANCE); + // this.setCreativeTab(TabAssemblyLine.INSTANCE); } @Override diff --git a/src/minecraft/assemblyline/common/machine/crane/BlockCraneParts.java b/src/minecraft/assemblyline/common/machine/crane/BlockCraneParts.java index dac99ded..e92ebc38 100644 --- a/src/minecraft/assemblyline/common/machine/crane/BlockCraneParts.java +++ b/src/minecraft/assemblyline/common/machine/crane/BlockCraneParts.java @@ -2,7 +2,6 @@ package assemblyline.common.machine.crane; import net.minecraft.block.material.Material; import universalelectricity.prefab.BlockMachine; -import assemblyline.common.TabAssemblyLine; public class BlockCraneParts extends BlockMachine { diff --git a/src/minecraft/assemblyline/common/machine/imprinter/BlockImprinter.java b/src/minecraft/assemblyline/common/machine/imprinter/BlockImprinter.java index 6c98a079..13d3bc63 100644 --- a/src/minecraft/assemblyline/common/machine/imprinter/BlockImprinter.java +++ b/src/minecraft/assemblyline/common/machine/imprinter/BlockImprinter.java @@ -54,6 +54,20 @@ public class BlockImprinter extends BlockMachine } + public boolean onUseWrench(World par1World, int x, int y, int z, EntityPlayer par5EntityPlayer, int side, float hitX, float hitY, float hitZ) + { + TileEntity tileEntity = par1World.getBlockTileEntity(x, y, z); + + if (tileEntity instanceof TileEntityImprinter) + { + ((TileEntityImprinter) tileEntity).searchInventories = !((TileEntityImprinter) tileEntity).searchInventories; + par1World.markBlockForUpdate(x, y, z); + return true; + } + + return false; + } + @Override public TileEntity createNewTileEntity(World var1) { diff --git a/src/minecraft/assemblyline/common/machine/imprinter/ContainerImprinter.java b/src/minecraft/assemblyline/common/machine/imprinter/ContainerImprinter.java index 12ef9f51..d1922abe 100644 --- a/src/minecraft/assemblyline/common/machine/imprinter/ContainerImprinter.java +++ b/src/minecraft/assemblyline/common/machine/imprinter/ContainerImprinter.java @@ -9,7 +9,7 @@ import assemblyline.common.AssemblyLine; public class ContainerImprinter extends Container implements ISlotWatcher { - private InventoryPlayer inventoryPlayer; + public InventoryPlayer inventoryPlayer; public TileEntityImprinter tileEntity; public ContainerImprinter(InventoryPlayer inventoryPlayer, TileEntityImprinter tileEntity) @@ -60,6 +60,15 @@ public class ContainerImprinter extends Container implements ISlotWatcher { this.addSlotToContainer(new WatchedSlot(inventoryPlayer, var3, 8 + var3 * 18, 178, this)); } + + this.tileEntity.openChest(); + } + + @Override + public void onCraftGuiClosed(EntityPlayer par1EntityPlayer) + { + super.onCraftGuiClosed(par1EntityPlayer); + this.tileEntity.closeChest(); } @Override diff --git a/src/minecraft/assemblyline/common/machine/imprinter/SlotCraftingResult.java b/src/minecraft/assemblyline/common/machine/imprinter/SlotCraftingResult.java index f3ad0029..7c5301ad 100644 --- a/src/minecraft/assemblyline/common/machine/imprinter/SlotCraftingResult.java +++ b/src/minecraft/assemblyline/common/machine/imprinter/SlotCraftingResult.java @@ -25,8 +25,6 @@ public class SlotCraftingResult extends Slot public boolean canTakeStack(EntityPlayer player) { return true; - // this.getStack() == null ? false : - // this.container.tileEntity.getIdealRecipe(this.getStack()) != null; } @Override @@ -36,19 +34,4 @@ public class SlotCraftingResult extends Slot this.container.tileEntity.onPickUpFromResult(entityPlayer, itemStack); } - - /* - * private boolean playerHasRequiredIngredients(EntityPlayer player, ItemStack desiredItem) { if - * (this.getStack() != null) { ItemStack[] idealRecipe = - * this.container.tileEntity.getIdealRecipe(this.getStack()).getValue(); if (idealRecipe != - * null) { ItemStack[] requiredItems = idealRecipe.clone(); int foundItems = 0; - * - * if (requiredItems != null) { for (ItemStack searchStack : requiredItems) { for (int i = 0; i - * < player.inventory.getSizeInventory(); i++) { ItemStack checkStack = - * player.inventory.getStackInSlot(i); - * - * if (checkStack != null) { if (searchStack.isItemEqual(checkStack)) { foundItems++; } } } } } - * - * if (foundItems >= requiredItems.length) return true; } } return false; } - */ } diff --git a/src/minecraft/assemblyline/common/machine/imprinter/TileEntityImprinter.java b/src/minecraft/assemblyline/common/machine/imprinter/TileEntityImprinter.java index b57d3b95..e5dcfb2a 100644 --- a/src/minecraft/assemblyline/common/machine/imprinter/TileEntityImprinter.java +++ b/src/minecraft/assemblyline/common/machine/imprinter/TileEntityImprinter.java @@ -13,6 +13,9 @@ import net.minecraft.item.crafting.ShapedRecipes; import net.minecraft.item.crafting.ShapelessRecipes; import net.minecraft.nbt.NBTTagCompound; import net.minecraft.nbt.NBTTagList; +import net.minecraft.network.INetworkManager; +import net.minecraft.network.packet.Packet; +import net.minecraft.network.packet.Packet250CustomPayload; import net.minecraft.tileentity.TileEntity; import net.minecraft.tileentity.TileEntityChest; import net.minecraftforge.common.ForgeDirection; @@ -24,14 +27,20 @@ import net.minecraftforge.oredict.ShapelessOreRecipe; import universalelectricity.core.vector.Vector3; import universalelectricity.prefab.TranslationHelper; import universalelectricity.prefab.multiblock.TileEntityMulti; +import universalelectricity.prefab.network.IPacketReceiver; +import universalelectricity.prefab.network.PacketManager; import universalelectricity.prefab.tile.TileEntityAdvanced; import assemblyline.api.IArmbot; import assemblyline.api.IArmbotUseable; +import assemblyline.common.AssemblyLine; import assemblyline.common.Pair; + +import com.google.common.io.ByteArrayDataInput; + import cpw.mods.fml.common.registry.GameRegistry; import cpw.mods.fml.relauncher.ReflectionHelper; -public class TileEntityImprinter extends TileEntityAdvanced implements ISidedInventory, IArmbotUseable +public class TileEntityImprinter extends TileEntityAdvanced implements ISidedInventory, IArmbotUseable, IPacketReceiver { public static final int IMPRINTER_MATRIX_START = 9; public static final int INVENTORY_START = IMPRINTER_MATRIX_START + 3; @@ -203,11 +212,13 @@ public class TileEntityImprinter extends TileEntityAdvanced implements ISidedInv @Override public void openChest() { + this.onInventoryChanged(); } @Override public void closeChest() { + this.onInventoryChanged(); } /** @@ -257,6 +268,7 @@ public class TileEntityImprinter extends TileEntityAdvanced implements ISidedInv @Override public void onInventoryChanged() { + /** * Makes the stamping recipe for filters */ @@ -721,7 +733,8 @@ public class TileEntityImprinter extends TileEntityAdvanced implements ISidedInv try { - // TODO: Get Client Side Working. + // TODO: Get Client Side Working. The issue is that the client side doesn't know + // about the chest, and hence does not get the correct data. TileEntity simulatedTileEntity = tileEntity.getClass().newInstance(); simulatedTileEntity.worldObj = tileEntity.worldObj; @@ -753,6 +766,21 @@ public class TileEntityImprinter extends TileEntityAdvanced implements ISidedInv return simulatedInventories; } + @Override + public Packet getDescriptionPacket() + { + return PacketManager.getPacket(AssemblyLine.CHANNEL, this, this.searchInventories); + } + + @Override + public void handlePacketData(INetworkManager network, int packetType, Packet250CustomPayload packet, EntityPlayer player, ByteArrayDataInput dataStream) + { + if (this.worldObj.isRemote) + { + this.searchInventories = dataStream.readBoolean(); + } + } + /** * NBT Data */ @@ -776,6 +804,8 @@ public class TileEntityImprinter extends TileEntityAdvanced implements ISidedInv this.setInventorySlotContents(var5, ItemStack.loadItemStackFromNBT(var4)); } } + + this.searchInventories = nbt.getBoolean("searchInventories"); } /** @@ -800,6 +830,8 @@ public class TileEntityImprinter extends TileEntityAdvanced implements ISidedInv } nbt.setTag("Items", var2); + + nbt.setBoolean("searchInventories", this.searchInventories); } /** @@ -819,5 +851,4 @@ public class TileEntityImprinter extends TileEntityAdvanced implements ISidedInv return false; } - }