diff --git a/HMCL/src/main/java/org/jackhuang/hmcl/ui/main/MainPage.java b/HMCL/src/main/java/org/jackhuang/hmcl/ui/main/MainPage.java index 3cf4ef939..cf8281976 100644 --- a/HMCL/src/main/java/org/jackhuang/hmcl/ui/main/MainPage.java +++ b/HMCL/src/main/java/org/jackhuang/hmcl/ui/main/MainPage.java @@ -29,9 +29,13 @@ import javafx.collections.ObservableList; import javafx.geometry.Insets; import javafx.geometry.Pos; import javafx.scene.Node; +import javafx.scene.SnapshotParameters; +import javafx.scene.canvas.Canvas; +import javafx.scene.canvas.GraphicsContext; import javafx.scene.control.Label; import javafx.scene.image.Image; import javafx.scene.image.ImageView; +import javafx.scene.image.WritableImage; import javafx.scene.layout.HBox; import javafx.scene.layout.StackPane; import javafx.scene.layout.VBox; diff --git a/HMCL/src/main/resources/assets/img/alex.png b/HMCL/src/main/resources/assets/img/alex.png deleted file mode 100644 index ffd8e0719..000000000 Binary files a/HMCL/src/main/resources/assets/img/alex.png and /dev/null differ diff --git a/HMCL/src/main/resources/assets/img/skin/alex.png b/HMCL/src/main/resources/assets/img/skin/alex.png new file mode 100644 index 000000000..984d92b72 Binary files /dev/null and b/HMCL/src/main/resources/assets/img/skin/alex.png differ diff --git a/HMCL/src/main/resources/assets/img/skin/ari.png b/HMCL/src/main/resources/assets/img/skin/ari.png new file mode 100644 index 000000000..6b2953708 Binary files /dev/null and b/HMCL/src/main/resources/assets/img/skin/ari.png differ diff --git a/HMCL/src/main/resources/assets/img/skin/efe.png b/HMCL/src/main/resources/assets/img/skin/efe.png new file mode 100644 index 000000000..08982f5eb Binary files /dev/null and b/HMCL/src/main/resources/assets/img/skin/efe.png differ diff --git a/HMCL/src/main/resources/assets/img/skin/kai.png b/HMCL/src/main/resources/assets/img/skin/kai.png new file mode 100644 index 000000000..435c5c9c2 Binary files /dev/null and b/HMCL/src/main/resources/assets/img/skin/kai.png differ diff --git a/HMCL/src/main/resources/assets/img/skin/makena.png b/HMCL/src/main/resources/assets/img/skin/makena.png new file mode 100644 index 000000000..db60c2760 Binary files /dev/null and b/HMCL/src/main/resources/assets/img/skin/makena.png differ diff --git a/HMCL/src/main/resources/assets/img/skin/noor.png b/HMCL/src/main/resources/assets/img/skin/noor.png new file mode 100644 index 000000000..d1f8a24e5 Binary files /dev/null and b/HMCL/src/main/resources/assets/img/skin/noor.png differ diff --git a/HMCL/src/main/resources/assets/img/skin/steve.png b/HMCL/src/main/resources/assets/img/skin/steve.png new file mode 100644 index 000000000..c5426101d Binary files /dev/null and b/HMCL/src/main/resources/assets/img/skin/steve.png differ diff --git a/HMCL/src/main/resources/assets/img/skin/sunny.png b/HMCL/src/main/resources/assets/img/skin/sunny.png new file mode 100644 index 000000000..aa0e6f2e9 Binary files /dev/null and b/HMCL/src/main/resources/assets/img/skin/sunny.png differ diff --git a/HMCL/src/main/resources/assets/img/skin/zuri.png b/HMCL/src/main/resources/assets/img/skin/zuri.png new file mode 100644 index 000000000..5827f3df1 Binary files /dev/null and b/HMCL/src/main/resources/assets/img/skin/zuri.png differ diff --git a/HMCL/src/main/resources/assets/img/steve.png b/HMCL/src/main/resources/assets/img/steve.png deleted file mode 100644 index 90d4fa236..000000000 Binary files a/HMCL/src/main/resources/assets/img/steve.png and /dev/null differ diff --git a/HMCLCore/src/main/java/org/jackhuang/hmcl/auth/offline/Skin.java b/HMCLCore/src/main/java/org/jackhuang/hmcl/auth/offline/Skin.java index 85656b6e1..6901b11ce 100644 --- a/HMCLCore/src/main/java/org/jackhuang/hmcl/auth/offline/Skin.java +++ b/HMCLCore/src/main/java/org/jackhuang/hmcl/auth/offline/Skin.java @@ -48,8 +48,15 @@ public class Skin { public enum Type { DEFAULT, - STEVE, ALEX, + ARI, + EFE, + KAI, + MAKENA, + NOOR, + STEVE, + SUNNY, + ZURI, LOCAL_FILE, LITTLE_SKIN, CUSTOM_SKIN_LOADER_API, @@ -59,10 +66,24 @@ public class Skin { switch (type) { case "default": return DEFAULT; - case "steve": - return STEVE; case "alex": return ALEX; + case "ari": + return ARI; + case "efe": + return EFE; + case "kai": + return KAI; + case "makena": + return MAKENA; + case "noor": + return NOOR; + case "steve": + return STEVE; + case "sunny": + return SUNNY; + case "zuri": + return ZURI; case "local_file": return LOCAL_FILE; case "little_skin": @@ -115,10 +136,24 @@ public class Skin { switch (type) { case DEFAULT: return Task.supplyAsync(() -> null); - case STEVE: - return Task.supplyAsync(() -> new LoadedSkin(TextureModel.STEVE, Texture.loadTexture(Skin.class.getResourceAsStream("/assets/img/steve.png")), null)); case ALEX: - return Task.supplyAsync(() -> new LoadedSkin(TextureModel.ALEX, Texture.loadTexture(Skin.class.getResourceAsStream("/assets/img/alex.png")), null)); + return Task.supplyAsync(() -> new LoadedSkin(TextureModel.ALEX, Texture.loadTexture(Skin.class.getResourceAsStream("/assets/img/skin/alex.png")), null)); + case ARI: + return Task.supplyAsync(() -> new LoadedSkin(TextureModel.STEVE, Texture.loadTexture(Skin.class.getResourceAsStream("/assets/img/skin/ari.png")), null)); + case EFE: + return Task.supplyAsync(() -> new LoadedSkin(TextureModel.ALEX, Texture.loadTexture(Skin.class.getResourceAsStream("/assets/img/skin/efe.png")), null)); + case KAI: + return Task.supplyAsync(() -> new LoadedSkin(TextureModel.STEVE, Texture.loadTexture(Skin.class.getResourceAsStream("/assets/img/skin/kai.png")), null)); + case MAKENA: + return Task.supplyAsync(() -> new LoadedSkin(TextureModel.ALEX, Texture.loadTexture(Skin.class.getResourceAsStream("/assets/img/skin/makena.png")), null)); + case NOOR: + return Task.supplyAsync(() -> new LoadedSkin(TextureModel.ALEX, Texture.loadTexture(Skin.class.getResourceAsStream("/assets/img/skin/noor.png")), null)); + case STEVE: + return Task.supplyAsync(() -> new LoadedSkin(TextureModel.STEVE, Texture.loadTexture(Skin.class.getResourceAsStream("/assets/img/skin/steve.png")), null)); + case SUNNY: + return Task.supplyAsync(() -> new LoadedSkin(TextureModel.STEVE, Texture.loadTexture(Skin.class.getResourceAsStream("/assets/img/skin/sunny.png")), null)); + case ZURI: + return Task.supplyAsync(() -> new LoadedSkin(TextureModel.STEVE, Texture.loadTexture(Skin.class.getResourceAsStream("/assets/img/skin/zuri.png")), null)); case LOCAL_FILE: return Task.supplyAsync(() -> { Texture skin = null, cape = null;