feat(skin): introduce new official skins.
@@ -29,9 +29,13 @@ import javafx.collections.ObservableList;
|
|||||||
import javafx.geometry.Insets;
|
import javafx.geometry.Insets;
|
||||||
import javafx.geometry.Pos;
|
import javafx.geometry.Pos;
|
||||||
import javafx.scene.Node;
|
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.control.Label;
|
||||||
import javafx.scene.image.Image;
|
import javafx.scene.image.Image;
|
||||||
import javafx.scene.image.ImageView;
|
import javafx.scene.image.ImageView;
|
||||||
|
import javafx.scene.image.WritableImage;
|
||||||
import javafx.scene.layout.HBox;
|
import javafx.scene.layout.HBox;
|
||||||
import javafx.scene.layout.StackPane;
|
import javafx.scene.layout.StackPane;
|
||||||
import javafx.scene.layout.VBox;
|
import javafx.scene.layout.VBox;
|
||||||
|
|||||||
|
Before Width: | Height: | Size: 2.1 KiB |
BIN
HMCL/src/main/resources/assets/img/skin/alex.png
Normal file
|
After Width: | Height: | Size: 999 B |
BIN
HMCL/src/main/resources/assets/img/skin/ari.png
Normal file
|
After Width: | Height: | Size: 912 B |
BIN
HMCL/src/main/resources/assets/img/skin/efe.png
Normal file
|
After Width: | Height: | Size: 1001 B |
BIN
HMCL/src/main/resources/assets/img/skin/kai.png
Normal file
|
After Width: | Height: | Size: 1.2 KiB |
BIN
HMCL/src/main/resources/assets/img/skin/makena.png
Normal file
|
After Width: | Height: | Size: 1.1 KiB |
BIN
HMCL/src/main/resources/assets/img/skin/noor.png
Normal file
|
After Width: | Height: | Size: 861 B |
BIN
HMCL/src/main/resources/assets/img/skin/steve.png
Normal file
|
After Width: | Height: | Size: 958 B |
BIN
HMCL/src/main/resources/assets/img/skin/sunny.png
Normal file
|
After Width: | Height: | Size: 988 B |
BIN
HMCL/src/main/resources/assets/img/skin/zuri.png
Normal file
|
After Width: | Height: | Size: 947 B |
|
Before Width: | Height: | Size: 1.3 KiB |
@@ -48,8 +48,15 @@ public class Skin {
|
|||||||
|
|
||||||
public enum Type {
|
public enum Type {
|
||||||
DEFAULT,
|
DEFAULT,
|
||||||
STEVE,
|
|
||||||
ALEX,
|
ALEX,
|
||||||
|
ARI,
|
||||||
|
EFE,
|
||||||
|
KAI,
|
||||||
|
MAKENA,
|
||||||
|
NOOR,
|
||||||
|
STEVE,
|
||||||
|
SUNNY,
|
||||||
|
ZURI,
|
||||||
LOCAL_FILE,
|
LOCAL_FILE,
|
||||||
LITTLE_SKIN,
|
LITTLE_SKIN,
|
||||||
CUSTOM_SKIN_LOADER_API,
|
CUSTOM_SKIN_LOADER_API,
|
||||||
@@ -59,10 +66,24 @@ public class Skin {
|
|||||||
switch (type) {
|
switch (type) {
|
||||||
case "default":
|
case "default":
|
||||||
return DEFAULT;
|
return DEFAULT;
|
||||||
case "steve":
|
|
||||||
return STEVE;
|
|
||||||
case "alex":
|
case "alex":
|
||||||
return 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":
|
case "local_file":
|
||||||
return LOCAL_FILE;
|
return LOCAL_FILE;
|
||||||
case "little_skin":
|
case "little_skin":
|
||||||
@@ -115,10 +136,24 @@ public class Skin {
|
|||||||
switch (type) {
|
switch (type) {
|
||||||
case DEFAULT:
|
case DEFAULT:
|
||||||
return Task.supplyAsync(() -> null);
|
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:
|
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:
|
case LOCAL_FILE:
|
||||||
return Task.supplyAsync(() -> {
|
return Task.supplyAsync(() -> {
|
||||||
Texture skin = null, cape = null;
|
Texture skin = null, cape = null;
|
||||||
|
|||||||