public RouteCache<DuctUnitItem, GridItem> getCache() { return getCache(true); }
public boolean verifyCache() { if (itemDuct.getGrid() == null) { return false; } RouteCache<DuctUnitItem, GridItem> cache1 = itemDuct.getCache(false); if (!cache1.isFinishedGenerating()) { return false; } if (cache1 != cache || routesWithInsertSideList.type != getSortType()) { cache = cache1; Stream<Route<DuctUnitItem, GridItem>> routesWithDestinations = getRoutesWithDestinations(cache.outputRoutes); LinkedList<Route<DuctUnitItem, GridItem>> objects = Lists.newLinkedList(); routesWithDestinations.forEach(objects::add); routesWithInsertSideList.setList(objects, getSortType()); } return true; }
@Override public List<RouteInfo> getConnectedPipes(EnumFacing from) { List<RouteInfo> list = new ArrayList<>(); if (duct.getDuct(DuctToken.ITEMS).getGrid() == null) { return null; } LinkedList<Route<DuctUnitItem, GridItem>> paramIterable = duct.getDuct(DuctToken.ITEMS).getCache(true).outputRoutes; for (Route<DuctUnitItem, GridItem> localRoute1 : paramIterable) { if (localRoute1.endPoint instanceof LPDuctUnitItem) { LPDuctUnitItem lpDuct = (LPDuctUnitItem) localRoute1.endPoint; list.add(new RouteInfo(lpDuct.pipe, localRoute1.pathWeight, EnumFacing.getFront(localRoute1.pathDirections.get(localRoute1.pathDirections.size() - 1)))); } } return list; } }
.getCache(true).outputRoutes; double closesedConnection = Integer.MAX_VALUE; for (Route<DuctUnitItem, GridItem> localRoute1 : paramIterable) {
public Route getRoute(IGridTileRoute itemDuct) { for (Route outputRoute : getCache().outputRoutes) { if (outputRoute.endPoint == itemDuct || (outputRoute.endPoint.x() == itemDuct.x() && outputRoute.endPoint.y() == itemDuct.y() && outputRoute.endPoint.z() == itemDuct.z())) { return outputRoute; } } return null; }
public ItemStack insertItem(EnumFacing from, ItemStack item, boolean simulate) { int side = from.ordinal(); if (!((isInput(side)) || (isOutput(side) && parent.getConnectionType(side).allowTransfer))) { return item; } if (grid == null) { return item; } RouteCache<DuctUnitItem, GridItem> routeCache = getCache(false); TravelingItem routeForItem = ServoItem.findRouteForItem(ItemHelper.cloneStack(item, Math.min(INSERT_SIZE, item.getCount())), ServoItem.getRoutesWithDestinations(routeCache.outputRoutes).filter(t -> t.endPoint != this || t.getLastSide() != side).iterator(), this, side, ServoItem.range[0], (byte) 1); if (routeForItem == null) { return item; } if (!simulate) { insertNewItem(routeForItem); } return ItemHelper.cloneStack(item, item.getCount() - routeForItem.stack.getCount()); }
return false; RouteCache routes = duct.getDuct(DuctToken.ITEMS).getCache(true); Iterable<Route> paramIterable = routes.outputRoutes; Route route = null;
public void bounceItem(DuctUnitItem homeTile) { RouteCache<DuctUnitItem, GridItem> routes = homeTile.getCache();