private ArrayList<ChromaResearch> getNextResearchesFor(EntityPlayer ep, boolean debug) { ChromaResearch pri = this.getPriorityResearchFor(ep); if (pri != null) { ArrayList li = new ArrayList(); li.add(pri); return li; } this.checkForUpgrade(ep); ArrayList<ChromaResearch> li = new ArrayList(); for (ChromaResearch r : ChromaResearch.getAllObtainableFragments()) { if (!this.playerHasFragment(ep, r)) { if (r.level == null || this.getPlayerResearchLevel(ep).isAtLeast(r.level)) { boolean missingdep = false; if (!r.playerHasProgress(ep)) { missingdep = true; if (debug) ChromatiCraft.logger.log( "Fragment " + r + " rejected; insufficient progress " + Arrays.toString(r.getRequiredProgress()) + "."); } else { if (!this.playerHasDependencies(r, ep)) { if (debug) ChromatiCraft.logger.log( "Fragment " + r + " rejected; missing dependency."); // "+p+"."); missingdep = true; } } if (!missingdep) li.add(r); } else if (debug) { ChromatiCraft.logger.log("Fragment " + r + " rejected; insufficient research level."); } } } return li; }