added stuff
- storage proxy block: reads an another inventory into system - right clicking to push 1 item works - when take() returns 0, don't give any item stack to the player - tweaked energy usage
This commit is contained in:
		@@ -71,14 +71,16 @@ public class MessagePullFromStorage implements IMessage, IMessageHandler<Message
 | 
			
		||||
 | 
			
		||||
				ItemStack stack = controller.take(item.copy(quantity).toItemStack());
 | 
			
		||||
 | 
			
		||||
				if (message.shift) {
 | 
			
		||||
					// @TODO: This doesn't work
 | 
			
		||||
					if (!player.inventory.addItemStackToInventory(stack.copy())) {
 | 
			
		||||
						controller.push(stack);
 | 
			
		||||
				if (stack.stackSize > 0) {
 | 
			
		||||
					if (message.shift) {
 | 
			
		||||
						// @TODO: This doesn't work
 | 
			
		||||
						if (!player.inventory.addItemStackToInventory(stack.copy())) {
 | 
			
		||||
							controller.push(stack);
 | 
			
		||||
						}
 | 
			
		||||
					} else {
 | 
			
		||||
						player.inventory.setItemStack(stack);
 | 
			
		||||
						player.updateHeldItem();
 | 
			
		||||
					}
 | 
			
		||||
				} else {
 | 
			
		||||
					player.inventory.setItemStack(stack);
 | 
			
		||||
					player.updateHeldItem();
 | 
			
		||||
				}
 | 
			
		||||
			}
 | 
			
		||||
		}
 | 
			
		||||
 
 | 
			
		||||
@@ -14,15 +14,17 @@ public class MessagePushToStorage implements IMessage, IMessageHandler<MessagePu
 | 
			
		||||
	private int y;
 | 
			
		||||
	private int z;
 | 
			
		||||
	private int slot;
 | 
			
		||||
	private boolean one;
 | 
			
		||||
 | 
			
		||||
	public MessagePushToStorage() {
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	public MessagePushToStorage(int x, int y, int z, int slot) {
 | 
			
		||||
	public MessagePushToStorage(int x, int y, int z, int slot, boolean one) {
 | 
			
		||||
		this.x = x;
 | 
			
		||||
		this.y = y;
 | 
			
		||||
		this.z = z;
 | 
			
		||||
		this.slot = slot;
 | 
			
		||||
		this.one = one;
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	@Override
 | 
			
		||||
@@ -31,6 +33,7 @@ public class MessagePushToStorage implements IMessage, IMessageHandler<MessagePu
 | 
			
		||||
		y = buf.readInt();
 | 
			
		||||
		z = buf.readInt();
 | 
			
		||||
		slot = buf.readInt();
 | 
			
		||||
		one = buf.readBoolean();
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	@Override
 | 
			
		||||
@@ -39,6 +42,7 @@ public class MessagePushToStorage implements IMessage, IMessageHandler<MessagePu
 | 
			
		||||
		buf.writeInt(y);
 | 
			
		||||
		buf.writeInt(z);
 | 
			
		||||
		buf.writeInt(slot);
 | 
			
		||||
		buf.writeBoolean(one);
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	@Override
 | 
			
		||||
@@ -50,14 +54,33 @@ public class MessagePushToStorage implements IMessage, IMessageHandler<MessagePu
 | 
			
		||||
		if (tile instanceof TileController) {
 | 
			
		||||
			TileController controller = (TileController) tile;
 | 
			
		||||
 | 
			
		||||
			ItemStack stack = message.slot == -1 ? player.inventory.getItemStack() : player.inventory.getStackInSlot(message.slot);
 | 
			
		||||
			ItemStack stack;
 | 
			
		||||
 | 
			
		||||
			if (message.slot == -1) {
 | 
			
		||||
				stack = player.inventory.getItemStack().copy();
 | 
			
		||||
 | 
			
		||||
				if (message.one) {
 | 
			
		||||
					stack.stackSize = 1;
 | 
			
		||||
				}
 | 
			
		||||
			} else {
 | 
			
		||||
				stack = player.inventory.getStackInSlot(message.slot);
 | 
			
		||||
			}
 | 
			
		||||
 | 
			
		||||
			if (stack != null) {
 | 
			
		||||
				boolean success = controller.push(stack);
 | 
			
		||||
 | 
			
		||||
				if (success) {
 | 
			
		||||
					if (message.slot == -1) {
 | 
			
		||||
						player.inventory.setItemStack(null);
 | 
			
		||||
						if (message.one) {
 | 
			
		||||
							player.inventory.getItemStack().stackSize--;
 | 
			
		||||
 | 
			
		||||
							if (player.inventory.getItemStack().stackSize == 0) {
 | 
			
		||||
								player.inventory.setItemStack(null);
 | 
			
		||||
							}
 | 
			
		||||
						} else {
 | 
			
		||||
							player.inventory.setItemStack(null);
 | 
			
		||||
						}
 | 
			
		||||
 | 
			
		||||
						player.updateHeldItem();
 | 
			
		||||
					} else {
 | 
			
		||||
						player.inventory.setInventorySlotContents(message.slot, null);
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user