alt: merge dependency resolving and modpack launching stage

This commit is contained in:
huanghongxun
2020-02-19 21:51:06 +08:00
parent b4ec71d65f
commit 3269841207
2 changed files with 20 additions and 23 deletions

View File

@@ -130,25 +130,25 @@ public final class LauncherHelper {
TaskExecutor executor = Task.runAsync(() -> { TaskExecutor executor = Task.runAsync(() -> {
}) })
.thenComposeAsync(() -> Task.composeAsync(() -> { .thenComposeAsync(() -> Task.allOf(
if (setting.isNotCheckGame()) Task.composeAsync(null, () -> {
return null; if (setting.isNotCheckGame())
else return null;
return dependencyManager.checkGameCompletionAsync(version); else
}).withStage("launch.state.dependencies")) return dependencyManager.checkGameCompletionAsync(version);
.thenComposeAsync(() -> Task.composeAsync(null, () -> { }), Task.composeAsync(null, () -> {
try { try {
ModpackConfiguration<?> configuration = ModpackHelper.readModpackConfiguration(repository.getModpackConfiguration(selectedVersion)); ModpackConfiguration<?> configuration = ModpackHelper.readModpackConfiguration(repository.getModpackConfiguration(selectedVersion));
if ("Curse".equals(configuration.getType())) if ("Curse".equals(configuration.getType()))
return new CurseCompletionTask(dependencyManager, selectedVersion); return new CurseCompletionTask(dependencyManager, selectedVersion);
else if ("Server".equals(configuration.getType())) else if ("Server".equals(configuration.getType()))
return new ServerModpackCompletionTask(dependencyManager, selectedVersion); return new ServerModpackCompletionTask(dependencyManager, selectedVersion);
else else
return null; return null;
} catch (IOException e) { } catch (IOException e) {
return null; return null;
} }
}).withStage("launch.state.modpack")) })).withStage("launch.state.dependencies"))
.thenComposeAsync(() -> Task.supplyAsync((String) null, () -> { .thenComposeAsync(() -> Task.supplyAsync((String) null, () -> {
try { try {
return account.logIn(); return account.logIn();
@@ -202,7 +202,6 @@ public final class LauncherHelper {
.cancellableExecutor(); .cancellableExecutor();
executor.setStages(new LocalizedTaskStages(Lang.immutableListOf( executor.setStages(new LocalizedTaskStages(Lang.immutableListOf(
"launch.state.dependencies", "launch.state.dependencies",
"launch.state.modpack",
"launch.state.logging_in", "launch.state.logging_in",
"launch.state.waiting_launching"))); "launch.state.waiting_launching")));
launchingStepsPane.setExecutor(executor, false); launchingStepsPane.setExecutor(executor, false);

View File

@@ -29,8 +29,6 @@ import org.jackhuang.hmcl.task.TaskExecutor;
import org.jackhuang.hmcl.task.TaskListener; import org.jackhuang.hmcl.task.TaskListener;
import org.jackhuang.hmcl.ui.FXUtils; import org.jackhuang.hmcl.ui.FXUtils;
import java.util.Collections;
import java.util.List;
import java.util.Optional; import java.util.Optional;
import java.util.function.Consumer; import java.util.function.Consumer;
@@ -74,7 +72,7 @@ public class TaskExecutorDialogPane extends StackPane {
double finalSpeed = speed; double finalSpeed = speed;
String finalUnit = unit; String finalUnit = unit;
Platform.runLater(() -> { Platform.runLater(() -> {
lblProgress.setText(String.format("%.1f", finalSpeed) + " " + finalUnit); lblProgress.setText(String.format("%.1f %s", finalSpeed, finalUnit));
}); });
}; };
FileDownloadTask.speedEvent.channel(FileDownloadTask.SpeedEvent.class).registerWeak(speedEventHandler); FileDownloadTask.speedEvent.channel(FileDownloadTask.SpeedEvent.class).registerWeak(speedEventHandler);