let emptyValue : UTSJSONObject = { // 主题颜色 themeColor: "#296BEF", // 头发颜色 hairColor: '#483029', // 衣服颜色 clothesColor: "#EDA20C", // 裤子颜色 trousersColor: "#296BEF", // 鞋子颜色 shoesColor: "#296BEF", // 物品颜色 itemColor: "#483029", // 人物肤色 skinColor: "#ffcda5", // 元素颜色 elementColor: "#ffffff" }; /** * 参数合并 */ function initEmptyConfig(config : UTSJSONObject) : UTSJSONObject { // 当主题色不为空时,将裤子和鞋子的颜色同步 if (config.getString("themeColor") !== null) { // 当裤子颜色为空时,默认主题色 if (config.getString("trousersColor") == null) {config.set("trousersColor", config.getString("themeColor"));}; // 当鞋子颜色为空时,默认主题色 if (config.getString("shoesColor") == null) {config.set("shoesColor", config.getString("themeColor"));}; }; emptyValue = Object.assign(emptyValue, config); return emptyValue; }; /** * 颜色解析 */ /** * 主题色渐变混色 * @param c1 混色1 * @param c2 混色2 * @param weight 权重 0~1 之间 * @returns hex规定颜色值为十六进制值颜色 */ function generateMixedColor(c1 : string, c2 : string, weight : number) : string { weight = Math.max(Math.min(weight, 1), 0); const r1 = parseInt(c1.substring(1, 3), 16); const g1 = parseInt(c1.substring(3, 5), 16); const b1 = parseInt(c1.substring(5, 7), 16); const r2 = parseInt(c2.substring(1, 3), 16); const g2 = parseInt(c2.substring(3, 5), 16); const b2 = parseInt(c2.substring(5, 7), 16); const r = Math.round(r1 * (1 - weight) + r2 * weight); const g = Math.round(g1 * (1 - weight) + g2 * weight); const b = Math.round(b1 * (1 - weight) + b2 * weight); return `rgb(${r}, ${g}, ${b})`; }; /** * 主题颜色 */ function funThemeColor(coefficient : number = 1) : string { return generateMixedColor("#ffffff", `${emptyValue.getString("themeColor")}`, coefficient); }; /** * 头发颜色 */ function funHairColor() : string { return `${emptyValue.getString("hairColor")}`; }; /** * 衣服颜色 */ function funClothesColor(coefficient : number = 1) : string { return generateMixedColor("#ffffff", `${emptyValue.getString("clothesColor")}`, coefficient); }; /** * 裤子颜色 */ function funTrousersColor(coefficient : number = 1) : string { return generateMixedColor("#ffffff", `${emptyValue.getString("trousersColor")}`, coefficient); }; /** * 鞋子颜色 */ function funShoesColor(coefficient : number = 1) : string { return generateMixedColor("#ffffff", `${emptyValue.getString("shoesColor")}`, coefficient); }; /** * 人物肤色 */ function funSkinColor(coefficient : number = 1) : string { return generateMixedColor("#ffffff", `${emptyValue.getString("skinColor")}`, coefficient); }; /** * 元素颜色 */ function funElementColor() : string { return `${emptyValue.getString("elementColor")}`; }; /** * 元素颜色 */ function funItemColor() : string { return `${emptyValue.getString("itemColor")}`; }; export { funThemeColor, funHairColor, funClothesColor, funTrousersColor, funShoesColor, funSkinColor, funItemColor, funElementColor, initEmptyConfig }