From dabddc3f2b8cd305da67856f284018e76f1294f1 Mon Sep 17 00:00:00 2001 From: rainer Date: Fri, 22 Aug 2025 02:31:04 +0200 Subject: [PATCH] first commit --- LICENSE.txt | 21 + README.md | 111 +++++ init.lua | 691 ++++++++++++++++++++++++++ list.json | 349 +++++++++++++ locale/edit_skin.de.tr | 15 + locale/edit_skin.es.tr | 15 + locale/edit_skin.fr.tr | 13 + locale/edit_skin.ja.tr | 14 + locale/edit_skin.ru.tr | 14 + locale/edit_skin.uk.tr | 15 + locale/template.txt | 14 + media_credits.txt | 136 +++++ mod.conf | 8 + models/edit_skin_bottom.obj | 108 ++++ models/edit_skin_hand.obj | 42 ++ models/edit_skin_head.obj | 72 +++ models/edit_skin_top.obj | 174 +++++++ screenshot.png | Bin 0 -> 67269 bytes textures/edit_skin_arrow.png | Bin 0 -> 137 bytes textures/edit_skin_base_1.png | Bin 0 -> 1136 bytes textures/edit_skin_base_1_mask.png | Bin 0 -> 153 bytes textures/edit_skin_bottom_1.png | Bin 0 -> 375 bytes textures/edit_skin_bottom_1_mask.png | Bin 0 -> 142 bytes textures/edit_skin_bottom_2.png | Bin 0 -> 694 bytes textures/edit_skin_bottom_2_mask.png | Bin 0 -> 151 bytes textures/edit_skin_bottom_3.png | Bin 0 -> 604 bytes textures/edit_skin_bottom_3_mask.png | Bin 0 -> 137 bytes textures/edit_skin_bottom_4.png | Bin 0 -> 749 bytes textures/edit_skin_bottom_4_mask.png | Bin 0 -> 142 bytes textures/edit_skin_bottom_5.png | Bin 0 -> 891 bytes textures/edit_skin_bottom_5_mask.png | Bin 0 -> 183 bytes textures/edit_skin_bottom_6.png | Bin 0 -> 1064 bytes textures/edit_skin_bottom_6_mask.png | Bin 0 -> 142 bytes textures/edit_skin_button.png | Bin 0 -> 203 bytes textures/edit_skin_eye_1.png | Bin 0 -> 171 bytes textures/edit_skin_eye_2.png | Bin 0 -> 131 bytes textures/edit_skin_eye_3.png | Bin 0 -> 121 bytes textures/edit_skin_eye_4.png | Bin 0 -> 136 bytes textures/edit_skin_eye_5.png | Bin 0 -> 107 bytes textures/edit_skin_eye_6.png | Bin 0 -> 141 bytes textures/edit_skin_eye_7.png | Bin 0 -> 99 bytes textures/edit_skin_footwear_1.png | Bin 0 -> 927 bytes textures/edit_skin_footwear_2.png | Bin 0 -> 229 bytes textures/edit_skin_footwear_3.png | Bin 0 -> 331 bytes textures/edit_skin_footwear_4.png | Bin 0 -> 353 bytes textures/edit_skin_hair_1.png | Bin 0 -> 484 bytes textures/edit_skin_hair_10.png | Bin 0 -> 328 bytes textures/edit_skin_hair_10_mask.png | Bin 0 -> 170 bytes textures/edit_skin_hair_11.png | Bin 0 -> 454 bytes textures/edit_skin_hair_11_mask.png | Bin 0 -> 202 bytes textures/edit_skin_hair_12.png | Bin 0 -> 660 bytes textures/edit_skin_hair_12_mask.png | Bin 0 -> 121 bytes textures/edit_skin_hair_1_mask.png | Bin 0 -> 196 bytes textures/edit_skin_hair_2.png | Bin 0 -> 490 bytes textures/edit_skin_hair_2_mask.png | Bin 0 -> 169 bytes textures/edit_skin_hair_3.png | Bin 0 -> 445 bytes textures/edit_skin_hair_3_mask.png | Bin 0 -> 175 bytes textures/edit_skin_hair_4.png | Bin 0 -> 1097 bytes textures/edit_skin_hair_4_mask.png | Bin 0 -> 196 bytes textures/edit_skin_hair_5.png | Bin 0 -> 886 bytes textures/edit_skin_hair_5_mask.png | Bin 0 -> 282 bytes textures/edit_skin_hair_6.png | Bin 0 -> 535 bytes textures/edit_skin_hair_6_mask.png | Bin 0 -> 168 bytes textures/edit_skin_hair_7.png | Bin 0 -> 576 bytes textures/edit_skin_hair_7_mask.png | Bin 0 -> 195 bytes textures/edit_skin_hair_8.png | Bin 0 -> 582 bytes textures/edit_skin_hair_8_mask.png | Bin 0 -> 172 bytes textures/edit_skin_hair_9.png | Bin 0 -> 730 bytes textures/edit_skin_hair_9_mask.png | Bin 0 -> 243 bytes textures/edit_skin_headwear_1.png | Bin 0 -> 648 bytes textures/edit_skin_headwear_10.png | Bin 0 -> 517 bytes textures/edit_skin_headwear_11.png | Bin 0 -> 201 bytes textures/edit_skin_headwear_12.png | Bin 0 -> 332 bytes textures/edit_skin_headwear_2.png | Bin 0 -> 886 bytes textures/edit_skin_headwear_3.png | Bin 0 -> 120 bytes textures/edit_skin_headwear_4.png | Bin 0 -> 125 bytes textures/edit_skin_headwear_5.png | Bin 0 -> 120 bytes textures/edit_skin_headwear_6.png | Bin 0 -> 140 bytes textures/edit_skin_headwear_7.png | Bin 0 -> 291 bytes textures/edit_skin_headwear_8.png | Bin 0 -> 197 bytes textures/edit_skin_headwear_9.png | Bin 0 -> 297 bytes textures/edit_skin_icons.png | Bin 0 -> 439 bytes textures/edit_skin_mouth_1.png | Bin 0 -> 99 bytes textures/edit_skin_mouth_2.png | Bin 0 -> 122 bytes textures/edit_skin_mouth_3.png | Bin 0 -> 110 bytes textures/edit_skin_mouth_4.png | Bin 0 -> 129 bytes textures/edit_skin_mouth_5.png | Bin 0 -> 95 bytes textures/edit_skin_mouth_6.png | Bin 0 -> 99 bytes textures/edit_skin_mouth_7.png | Bin 0 -> 98 bytes textures/edit_skin_select_overlay.png | Bin 0 -> 178 bytes textures/edit_skin_top_1.png | Bin 0 -> 606 bytes textures/edit_skin_top_10.png | Bin 0 -> 392 bytes textures/edit_skin_top_10_mask.png | Bin 0 -> 154 bytes textures/edit_skin_top_11.png | Bin 0 -> 1112 bytes textures/edit_skin_top_11_mask.png | Bin 0 -> 139 bytes textures/edit_skin_top_12.png | Bin 0 -> 926 bytes textures/edit_skin_top_12_mask.png | Bin 0 -> 127 bytes textures/edit_skin_top_13.png | Bin 0 -> 885 bytes textures/edit_skin_top_14.png | Bin 0 -> 1060 bytes textures/edit_skin_top_14_mask.png | Bin 0 -> 166 bytes textures/edit_skin_top_15.png | Bin 0 -> 1370 bytes textures/edit_skin_top_15_mask.png | Bin 0 -> 194 bytes textures/edit_skin_top_16.png | Bin 0 -> 1103 bytes textures/edit_skin_top_16_mask.png | Bin 0 -> 188 bytes textures/edit_skin_top_17.png | Bin 0 -> 1227 bytes textures/edit_skin_top_17_mask.png | Bin 0 -> 174 bytes textures/edit_skin_top_18.png | Bin 0 -> 664 bytes textures/edit_skin_top_18_mask.png | Bin 0 -> 172 bytes textures/edit_skin_top_19.png | Bin 0 -> 1643 bytes textures/edit_skin_top_19_mask.png | Bin 0 -> 155 bytes textures/edit_skin_top_1_mask.png | Bin 0 -> 131 bytes textures/edit_skin_top_2.png | Bin 0 -> 568 bytes textures/edit_skin_top_2_mask.png | Bin 0 -> 146 bytes textures/edit_skin_top_3.png | Bin 0 -> 941 bytes textures/edit_skin_top_3_mask.png | Bin 0 -> 138 bytes textures/edit_skin_top_4.png | Bin 0 -> 1453 bytes textures/edit_skin_top_4_mask.png | Bin 0 -> 150 bytes textures/edit_skin_top_5.png | Bin 0 -> 1345 bytes textures/edit_skin_top_5_mask.png | Bin 0 -> 151 bytes textures/edit_skin_top_6.png | Bin 0 -> 683 bytes textures/edit_skin_top_6_mask.png | Bin 0 -> 161 bytes textures/edit_skin_top_7.png | Bin 0 -> 960 bytes textures/edit_skin_top_7_mask.png | Bin 0 -> 167 bytes textures/edit_skin_top_8.png | Bin 0 -> 625 bytes textures/edit_skin_top_8_mask.png | Bin 0 -> 130 bytes textures/edit_skin_top_9.png | Bin 0 -> 482 bytes textures/edit_skin_top_9_mask.png | Bin 0 -> 166 bytes 127 files changed, 1812 insertions(+) create mode 100644 LICENSE.txt create mode 100644 README.md create mode 100644 init.lua create mode 100644 list.json create mode 100644 locale/edit_skin.de.tr create mode 100644 locale/edit_skin.es.tr create mode 100644 locale/edit_skin.fr.tr create mode 100644 locale/edit_skin.ja.tr create mode 100644 locale/edit_skin.ru.tr create mode 100644 locale/edit_skin.uk.tr create mode 100644 locale/template.txt create mode 100644 media_credits.txt create mode 100644 mod.conf create mode 100644 models/edit_skin_bottom.obj create mode 100644 models/edit_skin_hand.obj create mode 100644 models/edit_skin_head.obj create mode 100644 models/edit_skin_top.obj create mode 100644 screenshot.png create mode 100644 textures/edit_skin_arrow.png create mode 100644 textures/edit_skin_base_1.png create mode 100644 textures/edit_skin_base_1_mask.png create mode 100644 textures/edit_skin_bottom_1.png create mode 100644 textures/edit_skin_bottom_1_mask.png create mode 100644 textures/edit_skin_bottom_2.png create mode 100644 textures/edit_skin_bottom_2_mask.png create mode 100644 textures/edit_skin_bottom_3.png create mode 100644 textures/edit_skin_bottom_3_mask.png create mode 100644 textures/edit_skin_bottom_4.png create mode 100644 textures/edit_skin_bottom_4_mask.png create mode 100644 textures/edit_skin_bottom_5.png create mode 100644 textures/edit_skin_bottom_5_mask.png create mode 100644 textures/edit_skin_bottom_6.png create mode 100644 textures/edit_skin_bottom_6_mask.png create mode 100644 textures/edit_skin_button.png create mode 100644 textures/edit_skin_eye_1.png create mode 100644 textures/edit_skin_eye_2.png create mode 100644 textures/edit_skin_eye_3.png create mode 100644 textures/edit_skin_eye_4.png create mode 100644 textures/edit_skin_eye_5.png create mode 100644 textures/edit_skin_eye_6.png create mode 100644 textures/edit_skin_eye_7.png create mode 100644 textures/edit_skin_footwear_1.png create mode 100644 textures/edit_skin_footwear_2.png create mode 100644 textures/edit_skin_footwear_3.png create mode 100644 textures/edit_skin_footwear_4.png create mode 100644 textures/edit_skin_hair_1.png create mode 100644 textures/edit_skin_hair_10.png create mode 100644 textures/edit_skin_hair_10_mask.png create mode 100644 textures/edit_skin_hair_11.png create mode 100644 textures/edit_skin_hair_11_mask.png create mode 100644 textures/edit_skin_hair_12.png create mode 100644 textures/edit_skin_hair_12_mask.png create mode 100644 textures/edit_skin_hair_1_mask.png create mode 100644 textures/edit_skin_hair_2.png create mode 100644 textures/edit_skin_hair_2_mask.png create mode 100644 textures/edit_skin_hair_3.png create mode 100644 textures/edit_skin_hair_3_mask.png create mode 100644 textures/edit_skin_hair_4.png create mode 100644 textures/edit_skin_hair_4_mask.png create mode 100644 textures/edit_skin_hair_5.png create mode 100644 textures/edit_skin_hair_5_mask.png create mode 100644 textures/edit_skin_hair_6.png create mode 100644 textures/edit_skin_hair_6_mask.png create mode 100644 textures/edit_skin_hair_7.png create mode 100644 textures/edit_skin_hair_7_mask.png create mode 100644 textures/edit_skin_hair_8.png create mode 100644 textures/edit_skin_hair_8_mask.png create mode 100644 textures/edit_skin_hair_9.png create mode 100644 textures/edit_skin_hair_9_mask.png create mode 100644 textures/edit_skin_headwear_1.png create mode 100644 textures/edit_skin_headwear_10.png create mode 100644 textures/edit_skin_headwear_11.png create mode 100644 textures/edit_skin_headwear_12.png create mode 100644 textures/edit_skin_headwear_2.png create mode 100644 textures/edit_skin_headwear_3.png create mode 100644 textures/edit_skin_headwear_4.png create mode 100644 textures/edit_skin_headwear_5.png create mode 100644 textures/edit_skin_headwear_6.png create mode 100644 textures/edit_skin_headwear_7.png create mode 100644 textures/edit_skin_headwear_8.png create mode 100644 textures/edit_skin_headwear_9.png create mode 100644 textures/edit_skin_icons.png create mode 100644 textures/edit_skin_mouth_1.png create mode 100644 textures/edit_skin_mouth_2.png create mode 100644 textures/edit_skin_mouth_3.png create mode 100644 textures/edit_skin_mouth_4.png create mode 100644 textures/edit_skin_mouth_5.png create mode 100644 textures/edit_skin_mouth_6.png create mode 100644 textures/edit_skin_mouth_7.png create mode 100644 textures/edit_skin_select_overlay.png create mode 100644 textures/edit_skin_top_1.png create mode 100644 textures/edit_skin_top_10.png create mode 100644 textures/edit_skin_top_10_mask.png create mode 100644 textures/edit_skin_top_11.png create mode 100644 textures/edit_skin_top_11_mask.png create mode 100644 textures/edit_skin_top_12.png create mode 100644 textures/edit_skin_top_12_mask.png create mode 100644 textures/edit_skin_top_13.png create mode 100644 textures/edit_skin_top_14.png create mode 100644 textures/edit_skin_top_14_mask.png create mode 100644 textures/edit_skin_top_15.png create mode 100644 textures/edit_skin_top_15_mask.png create mode 100644 textures/edit_skin_top_16.png create mode 100644 textures/edit_skin_top_16_mask.png create mode 100644 textures/edit_skin_top_17.png create mode 100644 textures/edit_skin_top_17_mask.png create mode 100644 textures/edit_skin_top_18.png create mode 100644 textures/edit_skin_top_18_mask.png create mode 100644 textures/edit_skin_top_19.png create mode 100644 textures/edit_skin_top_19_mask.png create mode 100644 textures/edit_skin_top_1_mask.png create mode 100644 textures/edit_skin_top_2.png create mode 100644 textures/edit_skin_top_2_mask.png create mode 100644 textures/edit_skin_top_3.png create mode 100644 textures/edit_skin_top_3_mask.png create mode 100644 textures/edit_skin_top_4.png create mode 100644 textures/edit_skin_top_4_mask.png create mode 100644 textures/edit_skin_top_5.png create mode 100644 textures/edit_skin_top_5_mask.png create mode 100644 textures/edit_skin_top_6.png create mode 100644 textures/edit_skin_top_6_mask.png create mode 100644 textures/edit_skin_top_7.png create mode 100644 textures/edit_skin_top_7_mask.png create mode 100644 textures/edit_skin_top_8.png create mode 100644 textures/edit_skin_top_8_mask.png create mode 100644 textures/edit_skin_top_9.png create mode 100644 textures/edit_skin_top_9_mask.png diff --git a/LICENSE.txt b/LICENSE.txt new file mode 100644 index 0000000..14ffbde --- /dev/null +++ b/LICENSE.txt @@ -0,0 +1,21 @@ +The MIT License (MIT) + +Copyright (c) 2022 MrRar + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in +all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +THE SOFTWARE. diff --git a/README.md b/README.md new file mode 100644 index 0000000..7887b32 --- /dev/null +++ b/README.md @@ -0,0 +1,111 @@ +# Edit Skin Mod +[![ContentDB](https://content.minetest.net/packages/Mr.%20Rar/edit_skin/shields/downloads/)](https://content.minetest.net/packages/Mr.%20Rar/edit_skin/) + +![screenshot](screenshot.png) + +This mod allows advanced skin customization. +New players get a randomly selected male or female skin. +It is compatible with sfinv, sfinv_buttons, i3, unified_inventory, inventory_plus, smart_inventory, and 3d_armor. +Use the /skin command to open the skin configuration screen. +This mod requires Minetest 5.5+ +This mod was originally made for MineClone 5. + +## License +Code under MIT license + +Author: MrRar + +See media_credits.txt for media licensing. + +## API + +### `edit_skin.register_item(item)` +Register a skin item. `item` is a table with item properties listed below. + +### Item properties +`type` +Set the item type. Valid values are: "base", "footwear", "eye", "mouth", "bottom", "top", "hair", "headwear" + +`texture` +Set to the image file that will be used. Transparent or semitransparnt parts of the texture can be colored by the `mask` texture. If this property is omitted "blank.png" is used. + +`mask` +Set the color mask texture. Coloring is only applied to non transparent areas of the texture. +Coloring only works for "base", "bottom, "top", and "hair". + +`preview_rotation` +A table containing properties `x` and `y`. `x` and `y` represent the x and y rotation of the item preview. + +`alex` +If set to true the item will be default for female character. + +`steve` +If set to true the item will be default for male character. + +`restricted_to_admin` +This item can only be selected by players with `edit_skin_admin` privilege. + +`for_player` +This property is used to restrict the item to a specific player or players. If set to a string, the string is a player name. If set to a table, the table is an array of player names. + +`rank` +This property is used to change the application order of the skin item when applied to a player. +The default ranks for each item type are: + +base: 10 + +footwear: 20 + +eye: 30 + +mouth: 40 + +bottom: 50 + +top: 60 + +hair: 70 + +headwear: 80 + +Lower ranks are applied to the player first and can thus be covered by higher rank items. + + +### `edit_skin.show_formspec(player)` +Show the skin configuration screen. +`player` is a player ObjectRef. + +### `edit_skin.register_on_set_skin(func)` +Register a function to be called whenever a player skin changes. +The function will be given a player ObjectRef as a parameter. + +### `edit_skin.save(player)` +Save player skin. `player` is a player ObjectRef. + +### `edit_skin.update_player_skin(player)` +Update a player based on skin data in edit_skin.players. +`player` is a player ObjectRef. + +### `edit_skin.base_color` +A table of ColorSpec integers that the player can select to color the base item. +These colors are separate from `edit_skin.color` because this mod registers a mesh hand node for each base and base color combination. The number of junk mesh hand nodes should be kept to a minimum. + +### `edit_skin.color` +A table of ColorSpec integers that the player can select to color colorable skin items. + +### `edit_skin.players` +A table mapped by player ObjectRef containing tables holding the player's selected skin items and colors. +Only stores skin information for logged in players. + +### `edit_skin.player_formspecs` +A table mapped by player ObjectRef containing tables holding player formspec state. The tables have the following properties: + +`active_tab` +Set to the name of the current active tab. + +`page_num` +Set to the current formspec page number. + +### `edit_skin.compile_skin(skin)` +`skin` is a table with skin item properties. +Returns an image string. diff --git a/init.lua b/init.lua new file mode 100644 index 0000000..e086697 --- /dev/null +++ b/init.lua @@ -0,0 +1,691 @@ +-- Edit Skin Mod + +local S = minetest.get_translator("edit_skin") +local color_to_string = minetest.colorspec_to_colorstring + +edit_skin = { + item_names = {"base", "footwear", "eye", "mouth", "bottom", "top", "hair", "headwear"}, + tab_names = {"template", "base", "headwear", "hair", "eye", "mouth", "top", "bottom", "footwear"}, + tab_descriptions = { + template = S("Templates"), + base = S("Bases"), + footwear = S("Footwears"), + eye = S("Eyes"), + mouth = S("Mouths"), + bottom = S("Bottoms"), + top = S("Tops"), + hair = S("Hairs"), + headwear = S("Headwears") + }, + steve = {}, -- Stores skin values for Steve skin + alex = {}, -- Stores skin values for Alex skin + base = {}, -- List of base textures + + -- Base color is separate to keep the number of junk nodes registered in check + base_color = {0xffeeb592, 0xffb47a57, 0xff8d471d}, + color = { + 0xff613915, -- 1 Dark brown Steve hair, Alex bottom + 0xff97491b, -- 2 Medium brown + 0xffb17050, -- 3 Light brown + 0xffe2bc7b, -- 4 Beige + 0xff706662, -- 5 Gray + 0xff151515, -- 6 Black + 0xffc21c1c, -- 7 Red + 0xff178c32, -- 8 Green Alex top + 0xffae2ad3, -- 9 Plum + 0xffebe8e4, -- 10 White + 0xffe3dd26, -- 11 Yellow + 0xff449acc, -- 12 Light blue Steve top + 0xff124d87, -- 13 Dark blue Steve bottom + 0xfffc0eb3, -- 14 Pink + 0xffd0672a, -- 15 Orange Alex hair + }, + footwear = {}, + mouth = {}, + eye = {}, + bottom = {}, + top = {}, + hair = {}, + headwear = {}, + masks = {}, + preview_rotations = {}, + ranks = {}, + player_skins = {}, + player_formspecs = {}, + restricted_to_player = {}, + restricted_to_admin = {}, +} + +minetest.register_privilege("edit_skin_admin", { + description = S("Allows access to restricted skin items."), + give_to_singleplayer = true, + give_to_admin = true, +}) + +function edit_skin.register_item(item) + assert(edit_skin[item.type], "Skin item type " .. item.type .. " does not exist.") + local texture = item.texture or "blank.png" + if item.steve then + edit_skin.steve[item.type] = texture + end + + if item.alex then + edit_skin.alex[item.type] = texture + end + + if item.restricted_to_admin then + edit_skin.restricted_to_admin[texture] = true + end + + if item.for_player then + edit_skin.restricted_to_player[texture] = {} + if type(item.for_player) == "string" then + edit_skin.restricted_to_player[texture][item.for_player] = true + else + for i, name in pairs(item.for_player) do + edit_skin.restricted_to_player[texture][name] = true + end + end + end + + table.insert(edit_skin[item.type], texture) + edit_skin.masks[texture] = item.mask + edit_skin.preview_rotations[texture] = item.preview_rotation + edit_skin.ranks[texture] = item.rank +end + +function edit_skin.save(player) + if not player:is_player() then return end + local skin = edit_skin.player_skins[player] + if not skin then return end + player:get_meta():set_string("edit_skin:skin", minetest.serialize(skin)) +end + +minetest.register_chatcommand("skin", { + description = S("Open skin configuration screen."), + privs = {}, + func = function(name, param) edit_skin.show_formspec(minetest.get_player_by_name(name)) end +}) + +function edit_skin.compile_skin(skin) + if not skin then return "blank.png" end + + local ranks = {} + local layers = {} + for i, item in ipairs(edit_skin.item_names) do + local texture = skin[item] + local layer = "" + local rank = edit_skin.ranks[texture] or i * 10 + if texture and texture ~= "blank.png" then + if skin[item .. "_color"] and edit_skin.masks[texture] then + local color = color_to_string(skin[item .. "_color"]) + layer = "(" .. edit_skin.masks[texture] .. "^[colorize:" .. color .. ":alpha)" + end + if #layer > 0 then layer = layer .. "^" end + layer = layer .. texture + layers[rank] = layer + table.insert(ranks, rank) + end + end + table.sort(ranks) + local output = "" + for i, rank in ipairs(ranks) do + if #output > 0 then output = output .. "^" end + output = output .. layers[rank] + end + return output +end + +function edit_skin.update_player_skin(player) + local output = edit_skin.compile_skin(edit_skin.player_skins[player]) + + player_api.set_texture(player, 1, output) + + -- Set player first person hand node + local base = edit_skin.player_skins[player].base + local base_color = edit_skin.player_skins[player].base_color + local node_id = base:gsub(".png$", "") .. color_to_string(base_color):gsub("#", "") + player:get_inventory():set_stack("hand", 1, "edit_skin:" .. node_id) + + for i = 1, #edit_skin.registered_on_set_skins do + edit_skin.registered_on_set_skins[i](player) + end + + local name = player:get_player_name() + if + minetest.global_exists("armor") and + armor.textures and armor.textures[name] + then + armor.textures[name].skin = output + armor.update_player_visuals(armor, player) + end + + if minetest.global_exists("i3") then i3.set_fs(player) end +end + +minetest.register_on_joinplayer(function(player) + local function table_get_random(t) + return t[math.random(#t)] + end + local skin = player:get_meta():get_string("edit_skin:skin") + if skin then + skin = minetest.deserialize(skin) + end + if skin then + edit_skin.player_skins[player] = skin + else + if math.random() > 0.5 then + skin = table.copy(edit_skin.steve) + else + skin = table.copy(edit_skin.alex) + end + edit_skin.player_skins[player] = skin + edit_skin.save(player) + end + + edit_skin.player_formspecs[player] = { + active_tab = "template", + page_num = 1, + has_admin_priv = minetest.check_player_privs(player, "edit_skin_admin"), + } + + player:get_inventory():set_size("hand", 1) + + edit_skin.update_player_skin(player) + + if minetest.global_exists("inventory_plus") and inventory_plus.register_button then + inventory_plus.register_button(player, "edit_skin", S("Edit Skin")) + end + + -- Needed for 3D Armor + sfinv + if minetest.global_exists("armor") then + minetest.after(0.01, function() + if player:is_player() then + edit_skin.update_player_skin(player) + end + end) + end +end) + +minetest.register_on_leaveplayer(function(player) + player:get_inventory():set_size("hand", 0) + edit_skin.player_skins[player] = nil + edit_skin.player_formspecs[player] = nil +end) + +minetest.register_on_shutdown(function() + for _, player in pairs(minetest.get_connected_players()) do + player:get_inventory():set_size("hand", 0) + end +end) + +edit_skin.registered_on_set_skins = {} + +function edit_skin.register_on_set_skin(func) + table.insert(edit_skin.registered_on_set_skins, func) +end + +function edit_skin.show_formspec(player) + local formspec_data = edit_skin.player_formspecs[player] + local has_admin_priv = minetest.check_player_privs(player, "edit_skin_admin") + if has_admin_priv ~= formspec_data.has_admin_priv then + formspec_data.has_admin_priv = has_admin_priv + for i, name in pairs(edit_skin.item_names) do + formspec_data[name] = nil + end + end + local active_tab = formspec_data.active_tab + local page_num = formspec_data.page_num + local skin = edit_skin.player_skins[player] + local formspec = "formspec_version[3]size[14.2,11]" + for i, tab in pairs(edit_skin.tab_names) do + if tab == active_tab then + formspec = formspec .. + "style[" .. tab .. ";bgcolor=green]" + end + + local y = 0.3 + (i - 1) * 0.8 + formspec = formspec .. + "style[" .. tab .. ";content_offset=16,0]" .. + "button[0.3," .. y .. ";4,0.8;" .. tab .. ";" .. edit_skin.tab_descriptions[tab] .. "]" .. + "image[0.4," .. y + 0.1 .. ";0.6,0.6;edit_skin_icons.png^[verticalframe:9:" .. i - 1 .. "]" + end + + local mesh = player:get_properties().mesh or "" + local textures = player_api.get_textures(player) + textures[2] = "blank.png" -- Clear out the armor + formspec = formspec .. + "model[11,0.3;3,7;player_mesh;" .. mesh .. ";" .. + table.concat(textures, ",") .. + ";0,180;false;true;0,0]" + + if active_tab == "template" then + formspec = formspec .. + "model[5,2;2,3;player_mesh;" .. mesh .. ";" .. + edit_skin.compile_skin(edit_skin.steve) .. + ",blank.png,blank.png;0,180;false;true;0,0]" .. + + "button[5,5.2;2,0.8;steve;" .. S("Select") .. "]" .. + + "model[7.5,2;2,3;player_mesh;" .. mesh .. ";" .. + edit_skin.compile_skin(edit_skin.alex) .. + ",blank.png,blank.png;0,180;false;true;0,0]" .. + + "button[7.5,5.2;2,0.8;alex;" .. S("Select") .. "]" + + else + formspec = formspec .. + "style_type[button,image_button;border=false;bgcolor=#00000000]" + + if not formspec_data[active_tab] then edit_skin.filter_active_tab(player) end + local textures = formspec_data[active_tab] + local page_start = (page_num - 1) * 16 + 1 + local page_end = math.min(page_start + 16 - 1, #textures) + + for j = page_start, page_end do + local i = j - page_start + 1 + local texture = textures[j] + local preview = edit_skin.masks[skin.base] .. "^[colorize:gray^" .. skin.base + local color = color_to_string(skin[active_tab .. "_color"]) + local mask = edit_skin.masks[texture] + if color and mask then + preview = preview .. "^(" .. mask .. "^[colorize:" .. color .. ":alpha)" + end + preview = preview .. "^" .. texture + + local mesh = "edit_skin_head.obj" + if active_tab == "top" then + mesh = "edit_skin_top.obj" + elseif active_tab == "bottom" or active_tab == "footwear" then + mesh = "edit_skin_bottom.obj" + end + + local rot_x = -10 + local rot_y = 20 + if edit_skin.preview_rotations[texture] then + rot_x = edit_skin.preview_rotations[texture].x + rot_y = edit_skin.preview_rotations[texture].y + end + + i = i - 1 + local x = 4.5 + i % 4 * 1.6 + local y = 0.3 + math.floor(i / 4) * 1.6 + formspec = formspec .. + "model[" .. x .. "," .. y .. + ";1.5,1.5;" .. mesh .. ";" .. mesh .. ";" .. + preview .. + ";" .. rot_x .. "," .. rot_y .. ";false;false;0,0]" + + if skin[active_tab] == texture then + formspec = formspec .. + "style[" .. texture .. + ";bgcolor=;bgimg=edit_skin_select_overlay.png;" .. + "bgimg_pressed=edit_skin_select_overlay.png;bgimg_middle=14,14]" + end + + formspec = formspec .. "button[" .. x .. "," .. y .. ";1.5,1.5;" .. texture .. ";]" + end + end + + if skin[active_tab .. "_color"] then + local colors = edit_skin.color + if active_tab == "base" then colors = edit_skin.base_color end + + local tab_color = active_tab .. "_color" + local selected_color = skin[tab_color] + for i, colorspec in pairs(colors) do + local color = color_to_string(colorspec) + i = i - 1 + local x = 4.6 + i % 6 * 0.9 + local y = 8 + math.floor(i / 6) * 0.9 + formspec = formspec .. + "image_button[" .. x .. "," .. y .. + ";0.8,0.8;blank.png^[noalpha^[colorize:" .. + color .. ":alpha;" .. colorspec .. ";]" + + if selected_color == colorspec then + formspec = formspec .. + "style[" .. color .. + ";bgcolor=;bgimg=edit_skin_select_overlay.png;bgimg_middle=14,14]" .. + "button[" .. x .. "," .. y .. ";0.8,0.8;" .. color .. ";]" + end + end + + if not (active_tab == "base") then + -- Bitwise Operations !?!?! + local red = math.floor(selected_color / 0x10000) - 0xff00 + local green = math.floor(selected_color / 0x100) - 0xff0000 - red * 0x100 + local blue = selected_color - 0xff000000 - red * 0x10000 - green * 0x100 + formspec = formspec .. + "container[10.2,8]" .. + "scrollbaroptions[min=0;max=255;smallstep=20]" .. + + "box[0.4,0;2.49,0.38;red]" .. + "label[0.2,0.2;-]" .. + "scrollbar[0.4,0;2.5,0.4;horizontal;red;" .. red .."]" .. + "label[2.9,0.2;+]" .. + + "box[0.4,0.6;2.49,0.38;green]" .. + "label[0.2,0.8;-]" .. + "scrollbar[0.4,0.6;2.5,0.4;horizontal;green;" .. green .."]" .. + "label[2.9,0.8;+]" .. + + "box[0.4,1.2;2.49,0.38;blue]" .. + "label[0.2,1.4;-]" .. + "scrollbar[0.4,1.2;2.5,0.4;horizontal;blue;" .. blue .. "]" .. + "label[2.9,1.4;+]" .. + + "container_end[]" + end + end + + local page_count = 1 + if edit_skin[active_tab] then + page_count = math.ceil(#formspec_data[active_tab] / 16) + end + + if page_num > 1 then + formspec = formspec .. + "image_button[4.5,6.7;1,1;edit_skin_arrow.png^[transformFX;previous_page;]" + end + + if page_num < page_count then + formspec = formspec .. + "image_button[9.8,6.7;1,1;edit_skin_arrow.png;next_page;]" + end + + if page_count > 1 then + formspec = formspec .. + "label[7.3,7.2;" .. page_num .. " / " .. page_count .. "]" + end + + minetest.show_formspec(player:get_player_name(), "edit_skin:edit_skin", formspec) +end + +function edit_skin.filter_active_tab(player) + local formspec_data = edit_skin.player_formspecs[player] + local active_tab = formspec_data.active_tab + local admin_priv = formspec_data.has_admin_priv + local name = player:get_player_name() + formspec_data[active_tab] = {} + local textures = formspec_data[active_tab] + for i, texture in pairs(edit_skin[active_tab]) do + if admin_priv or not edit_skin.restricted_to_admin[texture] then + local restriction = edit_skin.restricted_to_player[texture] + if restriction then + if restriction[name] then + table.insert(textures, texture) + end + else + table.insert(textures, texture) + end + end + end +end + +minetest.register_on_player_receive_fields(function(player, formname, fields) + if formname ~= "edit_skin:edit_skin" then return false end + + local formspec_data = edit_skin.player_formspecs[player] + local active_tab = formspec_data.active_tab + + -- Cancel formspec resend after scrollbar move + if formspec_data.form_send_job then + formspec_data.form_send_job:cancel() + end + + if fields.quit then + edit_skin.save(player) + return true + end + + if fields.alex then + edit_skin.player_skins[player] = table.copy(edit_skin.alex) + edit_skin.update_player_skin(player) + edit_skin.show_formspec(player) + return true + elseif fields.steve then + edit_skin.player_skins[player] = table.copy(edit_skin.steve) + edit_skin.update_player_skin(player) + edit_skin.show_formspec(player) + return true + end + + for i, tab in pairs(edit_skin.tab_names) do + if fields[tab] then + formspec_data.active_tab = tab + formspec_data.page_num = 1 + edit_skin.show_formspec(player) + return true + end + end + + local skin = edit_skin.player_skins[player] + if not skin then return true end + + if fields.next_page then + local page_num = formspec_data.page_num + page_num = page_num + 1 + local page_count = math.ceil(#formspec_data[active_tab] / 16) + if page_num > page_count then + page_num = page_count + end + formspec_data.page_num = page_num + edit_skin.show_formspec(player) + return true + elseif fields.previous_page then + local page_num = formspec_data.page_num + page_num = page_num - 1 + if page_num < 1 then page_num = 1 end + formspec_data.page_num = page_num + edit_skin.show_formspec(player) + return true + end + + if + skin[active_tab .. "_color"] and ( + fields.red and fields.red:find("^CHG") or + fields.green and fields.green:find("^CHG") or + fields.blue and fields.blue:find("^CHG") + ) + then + local red = fields.red:gsub("%a%a%a:", "") + local green = fields.green:gsub("%a%a%a:", "") + local blue = fields.blue:gsub("%a%a%a:", "") + red = tonumber(red) or 0 + green = tonumber(green) or 0 + blue = tonumber(blue) or 0 + + local color = 0xff000000 + red * 0x10000 + green * 0x100 + blue + if color >= 0 and color <= 0xffffffff then + -- We delay resedning the form because otherwise it will break dragging scrollbars + formspec_data.form_send_job = minetest.after(0.2, function() + if player and player:is_player() then + skin[active_tab .. "_color"] = color + edit_skin.update_player_skin(player) + edit_skin.show_formspec(player) + formspec_data.form_send_job = nil + end + end) + return true + end + end + + local field + for f, value in pairs(fields) do + if value == "" then + field = f + break + end + end + + -- See if field is a texture + if field and edit_skin[active_tab] then + for i, texture in pairs(formspec_data[active_tab]) do + if texture == field then + skin[active_tab] = texture + edit_skin.update_player_skin(player) + edit_skin.show_formspec(player) + return true + end + end + end + + -- See if field is a color + local number = tonumber(field) + if number and skin[active_tab .. "_color"] then + local color = math.floor(number) + if color and color >= 0 and color <= 0xffffffff then + skin[active_tab .. "_color"] = color + edit_skin.update_player_skin(player) + edit_skin.show_formspec(player) + return true + end + end + + return true +end) + +local function init() + local f = io.open(minetest.get_modpath("edit_skin") .. "/list.json") + assert(f, "Can't open the file list.json") + local data = f:read("*all") + assert(data, "Can't read data from list.json") + local json, error = minetest.parse_json(data) + assert(json, error) + f:close() + + for _, item in pairs(json) do + edit_skin.register_item(item) + end + edit_skin.steve.base_color = edit_skin.base_color[1] + edit_skin.steve.hair_color = edit_skin.color[1] + edit_skin.steve.top_color = edit_skin.color[12] + edit_skin.steve.bottom_color = edit_skin.color[13] + + edit_skin.alex.base_color = edit_skin.base_color[1] + edit_skin.alex.hair_color = edit_skin.color[15] + edit_skin.alex.top_color = edit_skin.color[8] + edit_skin.alex.bottom_color = edit_skin.color[1] + + -- Register junk first person hand nodes + local function make_texture(base, colorspec) + local output = "" + if edit_skin.masks[base] then + output = edit_skin.masks[base] .. + "^[colorize:" .. color_to_string(colorspec) .. ":alpha" + end + if #output > 0 then output = output .. "^" end + output = output .. base + return output + end + + for _, base in pairs(edit_skin.base) do + for _, base_color in pairs(edit_skin.base_color) do + local id = base:gsub(".png$", "") .. color_to_string(base_color):gsub("#", "") + minetest.register_node("edit_skin:" .. id, { + drawtype = "mesh", + groups = { not_in_creative_inventory = 1 }, + tiles = { make_texture(base, base_color) }, + use_texture_alpha = "clip", + mesh = "edit_skin_hand.obj", + }) + end + end + + minetest.after(0, function() + local hand_def = minetest.registered_items[""] + local range = hand_def and hand_def.range + for _, base in pairs(edit_skin.base) do + for _, base_color in pairs(edit_skin.base_color) do + local id = base:gsub(".png$", "") .. color_to_string(base_color):gsub("#", "") + minetest.override_item("edit_skin:" .. id, {range = range}) + end + end + end) + + if minetest.global_exists("i3_extrabuttons") then + i3_extrabuttons.new_tab("edit_skin", { + description = S("Erscheinungsbild"), + --image = "edit_skin_button.png", -- Icon covers label + access = function(player, data) return true end, + + formspec = function(player, data, fs) end, + + fields = function(player, data, fields) + i3.set_tab(player, "inventory") + edit_skin.show_formspec(player) + end, + }) + elseif minetest.global_exists("i3") then + i3.new_tab("edit_skin", { + description = S("Skin"), + --image = "edit_skin_button.png", -- Icon covers label + access = function(player, data) return true end, + + formspec = function(player, data, fs) end, + + fields = function(player, data, fields) + i3.set_tab(player, "inventory") + edit_skin.show_formspec(player) + end, + }) + end + if minetest.global_exists("sfinv_buttons") then + sfinv_buttons.register_button("edit_skin", { + title = S("Edit Skin"), + action = function(player) edit_skin.show_formspec(player) end, + tooltip = S("Open skin configuration screen."), + image = "edit_skin_button.png", + }) + elseif minetest.global_exists("sfinv") then + sfinv.register_page("edit_skin", { + title = S("Edit Skin"), + get = function(self, player, context) return "" end, + on_enter = function(self, player, context) + sfinv.contexts[player:get_player_name()].page = sfinv.get_homepage_name(player) + edit_skin.show_formspec(player) + end + }) + end + if minetest.global_exists("unified_inventory") then + unified_inventory.register_button("edit_skin", { + type = "image", + image = "edit_skin_button.png", + tooltip = S("Edit Skin"), + action = function(player) + edit_skin.show_formspec(player) + end, + }) + end + if minetest.global_exists("armor") and armor.get_player_skin then + armor.get_player_skin = function(armor, name) + return edit_skin.compile_skin(edit_skin.player_skins[minetest.get_player_by_name(name)]) + end + end + if minetest.global_exists("inventory_plus") then + minetest.register_on_player_receive_fields(function(player, formname, fields) + if formname == "" and fields.edit_skin then + edit_skin.show_formspec(player) + return true + end + return false + end) + end + if minetest.global_exists("smart_inventory") then + smart_inventory.register_page({ + name = "skin_edit", + icon = "edit_skin_button.png", + tooltip = S("Edit Skin"), + smartfs_callback = function(state) return end, + sequence = 100, + on_button_click = function(state) + local player = minetest.get_player_by_name(state.location.rootState.location.player) + edit_skin.show_formspec(player) + end, + is_visible_func = function(state) return true end, + }) + end +end + +init() diff --git a/list.json b/list.json new file mode 100644 index 0000000..a27222d --- /dev/null +++ b/list.json @@ -0,0 +1,349 @@ +[ + { + "type": "footwear", + "texture": "edit_skin_footwear_1.png", + "steve": true, + "alex": true, + "rank": 55 + }, + { + "type": "footwear", + "texture": "edit_skin_footwear_2.png" + }, + { + "type": "footwear", + "texture": "edit_skin_footwear_3.png" + }, + { + "type": "footwear", + "texture": "edit_skin_footwear_4.png", + "rank": 55 + }, + { + "type": "footwear" + }, + { + "type": "eye", + "texture": "edit_skin_eye_1.png" + }, + { + "type": "eye", + "texture": "edit_skin_eye_2.png" + }, + { + "type": "eye", + "texture": "edit_skin_eye_3.png" + }, + { + "type": "eye", + "texture": "edit_skin_eye_4.png" + }, + { + "type": "eye", + "texture": "edit_skin_eye_5.png", + "steve": true, + "alex": true + }, + { + "type": "eye", + "texture": "edit_skin_eye_6.png" + }, + { + "type": "eye", + "texture": "edit_skin_eye_7.png" + }, + { + "type": "mouth", + "texture": "edit_skin_mouth_1.png", + "steve": true + }, + { + "type": "mouth", + "texture": "edit_skin_mouth_2.png" + }, + { + "type": "mouth", + "texture": "edit_skin_mouth_3.png" + }, + { + "type": "mouth", + "texture": "edit_skin_mouth_4.png" + }, + { + "type": "mouth", + "texture": "edit_skin_mouth_5.png" + }, + { + "type": "mouth", + "texture": "edit_skin_mouth_6.png" + }, + { + "type": "mouth", + "texture": "edit_skin_mouth_7.png", + "alex": true + }, + { + "type": "mouth" + }, + { + "type": "hair", + "texture": "edit_skin_hair_1.png", + "mask": "edit_skin_hair_1_mask.png" + }, + { + "type": "hair", + "texture": "edit_skin_hair_2.png", + "mask": "edit_skin_hair_2_mask.png" + }, + { + "type": "hair", + "texture": "edit_skin_hair_3.png", + "mask": "edit_skin_hair_3_mask.png" + }, + { + "type": "hair", + "texture": "edit_skin_hair_4.png", + "mask": "edit_skin_hair_4_mask.png" + }, + { + "type": "hair", + "texture": "edit_skin_hair_5.png", + "mask": "edit_skin_hair_5_mask.png" + }, + { + "type": "hair", + "texture": "edit_skin_hair_6.png", + "mask": "edit_skin_hair_6_mask.png" + }, + { + "type": "hair", + "texture": "edit_skin_hair_7.png", + "mask": "edit_skin_hair_7_mask.png" + }, + { + "type": "hair", + "texture": "edit_skin_hair_8.png", + "mask": "edit_skin_hair_8_mask.png" + }, + { + "type": "hair", + "texture": "edit_skin_hair_9.png", + "mask": "edit_skin_hair_9_mask.png" + }, + { + "type": "hair", + "texture": "edit_skin_hair_10.png", + "mask": "edit_skin_hair_10_mask.png", + "steve": true + }, + { + "type": "hair", + "texture": "edit_skin_hair_11.png", + "mask": "edit_skin_hair_11_mask.png", + "alex": true + }, + { + "type": "hair", + "texture": "edit_skin_hair_12.png", + "mask": "edit_skin_hair_12_mask.png" + }, + { + "type": "hair" + }, + { + "type": "headwear", + "texture": "edit_skin_headwear_1.png" + }, + { + "type": "headwear", + "texture": "edit_skin_headwear_2.png" + }, + { + "type": "headwear", + "texture": "edit_skin_headwear_3.png" + }, + { + "type": "headwear", + "texture": "edit_skin_headwear_4.png" + }, + { + "type": "headwear", + "texture": "edit_skin_headwear_5.png" + }, + { + "type": "headwear", + "texture": "edit_skin_headwear_6.png", + "preview_rotation": { + "x": -10, + "y": 200 + } + }, + { + "type": "headwear", + "texture": "edit_skin_headwear_7.png" + }, + { + "type": "headwear", + "texture": "edit_skin_headwear_8.png", + "restricted_to_admin": true + }, + { + "type": "headwear", + "texture": "edit_skin_headwear_9.png" + }, + { + "type": "headwear", + "texture": "edit_skin_headwear_10.png" + }, + { + "type": "headwear", + "texture": "edit_skin_headwear_11.png" + }, + { + "type": "headwear", + "texture": "edit_skin_headwear_12.png" + }, + { + "type": "headwear", + "steve": true, + "alex": true + }, + { + "type": "bottom", + "texture": "edit_skin_bottom_1.png", + "mask": "edit_skin_bottom_1_mask.png" + }, + { + "type": "bottom", + "texture": "edit_skin_bottom_2.png", + "mask": "edit_skin_bottom_2_mask.png" + }, + { + "type": "bottom", + "texture": "edit_skin_bottom_3.png", + "mask": "edit_skin_bottom_3_mask.png" + }, + { + "type": "bottom", + "texture": "edit_skin_bottom_4.png", + "mask": "edit_skin_bottom_4_mask.png", + "steve": true, + "alex": true + }, + { + "type": "bottom", + "texture": "edit_skin_bottom_5.png", + "mask": "edit_skin_bottom_5_mask.png", + "rank": 65 + }, + { + "type": "bottom", + "texture": "edit_skin_bottom_6.png", + "mask": "edit_skin_bottom_6_mask.png" + }, + { + "type": "top", + "texture": "edit_skin_top_1.png", + "mask": "edit_skin_top_1_mask.png" + }, + { + "type": "top", + "texture": "edit_skin_top_2.png", + "mask": "edit_skin_top_2_mask.png" + }, + { + "type": "top", + "texture": "edit_skin_top_3.png", + "mask": "edit_skin_top_3_mask.png" + }, + { + "type": "top", + "texture": "edit_skin_top_4.png", + "mask": "edit_skin_top_4_mask.png" + }, + { + "type": "top", + "texture": "edit_skin_top_5.png", + "mask": "edit_skin_top_5_mask.png" + }, + { + "type": "top", + "texture": "edit_skin_top_6.png", + "mask": "edit_skin_top_6_mask.png" + }, + { + "type": "top", + "texture": "edit_skin_top_7.png", + "mask": "edit_skin_top_7_mask.png" + }, + { + "type": "top", + "texture": "edit_skin_top_8.png", + "mask": "edit_skin_top_8_mask.png" + }, + { + "type": "top", + "texture": "edit_skin_top_9.png", + "mask": "edit_skin_top_9_mask.png", + "alex": true + }, + { + "type": "top", + "texture": "edit_skin_top_10.png", + "mask": "edit_skin_top_10_mask.png", + "steve": true + }, + { + "type": "top", + "texture": "edit_skin_top_11.png", + "mask": "edit_skin_top_11_mask.png" + }, + { + "type": "top", + "texture": "edit_skin_top_12.png", + "mask": "edit_skin_top_12_mask.png" + }, + { + "type": "top", + "texture": "edit_skin_top_13.png", + "mask": "edit_skin_top_12_mask.png" + }, + { + "type": "top", + "texture": "edit_skin_top_14.png", + "mask": "edit_skin_top_14_mask.png" + }, + { + "type": "top", + "texture": "edit_skin_top_15.png", + "mask": "edit_skin_top_15_mask.png", + "rank": 85 + }, + { + "type": "top", + "texture": "edit_skin_top_16.png", + "mask": "edit_skin_top_16_mask.png" + }, + { + "type": "top", + "texture": "edit_skin_top_17.png", + "mask": "edit_skin_top_17_mask.png" + }, + { + "type": "top", + "texture": "edit_skin_top_18.png", + "mask": "edit_skin_top_18_mask.png" + }, + { + "type": "top", + "texture": "edit_skin_top_19.png", + "mask": "edit_skin_top_19_mask.png" + }, + { + "type": "base", + "texture": "edit_skin_base_1.png", + "mask": "edit_skin_base_1_mask.png", + "steve": true, + "alex": true + } +] diff --git a/locale/edit_skin.de.tr b/locale/edit_skin.de.tr new file mode 100644 index 0000000..9d1d4fa --- /dev/null +++ b/locale/edit_skin.de.tr @@ -0,0 +1,15 @@ +# textdomain: edit_skin +Edit Skin=Skins +Advanced player skin customization=Erweiterte Anpassung des Spieler-Skins +Templates=Vorlage +Bases=Hauttyp +Footwears=Schuhe +Eyes=Augen +Mouths=Mund +Bottoms=Hose +Tops=Oberteil +Hairs=Haare +Headwears=Hüte +Open skin configuration screen.=Öffnet den Skin-Editor. +Allows access to restricted skin items.=Erlaube Zugriff auf gesperrte Skin-Eigenschaften. +Select=Auswählen diff --git a/locale/edit_skin.es.tr b/locale/edit_skin.es.tr new file mode 100644 index 0000000..ba12ae2 --- /dev/null +++ b/locale/edit_skin.es.tr @@ -0,0 +1,15 @@ +# textdomain: edit_skin +Edit Skin=Modificar apariencia +Templates=Modelos +Arm size=Brazos +Bases=Piel +Footwears=Calzado +Eyes=Ojos +Mouths=Boca +Bottoms=Piernas +Tops=Torso +Hairs=Pelo +Headwears=Cabeza +Open skin configuration screen.=Abrir configuración de apariencia. +Allows access to restricted skin items.=Permite acceder a elementos restringidos. +Select=Seleccionar diff --git a/locale/edit_skin.fr.tr b/locale/edit_skin.fr.tr new file mode 100644 index 0000000..c6e2768 --- /dev/null +++ b/locale/edit_skin.fr.tr @@ -0,0 +1,13 @@ +# textdomain: edit_skin +Templates=Modèles +Arm size=Taille des bras +Bases=Teint +Footwears=Chaussures +Eyes=Yeux +Mouths=Bouches +Bottoms=Bas +Tops=Haut +Hairs=Cheveux +Headwears=Coiffe +Open skin configuration screen.=Ouvrir l'écran de configuration du costume. +Select=Sélectionner \ No newline at end of file diff --git a/locale/edit_skin.ja.tr b/locale/edit_skin.ja.tr new file mode 100644 index 0000000..9b15be2 --- /dev/null +++ b/locale/edit_skin.ja.tr @@ -0,0 +1,14 @@ +# textdomain: edit_skin +Skins=スキン +Templates=テンプレート +Arm size=腕の大きさ +Bases=ベース +Footwears=靴 +Eyes=目 +Mouths=口 +Bottoms=下衣 +Tops=上衣 +Hairs=髪 +Headwears=帽子 +Open skin configuration screen.=スキン設定画面を開きます。 +Select=選択 diff --git a/locale/edit_skin.ru.tr b/locale/edit_skin.ru.tr new file mode 100644 index 0000000..d51c85a --- /dev/null +++ b/locale/edit_skin.ru.tr @@ -0,0 +1,14 @@ +# textdomain: edit_skin +Edit Skin=Ред. скин +Templates=Шаблоны +Bases=Основы +Footwears=Обувь +Eyes=Глаза +Mouths=Рот +Bottoms=Нижние части +Tops=Верхние части +Hairs=Волосы +Headwears=Голвные уборы +Open skin configuration screen.=Открыть окно настройки скина. +Allows access to restricted skin items.=Открывает доступ к ограниченным вариантам кожи. +Select=Выбрать diff --git a/locale/edit_skin.uk.tr b/locale/edit_skin.uk.tr new file mode 100644 index 0000000..e166460 --- /dev/null +++ b/locale/edit_skin.uk.tr @@ -0,0 +1,15 @@ +# textdomain: edit_skin +Edit Skin=Редактор Персонажа +Advanced player skin customization=Просунуте налаштування зовнішнього вигляду гравця +Templates=Шаблони +Bases=Основи +Footwears=Взуття +Eyes=Очі +Mouths=Роти +Bottoms=Нижня частина +Tops=Верхня частина +Hairs=Волосся +Headwears=Головний убір +Open skin configuration screen.=Відкрити вікно редагування персонажа. +Allows access to restricted skin items.=Відкриває доступ до заборонених предметів персонажа. +Select=Обрати diff --git a/locale/template.txt b/locale/template.txt new file mode 100644 index 0000000..9009b92 --- /dev/null +++ b/locale/template.txt @@ -0,0 +1,14 @@ +# textdomain: edit_skin +Edit Skin= +Templates= +Bases= +Footwears= +Eyes= +Mouths= +Bottoms= +Tops= +Hairs= +Headwears= +Open skin configuration screen.= +Allows access to restricted skin items.= +Select= diff --git a/media_credits.txt b/media_credits.txt new file mode 100644 index 0000000..86ea548 --- /dev/null +++ b/media_credits.txt @@ -0,0 +1,136 @@ +edit_skin_base_1.png +edit_skin_button.png +edit_skin_footwear_3.png +edit_skin_headwear_1.png +edit_skin_headwear_3.png +edit_skin_headwear_4.png +edit_skin_headwear_5.png +edit_skin_headwear_8.png +edit_skin_headwear_9.png +edit_skin_headwear_10.png +edit_skin_headwear_11.png +edit_skin_headwear_12.png +edit_skin_mouth_2.png +edit_skin_mouth_3.png +edit_skin_mouth_4.png +edit_skin_mouth_5.png +edit_skin_select_overlay.png +edit_skin_top_2.png +edit_skin_top_5.png +edit_skin_eye_5.png +edit_skin_hair_8.png +edit_skin_top_6.png +edit_skin_bottom_3.png +edit_skin_eye_7.png +edit_skin_mouth_7.png +edit_skin_hair_6.png +edit_skin_eye_6.png +edit_skin_top_11.png +edit_skin_top_12.png +edit_skin_top_13.png +edit_skin_top_14.png +edit_skin_top_15.png +edit_skin_bottom_5.png +edit_skin_hair_12.png +edit_skin_top_16.png +edit_skin_top_17.png +edit_skin_icons.png +edit_skin_footwear_4.png +Original work by MrRar +License: CC BY-SA 4.0 + +edit_skin_top_1.png +edit_skin_mouth_1.png +edit_skin_hair_1.png +edit_skin_hair_2.png +edit_skin_eye_1.png +edit_skin_eye_2.png +edit_skin_footwear_1.png +edit_skin_headwear_2.png +edit_skin_mouth_1.png +edit_skin_top_1.png +edit_skin_mouth_2.png +Name: Pixel Perfection resource pack for Minecraft 1.11 +Author: XSSheep. Adapted for edit_skin by MrRar. +License: CC BY-SA 4.0 +Source: https://www.planetminecraft.com/texture_pack/131pixel-perfection/ + +edit_skin_hair_3.png +edit_skin_eye_3.png +edit_skin_footwear_2.png +Name: the 10the doctor +Author: lovehart. Adapted for edit_skin by MrRar. +License: CC BY-SA 3.0 +Source: http://minetest.fensta.bplaced.net/#!page:1,filtertype:Id,filter:367 + +edit_skin_hair_4.png +Blonde Girl +Author: Rin. Adapted for edit_skin by MrRar. +License: CC BY-SA 3.0 +Source: http://minetest.fensta.bplaced.net/#id=918 + +edit_skin_hair_5.png +Name: hobbit from lottmob +Author: lovehart. Adapted for edit_skin by MrRar. +License: CC BY-SA 3.0 +Source: http://minetest.fensta.bplaced.net/#id=336 + +edit_skin_top_4.png +Name: Oliver_MV +Author: hansuke123. Adapted for edit_skin by MrRar. +License: CC BY-SA 3.0 +Source: http://minetest.fensta.bplaced.net/#!page:1,filtertype:Id,filter:291 + +edit_skin_eye_4.png +Name: lisa +Author: hansuke123 +License: CC BY-SA 3.0 +Source: http://minetest.fensta.bplaced.net/#!page:1,filtertype:Id,filter:88 + +edit_skin_headwear_7.png +Name: Ryu +Author: Ginsu23. Adapted for edit_skin by MrRar. +License: CC BY-SA 3.0 +Source: http://minetest.fensta.bplaced.net/#id=464 + +edit_skin_top_8.png +Name: Hoodie Enderman +Author: Kpenguin. Adapted for edit_skin by MrRar. +License: CC BY-SA 3.0 +Source: http://minetest.fensta.bplaced.net/#id=962 + +edit_skin_hair_9.png +Name: Trader 1 +Author: TenPlus1. Adapted for edit_skin by MrRar. +License: CC BY-SA 3.0 +Source: http://minetest.fensta.bplaced.net/#id=1258 + +edit_skin_bottom_4.png +edit_skin_top_9.png +edit_skin_top_10.png +edit_skin_hair_10.png +edit_skin_hair_11.png +Name: Pixel Perfection Legacy 1.19 +Author: Nova_Wostra. Adapted for edit_skin by MrRar. +License: CC BY-SA 4.0 +Source: https://www.planetminecraft.com/texture-pack/pixel-perfection-chorus-edit/ + +edit_skin_bottom.obj +edit_skin_head.obj +edit_skin_top.obj +Name: character.blend in player_api mod from Minetest Game +Author: celeron55, MirceaKitsune, Jordach, kilbith, sofar, xunto, Rogier-5, TeTpaAka, Desour, stujones11, An0n3m0us. Adapted for mcl_skins by MrRar. +License: CC BY-SA 3.0 +Source: https://github.com/minetest/minetest_game + +edit_skin_hand.obj +Name: Newhand Mod +Author: jordan4ibanez. Adapted for edit_skin by MrRar. +License: CC BY-SA 3.0 +Source: https://forum.minetest.net/viewtopic.php?t=16435 + +edit_skin_top_18.png +Name: Duke v1 +Author: Rael BlackRabbit. Adapted for edit_skin by MrRar. +License: CC BY-SA 4.0 +Source: http://minetest.fensta.bplaced.net/#name=Duke%20v1 diff --git a/mod.conf b/mod.conf new file mode 100644 index 0000000..a763c6a --- /dev/null +++ b/mod.conf @@ -0,0 +1,8 @@ +name = edit_skin +author = Mr. Rar +description = Advanced player skin customization +depends = player_api +min_minetest_version = 5.5 +optional_depends = i3,i3_extrabuttons,sfinv,sfinv_buttons,unified_inventory,inventory_plus,smart_inventory,creative +release = 30155 +title = Edit Skin diff --git a/models/edit_skin_bottom.obj b/models/edit_skin_bottom.obj new file mode 100644 index 0000000..bc12779 --- /dev/null +++ b/models/edit_skin_bottom.obj @@ -0,0 +1,108 @@ +# Blender v2.93.5 OBJ File: '' +# www.blender.org +mtllib bottom.mtl +o bottom +v -2.100000 4.358421 1.050001 +v -2.100000 1.648314 1.049999 +v 2.100000 1.648314 1.049999 +v 2.100000 4.358421 1.050001 +v -2.100000 1.648314 -1.050001 +v -2.100000 4.358421 -1.049998 +v 2.100000 1.648314 -1.050001 +v 2.100000 4.358421 -1.049998 +v 0.000000 1.648314 -1.050001 +v 0.000000 -4.651686 -1.050003 +v 0.000000 -4.651686 1.049997 +v 0.000000 1.648314 1.049999 +v 0.000000 -4.651686 -1.050003 +v 0.000000 -4.651686 1.049997 +v -2.100000 -4.651685 1.049997 +v -2.100000 -4.651685 -1.050003 +v -2.100000 1.648315 1.049999 +v -2.100000 1.648315 -1.050001 +v 0.000000 1.648314 1.049999 +v 2.100000 1.648315 -1.050001 +v 2.100000 -4.651685 -1.050003 +v 0.000000 1.648314 -1.050001 +v 2.100000 -4.651685 1.049997 +v 2.100000 1.648315 1.049999 +vt 0.500000 0.161316 +vt 0.500000 0.000000 +vt 0.625000 0.000000 +vt 0.625000 0.161316 +vt 0.437500 0.000000 +vt 0.437500 0.161316 +vt 0.312500 0.000000 +vt 0.312500 0.161316 +vt 0.562500 0.375000 +vt 0.562500 0.500000 +vt 0.437500 0.500000 +vt 0.437500 0.375000 +vt 0.125000 0.375000 +vt 0.125000 0.000000 +vt 0.187500 0.000000 +vt 0.187500 0.375000 +vt 0.187500 0.375000 +vt 0.187500 0.500000 +vt 0.125000 0.500000 +vt 0.125000 0.375000 +vt 0.000000 0.375000 +vt 0.062500 0.375000 +vt 0.062500 0.000000 +vt 0.000000 0.000000 +vt 0.187500 0.375000 +vt 0.250000 0.375000 +vt 0.250000 0.000000 +vt 0.187500 0.000000 +vt 0.062500 0.375000 +vt 0.062500 0.000000 +vt 0.125000 0.375000 +vt 0.125000 0.000000 +vt 0.250000 0.000000 +vt 0.250000 0.375000 +vt 0.000000 0.375000 +vt 0.000000 0.000000 +vt 0.250000 0.161316 +vt 0.250000 0.000000 +vt 0.125000 0.375000 +vt 0.125000 0.500000 +vt 0.062500 0.500000 +vt 0.062500 0.375000 +vt 0.187500 0.375000 +vt 0.125000 0.375000 +vt 0.125000 0.500000 +vt 0.187500 0.500000 +vt 0.125000 0.375000 +vt 0.062500 0.375000 +vt 0.062500 0.500000 +vt 0.125000 0.500000 +vt 0.000000 1.000000 +vt 0.000000 1.000000 +vt 0.000000 1.000000 +vt 0.000000 1.000000 +vn 0.0000 -0.0000 1.0000 +vn -1.0000 -0.0000 0.0000 +vn 0.0000 0.0000 -1.0000 +vn 0.0000 -1.0000 -0.0000 +vn 1.0000 0.0000 0.0000 +vn 0.0000 1.0000 0.0000 +usemtl Character +s 1 +f 1/1/1 2/2/1 3/3/1 4/4/1 +f 5/5/2 2/2/2 1/1/2 6/6/2 +f 7/7/3 5/5/3 6/6/3 8/8/3 +f 7/9/4 3/10/4 2/11/4 5/12/4 +f 9/13/2 10/14/2 11/15/2 12/16/2 +f 13/17/4 14/18/4 15/19/4 16/20/4 +f 17/21/2 18/22/2 16/23/2 15/24/2 +f 19/25/1 17/26/1 15/27/1 14/28/1 +f 20/29/3 21/30/3 10/14/3 9/13/3 +f 18/22/3 22/31/3 13/32/3 16/23/3 +f 12/16/1 11/15/1 23/33/1 24/34/1 +f 22/31/5 19/25/5 14/28/5 13/32/5 +f 24/35/5 23/36/5 21/30/5 20/29/5 +f 4/37/5 3/38/5 7/7/5 8/8/5 +f 18/39/6 17/40/6 19/41/6 22/42/6 +f 10/43/4 21/44/4 23/45/4 11/46/4 +f 20/47/6 9/48/6 12/49/6 24/50/6 +f 4/51/6 8/52/6 6/53/6 1/54/6 diff --git a/models/edit_skin_hand.obj b/models/edit_skin_hand.obj new file mode 100644 index 0000000..a72089c --- /dev/null +++ b/models/edit_skin_hand.obj @@ -0,0 +1,42 @@ +# Blender v2.93.5 OBJ File: '' +# www.blender.org +mtllib edit_skin_hand.mtl +o Player_Cube +v -0.297523 0.244203 -0.255826 +v 0.194758 0.166759 -0.215068 +v 0.147194 0.125461 0.280948 +v -0.345088 0.202905 0.240190 +v -0.545452 -1.417096 -0.417921 +v -0.053170 -1.494540 -0.377162 +v -0.100734 -1.535838 0.118854 +v -0.593016 -1.458394 0.078095 +vt 0.750000 0.375000 +vt 0.812500 0.375000 +vt 0.812500 0.500000 +vt 0.750000 0.500000 +vt 0.687500 0.375000 +vt 0.750000 0.375000 +vt 0.750000 0.500000 +vt 0.687500 0.500000 +vt 0.625000 0.375000 +vt 0.625000 0.000000 +vt 0.687500 0.000000 +vt 0.750000 0.000000 +vt 0.812500 0.000000 +vt 0.812500 0.375000 +vt 0.875000 0.000000 +vt 0.875000 0.375000 +vn 0.1469 0.9845 0.0961 +vn -0.1469 -0.9845 -0.0961 +vn -0.0951 -0.0826 0.9920 +vn -0.9846 0.1549 -0.0815 +vn 0.0951 0.0826 -0.9920 +vn 0.9846 -0.1549 0.0815 +usemtl Character +s off +f 1/1/1 4/2/1 3/3/1 2/4/1 +f 8/5/2 5/6/2 6/7/2 7/8/2 +f 7/9/3 3/10/3 4/11/3 8/5/3 +f 8/5/4 4/11/4 1/12/4 5/6/4 +f 5/6/5 1/12/5 2/13/5 6/14/5 +f 6/14/6 2/13/6 3/15/6 7/16/6 diff --git a/models/edit_skin_head.obj b/models/edit_skin_head.obj new file mode 100644 index 0000000..226a0d9 --- /dev/null +++ b/models/edit_skin_head.obj @@ -0,0 +1,72 @@ +# Blender v2.93.5 OBJ File: '' +# www.blender.org +mtllib head.mtl +o head +v -2.100000 -2.100004 2.099999 +v 2.100000 2.099997 -2.100001 +v 2.100000 2.099997 2.099999 +v 2.300000 -2.300003 -2.300001 +v 2.300000 2.299997 2.299999 +v 2.100000 -2.100004 2.099999 +v 2.100000 -2.100004 -2.100001 +v -2.100000 2.099997 2.099999 +v -2.100000 2.099997 -2.100001 +v -2.100000 -2.100004 -2.100001 +v 2.300000 2.299997 -2.300001 +v 2.300000 -2.300003 2.299999 +v -2.300000 2.299997 2.299999 +v -2.300000 -2.300003 2.299999 +v -2.300000 2.299997 -2.300001 +v -2.300000 -2.300003 -2.300001 +vt 0.500000 0.750000 +vt 0.375000 0.750000 +vt 0.375000 0.500000 +vt 0.500000 0.500000 +vt 0.250000 0.750000 +vt 0.250000 0.500000 +vt 0.125000 0.750000 +vt 0.125000 0.500000 +vt 0.375000 0.750000 +vt 0.375000 1.000000 +vt 0.250000 1.000000 +vt 0.250000 0.750000 +vt 0.250000 1.000000 +vt 0.125000 1.000000 +vt 0.000000 0.750000 +vt 0.000000 0.500000 +vt 1.000000 0.750000 +vt 0.875000 0.750000 +vt 0.875000 0.500000 +vt 1.000000 0.500000 +vt 0.750000 0.750000 +vt 0.750000 0.500000 +vt 0.625000 0.750000 +vt 0.625000 0.500000 +vt 0.875000 0.750000 +vt 0.875000 1.000000 +vt 0.750000 1.000000 +vt 0.750000 0.750000 +vt 0.750000 1.000000 +vt 0.625000 1.000000 +vt 0.500000 0.750000 +vt 0.500000 0.500000 +vn 0.0000 0.0000 1.0000 +vn -1.0000 0.0000 0.0000 +vn 0.0000 0.0000 -1.0000 +vn 0.0000 -1.0000 0.0000 +vn 0.0000 1.0000 0.0000 +vn 1.0000 0.0000 0.0000 +usemtl Character +s off +f 3/1/1 8/2/1 1/3/1 6/4/1 +f 8/2/2 9/5/2 10/6/2 1/3/2 +f 9/5/3 2/7/3 7/8/3 10/6/3 +f 7/9/4 6/10/4 1/11/4 10/12/4 +f 9/5/5 8/13/5 3/14/5 2/7/5 +f 3/15/6 6/16/6 7/8/6 2/7/6 +f 5/17/1 13/18/1 14/19/1 12/20/1 +f 13/18/2 15/21/2 16/22/2 14/19/2 +f 15/21/3 11/23/3 4/24/3 16/22/3 +f 4/25/4 12/26/4 14/27/4 16/28/4 +f 15/21/5 13/29/5 5/30/5 11/23/5 +f 5/31/6 12/32/6 4/24/6 11/23/6 diff --git a/models/edit_skin_top.obj b/models/edit_skin_top.obj new file mode 100644 index 0000000..845c701 --- /dev/null +++ b/models/edit_skin_top.obj @@ -0,0 +1,174 @@ +# Blender v2.93.5 OBJ File: '' +# www.blender.org +mtllib top.mtl +o top +v -2.100000 -3.149994 1.049999 +v -2.100000 -3.149994 -1.050001 +v -2.100000 3.150004 1.049999 +v -2.100000 3.150004 -1.050001 +v -4.200000 3.150003 -1.050001 +v -4.200000 3.150003 1.049999 +v -2.100000 3.150003 1.049999 +v -2.100000 3.150003 -1.050001 +v -4.200000 -3.149994 -1.050001 +v -4.200000 -3.149994 1.049999 +v -2.100000 -3.149994 1.049999 +v -2.100000 -3.149994 -1.050001 +v 2.100000 -3.149994 -1.050001 +v 2.100000 -3.149994 1.049999 +v 2.100000 3.150004 -1.050001 +v 2.100000 3.150004 1.049999 +v 2.100000 -3.149994 -1.050001 +v 2.100000 -3.149994 1.049999 +v 4.200000 -3.149994 1.049999 +v 4.200000 -3.149994 -1.050001 +v 2.100000 3.150003 -1.050001 +v 2.100000 3.150003 1.049999 +v 4.200000 3.150003 1.049999 +v 4.200000 3.150003 -1.050001 +v 2.100000 3.150004 -1.050001 +v 2.100000 3.150004 -1.050001 +v 2.100000 3.150004 1.049999 +v 2.100000 3.150004 1.049999 +v 2.100000 -3.149994 1.049999 +v 2.100000 -3.149994 1.049999 +v 2.100000 -3.149994 -1.050001 +v 2.100000 -3.149994 -1.050001 +v -2.100000 3.150004 1.049999 +v -2.100000 3.150004 1.049999 +v -2.100000 -3.149994 1.049999 +v -2.100000 -3.149994 1.049999 +v -2.100000 3.150004 -1.050001 +v -2.100000 3.150004 -1.050001 +v -2.100000 -3.149994 -1.050001 +v -2.100000 -3.149994 -1.050001 +v -4.200000 3.150003 -1.050001 +v -4.200000 3.150003 -1.050001 +v -4.200000 -3.149994 -1.050001 +v -4.200000 -3.149994 -1.050001 +v -2.100000 3.150003 1.049999 +v -2.100000 3.150003 1.049999 +v -2.100000 -3.149994 1.049999 +v -2.100000 -3.149994 1.049999 +v -4.200000 3.150003 1.049999 +v -4.200000 3.150003 1.049999 +v -4.200000 -3.149994 1.049999 +v -4.200000 -3.149994 1.049999 +v -2.100000 3.150003 -1.050001 +v -2.100000 3.150003 -1.050001 +v -2.100000 -3.149994 -1.050001 +v -2.100000 -3.149994 -1.050001 +v 2.100000 3.150003 -1.050001 +v 2.100000 3.150003 -1.050001 +v 2.100000 3.150003 1.049999 +v 2.100000 3.150003 1.049999 +v 2.100000 -3.149994 1.049999 +v 2.100000 -3.149994 1.049999 +v 2.100000 -3.149994 -1.050001 +v 2.100000 -3.149994 -1.050001 +v 4.200000 3.150003 1.049999 +v 4.200000 3.150003 1.049999 +v 4.200000 -3.149994 1.049999 +v 4.200000 -3.149994 1.049999 +v 4.200000 3.150003 -1.050001 +v 4.200000 3.150003 -1.050001 +v 4.200000 -3.149994 -1.050001 +v 4.200000 -3.149994 -1.050001 +vt 0.625000 0.375000 +vt 0.500000 0.375000 +vt 0.500000 0.000000 +vt 0.625000 0.000000 +vt 0.500000 0.375000 +vt 0.437500 0.375000 +vt 0.437500 0.000000 +vt 0.500000 0.000000 +vt 0.437500 0.375000 +vt 0.312500 0.375000 +vt 0.312500 0.000000 +vt 0.437500 0.000000 +vt 0.562500 0.375000 +vt 0.562500 0.500000 +vt 0.437500 0.500000 +vt 0.437500 0.375000 +vt 0.437500 0.375000 +vt 0.437500 0.500000 +vt 0.312500 0.500000 +vt 0.312500 0.375000 +vt 0.812500 0.375000 +vt 0.875000 0.375000 +vt 0.875000 0.000000 +vt 0.812500 0.000000 +vt 0.750000 0.375000 +vt 0.812500 0.375000 +vt 0.812500 0.000000 +vt 0.750000 0.000000 +vt 0.750000 0.375000 +vt 0.812500 0.375000 +vt 0.812500 0.500000 +vt 0.750000 0.500000 +vt 0.687500 0.375000 +vt 0.750000 0.375000 +vt 0.750000 0.500000 +vt 0.687500 0.500000 +vt 0.250000 0.375000 +vt 0.250000 0.000000 +vt 0.312500 0.000000 +vt 0.312500 0.375000 +vt 0.687500 0.375000 +vt 0.750000 0.375000 +vt 0.750000 0.000000 +vt 0.687500 0.000000 +vt 0.625000 0.375000 +vt 0.687500 0.375000 +vt 0.687500 0.000000 +vt 0.625000 0.000000 +vt 0.625000 0.375000 +vt 0.625000 0.000000 +vt 0.687500 0.000000 +vt 0.687500 0.375000 +vt 0.687500 0.375000 +vt 0.687500 0.500000 +vt 0.750000 0.500000 +vt 0.750000 0.375000 +vt 0.687500 0.375000 +vt 0.687500 0.000000 +vt 0.750000 0.000000 +vt 0.750000 0.375000 +vt 0.750000 0.375000 +vt 0.750000 0.000000 +vt 0.812500 0.000000 +vt 0.812500 0.375000 +vt 0.750000 0.375000 +vt 0.750000 0.500000 +vt 0.812500 0.500000 +vt 0.812500 0.375000 +vt 0.812500 0.375000 +vt 0.812500 0.000000 +vt 0.875000 0.000000 +vt 0.875000 0.375000 +vn -0.0000 0.0000 1.0000 +vn -1.0000 0.0000 0.0000 +vn 0.0000 0.0000 -1.0000 +vn 0.0000 -1.0000 0.0000 +vn 0.0000 1.0000 0.0000 +vn 1.0000 0.0000 0.0000 +usemtl Character +s off +f 27/1/1 3/2/1 1/3/1 14/4/1 +f 33/5/2 4/6/2 2/7/2 35/8/2 +f 37/9/3 25/10/3 31/11/3 39/12/3 +f 13/13/4 29/14/4 36/15/4 40/16/4 +f 38/17/5 34/18/5 16/19/5 15/20/5 +f 7/21/1 6/22/1 10/23/1 11/24/1 +f 8/25/6 45/26/6 47/27/6 12/28/6 +f 17/29/4 20/30/4 19/31/4 18/32/4 +f 24/33/5 21/34/5 22/35/5 23/36/5 +f 28/37/6 30/38/6 32/39/6 26/40/6 +f 5/41/3 53/42/3 55/43/3 9/44/3 +f 49/45/2 41/46/2 43/47/2 51/48/2 +f 65/49/6 67/50/6 71/51/6 69/52/6 +f 42/53/5 50/54/5 46/55/5 54/56/5 +f 70/57/3 72/58/3 63/59/3 57/60/3 +f 58/61/2 64/62/2 61/63/2 59/64/2 +f 56/65/4 48/66/4 52/67/4 44/68/4 +f 60/69/1 62/70/1 68/71/1 66/72/1 diff --git a/screenshot.png b/screenshot.png new file mode 100644 index 0000000000000000000000000000000000000000..14f8df7c3cd628d4fd263a9aca4a9b67d3fab6a0 GIT binary patch literal 67269 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 literal 0 HcmV?d00001 diff --git a/textures/edit_skin_arrow.png b/textures/edit_skin_arrow.png new file mode 100644 index 0000000000000000000000000000000000000000..4ca964a8d3fd827df873390f8e4bb15894a7b5bb GIT binary patch literal 137 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%`0iG_7Ar_~T6C`pT*oz4B&M@%# z@qfNbvxMPSpa_cJxAK(iSW|U-rpzIgo0ILns9J#RCBgzjTzkwfv#D(7#?PU+Ja~Unnz$^rk zG)dd8Ic)XFiw45(LbMqusg-Km?Y7J1=l43m6E}LmzDfXo5dU`o<5>uRe!#v~0i*z4 z04M`En}qsbZC1px1EfS3Yc0C>4#VSV`*K=7UPF|!%44B$rr zvI{B8WTijK#6JQ!{sPiB0lbm+?`Jgw5}9oOmiD7N`s&NG$=8Mx%R+67)Gvu22jXXD z&D^8SoPb|15IChk_&m$uDcgK-LRFdhiim!a`x5|fzjiG!491?zIniijd2qQPK*larGe0LwFx@BzN(De_;<$*DuaM00s}S?(bV z;)R2lV62lfz*?I!^JSjrUTd8wrJ{v}g{w48eYe{!^?JRSh%7UE83@Y@r}@#7f)!RW zStDge#x;^U8`Mw603u={QpOk+MG-ffP2XrVV69bib91^}E*EH9tUgKSW=fi$Z}?h% zIjAcztk5U1ERda;0Yv1DF*ZpOPLjlHt$BZc|2+UKEiHXZL}ZL%Yb}U~0cd6}7@?lh z>W8FF$;69{D0~HgYPH(xVRY0gj~DbR@G|t zb5^8jsy8<`jbuorR;v{!LUx}3f0%>;6#zqK zreH#W`DIajq4=o?B@S&M<)_m2PWuGW>$awk1ZJB60000*dNKNg1r~|FS?yf7@yE&->sFs1@z>_Dfmi3F-WWhWJhA%S?{(f+F`uFCn qS}O*IhPd4a*6(i9he`segbX=_qinYBGuVOB3=E#GelF{r5}E*v!Y=Iq literal 0 HcmV?d00001 diff --git a/textures/edit_skin_bottom_1.png b/textures/edit_skin_bottom_1.png new file mode 100644 index 0000000000000000000000000000000000000000..65ab46ca97e4fbc1943b37f043b60d04ebd415d5 GIT binary patch literal 375 zcmV--0f_#IP)U+MNt$*Q4~c{l&Nu7GiQNk;0Y*!bH_Gq!=4s+?7`keOwHU{$Vm@& z*A4T@&=D}3dJ33^P;_CO0=|b7pkZIzgT2-Ruq`@H$f=P1El0qt;)EAYdEs<=Vg2S0 zV6xoDL0Og$#uy*R06}&l4Sdi&k0kPBe4U46}$3jm5N2VlNjP-OX!uUxN_B}JCA zJDkkWt#Bs~oBeim+#ODv&-d5k%iG81iv5%So&wePLX0LCZ#6hCb)OKpd!0pB^a VXD*+jPmllr002ovPDHLkV1f+)p>Y5J literal 0 HcmV?d00001 diff --git a/textures/edit_skin_bottom_1_mask.png b/textures/edit_skin_bottom_1_mask.png new file mode 100644 index 0000000000000000000000000000000000000000..ec0f69d2d5f3a5a6f3e159cbd5f788c8c3c05e23 GIT binary patch literal 142 zcmeAS@N?(olHy`uVBq!ia0vp^4nVBH!3HE3&8=$zQlXwMjv*QM-d=a)I-tPAa^S}Q z|CV(N0s@bSr1w2?oYtGc0#sBm``e~z%++B}j?COvnU~+daEI}}vEFMPtl(A2{4Q_n!Y;&U4S(g@}lVh=_=Yh=_=Yh=_=Y z{RaEZ-Y_r;%>UyvZ)qF=@|rJ6YQWvSB%o~`Er%MCoc1oTRlwU+F)2ej??5ZH&+elZFNQ`bzYGII%M#BxocTc)L!ZjRivp1NQs0%KmxS8 zdx+CAuqgp(mrm0YkZem%fs`PL2&gCrbOJ|!)mEt@!GP*6>pyh+CFvXla%Seh=T<0# z!O)75U`~dv0~=;mlkqj_tO8HnJqsM)fw-n6AOT*x`tmG9qb9I!P-K za7=Z6!pt^w+a)tw15N_{a{ZF>#2GUSziYGOSqE-Tk7oSp*)E?M>vrJc)JWPF7w-AO z?HfKlnsH!wc0B7-BWa(@_c(B8W~|%i@;%|3Q?ujQFrSz|*Bj=IZ-m^v!_2mTL%Qi; z_-WvsN@1e;vb$G+6F|Yt&g)_GR+Z$HbTG3qcYhYnF|(8&Kts~+RL8mE?x@$m%sO=b z0PwicRbbf6`hiElCrLs3i*>r!rN5+dSTM7)y2C)!5U?uaH-SD8OI>JfiX=op0$ek* zs=MD8Nt4=t^FN=%e~Yw2qhE>gqr1Dp>4LoKp}T)kQXNz-34|2gJ^6L<_D%m&kT(t1 cT}DIj6F(Wt1GA+(rvLx|07*qoM6N<$f;7iQIsgCw literal 0 HcmV?d00001 diff --git a/textures/edit_skin_bottom_2_mask.png b/textures/edit_skin_bottom_2_mask.png new file mode 100644 index 0000000000000000000000000000000000000000..2758cf8b8567ef835c53a934f048b637c65847d8 GIT binary patch literal 151 zcmeAS@N?(olHy`uVBq!ia0vp^4nVBH!3HE3&8=$zQgNOxjv*QM-d+#nYETehJ)pbm z|J3c=EX!1NEkA44ok*Ua!2(pZVb4^S8F&08W>m< z7#KMgT(N%8{lAN|;`GIdCI7ZEZQj3qsdfRA#{o9^ubu6yfMzgwy85}Sb4q9e0P!3( A;Q#;t literal 0 HcmV?d00001 diff --git a/textures/edit_skin_bottom_3.png b/textures/edit_skin_bottom_3.png new file mode 100644 index 0000000000000000000000000000000000000000..aacfeb334f40795337a4cd6d96c1012657a88941 GIT binary patch literal 604 zcmV-i0;BzjP)THg&K*A0R<&Z4E_UevUChcCc#3X5GbgFh?A2``!@*A4k6hZ z5L_}Da1df`K^J2}3#F}TI1Zl38>&!f18wgI9{0Ta?vHoB?|UEjfWzT%I2;a#!{Kl^ z9FB{I98s4AIzSTeEIvt|TX_{IS^UYaL*Ugo1&AC`*AFbde~NQ&12YzH{pWp7mCzA& zy?_wjdEWw|e{6xE8%~-DEBDO>+h%8`b5)lmhdM`AL1V_FC6o zJk_PSm;$$|#kel!Cv~MXt-#CW!j!I*rbm5lR*UgbeDBHqnNd9UWazleTVnGC2m_yi zEmcKC3aZ)~%_AZcmH=I|_LqT=z;{&z7+SkaK-$KAKkj7cxO@O^1Dm$6pSJh|z!Q;Q zfw}g90}}}oAObuVk$qKtYa%_g=bf|QfJr;wr-5CdtEws@d%y!bW4u$<9T7PMW`S5h qkZ-CQ`SamrVB>6J# literal 0 HcmV?d00001 diff --git a/textures/edit_skin_bottom_3_mask.png b/textures/edit_skin_bottom_3_mask.png new file mode 100644 index 0000000000000000000000000000000000000000..0a97de395d75aaa7bdf84101d9dbf08dd8a3dd2d GIT binary patch literal 137 zcmeAS@N?(olHy`uVBq!ia0vp^4nVBH!3HE3&8=$zQURVWjv*QM-d;b+$)Lc)av$-liva%v|U3d8Xe$(Z0Ie#Y#AxtTy!!%7)RXqVtmzI`} ztD@vq(gM6nBog_ao*r{yVZm1{78S48d!i_cjKyL@fKN)9QxrugisIBX?LbQD7#|<+ z1==&2O!l_tfQ_}aH8D6i*t)#DoC$?O-^1Z>>%hQ(QkFoeRBAI#(^)7KRFB7FNGXqj z_vh#5nPy0WBlGj~`M$nB=H}*t6B83Z-EMa&pU;=W`?C-tU1{nx^?9kw{Bd zS69d3;o-ezEQJ1us;cd(ssgaTzwZEE10R5)e|WsI$ogg_*S2d);&QqC=6^4Q0207c ztDOhhf#<+|;2od=z1B%`VU0@zFRYVi2ViPy$}u@P8Hhw8KY%BVD6~YK{_Zw_2S6uq z1Y7}5;MCe-4JZK5fQ!-5(T{~fq3HAZo|>kqEG{nY27|$lTrMYaxtv&CU3JdR&KkhW zn|6S#qm;aW19${H1Uf8-Xx6T41BCpEP)jyyPU}(SvtS{tqg6QX(EiK`2t8 zVx@vem5LsO3ehSpwvuYlN~)3Z@*+#vv{=Y`a36%tPQIPYyzk9?vydP`f&>W?BuJ1T zL4pJc5+wNFU=g-MKr^u5?gcaZz6QT1fIBs|0bmAbbN7#CwguP^%;fs??ryT39sfH~k;+zLoV*wR47-5&t1;Qk8k{x;&d zC0)DBtQ9B$MKenQJ48_Ih*CfS7&o(xX0~Tdb!FBOVcxB4S!7H~ZTqB(_rRNf(E~05 z6F>&&Qh;}X1>iKW4R{881N!vbB(Mw|04_xM9RMEH*oJ{yb>dhL{HU?*Raq=HS^;IC zsGVQZpH_El26!vEE&~;{WygG9c$Vw@J zl#tQ2vyR`il(S@Jr_|tN63^uE)kAzNwG0DCk7!UP^St(&bzo#OOz+LJY86{l+ z&MLX=3bA|(m0U-h1f*2|nGpNkQbDyOj*EmqJ3p)BqDr7w{iC8X>K1t^l|mG@ir8_H zyR34EO#x*ESyWP;?*3GXwn-gX5i~0zs>f$-30x0Nndg8(AaM7GA~6d4rIbO<7S#bM zmQlDxpPMyO2DlP3O=~yXLOmfJ8d?INq$%)*e4m!0UIH6{!}^}m`fAemm3RTzqq*QZ za8So#tZ##>VH5B*bl)Snw@4+wfJ;(Rb)I-E#hjN)uBqu2bmH`D-KYp2R8P1Je2DvH zXf=GTxo=nU0dU*hU+85gP%@+L-U3w2Yyt?(ERdq!sOCqs>pN6p<07o#_zf5&_~GFu Rf7Ac~002ovPDHLkV1g_1mHq$# literal 0 HcmV?d00001 diff --git a/textures/edit_skin_bottom_5_mask.png b/textures/edit_skin_bottom_5_mask.png new file mode 100644 index 0000000000000000000000000000000000000000..1fdd26ee645cfeba3d15e8b3f77784ebbfb23205 GIT binary patch literal 183 zcmeAS@N?(olHy`uVBq!ia0vp^4nVBH!3HE3&8=$zQgxm#jv*QM-d;b*)u15Il4xG_ zKYX5FBfH|-u<&pH`+@>r`y^-r)d96hXRlfLc$RwBo$~cBk6Q1v+@#*Xm?D4R=Ealy zt+Si|^9Vhd%b+jiOY2v&O&zm;d9`*j<0@RbXN4gh_&xJKpG zZE;tRxzP6h4b3_QTnx!W%?HhMhwHPKCYP!UZE&sAR)_wsDt=u6qQQ9xEF%vB=K5vL z(#r)l*z4}L^9qv*Xh}7_1Ax~lN@&{r05BxvGYQGC91W&{d>(Pv(MGVOY~Kf>-1_uR zd}!Fe8#;|vNKIUdoVg77oudsFuQ+XW=rP#TzUh)JG;Bais*Rk@ZguD}c0QoL*0KLO z0DOC_+pPSt3}i}jz!nTPwVQV}-w*s!_GhoV+rE*UixI}35IgBh`1F{h(J-ifKnDPL zw}0rN?N=&q%|5(vPYz1St1W#qgb=)a;&nR!@CuVDdIhw!w9Tht5eWd85(aq!M1yG< zIh*~k<+%mK&gi%i_SZ2Ji}# z;rrfvyv5_a+~#-$(XY}VAYhg%PteX@rzmZ-l@^r(Qn85Sb&66d7LoRFJ7C+7Dl4}m?0KBDrEyL!w;U-^-%vwB+fxsD%up4|L>hd&{9 z4!FBWmSk#(@1%iz?SJw|GF?YLJ85{SG5{DkoBh+q zBeh_!S6Dn>rsA$1^IK7A+B06-Y}8~~;k&S${N`uCvW#dj4Z0PQP`imPhP1HpIz@@L zr(zMQuYaI^V)BB1Z2`2l5Q@8c%of+EOlu4PxYN4~OAUFQqSQJvJP%!dE1ih8q7=|% z*?;uH04N1@jL%gq2DGG_FRNLgI|*N*zPpU>YOCLvyrl;1wo=@~tZX&~g0q z7ksX2k@meSDezwh@F&DhK3BCUB*vzq!8BGcjBC}vD@d?c;+3dW+ zWQ1f`raxsf6i}D|+;+_38kOVxCp%%7s#%>DLNYA#{e8Ow!y_{^-Dv-H=YiYj1pqkE iVoE>AH2iQU1MnB6xy`dZ`Uw3100008pT0zQ za-oAz3{zaXi1F>drBgmJo+{x_%f6pJLGkbchAs0CalB9{`M!<)r(NT%yd$v=?;GP| zwiwRk&^KoN@{VQgjGAZ@$l7e(XBXbqt=aelF{r5}E)i CL{DG< literal 0 HcmV?d00001 diff --git a/textures/edit_skin_eye_1.png b/textures/edit_skin_eye_1.png new file mode 100644 index 0000000000000000000000000000000000000000..ff19a09b3e90a61ac32becfd99dfad3f38dc7423 GIT binary patch literal 171 zcmeAS@N?(olHy`uVBq!ia0vp^4nVBH!3HE3&8=$zQbnFFjv*QM-d^3v*8}(BoGM_Wd`yYGiNs$Z#!-3hgeQRzOJvWX1X8CD00P9FqJVPhwJm& Rzbf}ZTu)a&mvv4FO#p6RDLViF literal 0 HcmV?d00001 diff --git a/textures/edit_skin_eye_4.png b/textures/edit_skin_eye_4.png new file mode 100644 index 0000000000000000000000000000000000000000..1cd82bd485b49362b7a16c8060752a1348dea6d7 GIT binary patch literal 136 zcmeAS@N?(olHy`uVBq!ia0vp^4nVBH!3HE3&8=$zQvRMUjv*QM-d?cgY6uWuK9Kv@ z>=Cc+-W3V|6LPQkRTr`aE%8xeU}zApR8vxVwd>Tj+)w6@kFR{P@7(tXtH0NN?-y>% jJz1#r^9m!-um{$BZpyN=Bz?l40eK9bu6{1-oD!Mn;X56ym;w|?j9B9JbIeZ>qMC%EsfS-Q9b#PxLbb6Mw<&;$Uo C+aGuU literal 0 HcmV?d00001 diff --git a/textures/edit_skin_eye_6.png b/textures/edit_skin_eye_6.png new file mode 100644 index 0000000000000000000000000000000000000000..3b8f897cfada3d1e50f6a1dd3f7eb759f7053547 GIT binary patch literal 141 zcmeAS@N?(olHy`uVBq!ia0vp^4nVBH!3HE3&8=$zQX!r$jv*QM-d4c>H;|*QM22 ocUFh?s@(nWF-gS}h^l4_Tg~8_l__=kInaCtPgg&ebxsLQ0HVt<8UO$Q literal 0 HcmV?d00001 diff --git a/textures/edit_skin_eye_7.png b/textures/edit_skin_eye_7.png new file mode 100644 index 0000000000000000000000000000000000000000..f800a90b7fd2cfaa99735a7e72f2817ea5fda24c GIT binary patch literal 99 zcmeAS@N?(olHy`uVBq!ia0vp^4nVBH!3HE3&8=$zQd*uajv*QM-d@U{wba!tOpP>x z^h`1w?5l%3^;KL=jGgRkq8$yh{cL@`+#@|)tKvKhW5c5}Cg)c#^=ON4$_U<6o-?yG z`(S_l#idhjZ=U;V#pYKhw;ex!FVdQ&MBb@0O==E AYXATM literal 0 HcmV?d00001 diff --git a/textures/edit_skin_footwear_2.png b/textures/edit_skin_footwear_2.png new file mode 100644 index 0000000000000000000000000000000000000000..dc0ef6472a81a0fb2380c6fdd31066549edd0496 GIT binary patch literal 229 zcmeAS@N?(olHy`uVBq!ia0vp^4nVBH!3HE3&8=$zQfoY2978hhy}fSBcgTQ;^}+KF zAD)}aM>MPY=P~oSoWFRl+1iCC<=ughm1&%Ts%;8t9{09e*vBPRb}%YIKvwS*pV zo~N=hSY#XAlM4!FEL+-A8ToL{$=A0;xF4)JxQ%(1w!>Rl2NxHYEAI?S7{4s(3S{|S z@*?=oyXsILrTp*D`Po*@|HtL7V6U_6@L`jK)&1GmpB`~kxxfF2RFp%gY0HB9$Lj0< a3*Y>dy6nNvw_-qdGkCiCxvX!*WxVn{2j)I67D0z|YzCz!i&(l|sP7y>16&%|~C<#e}<;HuvxjL)o zH=W^3ABO`UD5aEAN-3q3QtIBAOAD*jD(v@rmdhoZ&4#ip%`F8GU0OIC4lEW6ilQLT z^P9VXiveU=Mp>53=W}+u-TeiyUay(WW^A`xrqiiD4W*P)N~xPELseCUx~{R-;+(@; z%j@$aNo08Y_{KSha}EFz0l->I*L8>p@jTVK^L;BnfTXG8haHk@M`mr|FiVGC}TF^vcBHyC_FzPPPZWws9PYy*`3DSi$fK? z;UUD730jyxX#Mhtcz)mSXzVjlae~I(5aH&O7$cN5gcO4XXi=lCj@6hjfSC{xePIX0 zB*@F^wL<`(fygif|C)fJQo-V&sA0MVvoY*t@bsd_lwVNQPzU`#`b}NSdH@DIzrrMa zcs>e<0d^;Pep^E3U}vo7;uBneQR-h-{WstnFU(#5Dg}o|00000NkvXXu0mjfeleI5 literal 0 HcmV?d00001 diff --git a/textures/edit_skin_hair_1.png b/textures/edit_skin_hair_1.png new file mode 100644 index 0000000000000000000000000000000000000000..df2397d329b19ec48a5de1ad2d90d15c11e957ac GIT binary patch literal 484 zcmV9~goAOJ)}BY=r}RJ+#FLP92&Wyuu$XDJ#H(G|c~ zO2ucb2(a+oTgpowzenu#HF}8zsq&ej8O|p>4;<62L+s7T(ta<2VcuW7$gWibyye{- z%qd=6lqI8}&`A^DKc`QPZgemTnqMI^uKeAC;g}5nneso@ssTR_&?-I=Jr-WO4x_;U|` zgcN{;!}+|&&t!u;IJGiB?7jFkj{rsKc!-cnMewHZZ?3~XN-mAOuSM1e07pdbq?1nS ahQ0wk(6l1AOljHx0000ES_WTe~i*~576cO*%%0p);ch>N*;*PMlqWFNK_{PZ~$B!d-+C0 zfjY<43;^tLI00Cbf9voEKt#mMbH?$B2Eer#tAiNA`Q`%{A>^9@;6(&g^GX=IhEE)T zQ(?bl(&9aI3TOe8aoYFHBi8hss&6M9tj-6pGV=^zXXa-tt@3}lI>%k1`Q!og)#q$W zYsn)@+500000vojxB*C+9rJkUS?Os{ggwS#_l zsFFnJZ&SI0ho)q-TbVp~{dCDI_k^Xp=G7=pv*4S_`Rm!b>gm^jmN76i+)^tGV%IPB RWC;dwJzf1=);T3K0RRD@J!t>{ literal 0 HcmV?d00001 diff --git a/textures/edit_skin_hair_11.png b/textures/edit_skin_hair_11.png new file mode 100644 index 0000000000000000000000000000000000000000..3eff9bca4f42e17a149a9c8fcae33fe0509c3c8d GIT binary patch literal 454 zcmV;%0XhDOP)-q)xXX-C(I(|NlpBx)~|MNeq>$ZVbp>oGNk?2t9fwz>|;6j!y19m287Z4F6qZo21gMiDAMMRy5G(^;8>@k#H z0>}t-NL<*01^@sn5vS5J{4fDF`+CnIF`FhJLIh`)MG>civ|qC-Hyb7A5oPB@%jAen zy$66c)7RQ}9wmPfa;sE-w{0%C=LjJ#(lV3ZoHI*^$i;UeBI;C!hNVj&+22K^4+QWH zz^7WC2;9w_B~qn#GP=_)t^pB8TtxKF0B!)@)t*BV!ueoqD2kkdDYTmL_AfN0vV!L8 zi|BhsYIO6fS$hTWVglnSam*CYr+0zSanJHyf8R&e-?SWj_WMxu#)4f75tVV|H+}s^ zM14qN;+y_Go0?wD9Po%kAF1gvk!@bfDWE6qQ*UK-UXqBiM&YfZ+H>~*;{@>D>wmWz wP|p~BH(dh5UJ2NB?XS8E95`^`z=1vE3t0@j03UikJ^%m!07*qoM6N<$g6PJ^^8f$< literal 0 HcmV?d00001 diff --git a/textures/edit_skin_hair_11_mask.png b/textures/edit_skin_hair_11_mask.png new file mode 100644 index 0000000000000000000000000000000000000000..05836b28825895859f2d1e1de6288fced1ab60f5 GIT binary patch literal 202 zcmeAS@N?(olHy`uVBq!ia0vp^4nVBH!3HE3&8=$zQWHI0978hhy`AnYbU=Z_x%2Vg z^>gAD+z-_8xVLI`UoFdq4e1%l2beCeu@DM~b(sG}&f;vp2xmi-1JkEv%#6RjtW~Kx z@s=~l>wL=B#w^2%q-EO~=3Kk8zIf4H87}qn(Q6NAGyeF|xQjhynt?aNX0C`(%XcQ` z+q}B|v1*0Kb53X|Wm>_)65IGRdchZ22M$G-Qa-;-KI=6~hZh4K$KdJe=d#Wzp$P!< CNlefH literal 0 HcmV?d00001 diff --git a/textures/edit_skin_hair_12.png b/textures/edit_skin_hair_12.png new file mode 100644 index 0000000000000000000000000000000000000000..59d63f476b7b9ca8048e2c676782283f6c0a2d75 GIT binary patch literal 660 zcmV;F0&D$=P)jg>25wRH& zPk`SMu?O6Yh;1O($%{V^0pZ8!;#B)-UUoXL=C6`2f%k=2-t{- zkDX3HWIXTnJ2y0GWM^x@4loET1M3k{v@%A4m2-aQvaQs3wG9CilBR$mNrRG}19ks) z0bhWldcA%NIF>XHR3+trqNMQHd7uxt1{8p&k_KHc@3`R3`nyG-PtsV+i=d=u5wRkv z8W9Ccdkq-zM6cKal_ukF16#l@Fas<~8i|MzV9!m{uvJtt;dNjgkb8*ZR-Xb7fX|ls zs^i`E{G#np$v7&zfpOd9WPI5>|IN<|&Q}43O~e}$(NYWKJkiyL_&|eCD;YWJmiBT( ztmd3Y&fjCDjGBzRRWREQHQ+Ds`c!<>4Ns#|uAY&n3e25~z48vvd6)Nr1>hI(-U{1j z2LhU%c6?I_qRE`5*FI)pE9=i)Xv`zNiY_$wsz>jACfjr?J zPjt)`ei!&-(n{_V3XW}?h-O&x;`3Hq33%CHm$q$%XS_>0z+-#5=0#iw-nw2KwS%1h u2l8h$HVFv{2?+@a2?+@a2?+@aor!;3kH*v&V_r`H0000HA!lvMYoPfCg&EMuZZY8&#BPBz{K%k^PC@_t<7YD#d)$Aftnc@!e5EbW){6G R+2aM`dAjD-KUTX~4q3 tuwV_Nn%p%Dpg}W&|1T|OU{^4S7C)RIV$#n1=N?d$!PC{xWt~$(69C_DMLPfh literal 0 HcmV?d00001 diff --git a/textures/edit_skin_hair_2.png b/textures/edit_skin_hair_2.png new file mode 100644 index 0000000000000000000000000000000000000000..d0f4a24e4be70bafcf0c89d47ffd2ac06db67020 GIT binary patch literal 490 zcmV}bJ)g$msq-5gvx zs8ET^|3P@vwmRr*y&pW1OLA#)xx1uA7IOi-0H-s`DsaaNQ(9uo7W@d0e=184(Vzz8@5o`F}@N5JkEx;sD&fF9Ehyztu-1102f>Hh^*_RL`kF@`AULXR07#EbD2JqB5gVeN z7Y}HC(U$=4`omLEf=oAf01TqX(8dh?*q|NFM^rNBw||X!J|3T7cEJ~O5~AZcj^j9v g<2a7vI8Ltl1Y>Q4{N^@AmH+?%07*qoM6N<$f@i_i?EnA( literal 0 HcmV?d00001 diff --git a/textures/edit_skin_hair_2_mask.png b/textures/edit_skin_hair_2_mask.png new file mode 100644 index 0000000000000000000000000000000000000000..9258217888c5ebcc204c36d2305846ae4af53753 GIT binary patch literal 169 zcmeAS@N?(olHy`uVBq!ia0vp^4nVBH!3HE3&8=$zQU#tajv*QM-d@e+Vo>C84UFIM zU)Ne%;+I2)+n(q70^f`#uRWR+8+K#EGmZuZ5L#fI`{%QH){h?b?w(h&4^G|={Hk#5 zbmNqq^iaM9vhiE0ecGPpG^{$c*+Mq&R*e1K_tWD8WY`p#fp#%4XgpvvUBjypDI9nL O#PxLbb6Mw<&;$Ury*zmU literal 0 HcmV?d00001 diff --git a/textures/edit_skin_hair_3.png b/textures/edit_skin_hair_3.png new file mode 100644 index 0000000000000000000000000000000000000000..d88945b414c2a11f044d1dcac8942aa4be18d909 GIT binary patch literal 445 zcmV;u0Yd(XP)4tEOr-1#eE^<-p^wOu@C1DThVGS;F%p?unZ-sXYG{gz3c=qJ-(4E{ z?BBi~oIq6wch9Gc*iW2_2UZmkja z%mhE<{g~T@##ULayZi}C=>2#!B`m{QY>t)LRZvU~Y%GX(BJwuD&jRRxwfXpZ$pAD# z(o1tX)_N1>c0eN{dmo2Ql|d!`Jr6=HBF#`$)?cPj0gr6HuhfPn?HQR-|i=RKrDg1 z+4mtBQ+NbQ5qS>vc~q`JVP10GRlDHWh33qQPBHe4c$qT0ux7Rz``xeLoB&LDcMyy< nNs=T zdUn48EH--pWcxrMey9N1N}Q_#J-`Ie78D#!B{-hkF9Ew!605*;u9s}LNs{d|z_g@s z+w&pNF-cv8%F(bC=!%nFK!3*P6NH|y|9qT(GjnHwebEMsz_jh_wiknd60lcNo9%Nc zi$4KpC7lkLp0d5x3>>gOyFHfO8weVnjIbG$RI>d6a9L76&;eYRBw*h5G=QYL$@@jy zhiyNf>TyBRbHKB}tCGqoldm^C1%Si0rz9;W*KgV$4jPsuT>|dd?vYdhP6MB3{oBB8 zV9a(o&!|c0)4)W^Dn&<#ZM5#5m$UZq5aOkbzaQdU zPd~5%oXM^aO4WMS@=5Z+Q$-RK7E*MZA9f2=S*8__fyPB?TA zNFL7lM1rzAC~9a5l(LI+z^Ux^YjNOv+ZQ&`^p1n0g>p6ojN2YfzAvXkEOwXGAga;~ zDe$1}tuTK%!Kp+(4**X9U$mMM+^*e>D0*XqxgT3m3UAkz?&JKoO(}&R!ZV)=`KiDW z?NNhsIa=-yk*(Ny+sC3N`=SY^jUGH P00000NkvXXu0mjf>j~PvG<6Bz%wh4FSr=IE5SfhR3cb7R#+uHJE@&$%FjM1CVJDC5uB-!Us$bLzZK~$$sh+*ocSVJbBd4Aa$G4&47O6&!o{sHh&YBoa5g5TKcj!OblH+!C`lFp6JltTn7YA@ zWcOrq1_lvf6F+&=cR-BLdwSo@ojd2=7hEDq-H50GZzL@O-vQ4fVoTC6BF4Zxa2r?x zE`Sr@UtkD~C`NVQ%yX(o#94N2Z3_SGwW*RG06m~CX;V@kXaf6^I-b}x?G?26-UO!! z>}P@bYJTOi8zSNeSOo3?uOs3$unn{#VlM5<6#ZVn;yW21ppp3A`PuR%wIr=eT9Fh$ z)t_CU#*8JY<#EM770Rz%;htth96Qn#pS9b*HplGM^q6+~yhwia3P+#?Y(&I~BR({E z%ai+UmaCsNzk0q%GhnP?J=Xv<~!L z+G3()<@{Xp9+y2P{$$C^`ID+;p3=wzaO{$D0gQpW2A;ac{^bUv6%j)}-~;f3pD_YP zlHMlA22Lg2_4gCty^ZTXU<3FDs5rp*-kkp|n`D@e`DFYQz=Mo`ZvKzi;y3LXNc!aC zw3z}h4}1j1k~X|^X<=uE4TZ?fR=pTd*&ZZ@H@b-Q}~Z1Z90ozI*3oa=4DAc09{E7KvUB9{yuP;)lw>%z+(eL(wd*u@dRp4$tv)Ro0p$`E!Fr1k5l>9G=56)m?)j;-cIIc*hKs3`nJ=p z?#buv1lU}S=B^^j=SAcOu+yagYoWKb9){V-7E5V`-?H@_0k@^6< zm=V7Ryo-oeel_mcCoWu0k0Rn7rAn15RjO2}Ql(0jDpjgfssEim1MxJk^}+L!I{*Lx M07*qoM6N<$f->Q>TL1t6 literal 0 HcmV?d00001 diff --git a/textures/edit_skin_hair_5_mask.png b/textures/edit_skin_hair_5_mask.png new file mode 100644 index 0000000000000000000000000000000000000000..ecee2e2bb348497f15f2bac3c6a6aa43cc82b7b6 GIT binary patch literal 282 zcmV+#0pXHB?tb^#cE!@)jpFJhe_sH^IRs- z(MR-j_|XZE=%cZokp5BjV4BIh7%Z38PHVcO{xER7n zDnuOAFNQt`BB0eeGrhHZQ54b1;mnk(H-CSVEgroYvi}_En7u?1oYm*Ek+%FuTL>Y9 g5JCtcgb)k!1Ms3dF80UyZ2$lO07*qoM6N<$f(LMS%>V!Z literal 0 HcmV?d00001 diff --git a/textures/edit_skin_hair_6.png b/textures/edit_skin_hair_6.png new file mode 100644 index 0000000000000000000000000000000000000000..eea7a69a636aeafff078891dcae6ebe1133f1672 GIT binary patch literal 535 zcmV+y0_gpTP)b13No*ae;d zZ-Fz5FmAd4u|-VVCWxe#DVkaPg#lCC470~|>@w-4O>4@=<6UhvRDOe5kz z(o)j0@d8N7fM@P|l~w>fCq9$Z0v4V(wkShMd8K7QTT%`j0|WmaO3Ebd0~1O6j_=e# zgaRo1qT{kJh4A=SlrbGYqYWH;{HW|L#@K!`aNh$abyxx;;8R3QfcIYKU;V}B5i$GC z{JCRxJnjH1VC@}aZ3Ddot}M`weFflg9RxU(bnU&q4SfE~wLOZ6?~=|VqJPUszgd`W z)mLg`f)Q~d>2*Y`Jf3a%@^@9jOV3?ZmPgm6UrjuVh@r=eItb7Q&Nd`mRQ=-CwY!*B z&I$`BUT&F}ZjCtz;Xgqg;6o+(rB8(0P?}vX>5X@f=^s{EB9TZW5{X12kw_#GiA3UG Z@Dp>F(#W%cU>^Vg002ovPDHLkV1kUq>5%{c literal 0 HcmV?d00001 diff --git a/textures/edit_skin_hair_6_mask.png b/textures/edit_skin_hair_6_mask.png new file mode 100644 index 0000000000000000000000000000000000000000..6c6c6b9654ea6adaca952082b9e2adceb2f7de33 GIT binary patch literal 168 zcmeAS@N?(olHy`uVBq!ia0vp^4nVBH!3HE3&8=$zQu&@Pjv*QM-d=a)I-tPga44GbXkAVq7>=lClhX5Z8?x@(ui@)w*=~_zopr09mU#8vpAx4qH5PdJrr6Pjjt>jwL-g<4%{%ViK_79Xc^cs4T2qKnJaC&fK*L9Pul<2N?Ak6x9 zcF2tLky)ad62(&k&on&KxQUJ7G11Wh_W*htHdp+q!a2H=a-SU#JIJH}3iS*WRv71S&quzez=ea%H-I64PXLzyzBJ=A08_0d*v`&RAp&e^ z5PbOWQv{(ELfc+mbJpt=U`3zL8rmCbz6neW4c`&@(IY@aIwUj2mm)F)a78i(umbR^ zow+r1L?Y4w@L}lakX#!2OTAnBKBvHo{zDls0RWN@3SON;4Tub0{}enxU3B3%)g zknAhGYtbDwtfP>+Ku&V8DIDu{QXw0K6ai69rOwMoH{RG!8_v7zAKd}gmm=9OpT<`5 zD^u6@QYGhw;ae$C8enpVKELAxiw^7B#j(DO!~4=Gr2B!mCB3QT<0plO6t}2*Y>5mn zyTHGu*n@XCYRzcF0hx%*$nE+nBF|Nozm!+JuVbO6K;np%Q(M^}oC7oiT=#Ng zJU)owZAZY+5wk_c@D#ehbp@7GM8#0?M8^(sS<;3B?)HofV12Q=gIUJ$AiBV`0)Myd zsrv<&^Wmfb$wwDVg?pFen>HzWGbsI~6Wq99x)T5->ZWP4#+lC4I{g5UMb)QbbvFY5 O0000T&(AU{*etu;^d>g%zY6!7!?U;QB*SKQ@zMhpsaVc$pTYY5TDr&}{5|*THw- vWWy2$w|VE|ChoKEIkZ^7>#yCyj$I4~-tf53+qyRs=qd(JS3j3^P60w85Qd*ONz*h9Nk1U8QUpbzB6Qb<6oszb3F1O zMG-_qV#vaLye^!;F$A@%=HonYIp@xud${x7b7ltq&8h7=(6U_tiok8#McZX&oWg(j zJWS?8+bh6lU>T^-y#Th~1GTvAB|$F(ow*l4(k-A1ypVJW5U>dhB;8nqBk&Ta0PlcJ zNz1@hNd@55A{>DsuoB}H+ihSY9$#F99nc59NV)*Lk<^`sKYtbhhQJ^a;dR?fwx0o8 zz=wGd;Mn$3)cFRm7q$vejYL=nwr!sP4M}%^a$E+E!nYdtk79lb6m2W%9U8#Xu(hT^ zgv+*Tz=7>5a1_DsN6jZb_MYvnkto2f?Lq`u4c}%2)k@}Tz@hC@2wVNVq>HxK&pmqE z1=|}jHe!pfMZncD-<=6d?8L4a{p~_@kEKL_QQ&_F031%k5hwwx(c*R_^(1|_{WzMP zv?usDVU3Mwi0($NsDy6~I0>I`BRjAJT$8j7+&p&yBsGC`U?^#jJX=k+``>oZTiag~ zk-D}Y*zVZwC9XfCr|1J^+drly36>?j9t$2xZAqUJQxn*Wd~lrj^(D2(-tC0_eqt`# zex7OvJei47VS9Cgxp~HAno()$!0xP-%l#M+5;2-&GMP*!lgVT literal 0 HcmV?d00001 diff --git a/textures/edit_skin_hair_8_mask.png b/textures/edit_skin_hair_8_mask.png new file mode 100644 index 0000000000000000000000000000000000000000..751fb9bc06375aad4f61fae2df3b5502b5272cb1 GIT binary patch literal 172 zcmeAS@N?(olHy`uVBq!ia0vp^4nVBH!3HE3&8=$zQpKJwjv*QM-d=O$YB1noy;$?{ zUwGf`pd)QMOFW-9N|#>b37fk1=c8R~Hk{^jXJ8U&U|_MB$#nmx{k08Wg%{-6+t1Wp zkeIP|PPXWSYy(#1sk{qbRa^ZQ>e0C++*~z1VV+FhzIvN&1?tW#eqRGx2L!dY^KS8| TpL%>@GKlBt>gTe~DWM4f{f|IH literal 0 HcmV?d00001 diff --git a/textures/edit_skin_hair_9.png b/textures/edit_skin_hair_9.png new file mode 100644 index 0000000000000000000000000000000000000000..dfbe0b574e888d3ec7dca3be90cdd2b9904c5232 GIT binary patch literal 730 zcmV<00ww*4P)Hl>|D)&PYm1M@;EO>R0+}AVYc>x#b^=W# zCkw*Td(SenJG(n;;J7uC3Q0A9sib7j$@c)U(l(qQVJ0NQMA^bXjACHY9Qds0RJF~aQ|fM3p>Y;TxdzzW-z zWRlc*g%4-8!2zp~8p-w?Z@b$;TjijZ$`|;g{PEdF$6EX-QC&lPzXHqzm3#A6Y zbTKdG>x+3QTW{VN>k}LRZ~>sQO20LVBGS?#)Y;X`2!ECY013d7WHKgf09<++8B6jO z`&O3!{@yEfkh@+O+ZVjJ&E|#_xq+Cl|?F%EbYE?&>nr;yA1EELgZH@OOoFu-G?r*1~8L!Px5x~)8K1{ zrz87kKRtfhnC!!+!2hbk8vs`TuB^pg9Z{lpQG*PrOT1QEH(@Mp?P?AHYJ+%+QoDGe z7#oZOQdEWs>5rY27UI%WnGhrsovz%xL{$p9O5d%?xMxb~9u zQPhC&cxSUh-yV+ChGLWqh}QkAPKx3)HDKK4{{wtzsrlg@@M#0Lzg#kTbuau(cK`qY M07*qoM6N<$f_Mp6uK)l5 literal 0 HcmV?d00001 diff --git a/textures/edit_skin_hair_9_mask.png b/textures/edit_skin_hair_9_mask.png new file mode 100644 index 0000000000000000000000000000000000000000..a5ba8f9897df87f055cd466d63d315f10ead9818 GIT binary patch literal 243 zcmV9B5J-Ih*jT#q1Uv!@0;v$u zw4$_WZob90I%Y_RP8}MlwIYA(Ir`~;KK;(o5y&_XHnvkSO^{`YZ$G;LY^>dcf`~Wn z(;2-M=E*N+UBGxaa!DWzeH67$f9#@ab>h%RkrWR8 z4Nz+-M#EsQJHlwUu$^P7l`@_cP*zIBeuP%naDAV?ZDAM&d!2n$rG#lV`Ss^7bzMiC zPKg2sNiI{AWlo0n^$U3Ts+_hO8lG$81`$iTf$#gINrbLySd$R5rC^Ue2E&N;&0Bau zpVP^NnpDT~#~-*%A8WnAAys%coZiy~EME~}(zf`1wl#TjV8 z{pS00xlx~0+&Qaw5TmPS6;Be*ueWL{7wxY|0_T5@cQlpxIj literal 0 HcmV?d00001 diff --git a/textures/edit_skin_headwear_10.png b/textures/edit_skin_headwear_10.png new file mode 100644 index 0000000000000000000000000000000000000000..1d722596badb165c5552547483d7f6cf04dc9bef GIT binary patch literal 517 zcmV+g0{Z=lP)o6l^5A$)m2MDaf^(x)JaDXSR)5+7abEd z+ZgQBb3n{v#5{QS-8TbAjzC+`XHX5wLG@&!4M?E3=087n0W#pi$4`EZuCC|;KR5y8 zyZ_a9eCGn)+-S202fPab9(LAmjlfUXivVZGF2EM_47k5B9iRa|ycBTuUpwH@TVJ4d zyx5Zi-o*$kKr3JP=2iUG{1?YAKn+B|CGZ>QxBjj7kpJM%;0E-~+xyXXb!@AbHBT6uom-l_&=pf7%Z1vTIS*-yt84l#q1HgMUh@RRK<@W1kHG;WiIKH9=P00^ ztt2VSGEJw`(-h(U{$8`$>@Zs0ndZuj^>2fIHGGcEGh0>@^-BJC z*^W=l3|@v?KV3QH{_VaO*Mq0Uzx|(URLg9-{=wo#VCk_9B}H7DridT9^;qP|($xkn y=Rav`yzc6|&v1Q}mh+9`z4P^%fKCAdvptL}jqLKG9{+j`;(EIJxvXY(;Pt%KWK8$rrveR#&ey9PQr(z@3PPZ-1<&ar?aEa&@cW!nSxNb|Y5 zJM_N|$T03PgB!GS^c9%MXAgME`M>^2U)^DkzpIya5!xk!_q=Ixo+IdT+()p3U!3LExEap6JVWStnyiL+^NuT_$Y4`d7 eLI@#*P+G5Z{zHP#OGw-R0000U{wba!tOpP>x z^h`1w?5l%3^;KL=jGgRkq8$yh{cL@`+#@|)tKvKhW5c5}Cg)c#^=ON4$_U<6o-?yG z`(S_l#idhjZ=U;V#pYKhw;ex!WXh{y5d1PRu~4Jr!C&I=hYO_5Ykw!I(+6iE>2X%b{$xPFA;eu87DD9DSRu6{1- HoD!M<`!zv- literal 0 HcmV?d00001 diff --git a/textures/edit_skin_headwear_3.png b/textures/edit_skin_headwear_3.png new file mode 100644 index 0000000000000000000000000000000000000000..682eb4df4ce878c3fce2ecfe5c6286072e9484e8 GIT binary patch literal 120 zcmeAS@N?(olHy`uVBq!ia0vp^4nVBH!3HE3&8=$zQudxMjv*QM-d-}~14^(M{P@4P z(40@rA|uCrS+g<|1H-;4)1R(%-FEKHO6Dt5mP@5xdzbg~z;wB6X`p5XB{mLgPL|k2 Q)gK_9r>mdKI;Vst0I~@rb^rhX literal 0 HcmV?d00001 diff --git a/textures/edit_skin_headwear_4.png b/textures/edit_skin_headwear_4.png new file mode 100644 index 0000000000000000000000000000000000000000..1b278d5b07f233e848c637989d27f9f269daa863 GIT binary patch literal 125 zcmeAS@N?(olHy`uVBq!ia0vp^4nVBH!3HE3&8=$zQZAk@jv*QM-d?cgV^HK^b=doV z;ryw+o%_$7Jy+5%z%+%4fnk4${B8Bgca5%WdQtgt-RsBI=K|(G%}J}h_f8OK07JnF YMmzopr03{kGi2wiq literal 0 HcmV?d00001 diff --git a/textures/edit_skin_headwear_6.png b/textures/edit_skin_headwear_6.png new file mode 100644 index 0000000000000000000000000000000000000000..9c9ab1a027636b3fe45c5b9dfde5691bee69d5b2 GIT binary patch literal 140 zcmeAS@N?(olHy`uVBq!ia0vp^4nVBH!3HE3&8=$zQo)`sjv*QM-d;B3Jz&7Y;?V9~ zIK?+$nr}gi^R6vHj1?JAcAxC7-|$C}f#J{fH_54KDNk}sTguD7ZQNJv;+#ZU mn@n$QV!HWNvz!HJAcLH_W533&=;UROKs--ZKbLh*2~7Z2J2K}0 literal 0 HcmV?d00001 diff --git a/textures/edit_skin_headwear_7.png b/textures/edit_skin_headwear_7.png new file mode 100644 index 0000000000000000000000000000000000000000..755b82a84540afa5840bab1eaed3989e068244c9 GIT binary patch literal 291 zcmV+;0o?wHP)T^!Sn^g5X0~x45l#_eS$@^k7C#ZjA1Y=>=DM&l6*nLBx8s{#9-RB z+{tXFP592Q+{-y||Ce(wA%qY@2sPDMknYjiDfV!JBfOx!(_iP>);mt|h%c16ewWt* zo4j9QF&LOkr{Ecv*jN5-QPA)I%5Tg_pSVCXA9RLhS+ZJrz}p`td5rV2q}`^fEb+0^ zzs?t3W6|xJRFxj)*hl^ouFx6|na_Xn_i9WUlMeCKN2EHk?25z5xx4k*{tbN~E>&tp#20ioh uZQiYQ`X4e&Jox*$Evf84R{%l7{!eT&v#KT@b8R#L@jYGrT-G@yGywq3@=jR* literal 0 HcmV?d00001 diff --git a/textures/edit_skin_headwear_9.png b/textures/edit_skin_headwear_9.png new file mode 100644 index 0000000000000000000000000000000000000000..04fb3591ad80d9ad4ec7e22677eec0af8d941182 GIT binary patch literal 297 zcmV+^0oMMBP)(O2+|l@iF_Ktt;~H47g=%*=JuN;g8ILW7=fGYm7c zxR=8n5D^g(`KKJfVm!3Od%QD3G!pNK2Hx?xw!!e;lUKF-OASbGCYP31^&Rkf!u^Zo zbY$;sq}Vn;Zp3mrvekO$&Ygf;;IYG-+4Xq%6wJtygb*Xe=EZd_eBZ=5P@Xjb9g7Dj zgBhuJri&*d2h3z$fGk>rn%jOwt;LQ;e6h?^sOR|lF=3yT|i6Rxi17hI?(U?F= zAiV@g|A17NaDYh~gQ&e)jT}g`c1+H`=xjtH;8jpA3%QW{&H+e=Y#bPL3WY%8p=>ML0iY-=Zu2C0h3!86(6B`zD3u?LDlafKOcyb)HR&0_OMYNKwx`wHDM6 z!n|^K|udS?83{1OWV&7KZ=; literal 0 HcmV?d00001 diff --git a/textures/edit_skin_mouth_2.png b/textures/edit_skin_mouth_2.png new file mode 100644 index 0000000000000000000000000000000000000000..2ac147e31d2b682cddfb5c09bfc2f86388cbbff0 GIT binary patch literal 122 zcmeAS@N?(olHy`uVBq!ia0vp^4nVBH!3HE3&8=$zQjVT3jv*QM-d-}~J)j`saL`_0 zo7X{ZW3yFUwK+N=Oo>Z&7Jrx|&InW)z4z*+=-B#~p6wsA&q(^8TQ3R}Y>2Mqkl>ud Td{k-{kjLQZ>gTe~DWM4f literal 0 HcmV?d00001 diff --git a/textures/edit_skin_mouth_3.png b/textures/edit_skin_mouth_3.png new file mode 100644 index 0000000000000000000000000000000000000000..2249962b0d4e2fceec5762173748f9d08733aadc GIT binary patch literal 110 zcmeAS@N?(olHy`uVBq!ia0vp^4nVBH!3HE3&8=$zQl_3Rjv*QM-d-{kWKiH?Iasl{ zk*!w3Aw7wK#o$d?`2QLfprV+!mY=TN@7+-4T@K_i#D(=O=D6a|^!GD}=jrO_vd$@? F2>|bbAUps7 literal 0 HcmV?d00001 diff --git a/textures/edit_skin_mouth_4.png b/textures/edit_skin_mouth_4.png new file mode 100644 index 0000000000000000000000000000000000000000..a01f7ed05e4f4f86cc20524c99713c92b892f9be GIT binary patch literal 129 zcmeAS@N?(olHy`uVBq!ia0vp^4nVBH!3HE3&8=$zQXZZzjv*QM-d^6w+2A1Ha#8!R z+ME4irZ=ASu!{5bT;n_Q^xo?S{65)0r8QA$eev#Tu1A7Huivcp-F{$W{`V6)?m!ua afA3hWR*0?Q%fI^?#PxLbb6Mw<&;$St8!b8j literal 0 HcmV?d00001 diff --git a/textures/edit_skin_mouth_5.png b/textures/edit_skin_mouth_5.png new file mode 100644 index 0000000000000000000000000000000000000000..74a25a93ee017b6755e8db0467dd35cf2fdaf265 GIT binary patch literal 95 zcmeAS@N?(olHy`uVBq!ia0vp^4nVBH!3HE3&8=$zQfi(qjv*QM-d@^h literal 0 HcmV?d00001 diff --git a/textures/edit_skin_mouth_7.png b/textures/edit_skin_mouth_7.png new file mode 100644 index 0000000000000000000000000000000000000000..0b1afb994275bcbaefa3e354c56a0f457ee21a6e GIT binary patch literal 98 zcmeAS@N?(olHy`uVBq!ia0vp^4nVBH!3HE3&8=$zQktGFjv*QM-d=FzWnkc7QBaOg tTAjiCKTn`h3n*(*YBaZp6Ub;dE+$mOT3uSy3slCy;OXk;vd$@?2>=Cz7hC`U literal 0 HcmV?d00001 diff --git a/textures/edit_skin_select_overlay.png b/textures/edit_skin_select_overlay.png new file mode 100644 index 0000000000000000000000000000000000000000..93e6567032f94768dec667de55a0ada1141d543a GIT binary patch literal 178 zcmeAS@N?(olHy`uVBq!ia0vp^3LwnE1|*BCs=ffJN>3NZkch)?!yWk!C~#z-{r5k0 zukJDCMamO%-=3Y}kg3DO81km^aHY22!NeHzzpu0#mQ?PSQtxNF$F*4W)bfUpr@~_y z`@Q?L6_}J97PlK)g!_qeG{pq`s=sA@)@D-TiN#?$Oe@n5%~ZA9CRu4dd&SuoqQV#L bw>@UdW>V9STW+NWbOeK^tDnm{r-UW|>qB*66vzMSbTJn=@)5)hg&6t?`T=@F7k9qd;C_M|G8p1-5J)-(x?PqGr?EpmKry7? z10yIIE?LZh4>g;*SVj>}VsO&*sD2>yh?Ixki{3v^fW>05SS%Kc#bU8oES8T3IfBnt zaD6GN76#Lq1K_2h|1JPt*c8B16K7|Kj$TR$0N~GmHio{|5U%;*O`V+`^LlkUZFD;A zcU=MpPXHmL3|>!!zSa<``JwM20bWs;T>xI_dtxx1xmlK%8?r3NU^;WF_7`(YN?8s7 zEdZ_1_oTA5QKbpyPJbu2!#!@!hhf2_YbaKuU?w z_rzL=QaiTPJ=bQwWBuqQa9#{VV|KF^0;7H~XL0JVICZ3y+z`NWe-(Gptyl|zXw2MQ zLR&|SPa%RyG-mElr!Snx41l85+4JYnuvBX_;EA|K=RqLVe ziRa%Oz2U@_Qq~Ec*8J?KjZl@)sOF^m zHZ_7b1316B`1(`z5&B#xwOrsn4RbS!{bR4 saFEAUl?D_xHA;@^?}a)VVEO300w0qIAEhp!!vFvP07*qoM6N<$g2&w%wg3PC literal 0 HcmV?d00001 diff --git a/textures/edit_skin_top_10.png b/textures/edit_skin_top_10.png new file mode 100644 index 0000000000000000000000000000000000000000..53b31eb6535831b38fb49ca0181f858475d9c003 GIT binary patch literal 392 zcmV;30eAk1P)JuurD-0CCZ_%eG^Tn96dY@~as9k^0p1cFT2`_` m3eN80b9^rXv}A(gG~*XgaH&0aHLFhm0000ROXuhLQLHxuuEb?mjNe*# zsv;_K@BST-C&wRXY-G#lmvT`=L?p|kEI-=nd3M_);C6l1{+r zOWr@M{r-oN_YeQm|M#{o`QkjpljOl7ewJd#!>dO)edyZq>O(U*z687^!i`zOA-C@f zvg8KAQ~*hW^KQWeU(Rsy^8#Gu5T!snfY&W2@d3N?7I+?nG1hs|IRU;0Hpcc6@ZZ*S z=Bv1{iS3+#u^re>3@i*c09H;xe}u5#ht??wBG1B-nH--MSv+RUt3Mb6Gk{&1qxnn* zOLH)>6TBvNX>OCWXCW&gXy|Vh;SyR+h$2XU^);B-p>qk)Xy|hk;gV+c+=4j9h0WnB zfT>C7Zh&tAP9HJk1?&W1Wk0gKy3b6G_fnXj-MjnTm9-6+-VMM04iWRSdv|9gluiTS z1pEeMMa2AU$hphC>x5p3OB{}yxG@jwE?|oi=iSCp;Mo>r;Jn*V6jl5kLl3_D1zvbovkH%Acylbtpzk-yghHqO%b9asDN+7VA#xeENYgqvwWdf-5~G+DpMXZI6;axJTEmCy*9OI?e_` z$O>(x({!W-v_mikT0TG$Ltem+QEZwFWZmiF!seh~6iU9gq2vLg_RvdUXG;k+eI?Yg zP&immb^h{?aQuK0P7BCOhyq<(loionpa^4hJZPv2$fIxZc;=*s#3^QOX!X-EL zmPUvjEpe_Yk>Uc@T2i+#^Z+Eewzh@H*Q~=J^T!WpFz);@81JR(;hVuoE9v`{I$A#D zuDZaFUpe+-`^;BAt#u(x)%C~DK&OkPa(#OW`dw^TV3Qn1-i4p<;!kJ5^`Vx)rfKCR zY$RIm2lotI{L`3=FF&VbeNRiJ2pmVC}zRf@uNPRFXxBjE0YUKvwE|B6lk9ywv7324@A0!QRc1c>n75 ef34Q2F~DDv5*Pve(6Yw>0000eO3t)h^UmCXq0HglndxsXa&R~>FbNz; l);}4<*dnO$F8fzvb24*E39DSz;_P&gPES`qmvv4FO#p%>E_DC^ literal 0 HcmV?d00001 diff --git a/textures/edit_skin_top_12.png b/textures/edit_skin_top_12.png new file mode 100644 index 0000000000000000000000000000000000000000..9ef79e3db2fece2b027c116475c2ad6676537457 GIT binary patch literal 926 zcmV;P17ZA$P)?EgB&K<3o`k=z~7=$rouJ{9F8A{1fu-i^jIFB7Lx| zv>0R)NQ6mXl?2+Aq}}7g-i1|yNSh56=D_gnes|`6bI-l^+<_7$N|Y#3qC|-jB}$Yi zQKCeNSA^}%cKw|F`g!{=feoN#TfoP!BLS)H+By5OonCQ z?nS(B)YK6TW)lrKp0ot~!;bS!} zY-i#BPWVgXo@A=(a$q%lX^N=XRe73ElCZa1EjY9h~S%H8v&No zv3&@PB+Ub#00+@J&w<-O*LFqHs-(~39!pw?ikJf`l9qtaW=_D|_Zr!L{6?Pw=*;)n zv0cB4Mz)n7Y6z%Na14BOWs7G(wXw(k)bqNEPHpeK`BbMsnr(9o+yl;lQMAxW1X%%^ zk?}K03$~Ae0nm~3r|sW>{-yN5_9C{OZ7*V=RouX~)2)T^8g})rVSp#&^=|JPwq1?2 z<|S;q?j;Pgy@a#vvF|HeV_Rcyyw3M9u+b>~_CKHRjqjiPaqMH}!KdumcAC&Lu#xh_ zw(AwP4CE<=ZP%)78)zl;Y`dOvWT0Kcww?ZCRSg^X(snfn&Ax76V7-5R9BdGt1;OMWpS&zMXlw%g<*$QE*#|KLqnV1M=JH+cw>}A01(2DAmKqkOfDTOyTH$Myl zn<@8gJ54DJtOvmp!dgM#BmtlPm(ld9Xh)wmgMi1tZV29^P~~5N7m~gJ_JLuj`+@BT zA&@QL#P*S-wdI}UV3C`lMJc8MY z3iw6RNYYK98$z}Md`$;V z^C=)HmDI4k3p@kX!ZeHkZ${P*BdaH&)|1Q(HO5%cWPWsf_@lfJqUsxMU^}RviJa6jv$AUZbkog zW6l>b>UJlUCTV3tw(WjY1(M#MYVQ?Fl=xTt1!+1PaiCbA2mk;807*qoM6N<$f@WaE Aga7~l literal 0 HcmV?d00001 diff --git a/textures/edit_skin_top_12_mask.png b/textures/edit_skin_top_12_mask.png new file mode 100644 index 0000000000000000000000000000000000000000..c4d6d2d3cbb536604ff7f49d81bdcaf9c922487f GIT binary patch literal 127 zcmeAS@N?(olHy`uVBq!ia0vp^4nVBH!3HE3&8=$zQf{6ujv*QM-d;J#3zT4S-12|k zd9FVX4;utCwDm@@0#*2ImOFDMwQSZopXYqlzjy@>$Y1#WZ2z5$!U7Hqj4U7`VFmNl W!z|Jnsb)Pu^$eb_elF{r5}E)hq9}C$ literal 0 HcmV?d00001 diff --git a/textures/edit_skin_top_13.png b/textures/edit_skin_top_13.png new file mode 100644 index 0000000000000000000000000000000000000000..179a1fb98fefd16016a985a27bdb48d8934f8dba GIT binary patch literal 885 zcmV-*1B(2KP)|0x2V zWSD=7H{$&^&^)NHqqLyny@R4*do$yiXTj-H@x~M|0-Oe#wyOn?pU&Z{z)-l&zrmf$ zuW7q4@-F~G3IA%wy{H=l<|3;fLY+W?F~tjz}w;MNE%N>G!ku-z`3I^K;8B=U=^6iT+8-4JK6@g|Esob zZvovLq8jCQxss0AzA0(6!2KTBlC+&eZRC&w?iLIi#6@8!U7fEkMq1SEyR``C__BBaoY_9{| zA{SVdB-;-qH4_CJ@o*PdljO)+0$Pa}V&KCyfNe>7Nz(ICr~!1i36B=dA3wq4OFIBR z1M9#>6t4BSlFkC(N%|;Z-Q!LIGq$%Ry$TE#>O;@Fn@NjPd0)=@P9e<>&j6BMiBc2s z*olFUS>61^RKBRt--haE6Nny3EQ`O2DZJN^yn4} z<<*P_ZT~Lm1>n|Eq`>Vcy_G^Z{AkfME<)uw=)Pt28q^j=Jh&cjU5*jX<-4VxO z%(MO!?hi?qrEGUMhw5hi6wtN(bs}IIShIa2t?&%+P5BqK#FOzSMaXjm@*e+u00000 LNkvXXu0mjfo-3`s literal 0 HcmV?d00001 diff --git a/textures/edit_skin_top_14.png b/textures/edit_skin_top_14.png new file mode 100644 index 0000000000000000000000000000000000000000..1b2b1e0c77030a239b472dbab75e7fd530c1629a GIT binary patch literal 1060 zcmV+<1l#+GP)y}U3A$^q0nW) zUKW}3GjiOzm2ms+t9+fC&-Vvtuhj13*N6>(jmmOaiX~nRtzV3ugeNzGEFt zHfHZ9?5|(U0%On`iAn7T-hh<#caAn*g6+)JWdz_wzs3fjfQR)i+0&Z>ednym57zMx zF#XDFfT}LosMLVGh`d-?S^22+bnh-7f67nW+bq2Ww`aFL+1c6oN>wv<^FHt#m|9v| zDospG&}cLmA0MY)uanQ`+1=f}B_gM)+6Fuk34l;lNA2=cf1xlhR*8r_11f`7z!~t= zI@3|rOsmzp3vj%>ova>);b+$Q2G9a(B60%Yx-L-^AtIo;nQJvwjzTvuVJQD)Lz%^B!0WiiOBKW?K zF@~5FEAc6yZNKBH05WVlz@-g9$Ii8Yz>*SJLIzI2F_6F7)PuLz*49b@TU%R~B9Z|r z#bWVU6h#z^#gct@$U4zpUtceUVTdt?D2i|#hcFCr9EauQr=0uM!`XvYx|511c#4cOS&(9_dXCMPGUR;y&QS?cwA^1Q#l&%(k&GM>xj zI6FI|P$(qt2SLEl&=5fokjZ3dHk)L#S(?oz#pphv0ndiYb07#|*!Hh@F1~iphXy|X z{-1s9yA8%sYq#5Yo<|slhzL;>Q7)I++}xyAtKqsXj^hwT5x(yyxvr{+2(IhKd5?%- zjG@!%@Ws!(4}7bt6C!dGSOV@@dB0~B^`+g;hqf;4sp{(@^1;B*0j}#N#mg9zI2Gso z(a{mPT#hJ;lJ|`<#IpB&pH{1dF(x4>P6un_7gc>1DBD_d-##NEe*l-Ndc$_0?|>V& zGhG9|9(WCiqZSizcz8&;TuvOGnVBJqA`T7?I5|1NahxR2<48M>lc>h?JY3gBRdE~# zz`s+J5@3K);Mbl*RRb8e_tTan&vtvH en*RCz58_X%&cpApl=gf80000+f^Ccb zw;w1-N}AbKUz^$_TVUR^MLbdNoQ)7dw@MN`wJLy?e_q`O1ds-y;%g1 zm9zkqfWZI)4;}%|W?gWDz_g^r00yVcY{HqIm1JgC0TRF;X4cUxX>bwv*vvA{{2Wj@ z0`rru{S}~KX5|q1nb~8Y%`-xe)4nL_n!CuWX2=4UJqY4jEJ<1gw#}>>X*mjrQ9an%xnQj0%=Jxj~zSBU;zoB-OV45(3^E&@v5ZW;Ca>4UM3Qf zpPhFAbwyIe%>D)jfU;ZG4Dhm9a6m3fVPTp(B0xII{wIN@gud?E%wEbQpq8fN1A-x&3vHV<44 z0@ak6T?_))qR)Q+-tDO}I#ZOiWM=8$%<=aGB`rvL0!(jjZv)J^kFEkso`M&0Lk?^?Mjf!QU|zOINml%j?xfmgaC^EPnUsC zNz-@k-09Be^Rqx-KA)f3o%w-{H{h-Tu;b?du9nJgtsv_R6~lri07fe{xjz-$0e7K| z;QQ`LSwJSJ;*w_8SFKjLapT79-Me?Y6EXPdcSaAmH~>G-GU`@B|8{VqSs=V@F}m#i`}ao&1_sEFSjl~VI?&Gf8bmj}w)NHu4uZ;&z&e8Z zpx#(NX#w=r1e>Inwros&%X%3eK4Vl;GSJ%7pkKEpDe>q9=ax!v^BUFQUQzKA#f8ly z_;oRe87GSaJVM8S&RfGwyxE4<&u-!sT6^HXVft+Yb|vloGOI7QDv%$swXm9_&JQ6$ zFii&5^|jMX0%uP`08!O7<^OysKVr+S`Jo379(3QneS0l1FlCdY6ZQb^*BP>2dMcyTZ8?YKg(l4pO(seg43Ii$Db))ZPA*C{q}(^{6I$gACz zb~W>Q=xA{%^kSdi6@8 zC?e1EE5}#W_p17>svfH9hpWbmuR8(87^3L!dEMULrmCvz*kTtjz>V)2u%KG%XPE8x+iN4mSaOP=R=@0rbJ7-Q&kI)7=4)oMjm zRXl(GT#YegSq4C-(?LW?)0D+xL6Rg?RfThoZnw+JmoFazHiY^KaKHh8h`a+5Rec!N ze-@FYs(uB`MPv$0HmZO)j;ZS!=Nv^*FdB^*4u>2b9s=yCYUlj?oO}1~Q4|GrUE{sS zImdK5<>cf9=Nxa}zNIWnvMl51=!h)K)-m1#^RV3kupi$25ZYiMBHsgJ5m^_t1U`iC z&9;DuP*oKoLKH=K?>Rj^UHiZd5xHTE;q2^;EXxoPy!XU$%+}UclQ{1^s@k+k9LK0C zz~_Jmj)U~e-~kTk19jjr18xBwU<}l%dh1{DfGCO(5sWc7=a|iAtX3<4k3jCdXFMJg z$1&b}02Ye{MNt5dBuS%+D2kdygo-{4=j;N*Kz=7|{X3w57m)?91#Dk3OS^FosOy?2 zikj*V1_L^s4$e8w&(C{6asU2(vMl4`;-X1Fx7#I-W6H9`IftrJ*EQB!thJAlRMi86&<4q+S>b4-3F!5D&Ec!6qN*y!$a67-LsN*4NuzU?d_XkO$%yf&9tF6=1EUD2k@~ z2L}f@=dji?nM^FOx4*wnp68Th+1&Ygo)blpT5Dykia3rNU%8~H&qU-ykn~bj`@mFH zABadVnB4_X1<4C=8~8;;b~c^>RV7VRj4@PIg)!#x^2vHSG{)e)CrOgV1eeRDSZj%* zh&YZLg~V~({2u74>Rk~z1s;gVSXB{`5pV|FR@E9XB2oagh|E=W2>jaq-)-^F_ygVH V4fM27mnr}N002ovPDHLkV1m>N7#siq literal 0 HcmV?d00001 diff --git a/textures/edit_skin_top_16_mask.png b/textures/edit_skin_top_16_mask.png new file mode 100644 index 0000000000000000000000000000000000000000..652a619685cf48b5a4dc11072e8ec191eba7320d GIT binary patch literal 188 zcmeAS@N?(olHy`uVBq!ia0vp^4nVBH!3HE3&8=$zQq7(&jv*QM-d=a)ZZP0zON{;d z|NkvhiTLTeTt#wKOn@tsQ}7
Hn@mvv4FO#s&zN%Q~! literal 0 HcmV?d00001 diff --git a/textures/edit_skin_top_17.png b/textures/edit_skin_top_17.png new file mode 100644 index 0000000000000000000000000000000000000000..c92fe0598711d6b8e4002ec94e92334bb48d7039 GIT binary patch literal 1227 zcmV;+1T_1JP)7w+1=^s)GU4=pyT{m5| zK};(pf{rzb9mnW6jx*zYIrDUpGhr%9V$F1QAGloZ`*H4j&UwyrUI-8%K!5-N0t5&U zAV7cs0RjX7s@1B1384G5do!7gB+VQhmoy_uXFc1aAE#A#@`18T*R}HVduO&6I&QF| zqvIVQ3XGrDV5w9(X==GxES@#h+&YCVGRC5|R=-J3FfFf1$#Q&y;z7 zTPogFp-_;d1TZ6M#P$pWQ@LDDCX%ln6XNdl!Zk?>*OGGrhBLokm!y%6U*DIcL@hZd zNuHk0OHyKc@tT0<_{?h^k>mkafr)H3dn#3})oQH=_ke^2WIUJ42?(3RYFTsB0ySg* zy(($EWzD#ClCUu)3^aqB0K7`2a@mr04VY@NHwaAGy08WOwIy&Sv_yH?-jf{MTLj?Q zr{vdvAU@xCITQQ7%Q-hFDFpO5=gL4@QW+TE+S>Zl_kALf$Skn$obx56fwHk>9mqEt zjfvge-L3xq{!wG$9)NRh9hj8#7#IRl_Ky=0dD|-OoO>>50(i>0JACvQZhXi&Nqw!& z!a0`$E?Cw)U^y0x5sADyQVOUz=hAk47;a`Z6bi-S@wjjM%0LE)A8km^x#s+T>jJ05 zq(y(El=(cF&*u-Bzsto>J|>+`XF0f+Z0!h=YL?Nmb8bDG&6eWv_$+X)(P%6>=P(Cb zQ3Of=g+ifZZF<{+g)u4GtWbN}3rSa+b#LN!WqW&DO`&UwWV6PNvdwx916NIa!{)Fr z=}Mtckge&qdY-X0zG;cqysfrqfCmiQKRv*2y9U(jb>(t7B9RECQi*sxPNR6AYNd_@ zFLugIUhZvb0GpeeR4Nt1;V`LG3eWSHo}P|4=jMzN7bHEi*1G7N``R+!01nN`EYJ&F zv@EaLaVCuNTgL7v@NK&pFmt36+&6VUiV0Kv{${3tn>IcL+*(~-)xyGpY<~jqo-E#y zq;VDRzU&e$Z@{na-4QVS+rt}@6h1OP`G0l+oO64?WT{m8sjI8&U$!fiiaI+xzqHQ> zz@-*}N&_DylgaN!M@NZ9qw^MkU#zu;j1d4!&N)xgdElu9FJp855kW4ubf>m6UbO3lXB4H-6@8Y6%^4VFIdRV8~k(alX;E%2K-db=01C>v!4jI5Xy^v=lS0sdDi9 z(snQ2X6^Z@oE%jL+D^UV{}>_TeY~FWm;&np2D^3qv;8MAEH;!7uAYDH=`-_54X1ct W$#E-Rh-$R}ne6H6=d#Wzp$Pz3Rz8*h literal 0 HcmV?d00001 diff --git a/textures/edit_skin_top_18.png b/textures/edit_skin_top_18.png new file mode 100644 index 0000000000000000000000000000000000000000..6db54464502b230ce5a75ffa6d790c57ec43d9d7 GIT binary patch literal 664 zcmV;J0%!e+P)OG-$U(FS0=DZs4{V!KARtn-VLr(uZ{M4l?EB7}d0;RY3XrB(K z0Q;0afOR6eqOmNi;Yugd1mD`9d|L!?pSYBsmFiW{IDPNAN6{@FyDptf*VjlomG0n6 zHGt$E<^&k8Cj|72-WwIJ9McAEWbDD106jp@#G?tp`Tttx=_+8(6>q^4;0`bpzB7Z~ zf+xkN#p9Ba%v44Sg@P0c1<6chq@{v7s{$B8!sP2@7;5+rB@c|m#$ycuR8|RawNpfp z=Hbq{QhHGm;6~FMGvY0H;?B9!Iv+>^!@#)8s(SLbf&NZugCk+f+XV)JH%-FS`PyXn z16x2huoL<=TPo%qPzlA^Y^MO{(PmUQG|;EAssf-_wF7((V_hn%_CkLG*gNX-sI2-D z&dCFBf%yGf!@JRFgrHUn1!~#L|`S@WQ@G*hZ&WcQK36vKF;_vUb(Xv)&3x T{Rp2N2{P8x)z4*}Q$iB}&`UwU literal 0 HcmV?d00001 diff --git a/textures/edit_skin_top_19.png b/textures/edit_skin_top_19.png new file mode 100644 index 0000000000000000000000000000000000000000..ad49c4fb9e209ccac9ab4602863d8c29c89b5b45 GIT binary patch literal 1643 zcmV-x29)`UP)V_^(E{~>&?0Vy2dt-CC|Y8`*UYkaMr}_ZLDTYA;OtLgqvwS*=!47wpOva zx;9Uz+r|o8(CM}r0kF75BD1jpc2Jey)#KoKI%6BpI0HJ}Hlry-xCURh$Fia{_ll93 z$T)R=fn6C+_Pcr$@~G-uW5p8345e#iYtnwo#Pbk(hj!Y8h{pQ~J1|K-^M*Pp&Z zZ(}v1Yi#orm8HRwXJ9Zk6@I+$#DKqV1fTA%VlYO-1^f075UCVJWofXei&tM|OGZ+= z&n#;2b$cvX#kn`v7k{5}%CpF>3@7(};&8mxbeP270(0k213r2JqkJ@WcX$Bb zl$Vcu`00_QMP+GF>r2?nY$2yYVpQm_-TU6fltVr9Aekbj5aD*cw0Ft>CIcqM6D%tY z8a~Fu^t;24VR|a+H{{+1fZoPx#_#HJ%!O(Sk1t21_wZnV%^&~3b#UprRS#=CTg;i2 zFYe3|^26B`gx~PM?VIImxKgkEXzffR;L&V`|OT>sLx29OXe_-?;t_+?GzOPx+KWNKu}m z`8V}f4;ed>52RJ3x9xd(C=5b2j?DRP7dO0820kXdeE>MH_w~Sr!iwQ#5ygSgn_P~N z{E=u3kx1;W^^Y! z&6U?Oj-H?E{YmX&OoGQ8iA>kje$K9-D!YQJ+$XM&KGXE>eecZq%Sr8#=D!j`kov)& z=YdR0P9FW}{U{_-!72c7_T#UhGp53G=SH)4wP}$lM7W}|G+gfg4xf9!1psWW-;rIo zPUG@yGcViSTzSnDBHX#HPi7(}CBin1SNv==?jiWkpPZ;7yzvjVfkSy4G6UQ7xY*}S zH-!jiS5VbkJKG%Yr)$*s8z!)TpHp}3RN&5d7@^5&bYyMFL>#x3;UUJ zwS95yJ^(NUWnYs`m4UctKv~n#7tz1?`-H>{UyifssSbXMgNddNtb@nQvTpSm<-& z%&2nDzSgDAt{_^S`?As|fAn)mB>(82K9ZOq2jo=hcl9_-A;LX9c2{3Wnn0_5 zeXjk7Bt@;wy}II)fkgj9+0)yLo(-6-RqS$YPB4e88j9;}s?%*V(hH8P=U?7LspDV{ zb)HPUOox_rx^2dKYXvRP7t(rb1?{I7G8tU~r6=1owD(Y6r`u*+yY``e>N=7moTI1P p^M&*DSVt~B-o9GAuZqN%zXLg!*V({*nNR=#002ovPDHLkV1oayL4yDQ literal 0 HcmV?d00001 diff --git a/textures/edit_skin_top_19_mask.png b/textures/edit_skin_top_19_mask.png new file mode 100644 index 0000000000000000000000000000000000000000..b4ec21d08cbbb8d4c3565a2217f62e0bf6b97991 GIT binary patch literal 155 zcmeAS@N?(olHy`uVBq!ia0vp^4nVBH!3HE3&8=$zQc0dJjv*QM-d^wKJfOh9e9>k1 z|6{7L4lPY$YrnGv*w`;%0V-l(@O#Xeyv(qU?cB_X*&6akzpheWFsF_+jm_ivjeoCr zPdu8PvyOq0!-0WGpn-uUV`tg_4XP_ArTl)D-~C_{7nYG3D{{3a;I3Pda{?Ci$TbP&x8W>m<7;F`mG2i{a eQf>p6oAu{*R_W3+?^XacF?hQAxvX}M{P)5gg7=)jZZ7EScNCF9=r?iku$^ZW?J@i(3DJgATr;e@2(?dsK0xg7oAg4RC@3f>C@3f>DENKoXE$tLK701I_kMAE`ad|J+9d(1fBb*#&h+aO zFta@YIsi$BKo2Y)&6}i-fMw_-tR!vX27r6u1MnG`+rEo9 z52?|&fFeXAsgHf{ZBOEehwN$%tbtjc=`z;9{ubG9k3w@fb_cu)c|!CKu%vYe55yXv zwmn$AjsW`+V-0M8sqIb3*Sp|=%62Vj1sq0zS;W}bK9#iC3c+EAkB2##zey?MQG~f2 zdk9v*N&3DE$=>!fr@|t;yAJuv_F(m418TrqEpd|T?r%F_`UhITS#&R{w>=1QXZu3Z zmx$t2C22VRx>S?3^try@a>wXjgwB%S)sGEVD`^gNl0L@jt?ilZQ`--NU~xqYtdbR9 z6QGstHhD360gi#S?Q`2V+4zx1Z;)vnp>Amf1NpGI}2h$X|N!p+1x5>Z$Wd05`vg%y2@Fk)E0000P_QwqKp`c%~3g$${F^f}GBpUs;?5RSh#Lo;_apS$_AshF?!luh-;`XDM%B tVB$~!5^w$s&-tp~VbAu0_v5WSdfPoYCDoRdCjw1i@O1TaS?83{1OVw_HMjr( literal 0 HcmV?d00001 diff --git a/textures/edit_skin_top_3.png b/textures/edit_skin_top_3.png new file mode 100644 index 0000000000000000000000000000000000000000..14b65d09a8c8dd4b0dde4e4d5f47dc649fbf9b84 GIT binary patch literal 941 zcmV;e15*5nP)OZAC3Eid%PaFaDtc-3cySC=}cX zZfnsj3JM}J&_D%Yrlgom-ZY6bc3ycy-{iRYo?Nrgf|H@>``|L~z4N_0_k8Ev@6JGu z96562$dMyQjvP61f2GncYMd|D^<^)_hJ4y;CbNHe#|$t2LeR( zmFnV=6DO%Ie@%7y3P(vsM{&RX7rV8@K~_AV^8?tp?t*s(0F& zFCBycn`&j0{5Qa3zlA2bMy6-i)vlRoJ>c$5 zwP+IXQyqt;V7@V(@x#GUxo7Ct?|?LL<`Pggv#y!l)&4A)St0}M27JUH1E$UF0Puo- z1dU6886BTb0%w3TAH4hikHBf&Kdtzzu1^Q|NB?Qz)`#TZ434JE&@y)}0&nSG+o*Wc zO0K9@O@eLE23`WbSA1m0cRr8Xf3<=nj)~hXe&4#q?ccUZ;?AG3gO5-0@aREC$`wi@ zBRo_&V0-NWQ~E3@vFv!7QUzutPEGNOxINvc!Jf{%;jp@;G-N}zms{Wum$qM2G^IIE P00000NkvXXu0mjf6QRm^ literal 0 HcmV?d00001 diff --git a/textures/edit_skin_top_3_mask.png b/textures/edit_skin_top_3_mask.png new file mode 100644 index 0000000000000000000000000000000000000000..0e87301ded85d699e1e518ad26dd0d96edc4d929 GIT binary patch literal 138 zcmeAS@N?(olHy`uVBq!ia0vp^4nVBH!3HE3&8=$zQh}Z>jv*QM-d=CyWf0(Da9r|x zeT?^t3HNvdYFv_dfC?7Ojx;dtzJ6x%=dkb68}#mM_*vATF>k)?y@o$Od+sqXvIsbU iiH3ELnr)}mEi*g6fkid{$igb1UItHBKbLh*2~7Y;0WX9A literal 0 HcmV?d00001 diff --git a/textures/edit_skin_top_4.png b/textures/edit_skin_top_4.png new file mode 100644 index 0000000000000000000000000000000000000000..693ef3216d4ca6f94a0e3db940071f2c7fee16f2 GIT binary patch literal 1453 zcmV;e1ycHnP)F6vw|!8WSUZk!ESIqz_{eS(zf6XwlM@PMD5~SZJB98`}t-B4uuL1C`$sI5;>sI5;>sI9?nAfXCzUA{0dx0U#7biCDd2iTq31-_4a6 zfGhx{si~O-xLD zL~gt22XHhRjb4gGBA27l=rsUG7u&5?Yh^4J z``+Pjd>o6#E-w4_r=+AL0PJIA*Aj;0pHc%8*v~JzHtIso5DwR5lqVh8{ zGw;8Q5;$SCT7Lv^ftA(qcsvN8kgxzKWOY?EP5%wxyxDAS2JrRN)YJ_CCBb0uo>VH8 z(=>e_fO2MLMh~Fc@Ar>LrBXS=FctvHKplao^)iA1&tg+kSV0|(v)0F%iy<955NolfVOW5j3uCH2v4;=xBB_1M2GPWWiwY9)QE+fgU93P5eNh&;c(ck)oK-yNaTS^ zrIIJ-he9DoUtgah7K=UHwQHBsU@)8kpiaug_E0F~U>HUbjYg+cDwTZM^PjEb&8exW z41g`^>FHLrT3udQSy`71fJ&wMOry~hW@l#`0Bq**co6`5k~O|_=gtP5PFG%4RduAh zySuuqtn6EjMpIZ&P|)pmyUF0-AnESzCTg`h>5`buW@0oNNpEj2xqbUK>Fw<$O-)Tt z?UR#}WN2uJyo?^uU^bgu09-rwK<8pANQ^73+-&*!@X;PCO|$4O014H+97BaMxXWME)`==FL+2qAvI zpENWykj~Cd($&>Pv|24O8jVkbkVquR%en__W94RvL^48ARAF&(aeHzh`T6-bDT*qR z$z*o`l(8pA3Hwe+WxIH3MMcGl=H}+2?c2AX1^|&r?zPbJw4qA z;NAK8c@hqX34m>0ueTRKEt>&k$y;MGd$O{!?g7Y1Pfxc3*vRUa zm8G}|{?^melMCR6(P%7KSXj7jx7)v&pP&DgVHhwBgC|d(=*(vG`wI&T!vg~YTL5$o z4i07k_`_r}y#?T^&1S0&27?xh#nQ+yjP>r_yPp79_9N_H7m^q~JtUF800000NkvXX Hu0mjfY!a$b literal 0 HcmV?d00001 diff --git a/textures/edit_skin_top_4_mask.png b/textures/edit_skin_top_4_mask.png new file mode 100644 index 0000000000000000000000000000000000000000..a7e5ce8af155e65763cca386e00680b9290e1d65 GIT binary patch literal 150 zcmeAS@N?(olHy`uVBq!ia0vp^4nVBH!3HE3&8=$zQn8*cjv*QM-d;b*dBA{&`G7^q z|EYJ~#ZN5eW4q70AV5)Qml#l$fv-qP+Q*qc)9>vIC@6_Luy4z{84(9&SS#><+WgwQ zFaALAocVXTCH6D0YB(^)HFo~j7F)o;S`#;AKCAlDUz6;CMlg7~`njxgN@xNA@{Kf< literal 0 HcmV?d00001 diff --git a/textures/edit_skin_top_5.png b/textures/edit_skin_top_5.png new file mode 100644 index 0000000000000000000000000000000000000000..716b0e3051e78a3f92ae6e69fcb1b73d9ea49a0e GIT binary patch literal 1345 zcmV-H1-|-;P)<=phgNvAT<(=q9Pi>gq?|xxG}-_03x=fv~%w~&T-MHHcb;_+Nz8BttQ|6|KFK8 z^L^)>ftZ+>n3$NDn3$NDn3$NDm`QSS*|G~0#g8mqx^F7-pKWe_9=HYI{go?s0p?`# ziK(7|l$47;Y-o64e0-*DubU|TPZ{vM*0(d64WBeMZ4-vEc{<)GZKmI2`K}mb*qML(lAs`sn+Yh-VYHF;Mw;4{uJv1l*{@Pyrfn#9t*@7Aj=|_cL`Uc013GfPT+w9q_yZj%j97mbG3f)%N4y;2hI5A1qBKI}%d*Nh!A& zur*5E`b}To;j(o4S6hfpf!4dPxNh;xWbzRSZ2}kwf=xrd|N7ii>T*)bEx%{8T>!<& zWQ!YyyF#VJ>d!ylJl!o&da}O$B_JQjbl21z1uB4oja5}=fwO=(aOa(efR#Y`82zd} z)zyFMqdgu#eAL+Z0?-7^I#O4+4=4u~_KaNT1L=c{7as)f8snV{%#OUNs12rl7tkr& z&H<%SX#xaM2@>`3d=G4(5Aet62NP0yk#AIQ0rM}p?#$5=&S`A}13>6lmLGYAVHkSc zSSE1WZ`o`iFa#7%dkgf|*S90YhES>Q0nf`9LaZsW?UzEO#1DgmEenf_cU*DZqEM-| z{kh!Ho73rE#_FXIYw|6tQ)_L^NF-W9t#@2;-J%=v^45OW*LP%YDs{;Xf~T%|-kbTB zbv(IKpz_y3_Jnv~Y2o9u8b9hD~(bDgEU01W&!dnXp)(m=HXQ;Kf@7%eT>287Y zW0}leU>2}=*By8C0yhEko~Woe51a=ob}m@Z3#=ZeZ*HGI|3tL%&+A>jyd(O$74Ixx z-VUq+ZtAYB?Ez|l>bL6Z_D5c)r>^ehXr&+ZRssv&9oaR?fO-E$3&>&LPmcCqbTBCe zu9`xGz&$|V2$2OYjnmtDq>N_+R~^&L0U;3NNtpwF0+J~qT;N;49P)i9@|Iv2e~vYQ z_v*iL5IUa8?6HMdk70E9N=Y{eT4p2?Z7I{tesTHov$Z89JAI{WrS*p2bGd_#X=d}J zT!&$F40>J)c&sSW4+X)q(lB=VO4+{F8?@Hl*E}yh+i@QDmFjeZAd!@EtrVie7Q*+H z+7fErS!CPS$9oGcYx_?_L#1mjTzK^V{PQS?`EU6Hp?Dce#9t*Q00000NkvXXu0mjf DH?)$= literal 0 HcmV?d00001 diff --git a/textures/edit_skin_top_5_mask.png b/textures/edit_skin_top_5_mask.png new file mode 100644 index 0000000000000000000000000000000000000000..f0f6397c71d6acdbd95c374c56d8270e6202d56b GIT binary patch literal 151 zcmeAS@N?(olHy`uVBq!ia0vp^4nVBH!3HE3&8=$zQgNOxjv*QM-d;J#)u15Ya4_`O zfBn8Uw~q4d?7YIm@yPMRLN}l)hMw%{h1;iXtnco~P1*b_spHbj^wq1`W~9cOI=nu! wSvK;z$>RmuTJiNvAHUl>Ffg(RfQSZlzd0xP1@5G-*a$Mi)78&qol`;+00{Orwg3PC literal 0 HcmV?d00001 diff --git a/textures/edit_skin_top_6.png b/textures/edit_skin_top_6.png new file mode 100644 index 0000000000000000000000000000000000000000..6f9f7dcc0a676f9447f66504d6a52a9cf1a2cf00 GIT binary patch literal 683 zcmV;c0#yBpP)$gCF zFKO1%Q`G#Lln+Hk;96=s3SPs~&(!D2_xkwOq{vWFTmw5G6-iyyiA+RR(e5hWS9;!R z{uY?4_AHdvA#eq}0e-e!1D?s*fpRkerrOlhM0y1D7MP~pmKATV;TeCQZO_+~5yzUuk;ZiK@}0M{499=*3zA9ojniDCimFy?_{Yz;P)Y4(tHUUo_zX7RMs;5ujv*QM-d=0uJ)pqD>?pMH z|0YR=yNp+_Wc_1fNEAFA1ysbqkT6SN&CN%)zt4XCcC_I3N46(l1U;-A%s=ZX3&h`T zD4Snj${8j9CyZg8zp1JRgF0hKXb+!)@%Q^o0soja9K8ho$^GHuVTn4h;S$I+Pgg&e IbxsLQ01z8DQvd(} literal 0 HcmV?d00001 diff --git a/textures/edit_skin_top_7.png b/textures/edit_skin_top_7.png new file mode 100644 index 0000000000000000000000000000000000000000..844c09ac819c6da874b441b9bf11a4d561de0e15 GIT binary patch literal 960 zcmV;x13&zUP)D46d|SsFA@&5YK|Vf?z)xal6UcdTD0Nu;;@8$>xgvRm0Pp+0o4R?RyKP zq@<*zq@<*zq@<*zq@<(_Nu$wt@r(Nz0{{_i0ayTlr;o}Ez#eveX08FSwDC~f8}$Jc zi^ZNA7YcJWzIgHazqKA(4c{eRzzzquHInb(G0KZ>F%GuN2e z1>n7R3dm$KKi<#Yt4g`IWq85JjUkiC3@zEIsi{r14l}myihkN<5uEXYJE#7DN!lx|D%AByaYR) zPC;&@t;Z)PCu6m7X$uPg&d<-Y015zL7)AsDMs5s_vLdwKv9W@cvo zb{wbDYPJ4x9Oonq!z&BKaeQT^a=HBY)|(%#;jx&xCL1A3$`}AF)f@ppyCbYMAS75BiefWNwQH@fsCXR59y4QaZ|~#f<>fE${L1$C_uuMJc6WDg>{@nqcKDjPwk~_U z#%ukDo@48_y7NvD0G5`PGRfG=%1Y*@d8@0d*X0!S!|;87R#hA+dlNvr-|uIoP0r-^ ih$-isrk|)O@8&-YSS0W~hvoJF0000ZWl6daR z-}s+%WM-E%cpduR%O|jY+YJt&G6n{NUaqWNJC+;2Ufca}*JJSyKKGfXGVb{ODt#`a z-HP|?-tXv|UHwT+qMl8Fff0y$_Hfrc_Gdp|mK@x zgVeC+p0&BxA6xr+k%=;S>)C3 zfI<=i@LizpD0x4@&4 zxu?DV|Afm;C&74@L4Fdnk~Kc914QJrs`iamt8-GI-6RFds=6y}E>zMZkf95lA#dSbsTw as+8fECbI%N-)A474hBzGKbLh*2~7Z;MJ3Vz literal 0 HcmV?d00001 diff --git a/textures/edit_skin_top_9.png b/textures/edit_skin_top_9.png new file mode 100644 index 0000000000000000000000000000000000000000..2b65eca986df80c2728eca825bf9062f02dd61dc GIT binary patch literal 482 zcmV<80UiE{P)Y9{_2nJc?uh z5YfVizJ~lGHZ-B~b~fc1M3nqTkB#O5{In%nOY#!{d5FB-HWg;*0WcD+%3pehwYKn~ z3rHRNDtrvyh6kho2Fve^{hS-&=X4kQo)()6g|BQ4&L{T8h|Nu!jv)%%gkRT!L|&L3A8%pGr?P`r)UIEa#a@ok8abt zwv%Adu%X5^f)PwZ+3b02t>+c4k*a{S0ppo3R_1s`SmQpCN3Q~`HCe3;B=P`3Y zumP^lPc0u8lPQwpLjb_##V7j15w33@R_02)yuJYd_B)+l^so6G0C4yCOfd}*d=)Mx zQzyMY9N}qvU(3T4=Fiq#g{2(eic=}piRcVK<_LiSfZJ_of2CHnu8m!3lO;KAw7X6C Y2Ho!#AuAL