Package de.eydamos.backpack.inventory.container

Source Code of de.eydamos.backpack.inventory.container.ContainerPersonalSlot

package de.eydamos.backpack.inventory.container;

import java.util.List;
import java.util.Map;

import invtweaks.api.container.ChestContainer;
import invtweaks.api.container.ContainerSection;
import invtweaks.api.container.ContainerSectionCallback;
import net.minecraft.entity.player.EntityPlayer;
import net.minecraft.inventory.IInventory;
import net.minecraft.inventory.Slot;
import de.eydamos.backpack.inventory.AbstractInventoryBackpack;
import de.eydamos.backpack.inventory.ISaveableInventory;
import de.eydamos.backpack.inventory.InventoryPickup;
import de.eydamos.backpack.saves.BackpackSave;
import de.eydamos.backpack.saves.PlayerSave;
import de.eydamos.backpack.util.BackpackUtil;

@ChestContainer
public class ContainerPersonalSlot extends ContainerAdvanced {
    protected InventoryPickup inventoryPickup;

    public ContainerPersonalSlot(AbstractInventoryBackpack slotInventory, InventoryPickup pickupInventory) {
        super(slotInventory);
        slotInventory.setEventHandler(this);
        inventoryPickup = pickupInventory;
        inventoryPickup.setEventHandler(this);
        inventoryPickup.openInventory();

        onCraftMatrixChanged(inventory);
    }

    @Override
    public boolean canInteractWith(EntityPlayer entityPlayer) {
        return true;
    }

    @Override
    public void onCraftMatrixChanged(IInventory changedInventory) {
        if(changedInventory == inventory) {
            inventoryPickup.setInventoryContent(inventory.getStackInSlot(0));
        } else if(changedInventory == inventoryPickup) {
            inventoryPickup.writeToNBT(new BackpackSave(inventory.getStackInSlot(0)));
        }
        super.onCraftMatrixChanged(changedInventory);
    }

    @Override
    public void onContainerClosed(EntityPlayer entityPlayer) {
        if(BackpackUtil.isServerSide(entityPlayer.worldObj)) {
            if(inventory instanceof ISaveableInventory) {
                ((ISaveableInventory) inventory).writeToNBT(new PlayerSave(entityPlayer));
            }
        }
        inventory.closeInventory();
        inventoryPickup.closeInventory();
    }

    public IInventory getInventoryPickup() {
        return inventoryPickup;
    }

    @ContainerSectionCallback
    public Map<ContainerSection, List<Slot>> getContainerSections() {
        return super.getContainerSections();
    }
}
TOP

Related Classes of de.eydamos.backpack.inventory.container.ContainerPersonalSlot

TOP
Copyright © 2018 www.massapi.com. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.