use of logisticspipes.interfaces.IGuiOpenControler in project LogisticsPipes by RS485.
the class PipeController method getContainer.
@Override
public DummyContainer getContainer(EntityPlayer player) {
LogisticsTileGenericPipe tile = getPipe(player.getEntityWorld());
if (tile == null || !(tile.pipe instanceof CoreRoutedPipe)) {
return null;
}
final CoreRoutedPipe pipe = (CoreRoutedPipe) tile.pipe;
DummyContainer dummy = new DummyContainer(player, null, pipe.getOriginalUpgradeManager().getGuiController(), new IGuiOpenControler() {
//Network Statistics
@Override
public void guiOpenedByPlayer(EntityPlayer player) {
pipe.playerStartWatching(player, 0);
}
@Override
public void guiClosedByPlayer(EntityPlayer player) {
pipe.playerStopWatching(player, 0);
}
});
dummy.addNormalSlotsForPlayerInventory(0, 0);
// TAB_1 SLOTS
for (int pipeSlot = 0; pipeSlot < 9; pipeSlot++) {
dummy.addUpgradeSlot(pipeSlot, pipe.getOriginalUpgradeManager(), pipeSlot, 8 + pipeSlot * 18, 18, itemStack -> {
if (itemStack == null) {
return false;
}
if (itemStack.getItem() == LogisticsPipes.UpgradeItem) {
if (!LogisticsPipes.UpgradeItem.getUpgradeForItem(itemStack, null).isAllowedForPipe(pipe)) {
return false;
}
} else {
return false;
}
return true;
});
}
for (int pipeSlot = 0; pipeSlot < 9; pipeSlot++) {
dummy.addSneakyUpgradeSlot(pipeSlot, pipe.getOriginalUpgradeManager(), pipeSlot + 9, 8 + pipeSlot * 18, 48, itemStack -> {
if (itemStack == null) {
return false;
}
if (itemStack.getItem() == LogisticsPipes.UpgradeItem) {
IPipeUpgrade upgrade = LogisticsPipes.UpgradeItem.getUpgradeForItem(itemStack, null);
if (!(upgrade instanceof SneakyUpgrade) && !(upgrade instanceof SneakyUpgradeConfig)) {
return false;
}
if (!upgrade.isAllowedForPipe(pipe)) {
return false;
}
} else {
return false;
}
return true;
});
}
// TAB_2 SLOTS
dummy.addStaticRestrictedSlot(0, pipe.getOriginalUpgradeManager().getSecInv(), 8 + 8 * 18, 18, itemStack -> {
if (itemStack == null) {
return false;
}
if (itemStack.getItem() != LogisticsPipes.LogisticsItemCard) {
return false;
}
if (itemStack.getItemDamage() != LogisticsItemCard.SEC_CARD) {
return false;
}
return SimpleServiceLocator.securityStationManager.isAuthorized(UUID.fromString(itemStack.getTagCompound().getString("UUID")));
}, 1);
dummy.addRestrictedSlot(0, tile.logicController.diskInv, 14, 36, LogisticsPipes.LogisticsItemDisk);
return dummy;
}
use of logisticspipes.interfaces.IGuiOpenControler in project LogisticsPipes by RS485.
the class GuiHandler method getServerGuiElement.
@Override
public Object getServerGuiElement(int ID, EntityPlayer player, World world, final int x, final int y, final int z) {
TileEntity tile = null;
if (y != -1) {
tile = world.getTileEntity(x, y, z);
}
LogisticsTileGenericPipe pipe = null;
if (tile instanceof LogisticsTileGenericPipe) {
pipe = (LogisticsTileGenericPipe) tile;
}
final LogisticsTileGenericPipe fpipe = pipe;
DummyContainer dummy;
int xOffset;
int yOffset;
if (ID > 10000) {
ID -= 10000;
}
//Handle Module Configuration
if (ID == -1) {
return getServerGuiElement(100 * -20 + x, player, world, 0, -1, z);
}
if (ID < 110 && ID > 0) {
switch(ID) {
case GuiIDs.GUI_FluidSupplier_ID:
if (pipe == null || pipe.pipe == null || !(pipe.pipe instanceof PipeItemsFluidSupplier)) {
return null;
}
dummy = new DummyContainer(player.inventory, ((PipeItemsFluidSupplier) pipe.pipe).getDummyInventory());
dummy.addNormalSlotsForPlayerInventory(18, 97);
xOffset = 72;
yOffset = 18;
for (int row = 0; row < 3; row++) {
for (int column = 0; column < 3; column++) {
dummy.addDummySlot(column + row * 3, xOffset + column * 18, yOffset + row * 18);
}
}
MainProxy.sendPacketToPlayer(PacketHandler.getPacket(FluidSupplierMode.class).setInteger((((PipeItemsFluidSupplier) pipe.pipe).isRequestingPartials() ? 1 : 0)).setPosX(pipe.xCoord).setPosY(pipe.yCoord).setPosZ(pipe.zCoord), player);
return dummy;
case GuiIDs.GUI_FluidSupplier_MK2_ID:
if (pipe == null || pipe.pipe == null || !(pipe.pipe instanceof PipeFluidSupplierMk2)) {
return null;
}
dummy = new DummyContainer(player.inventory, ((PipeFluidSupplierMk2) pipe.pipe).getDummyInventory());
dummy.addNormalSlotsForPlayerInventory(18, 97);
dummy.addFluidSlot(0, ((PipeFluidSupplierMk2) pipe.pipe).getDummyInventory(), 0, 0);
MainProxy.sendPacketToPlayer(PacketHandler.getPacket(FluidSupplierMode.class).setInteger((((PipeFluidSupplierMk2) pipe.pipe).isRequestingPartials() ? 1 : 0)).setPosX(pipe.xCoord).setPosY(pipe.yCoord).setPosZ(pipe.zCoord), player);
MainProxy.sendPacketToPlayer(PacketHandler.getPacket(FluidSupplierMinMode.class).setInteger(((PipeFluidSupplierMk2) pipe.pipe).getMinMode().ordinal()).setPosX(pipe.xCoord).setPosY(pipe.yCoord).setPosZ(pipe.zCoord), player);
return dummy;
case GuiIDs.GUI_ProviderPipe_ID:
if (pipe == null || pipe.pipe == null || !(pipe.pipe instanceof PipeItemsProviderLogistics)) {
return null;
}
dummy = new DummyContainer(player.inventory, ((PipeItemsProviderLogistics) pipe.pipe).getprovidingInventory());
dummy.addNormalSlotsForPlayerInventory(18, 97);
xOffset = 72;
yOffset = 18;
for (int row = 0; row < 3; row++) {
for (int column = 0; column < 3; column++) {
dummy.addDummySlot(column + row * 3, xOffset + column * 18, yOffset + row * 18);
}
}
return dummy;
case GuiIDs.GUI_SatellitePipe_ID:
if (pipe != null && pipe.pipe != null && pipe.pipe instanceof PipeItemsSatelliteLogistics) {
return new DummyContainer(player.inventory, null);
}
if (pipe != null && pipe.pipe != null && pipe.pipe instanceof PipeFluidSatellite) {
return new DummyContainer(player.inventory, null);
}
case GuiIDs.GUI_Normal_Orderer_ID:
if (pipe == null || pipe.pipe == null || !(pipe.pipe instanceof CoreRoutedPipe)) {
return null;
}
return new DummyContainer(player.inventory, null);
case GuiIDs.GUI_Normal_Mk2_Orderer_ID:
if (pipe == null || pipe.pipe == null || !(pipe.pipe instanceof PipeItemsRequestLogisticsMk2)) {
return null;
}
return new DummyContainer(player.inventory, null);
case GuiIDs.GUI_Fluid_Orderer_ID:
if (pipe == null || pipe.pipe == null || !(pipe.pipe instanceof PipeFluidRequestLogistics)) {
return null;
}
return new DummyContainer(player.inventory, null);
case GuiIDs.GUI_Inv_Sys_Connector_ID:
if (pipe == null || pipe.pipe == null || !(pipe.pipe instanceof PipeItemsInvSysConnector)) {
return null;
}
dummy = new DummyContainer(player.inventory, ((PipeItemsInvSysConnector) pipe.pipe).inv);
dummy.addRestrictedSlot(0, ((PipeItemsInvSysConnector) pipe.pipe).inv, 50, 10, itemStack -> {
if (itemStack == null) {
return false;
}
if (itemStack.getItem() != LogisticsPipes.LogisticsItemCard) {
return false;
}
if (itemStack.getItemDamage() != LogisticsItemCard.FREQ_CARD) {
return false;
}
return true;
});
dummy.addNormalSlotsForPlayerInventory(0, 50);
MainProxy.sendPacketToPlayer(PacketHandler.getPacket(InvSysConResistance.class).setInteger(((PipeItemsInvSysConnector) pipe.pipe).resistance).setPosX(pipe.xCoord).setPosY(pipe.yCoord).setPosZ(pipe.zCoord), player);
return dummy;
case GuiIDs.GUI_Freq_Card_ID:
if (pipe == null || pipe.pipe == null || !((pipe.pipe instanceof PipeItemsSystemEntranceLogistics) || (pipe.pipe instanceof PipeItemsSystemDestinationLogistics))) {
return null;
}
IInventory inv = null;
if (pipe.pipe instanceof PipeItemsSystemEntranceLogistics) {
inv = ((PipeItemsSystemEntranceLogistics) pipe.pipe).inv;
} else if (pipe.pipe instanceof PipeItemsSystemDestinationLogistics) {
inv = ((PipeItemsSystemDestinationLogistics) pipe.pipe).inv;
}
dummy = new DummyContainer(player.inventory, inv);
dummy.addRestrictedSlot(0, inv, 40, 40, itemStack -> {
if (itemStack == null) {
return false;
}
if (itemStack.getItem() != LogisticsPipes.LogisticsItemCard) {
return false;
}
if (itemStack.getItemDamage() != LogisticsItemCard.FREQ_CARD) {
return false;
}
return true;
});
dummy.addNormalSlotsForPlayerInventory(0, 0);
return dummy;
case GuiIDs.GUI_HUD_Settings:
dummy = new DummyContainer(player.inventory, null);
dummy.addRestrictedHotbarForPlayerInventory(10, 160);
dummy.addRestrictedArmorForPlayerInventory(10, 60);
return dummy;
case GuiIDs.GUI_Fluid_Basic_ID:
if (pipe == null || pipe.pipe == null || !((pipe.pipe instanceof PipeFluidBasic))) {
return null;
}
dummy = new DummyContainer(player, ((PipeFluidBasic) pipe.pipe).filterInv, new IGuiOpenControler() {
@Override
public void guiOpenedByPlayer(EntityPlayer player) {
((PipeFluidBasic) fpipe.pipe).guiOpenedByPlayer(player);
}
@Override
public void guiClosedByPlayer(EntityPlayer player) {
((PipeFluidBasic) fpipe.pipe).guiClosedByPlayer(player);
}
});
dummy.addFluidSlot(0, ((PipeFluidBasic) pipe.pipe).filterInv, 28, 15);
dummy.addNormalSlotsForPlayerInventory(10, 45);
return dummy;
case GuiIDs.GUI_FIREWALL:
if (pipe == null || pipe.pipe == null || !((pipe.pipe instanceof PipeItemsFirewall))) {
return null;
}
dummy = new DummyContainer(player.inventory, ((PipeItemsFirewall) pipe.pipe).inv);
dummy.addNormalSlotsForPlayerInventory(33, 147);
for (int i = 0; i < 6; i++) {
for (int j = 0; j < 6; j++) {
dummy.addDummySlot(i * 6 + j, 0, 0);
}
}
return dummy;
case GuiIDs.GUI_Request_Table_ID:
if (pipe == null || !(pipe.pipe instanceof PipeBlockRequestTable)) {
return null;
}
dummy = new DummyContainer(player, ((PipeBlockRequestTable) pipe.pipe).matrix, (PipeBlockRequestTable) pipe.pipe);
int i = 0;
for (int Y = 0; Y < 3; Y++) {
for (int X = 0; X < 9; X++) {
dummy.addNormalSlot(i++, ((PipeBlockRequestTable) pipe.pipe).inv, 0, 0);
}
}
i = 0;
for (int Y = 0; Y < 3; Y++) {
for (int X = 0; X < 3; X++) {
dummy.addDummySlot(i++, 0, 0);
}
}
dummy.addCallableSlotHandler(0, ((PipeBlockRequestTable) pipe.pipe).resultInv, 0, 0, () -> ((PipeBlockRequestTable) fpipe.pipe).getResultForClick());
dummy.addNormalSlot(0, ((PipeBlockRequestTable) pipe.pipe).toSortInv, 0, 0);
dummy.addNormalSlot(0, ((PipeBlockRequestTable) pipe.pipe).diskInv, 0, 0);
dummy.addNormalSlotsForPlayerInventory(0, 0);
return dummy;
default:
break;
}
}
return null;
}
use of logisticspipes.interfaces.IGuiOpenControler in project LogisticsPipes by RS485.
the class ItemMangerGui method getContainer.
@Override
public DummyContainer getContainer(EntityPlayer player) {
final CardManagmentInventory Cinv = new CardManagmentInventory();
DummyContainer dummy = new DummyContainer(player, Cinv, new IGuiOpenControler() {
@Override
public void guiOpenedByPlayer(EntityPlayer player) {
}
@Override
public void guiClosedByPlayer(EntityPlayer player) {
Cinv.close(player, (int) player.posX, (int) player.posY, (int) player.posZ);
}
});
for (int i = 0; i < 2; i++) {
dummy.addRestrictedSlot(i, Cinv, 0, 0, LogisticsPipes.ModuleItem);
}
dummy.addRestrictedSlot(2, Cinv, 0, 0, itemStack -> false);
dummy.addRestrictedSlot(3, Cinv, 0, 0, LogisticsPipes.LogisticsItemCard);
for (int i = 4; i < 10; i++) {
dummy.addColorSlot(i, Cinv, 0, 0);
}
dummy.addNormalSlotsForPlayerInventory(0, 0);
return dummy;
}
Aggregations