use of logisticspipes.interfaces.routing.ICraft in project LogisticsPipes by RS485.
the class RequestTreeNode method getCrafters.
private static List<Pair<ICraftingTemplate, List<IFilter>>> getCrafters(IResource iRequestType, List<ExitRoute> validDestinations) {
List<Pair<ICraftingTemplate, List<IFilter>>> crafters = new ArrayList<>(validDestinations.size());
for (ExitRoute r : validDestinations) {
CoreRoutedPipe pipe = r.destination.getPipe();
if (r.containsFlag(PipeRoutingConnectionType.canRequestFrom)) {
if (pipe instanceof ICraft) {
ICraftingTemplate craftable = ((ICraft) pipe).addCrafting(iRequestType);
if (craftable != null) {
for (IFilter filter : r.filters) {
if (filter.isBlocked() == filter.isFilteredItem(craftable.getResultItem()) || filter.blockCrafting()) {
continue;
}
}
List<IFilter> list = new LinkedList<>();
list.addAll(r.filters);
crafters.add(new Pair<>(craftable, list));
}
}
}
}
// Collections.sort(crafters,new CraftingTemplate.PairPrioritizer());
return crafters;
}
Aggregations