package vazkii.minetunes.playlist.provider; import java.io.File; import net.minecraft.client.resources.I18n; import net.minecraft.util.text.TextFormatting; import vazkii.minetunes.playlist.Playlist; public abstract class PlaylistProvider { IProviderStateCallback callback; int foundFiles = 0; int processedFiles = 0; String name = ""; public abstract Playlist provide(File file, IProviderStateCallback callback); public abstract String getDescription(); void updateState() { if(callback != null) callback.setState(generateProgressState()); } String generateProgressState() { if(foundFiles > 0) { if(processedFiles > 0) { int percent = (int) (((float) processedFiles / (float) foundFiles) * 100); TextFormatting format = TextFormatting.RED; if(percent > 50) format = TextFormatting.YELLOW; if(percent > 90) format = TextFormatting.GREEN; return I18n.format("minetunes.playlist.generator.processing", processedFiles, foundFiles) + format + " (" + percent + "%)"; } else return I18n.format("minetunes.playlist.generator.scanning", foundFiles); } else return I18n.format("minetunes.playlist.generator.starting"); } }