diff --git a/HMCL/src/main/java/org/jackhuang/hmcl/ui/download/VersionsPageItem.java b/HMCL/src/main/java/org/jackhuang/hmcl/ui/download/VersionsPageItem.java index e73171434..bc4efaa30 100644 --- a/HMCL/src/main/java/org/jackhuang/hmcl/ui/download/VersionsPageItem.java +++ b/HMCL/src/main/java/org/jackhuang/hmcl/ui/download/VersionsPageItem.java @@ -19,10 +19,15 @@ package org.jackhuang.hmcl.ui.download; import javafx.fxml.FXML; import javafx.scene.control.Label; +import javafx.scene.image.Image; +import javafx.scene.image.ImageView; +import javafx.scene.layout.HBox; import javafx.scene.layout.StackPane; import org.jackhuang.hmcl.Main; import org.jackhuang.hmcl.download.RemoteVersion; import org.jackhuang.hmcl.download.game.GameRemoteVersionTag; +import org.jackhuang.hmcl.download.liteloader.LiteLoaderRemoteVersionTag; +import org.jackhuang.hmcl.download.optifine.OptiFineRemoteVersion; import org.jackhuang.hmcl.ui.FXUtils; /** @@ -34,6 +39,12 @@ public final class VersionsPageItem extends StackPane { private Label lblSelfVersion; @FXML private Label lblGameVersion; + @FXML + private ImageView imageView; + @FXML + private HBox leftPane; + @FXML + private StackPane imageViewContainer; public VersionsPageItem(RemoteVersion remoteVersion) { this.remoteVersion = remoteVersion; @@ -45,17 +56,29 @@ public final class VersionsPageItem extends StackPane { switch (((GameRemoteVersionTag) remoteVersion.getTag()).getType()) { case RELEASE: lblGameVersion.setText(Main.i18n("version.game.release")); + imageView.setImage(new Image("/assets/img/icon.png", 32, 32, false, true)); break; case SNAPSHOT: lblGameVersion.setText(Main.i18n("version.game.snapshot")); + imageView.setImage(new Image("/assets/img/command.png", 32, 32, false, true)); break; default: lblGameVersion.setText(Main.i18n("version.game.old")); + imageView.setImage(new Image("/assets/img/grass.png", 32, 32, false, true)); break; } - } else { + } else if (remoteVersion.getTag() instanceof LiteLoaderRemoteVersionTag) { + imageView.setImage(new Image("/assets/img/chicken.png", 32, 32, false, true)); + lblGameVersion.setText(remoteVersion.getGameVersion()); + } else if (remoteVersion instanceof OptiFineRemoteVersion) { + // optifine has no icon. + lblGameVersion.setText(remoteVersion.getGameVersion()); + } else { // forge + imageView.setImage(new Image("/assets/img/forge.png", 32, 32, false, true)); lblGameVersion.setText(remoteVersion.getGameVersion()); } + + leftPane.getChildren().remove(imageViewContainer); } public RemoteVersion getRemoteVersion() { diff --git a/HMCL/src/main/resources/assets/fxml/download/versions-list-item.fxml b/HMCL/src/main/resources/assets/fxml/download/versions-list-item.fxml index 1281525e3..3d741e6ee 100644 --- a/HMCL/src/main/resources/assets/fxml/download/versions-list-item.fxml +++ b/HMCL/src/main/resources/assets/fxml/download/versions-list-item.fxml @@ -2,6 +2,9 @@ + + + @@ -10,9 +13,14 @@ - + + + + + + + diff --git a/HMCL/src/main/resources/assets/img/chicken.png b/HMCL/src/main/resources/assets/img/chicken.png new file mode 100644 index 000000000..01fd49d1d Binary files /dev/null and b/HMCL/src/main/resources/assets/img/chicken.png differ diff --git a/HMCL/src/main/resources/assets/img/command.png b/HMCL/src/main/resources/assets/img/command.png new file mode 100644 index 000000000..005799e95 Binary files /dev/null and b/HMCL/src/main/resources/assets/img/command.png differ diff --git a/HMCL/src/main/resources/assets/img/forge.png b/HMCL/src/main/resources/assets/img/forge.png new file mode 100644 index 000000000..c79eec119 Binary files /dev/null and b/HMCL/src/main/resources/assets/img/forge.png differ diff --git a/HMCL/src/main/resources/assets/img/grass.png b/HMCL/src/main/resources/assets/img/grass.png new file mode 100644 index 000000000..2380963ab Binary files /dev/null and b/HMCL/src/main/resources/assets/img/grass.png differ