Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- package net.theviolentsquirrels.questsystem.inventory;
- import net.minecraft.entity.player.EntityPlayer;
- import net.minecraft.entity.player.InventoryPlayer;
- import net.minecraft.inventory.ICrafting;
- import net.minecraft.inventory.IInventory;
- import net.minecraft.inventory.Slot;
- import net.minecraft.item.ItemStack;
- import net.minecraftforge.fml.relauncher.Side;
- import net.minecraftforge.fml.relauncher.SideOnly;
- import net.theviolentsquirrels.questsystem.tileentity.TileEntityBlockSieve;
- public class ContainerSieve extends ModContainer {
- private final IInventory tileEntityBlockSieve;
- private int siftTime;
- private int siftTotalTime;
- public ContainerSieve(InventoryPlayer playerInventory, IInventory tileEntityBlockSieve) {
- this.tileEntityBlockSieve = tileEntityBlockSieve;
- this.addSlotToContainer(new Slot(this.tileEntityBlockSieve, 0, 56, 35));
- this.addSlotToContainer(new SlotSiftingResult(this.tileEntityBlockSieve, 1, 116, 35));
- this.addPlayerSlots(playerInventory);
- }
- @Override
- public void onCraftGuiOpened(ICrafting listener) {
- super.onCraftGuiOpened(listener);
- listener.sendAllWindowProperties(this, this.tileEntityBlockSieve);
- }
- @Override
- public void detectAndSendChanges() {
- super.detectAndSendChanges();
- for (int i = 0; i < this.crafters.size(); ++i) {
- ICrafting icrafting = this.crafters.get(i);
- if (this.siftTime != this.tileEntityBlockSieve.getField(0))
- icrafting.sendProgressBarUpdate(this, 0, this.tileEntityBlockSieve.getField(0));
- if (this.siftTotalTime != this.tileEntityBlockSieve.getField(1))
- icrafting.sendProgressBarUpdate(this, 1, this.tileEntityBlockSieve.getField(1));
- }
- this.siftTime = this.tileEntityBlockSieve.getField(0);
- this.siftTotalTime = this.tileEntityBlockSieve.getField(1);
- }
- @SideOnly(Side.CLIENT)
- public void updateProgressBar(int id, int data) {
- this.tileEntityBlockSieve.setField(id, data);
- }
- @Override
- public boolean canInteractWith(EntityPlayer playerIn) {
- return (this.tileEntityBlockSieve.isUseableByPlayer(playerIn));
- }
- @Override
- public ItemStack transferStackInSlot(EntityPlayer playerIn, int index) {
- ItemStack itemStack = null;
- Slot slot = this.inventorySlots.get(index);
- if (slot != null && slot.getHasStack()) {
- ItemStack itemStack1 = slot.getStack();
- itemStack = itemStack1.copy();
- if (index < 2) {
- if (!this.mergeItemStack(itemStack1, 2, 29, index == 1))
- return (null);
- slot.onSlotChange(itemStack1, itemStack);
- } else {
- if (TileEntityBlockSieve.isSiftable(itemStack1)) {
- if (!this.mergeItemStack(itemStack1, 0, 1, false))
- return (null);
- } else if (index >= 2 && index <= 28) {
- if (!this.mergeItemStack(itemStack1, 29, 37, false))
- return (null);
- } else if (index >= 29 && index <= 37) {
- if (!this.mergeItemStack(itemStack1, 2, 28, false))
- return (null);
- }
- }
- if (itemStack1.stackSize == 0)
- slot.putStack(null);
- else
- slot.onSlotChanged();
- if (itemStack1.stackSize == itemStack.stackSize)
- return (null);
- slot.onPickupFromSlot(playerIn, itemStack1);
- }
- return (itemStack);
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement