local function make_texture(base, colorspec) local output = "" if mcl_skins.masks[base] then output = mcl_skins.masks[base] .. "^[colorize:" .. minetest.colorspec_to_colorstring(colorspec) .. ":alpha" end if #output > 0 then output = output .. "^" end output = output .. base return output end function mcl_skins.get_skin_list() local list = {} for _, game_mode in pairs({"_crea", "_surv"}) do for _, base in pairs(mcl_skins.base) do for _, base_color in pairs(mcl_skins.base_color) do local id = base:gsub(".png$", "") .. minetest.colorspec_to_colorstring(base_color):gsub("#", "") local female = { texture = make_texture(base, base_color), slim_arms = true, id = id .. "_female" .. game_mode, creative = game_mode == "_crea" } table.insert(list, female) local male = { texture = make_texture(base, base_color), slim_arms = false, id = id .. "_male" .. game_mode, creative = game_mode == "_crea" } table.insert(list, male) end end for _, skin in pairs(mcl_skins.simple_skins) do table.insert(list, { texture = skin.texture, slim_arms = skin.slim_arms, id = skin.texture:gsub(".png$", "") .. (skin.slim_arms and "_female" or "_male") .. game_mode, creative = game_mode == "_crea" }) end end return list end function mcl_skins.get_node_id_by_player(player) local skin = mcl_skins.player_skins[player] local simple_skin = skin.simple_skins_id if simple_skin then skin = mcl_skins.texture_to_simple_skin[skin.simple_skins_id] end local creative = minetest.is_creative_enabled(player:get_player_name()) local append = (skin.slim_arms and "_female" or "_male") .. (creative and "_crea" or "_surv") if simple_skin then return skin.texture:gsub(".png$", "") .. append else return skin.base:gsub(".png$", "") .. minetest.colorspec_to_colorstring(skin.base_color):gsub("#", "") .. append end end