package joshie.progression.plugins.enchiridion.features; import joshie.enchiridion.api.EnchiridionAPI; import joshie.progression.api.ProgressionAPI; import joshie.progression.api.criteria.ICriteria; import joshie.progression.api.criteria.ITab; import joshie.progression.gui.editors.TreeEditorElement; import joshie.progression.gui.editors.TreeEditorElement.ColorMode; import joshie.progression.helpers.PlayerHelper; import net.minecraft.util.text.translation.I18n; import java.util.Set; public class FeatureTabInfo extends FeatureTabGeneric { public boolean total = true; public String totalText = "%s criteria total"; public boolean completed = true; public String completedText = "[color=green]%s criteria completed"; public boolean ready = true; public String readyText = "[color=blue]%s criteria ready for completion"; public FeatureTabInfo() {} public FeatureTabInfo(ITab tab) { super(tab); } @Override public FeatureTabInfo copy() { return new FeatureTabInfo(getTab()); } public String getTotalCriteria(ITab tab) { return I18n.translateToLocalFormatted(totalText, tab.getCriteria().size()); } public String getCompletedCriteria(ITab tab) { int tasksdone = 0; if (tab.getCriteria().size() > 0) { Set<ICriteria> completed = ProgressionAPI.player.getCompletedCriteriaList(PlayerHelper.getClientUUID(), true); for (ICriteria criteria : completed) { if (tab.equals(criteria.getTab())) tasksdone++; } } return I18n.translateToLocalFormatted(completedText, tasksdone); } public String getCriteriaAvailable(ITab tab) { Set<ICriteria> completed = ProgressionAPI.player.getCompletedCriteriaList(PlayerHelper.getClientUUID(), true); int taskssone = 0; if (tab.getCriteria().size() > 0) { for (ICriteria criteria: tab.getCriteria()) { if (TreeEditorElement.getModeForCriteria(criteria, false) == ColorMode.AVAILABLE) taskssone++; } } return I18n.translateToLocalFormatted(readyText, taskssone); } @Override public void drawFeature(int mouseX, int mouseY) { ITab tab = getTab(); if (tab != null) { int yOffset = 0; if (total) { EnchiridionAPI.draw.drawSplitScaledString(getTotalCriteria(tab), position.getLeft(), position.getTop(), 200, 0xFF404040, 1F); yOffset += 8; } if (completed) { EnchiridionAPI.draw.drawSplitScaledString(getCompletedCriteria(tab), position.getLeft(), position.getTop() + yOffset, 200, 0xFF404040, 1F); yOffset += 8; } if (ready) EnchiridionAPI.draw.drawSplitScaledString(getCriteriaAvailable(tab), position.getLeft(), position.getTop() + yOffset, 200, 0xFF404040, 1F); } } }