use of logisticspipes.pipes.PipeItemsCraftingLogistics in project LogisticsPipes by RS485.
the class CraftingPipeSign method render.
@Override
@SideOnly(Side.CLIENT)
public void render(CoreRoutedPipe pipe, LogisticsRenderPipe renderer) {
PipeItemsCraftingLogistics cpipe = (PipeItemsCraftingLogistics) pipe;
FontRenderer var17 = renderer.func_147498_b();
if (cpipe != null) {
List<ItemIdentifierStack> craftables = cpipe.getCraftedItems();
String name = "";
if (craftables != null && craftables.size() > 0) {
ItemStack itemstack = craftables.get(0).unsafeMakeNormalStack();
renderer.renderItemStackOnSign(itemstack);
Item item = itemstack.getItem();
GL11.glDepthMask(false);
GL11.glRotatef(-180.0F, 1.0F, 0.0F, 0.0F);
GL11.glTranslatef(0.5F, +0.08F, 0.0F);
GL11.glScalef(1.0F / 90.0F, 1.0F / 90.0F, 1.0F / 90.0F);
try {
name = item.getItemStackDisplayName(itemstack);
} catch (Exception e) {
try {
name = item.getUnlocalizedName();
} catch (Exception e1) {
}
}
var17.drawString("ID: " + String.valueOf(Item.getIdFromItem(item)), -var17.getStringWidth("ID: " + String.valueOf(Item.getIdFromItem(item))) / 2, 0 * 10 - 4 * 5, 0);
ModuleCrafter logisticsMod = cpipe.getLogisticsModule();
if (logisticsMod.satelliteId != 0) {
var17.drawString("Sat ID: " + String.valueOf(logisticsMod.satelliteId), -var17.getStringWidth("Sat ID: " + String.valueOf(logisticsMod.satelliteId)) / 2, 1 * 10 - 4 * 5, 0);
}
} else {
GL11.glRotatef(-180.0F, 1.0F, 0.0F, 0.0F);
GL11.glTranslatef(0.5F, +0.08F, 0.0F);
GL11.glScalef(1.0F / 90.0F, 1.0F / 90.0F, 1.0F / 90.0F);
name = "Empty";
}
name = renderer.cut(name, var17);
var17.drawString(name, -var17.getStringWidth(name) / 2 - 15, 3 * 10 - 4 * 5, 0);
GL11.glDepthMask(true);
GL11.glColor4f(1.0F, 1.0F, 1.0F, 1.0F);
}
}
use of logisticspipes.pipes.PipeItemsCraftingLogistics in project LogisticsPipes by RS485.
the class LogisticsTriggerProvider method getInternalTriggers.
@Override
public Collection<ITriggerInternal> getInternalTriggers(IStatementContainer pipe) {
if (pipe.getTile() instanceof LPBCTileGenericPipe) {
LogisticsTileGenericPipe lPipe = ((LPBCTileGenericPipe) pipe.getTile()).getLpPipe();
LinkedList<ITriggerInternal> triggers = new LinkedList<>();
if (lPipe.pipe instanceof PipeItemsSupplierLogistics || lPipe.pipe instanceof PipeItemsFluidSupplier) {
triggers.add(BuildCraftProxy.LogisticsFailedTrigger);
}
if (lPipe.pipe instanceof PipeItemsCraftingLogistics) {
triggers.add(BuildCraftProxy.LogisticsCraftingTrigger);
}
if (lPipe.pipe instanceof CoreRoutedPipe) {
//Only show this conditional on Gates that can accept parameters
triggers.add(BuildCraftProxy.LogisticsHasDestinationTrigger);
}
if (!triggers.isEmpty()) {
return triggers;
}
}
return null;
}
use of logisticspipes.pipes.PipeItemsCraftingLogistics in project LogisticsPipes by RS485.
the class RequestRunningCraftingTasks method processPacket.
@Override
public void processPacket(EntityPlayer player) {
LogisticsStatisticsTileEntity tile = this.getTile(player.getEntityWorld(), LogisticsStatisticsTileEntity.class);
CoreRoutedPipe pipe = tile.getConnectedPipe();
if (pipe == null) {
return;
}
List<ItemIdentifierStack> items = new ArrayList<>();
for (ExitRoute r : pipe.getRouter().getIRoutersByCost()) {
if (r == null) {
continue;
}
if (r.destination.getPipe() instanceof PipeItemsCraftingLogistics) {
PipeItemsCraftingLogistics crafting = (PipeItemsCraftingLogistics) r.destination.getPipe();
List<ItemIdentifierStack> content = crafting.getItemOrderManager().getContentList(player.getEntityWorld());
items.addAll(content);
}
}
MainProxy.sendPacketToPlayer(PacketHandler.getPacket(RunningCraftingTasks.class).setIdentList(items), player);
}
use of logisticspipes.pipes.PipeItemsCraftingLogistics in project LogisticsPipes by RS485.
the class FindMostLikelyRecipeComponents method processPacket.
@Override
public void processPacket(EntityPlayer player) {
TileEntity tile = this.getTile(player.getEntityWorld(), TileEntity.class);
CoreRoutedPipe pipe = null;
if (tile instanceof LogisticsCraftingTableTileEntity) {
for (ForgeDirection dir : ForgeDirection.VALID_DIRECTIONS) {
TileEntity conn = CoordinateUtils.add(((LogisticsCraftingTableTileEntity) tile).getLPPosition(), dir).getTileEntity(player.getEntityWorld());
if (conn instanceof LogisticsTileGenericPipe) {
if (((LogisticsTileGenericPipe) conn).pipe instanceof PipeItemsCraftingLogistics) {
pipe = (CoreRoutedPipe) ((LogisticsTileGenericPipe) conn).pipe;
break;
}
}
}
} else if (tile instanceof LogisticsTileGenericPipe) {
if (((LogisticsTileGenericPipe) tile).pipe instanceof PipeBlockRequestTable) {
pipe = (CoreRoutedPipe) ((LogisticsTileGenericPipe) tile).pipe;
}
}
List<Integer> list = new ArrayList<Integer>(content.size());
while (list.size() < content.size()) {
list.add(-1);
}
if (pipe == null)
return;
LinkedList<ItemIdentifier> craftable = null;
for (int j = 0; j < content.size(); j++) {
GuiRecipeImport.Canidates canidates = content.get(j);
int maxItemPos = -1;
int max = 0;
for (int i = 0; i < canidates.order.size(); i++) {
ItemIdentifier ident = canidates.order.get(i).getItem();
int newAmount = SimpleServiceLocator.logisticsManager.getAmountFor(ident, pipe.getRouter().getIRoutersByCost());
if (newAmount > max) {
max = newAmount;
maxItemPos = i;
}
}
if (max < 64) {
if (craftable == null) {
craftable = SimpleServiceLocator.logisticsManager.getCraftableItems(pipe.getRouter().getIRoutersByCost());
}
for (ItemIdentifier craft : craftable) {
for (int i = 0; i < canidates.order.size(); i++) {
ItemIdentifier ident = canidates.order.get(i).getItem();
if (craft == ident) {
maxItemPos = i;
break;
}
}
}
}
list.set(j, maxItemPos);
}
MainProxy.sendPacketToPlayer(PacketHandler.getPacket(MostLikelyRecipeComponentsResponse.class).setResponse(list), player);
}
use of logisticspipes.pipes.PipeItemsCraftingLogistics in project LogisticsPipes by RS485.
the class CraftingPipeSign method getRenderData.
@Override
public IPipeSignData getRenderData(CoreRoutedPipe pipe) {
PipeItemsCraftingLogistics cpipe = (PipeItemsCraftingLogistics) pipe;
if (cpipe != null) {
List<ItemIdentifierStack> craftables = cpipe.getCraftedItems();
if (craftables != null && craftables.size() > 0) {
ItemIdentifierStack itemIdentifierStack = craftables.get(0);
ModuleCrafter logisticsMod = cpipe.getLogisticsModule();
return new CraftingPipeSignData(itemIdentifierStack, logisticsMod.satelliteId);
} else {
return new CraftingPipeSignData(null, -1);
}
}
return null;
}
Aggregations