package com.agilemods.materiamuto.common.inventory; import com.agilemods.materiamuto.common.inventory.slot.SlotHasEMC; import com.agilemods.materiamuto.common.network.packet.PacketHandler; import com.agilemods.materiamuto.common.network.packet.message.MessageGuiData; import com.agilemods.materiamuto.common.tile.TileCondenser; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.entity.player.EntityPlayerMP; import net.minecraft.inventory.Container; import net.minecraft.inventory.ICrafting; import net.minecraft.inventory.Slot; import java.util.List; public class ContainerCondenser extends Container implements MessageGuiData.IGuiData { public EntityPlayer entityPlayer; public TileCondenser tileCondenser; private double lastTargetEmc; private double lastEmc; public ContainerCondenser(EntityPlayer entityPlayer, TileCondenser tileCondenser) { this.entityPlayer = entityPlayer; this.tileCondenser = tileCondenser; int j; int k; for (j = 0; j < 7; ++j) { for (k = 0; k < 13; ++k) { this.addSlotToContainer(new Slot(tileCondenser, k + j * 13, 12 + k * 18, 27 + j * 18)); } } this.addSlotToContainer(new SlotHasEMC(tileCondenser, TileCondenser.TARGET_SLOT, 12, 6)); for (j = 0; j < 3; ++j) { for (k = 0; k < 9; ++k) { this.addSlotToContainer(new Slot(entityPlayer.inventory, k + j * 9 + 9, 47 + k * 18, 157 + j * 18)); } } for (j = 0; j < 9; ++j) { this.addSlotToContainer(new Slot(entityPlayer.inventory, j, 48 + j * 18, 215)); } } @Override public void detectAndSendChanges() { super.detectAndSendChanges(); if (tileCondenser.targetEmc != lastTargetEmc) { sendGuiData(0, tileCondenser.targetEmc); lastTargetEmc = tileCondenser.targetEmc; } if (tileCondenser.emc != lastEmc) { sendGuiData(1, tileCondenser.emc); lastEmc = tileCondenser.emc; } } private void sendGuiData(int id, double data) { for (ICrafting crafting : (List<ICrafting>) crafters) { PacketHandler.INSTANCE.sendTo(new MessageGuiData(id, data), (EntityPlayerMP) crafting); } } @Override public void handleData(int id, double data) { switch (id) { case 0: tileCondenser.targetEmc = data; break; case 1: tileCondenser.emc = data; break; default: break; } } @Override public boolean canInteractWith(EntityPlayer entityPlayer) { return true; } }