|
2 | 2 |
|
3 | 3 | namespace Microwin7\PHPUtils\Configs; |
4 | 4 |
|
| 5 | +use Microwin7\PHPUtils\Contracts\Texture\Enum\ResponseTypeEnum; |
| 6 | + |
5 | 7 | class TextureConfig |
6 | 8 | { |
7 | | - /** |
8 | | - * Настройка полного пути хранения файлов |
9 | | - * Пример при склеивании: /var/www/html/storage/skins/ |
10 | | - * Если DIRECTORY_SEPARATOR не будет обнаружен в конце, он будет добавлен принудительно |
11 | | - */ |
12 | | - public const string SKIN_PATH = PathConfig::ROOT_FOLDER . self::SKIN_URL_PATH; |
13 | | - public const string CAPE_PATH = PathConfig::ROOT_FOLDER . self::CAPE_URL_PATH; |
14 | | - /** |
15 | | - * Внешние пути хранения файлов, от корня сайта |
16 | | - */ |
17 | | - public const string SKIN_URL_PATH = 'storage/skins/'; |
18 | | - public const string CAPE_URL_PATH = 'storage/capes/'; |
19 | 9 | /** |
20 | 10 | * Для вызова, сохранения, проверок |
21 | 11 | * Может быть пустой строкой, для таких файлов как хеш сумма |
22 | 12 | * Точка будет добавлена автоматически |
23 | 13 | */ |
24 | | - public const string EXT = 'png'; |
25 | | - /** |
26 | | - * Обвязка для получения по ключу, не менять!!! |
27 | | - */ |
28 | | - public const array TEXTURE_PATH = [ |
29 | | - 'SKIN' => self::SKIN_PATH, |
30 | | - 'CAPE' => self::CAPE_PATH, |
31 | | - ]; |
32 | | - public const bool LEGACY_DIGEST = false; // Включить при необходимости! Использовать на версии GravitLauncher меньше 5.5.x |
33 | | - /** |
34 | | - * Максимальный размер загружаемого файла |
35 | | - */ |
36 | | - public const int MAX_SIZE_BYTES = 2 * 1024 * 1024; // byte => Kbyte, Kbyte => MB * 2 |
37 | | - |
38 | | - public const array SIZE = [ |
39 | | - 'SKIN' => [['w' => 64, 'h' => 64], ['w' => 64, 'h' => 32]], |
40 | | - 'CAPE' => [['w' => 64, 'h' => 32]] |
41 | | - ]; |
42 | | - public const array SIZE_WITH_HD = [ |
43 | | - 'SKIN' => [ |
44 | | - ['w' => 128, 'h' => 64], ['w' => 128, 'h' => 128], |
45 | | - ['w' => 256, 'h' => 128], ['w' => 256, 'h' => 256], |
46 | | - ['w' => 512, 'h' => 256], ['w' => 512, 'h' => 512], |
47 | | - ['w' => 1024, 'h' => 512], ['w' => 1024, 'h' => 1024] |
48 | | - ], |
49 | | - 'CAPE' => [ |
50 | | - ['w' => 128, 'h' => 64], ['w' => 256, 'h' => 128], |
51 | | - ['w' => 512, 'h' => 256], ['w' => 1024, 'h' => 512] |
52 | | - ] |
53 | | - ]; |
54 | | - public const string SKIN_DEFAULT = "iVBORw0KGgoAAAANSUhEUgAAAEAAAAAgCAMAAACVQ462AAAAWlBMVEVHcEwsHg51Ri9qQC+HVTgjIyNO |
| 14 | + public const string TEXTURE_EXTENSTION = 'png'; |
| 15 | + /** Включить при необходимости! Использовать на версии GravitLauncher меньше 5.5.x */ |
| 16 | + protected const bool LEGACY_DIGEST = false; |
| 17 | + /** Максимальный размер загружаемого файла byte => Kbyte, Kbyte => MB * 2 */ |
| 18 | + protected const int MAX_SIZE_BYTES = 2 * 1024 * 1024; |
| 19 | + /** https://base64.guru/converter/encode/image */ |
| 20 | + protected const string SKIN_DEFAULT = "iVBORw0KGgoAAAANSUhEUgAAAEAAAAAgCAMAAACVQ462AAAAWlBMVEVHcEwsHg51Ri9qQC+HVTgjIyNO |
55 | 21 | LyK7inGrfWaWb1udZkj///9SPYmAUjaWX0FWScwoKCgAzMwAXl4AqKgAaGgwKHImIVtGOqU6MYkAf38AmpoAr68/Pz9ra2t3xPtNAA |
56 | 22 | AAAXRSTlMAQObYZgAAAZJJREFUeNrUzLUBwDAUA9EPMsmw/7jhNljl9Xdy0J3t5CndmcOBT4Mw8/8P4pfB6sNg9yA892wQvwzSIr8f |
57 | 23 | 5JRzSeS7AaiptpxazUq8GPQB5uSe2DH644GTsDFsNrqB9CcDgOCAmffegWWwAExnBrljqowsFBuGYShY5oakgOXs/39zF6voDG9r+w |
58 | 24 | LvTCVUcL+uV4m6uXG/L3Ut691697tgnZgJavinQHOB7DD8awmaLWEmaNuu7YGf6XcIITRm19P1ahbARCRGEc8x/UZ4CroXAQTVIGL0 |
59 | 25 | YySrREBADFGicS8XtG8CTS+IGU2F6EgSE34VNKoNz8348mzoXGDxpxkQBpg2bWobjgZSm+uiKDYH2BAO8C4YBmbgAjpq5jUl4yGJC4 |
60 | 26 | 6HQ7HJBfkeTAImIEmgmtpINi44JsHx+CKA/BTuArISXeBTR4AI5gK4C2JqRfPs0HNBkQnG8S4Yxw8IGoIZfXEBOW1D4YJDAdNSXgRe |
61 | 27 | vP+ylK6fGBCwsWywmA19EtBkJr8K2t4N5pnAVwH0jptsBp+2gUFj4tL5ywAAAABJRU5ErkJggg=="; |
62 | | - public const string CAPE_DEFAULT = "iVBORw0KGgoAAAANSUhEUgAAAEAAAAAgAQMAAACYU+zHAAAAA1BMVEVHcEyC+tLSAAAAAXRSTlMAQObY |
| 28 | + protected const string CAPE_DEFAULT = "iVBORw0KGgoAAAANSUhEUgAAAEAAAAAgAQMAAACYU+zHAAAAA1BMVEVHcEyC+tLSAAAAAXRSTlMAQObY |
63 | 29 | ZgAAAAxJREFUeAFjGAV4AQABIAABL3HDQQAAAABJRU5ErkJggg=="; |
| 30 | + /** @return array<array{w: int, h: int}> */ |
| 31 | + public static function SIZE(ResponseTypeEnum $type = ResponseTypeEnum::SKIN): array |
| 32 | + { |
| 33 | + return match ($type) { |
| 34 | + ResponseTypeEnum::SKIN => [['w' => 64, 'h' => 64], ['w' => 64, 'h' => 32]], |
| 35 | + ResponseTypeEnum::CAPE => [['w' => 64, 'h' => 32]], |
| 36 | + default => throw new \InvalidArgumentException(sprintf('Un-supported texture size type: %s', $type->name)) |
| 37 | + }; |
| 38 | + } |
| 39 | + /** @return array<array{w: int, h: int}> */ |
| 40 | + public static function SIZE_WITH_HD(ResponseTypeEnum $type = ResponseTypeEnum::SKIN): array |
| 41 | + { |
| 42 | + return match ($type) { |
| 43 | + ResponseTypeEnum::SKIN => [ |
| 44 | + ['w' => 128, 'h' => 64], ['w' => 128, 'h' => 128], |
| 45 | + ['w' => 256, 'h' => 128], ['w' => 256, 'h' => 256], |
| 46 | + ['w' => 512, 'h' => 256], ['w' => 512, 'h' => 512], |
| 47 | + ['w' => 1024, 'h' => 512], ['w' => 1024, 'h' => 1024] |
| 48 | + ], |
| 49 | + ResponseTypeEnum::CAPE => [ |
| 50 | + ['w' => 128, 'h' => 64], ['w' => 256, 'h' => 128], |
| 51 | + ['w' => 512, 'h' => 256], ['w' => 1024, 'h' => 512] |
| 52 | + ], |
| 53 | + default => throw new \InvalidArgumentException(sprintf('Un-supported texture size type: %s', $type->name)) |
| 54 | + }; |
| 55 | + } |
| 56 | + |
64 | 57 | } |
0 commit comments