Revert "TEST: Update MC assets downloader to match Android"
This commit is contained in:
1 file changed
+18
-17
@@ -171,10 +171,11 @@ public class PLaunchApp {
|
||||
}).start();
|
||||
}
|
||||
|
||||
private static int downloaded = 0;
|
||||
private static int downloadedSs = 0;
|
||||
public static void downloadAssets(final JAssets assets, String assetsVersion, final File outputDir) throws IOException {
|
||||
LinkedBlockingQueue<Runnable> workQueue = new LinkedBlockingQueue<>();
|
||||
final ThreadPoolExecutor executor = new ThreadPoolExecutor(50, 50, 500, TimeUnit.MILLISECONDS, workQueue);
|
||||
ArrayBlockingQueue<Runnable> workQueue = new ArrayBlockingQueue<>(100);
|
||||
RejectedExecutionHandler handler = new ThreadPoolExecutor.CallerRunsPolicy();
|
||||
final ThreadPoolExecutor threadPoolExecutor = new ThreadPoolExecutor(10, 50, 100, TimeUnit.SECONDS, workQueue, handler);
|
||||
|
||||
File hasDownloadedFile = new File(outputDir, "downloaded/" + assetsVersion + ".downloaded");
|
||||
if (!hasDownloadedFile.exists()) {
|
||||
@@ -182,30 +183,30 @@ public class PLaunchApp {
|
||||
Map<String, JAssetInfo> assetsObjects = assets.objects;
|
||||
File objectsDir = new File(outputDir, "objects");
|
||||
for (JAssetInfo asset : assetsObjects.values()) {
|
||||
executor.execute(() -> {
|
||||
mIsAssetsProcessing = !UIKit.updateProgressSafe(currProgress / maxProgress, "Downloading " + assetsObjects.keySet().toArray(new String[0])[downloaded]);
|
||||
threadPoolExecutor.execute(() -> {
|
||||
mIsAssetsProcessing = !UIKit.updateProgressSafe(currProgress / maxProgress, "Downloading " + assetsObjects.keySet().toArray(new String[0])[downloadedSs]);
|
||||
|
||||
if (!mIsAssetsProcessing) {
|
||||
threadPoolExecutor.shutdownNow();
|
||||
return;
|
||||
}
|
||||
|
||||
try {
|
||||
if(!assets.map_to_resources) downloadAsset(asset, objectsDir);
|
||||
else downloadAssetMapped(asset,(assetsObjects.keySet().toArray(new String[0])[downloaded]),outputDir);
|
||||
else downloadAssetMapped(asset,(assetsObjects.keySet().toArray(new String[0])[downloadedSs]),outputDir);
|
||||
} catch (IOException e) {
|
||||
e.printStackTrace();
|
||||
mIsAssetsProcessing = false;
|
||||
}
|
||||
currProgress++;
|
||||
downloaded++;
|
||||
downloadedSs++;
|
||||
|
||||
});
|
||||
}
|
||||
executor.shutdown();
|
||||
try {
|
||||
while ((!executor.awaitTermination(250, TimeUnit.MILLISECONDS)) && (!localInterrupt.get()) && mIsAssetsProcessing) {}
|
||||
executor.shutdownNow();
|
||||
while (!executor.awaitTermination(250, TimeUnit.MILLISECONDS)) {}
|
||||
System.out.println("Fully shut down!");
|
||||
} catch (InterruptedException e) {
|
||||
e.printStackTrace();
|
||||
}
|
||||
threadPoolExecutor.shutdown();
|
||||
while (!threadPoolExecutor.isTerminated()) { }
|
||||
hasDownloadedFile.getParentFile().mkdirs();
|
||||
hasDownloadedFile.createNewFile();
|
||||
System.out.println("Assets end time: " + System.currentTimeMillis());
|
||||
}
|
||||
}
|
||||
@@ -236,4 +237,4 @@ public class PLaunchApp {
|
||||
DownloadUtils.downloadFile(MINECRAFT_RES + assetPath, outFile);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
Reference in new issue
Block a user