Files
Applied-Energistics-2/src/main/java/appeng/container/implementations/ContainerExpandedProcessingPatternTerm.java
T
2022-11-22 20:29:04 -03:00

61 lines
2.4 KiB
Java

package appeng.container.implementations;
import appeng.api.storage.ITerminalHost;
import appeng.container.slot.OptionalSlotFake;
import appeng.container.slot.SlotFakeCraftingMatrix;
import appeng.container.slot.SlotPatternOutputs;
import appeng.container.slot.SlotRestrictedInput;
import net.minecraft.entity.player.InventoryPlayer;
import net.minecraftforge.items.IItemHandler;
import static appeng.helpers.PatternHelper.PROCESSING_INPUT_LIMIT;
import static appeng.helpers.PatternHelper.PROCESSING_OUTPUT_LIMIT;
public class ContainerExpandedProcessingPatternTerm extends ContainerPatternEncoder {
public ContainerExpandedProcessingPatternTerm(InventoryPlayer ip, ITerminalHost monitorable) {
super(ip, monitorable, false);
this.craftingSlots = new SlotFakeCraftingMatrix[PROCESSING_INPUT_LIMIT];
this.outputSlots = new OptionalSlotFake[PROCESSING_OUTPUT_LIMIT];
final IItemHandler patternInv = this.getPart().getInventoryByName("pattern");
final IItemHandler output = this.getPart().getInventoryByName("output");
this.crafting = this.getPart().getInventoryByName("crafting");
for (int y = 0; y < 4; y++) {
for (int x = 0; x < 4; x++) {
this.addSlotToContainer(this.craftingSlots[x + y * 4] = new SlotFakeCraftingMatrix(this.crafting, x + y * 4, 4 + x * 18, -85 + y * 18));
}
}
for (int y = 0; y < 3; y++) {
for (int x = 0; x < 2; x++) {
this.addSlotToContainer(this.outputSlots[x + y * 2] = new SlotPatternOutputs(output, this, x + y * 2, 96 + x * 18, -76 + y * 18, 0, 0, 1));
this.outputSlots[x + y * 2].setRenderDisabled(false);
this.outputSlots[x + y * 2].setIIcon(-1);
}
}
this.addSlotToContainer(this.patternSlotIN = new SlotRestrictedInput(SlotRestrictedInput.PlacableItemType.BLANK_PATTERN, patternInv, 0, 147, -72 - 9, this.getInventoryPlayer()));
this.addSlotToContainer(this.patternSlotOUT = new SlotRestrictedInput(SlotRestrictedInput.PlacableItemType.ENCODED_PATTERN, patternInv, 1, 147, -72 + 34, this.getInventoryPlayer()));
this.patternSlotOUT.setStackLimit(1);
this.bindPlayerInventory(ip, 0, 0);
}
@Override
public boolean isSlotEnabled(final int idx) {
return true;
}
@Override
public boolean isCraftingMode() {
return false;
}
}