Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- package net.prefixaut.voidmod.container;
- import net.prefixaut.voidmod.VoidExtractorRecipeManager;
- import net.prefixaut.voidmod.VoidRecipeManager;
- import net.minecraft.entity.player.EntityPlayer;
- import net.minecraft.entity.player.InventoryPlayer;
- import net.minecraft.inventory.Container;
- import net.minecraft.inventory.ICrafting;
- import net.minecraft.inventory.Slot;
- import net.minecraft.item.ItemStack;
- import net.prefixaut.voidmod.tileentitys.VoidExtractorTileEntity;
- import cpw.mods.fml.relauncher.Side;
- import cpw.mods.fml.relauncher.SideOnly;
- public class VoidExtractorContainer extends Container {
- private VoidExtractorTileEntity tile;
- public VoidExtractorContainer(InventoryPlayer player, VoidExtractorTileEntity tile) {
- this.tile = tile;
- this.addSlotToContainer(new Slot(tile, 0, 62, 15));
- this.addSlotToContainer(new Slot(tile, 1, 62, 52));
- // Player Inventory
- for (int i=0; i < 3; ++i) {
- for (int j=0; j < 9; ++j) {
- this.addSlotToContainer(new Slot(player, j + i * 9 + 9, 8 + j * 18, 84 + i * 18));
- }
- }
- for (int i=0; i < 9; i++) {
- this.addSlotToContainer(new Slot(player, i, 8 + i * 18, 142));
- }
- }
- @Override
- public void addCraftingToCrafters(ICrafting craft) {
- super.addCraftingToCrafters(craft);
- craft.sendProgressBarUpdate(this, 0, this.tile.currentWorktime);
- craft.sendProgressBarUpdate(this, 1, this.tile.energy);
- }
- @Override
- public void detectAndSendChanges() {
- super.detectAndSendChanges();
- }
- @Override
- @SideOnly(Side.CLIENT)
- public void updateProgressBar(int slot, int value) {
- switch (slot) {
- case 0: this.tile.currentWorktime = value;
- break;
- case 1: this.tile.energy = value;
- break;
- }
- }
- @Override
- public ItemStack transferStackInSlot(EntityPlayer player, int clickedSlot) {
- ItemStack itm = null;
- Slot slot = (Slot) this.inventorySlots.get(clickedSlot);
- if (slot != null && slot.getHasStack()) {
- ItemStack item = slot.getStack();
- itm = item.copy();
- if (clickedSlot == 0 || clickedSlot == 1) {
- if (!this.mergeItemStack(item, 2, 38, true)) return null;
- } else {
- if (VoidRecipeManager.getVoidExtractorManager().isValidItem(item)) { // Valid Recipe Item
- if (!this.mergeItemStack(item, 0, 1, true)) return null;
- } else if (VoidRecipeManager.isValidEnergyItem(item)) { // Valid Energy Item
- if (!this.mergeItemStack(item, 1, 2, true)) return null;
- } else if (clickedSlot >= 2 && clickedSlot < 28) { // Top Inventory
- if (!this.mergeItemStack(item, 29, 38, false)) return null;
- } else if (clickedSlot >= 28) { // Hotbar Inventory
- if (!this.mergeItemStack(item, 2, 28, false)) return null;
- }
- }
- if (item.stackSize == 0) slot.putStack((ItemStack) null);
- else slot.onSlotChanged();
- if (item.stackSize == itm.stackSize) return null;
- slot.onPickupFromSlot(player, item);
- }
- return itm;
- }
- @Override
- public boolean canInteractWith(EntityPlayer player) {
- return tile.isUseableByPlayer(player);
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement