/** * Copyright (c) Lambda Innovation, 2013-2016 * This file is part of the AcademyCraft mod. * https://github.com/LambdaInnovation/AcademyCraft * Licensed under GPLv3, see project root for more information. */ package cn.academy.energy.block; import cn.academy.core.container.TechUIContainer; import cn.academy.crafting.ModuleCrafting; import cn.academy.crafting.block.SlotMatterUnit; import cn.academy.energy.api.IFItemManager; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.entity.player.InventoryPlayer; import net.minecraft.inventory.Container; import net.minecraft.inventory.Slot; import net.minecraft.item.ItemStack; /** * @author WeAthFolD */ public class ContainerPhaseGen extends TechUIContainer<TilePhaseGen> { public static final int SLOT_LIQUID_IN = 0, SLOT_LIQUID_OUT = 1, SLOT_OUTPUT = 2; public ContainerPhaseGen(EntityPlayer _player, TilePhaseGen _tile) { super(_player, _tile); initInventory(); } private void initInventory() { this.addSlotToContainer(new SlotMatterUnit(tile, ModuleCrafting.imagPhase.mat, SLOT_LIQUID_IN, 45, 12)); this.addSlotToContainer(new SlotMatterUnit(tile, ModuleCrafting.imagPhase.mat, SLOT_LIQUID_OUT, 112, 51)); this.addSlotToContainer(new SlotIFItem(tile, SLOT_OUTPUT, 42, 80)); mapPlayerInventory(); SlotGroup gMachine = gRange(0, 3); SlotGroup gInv = gRange(4, 4+36); addTransferRule(gMachine, gInv); addTransferRule(gInv, IFItemManager.instance::isSupported, gSlots(SLOT_OUTPUT)); addTransferRule(gInv, stack -> ModuleCrafting.matterUnit.getMaterial(stack) == ModuleCrafting.imagPhase.mat, gSlots(SLOT_LIQUID_IN)); } }