diff --git a/contracts/libraries/svgs/Profile/Face.sol b/contracts/libraries/svgs/Profile/Face.sol index 9b7a04a..a11c894 100644 --- a/contracts/libraries/svgs/Profile/Face.sol +++ b/contracts/libraries/svgs/Profile/Face.sol @@ -2,23 +2,47 @@ pragma solidity ^0.8.0; import {LensColors} from './LensColors.sol'; +import {Face2} from './Face2.sol'; library Face { enum FaceVariants { - BUBBLEGUM, - GRIN_TONGUE, - GRIN, - LAUGH, - LOVE, - OOPS, - SLEEPY, - SMILE_TEETH, - SMILE, - SMIRK, - TONGUE, - WINK, - WOW_TONGUE, - WOW + BUBBLEGUM, // 0 + GRIN_TONGUE, // 1 + GRIN, // 2 + LAUGH, // 3 + LOVE, // 4 + OOPS, // 5 + SLEEPY, // 6 + SMILE_TEETH, // 7 + SMILE, // 8 + SMIRK, // 9 + TONGUE, // 10 + WINK, // 11 + WOW_TONGUE, // 12 + WOW, // 13 + BABY, // 14 /////////// New variants in Face2 + KAWAII, + PIXIE, + TODDLER, + VAMP + } + + // Variants in this library (old variants) + enum FaceVariants1 { + BUBBLEGUM, // 0 + GRIN_TONGUE, // 1 + GRIN, // 2 + LAUGH, // 3 + LOVE, // 4 + OOPS, // 5 + SLEEPY, // 6 + SMILE_TEETH, // 7 + SMILE, // 8 + SMIRK, // 9 + TONGUE, // 10 + WINK, // 11 + WOW_TONGUE, // 12 + WOW // 13 } enum FaceColors { @@ -26,112 +50,76 @@ library Face { GOLD } - // // We take the 2nd byte from the left for the headwear variant - // uint8 variant = uint8((seed >> 240) & 0xFF) % 14; function getFace(FaceVariants faceVariant, FaceColors faceColor) external pure returns (string memory) { string memory faceSvgStart = string.concat( '', _getStyleTag(faceColor) ); + if (uint8(faceVariant) <= uint8(type(FaceVariants1).max)) { + return string.concat(faceSvgStart, getFaceVariant(faceVariant)); + } else { + string.concat(faceSvgStart, Face2.getFaceVariant(faceVariant)); + } + } + + function getFaceVariant(FaceVariants faceVariant) internal pure returns (string memory) { if (faceVariant == FaceVariants.BUBBLEGUM) { // bubblegum return - string.concat( - faceSvgStart, - '' - ); + ''; } else if (faceVariant == FaceVariants.GRIN_TONGUE) { // grin-tongue return - string.concat( - faceSvgStart, - '' - ); + ''; } else if (faceVariant == FaceVariants.GRIN) { // grin return - string.concat( - faceSvgStart, - '' - ); + ''; } else if (faceVariant == FaceVariants.LAUGH) { // laugh return - string.concat( - faceSvgStart, - '' - ); + ''; } else if (faceVariant == FaceVariants.LOVE) { // love return - string.concat( - faceSvgStart, - '' - ); + ''; } else if (faceVariant == FaceVariants.OOPS) { // oops return - string.concat( - faceSvgStart, - '' - ); + ''; } else if (faceVariant == FaceVariants.SLEEPY) { // sleepy return - string.concat( - faceSvgStart, - '' - ); + ''; } else if (faceVariant == FaceVariants.SMILE_TEETH) { // smile-teeth return - string.concat( - faceSvgStart, - '' - ); + ''; } else if (faceVariant == FaceVariants.SMILE) { // smile return - string.concat( - faceSvgStart, - '' - ); + ''; } else if (faceVariant == FaceVariants.SMIRK) { // smirk return - string.concat( - faceSvgStart, - '' - ); + ''; } else if (faceVariant == FaceVariants.TONGUE) { // tongue return - string.concat( - faceSvgStart, - '' - ); + ''; } else if (faceVariant == FaceVariants.WINK) { // wink return - string.concat( - faceSvgStart, - '' - ); + ''; } else if (faceVariant == FaceVariants.WOW_TONGUE) { // wow-tongue return - string.concat( - faceSvgStart, - '' - ); + ''; } else if (faceVariant == FaceVariants.WOW) { // wow return - string.concat( - faceSvgStart, - '' - ); + ''; } else { revert(); // Avoid warnings. } diff --git a/contracts/libraries/svgs/Profile/Face2.sol b/contracts/libraries/svgs/Profile/Face2.sol new file mode 100644 index 0000000..3f06fb0 --- /dev/null +++ b/contracts/libraries/svgs/Profile/Face2.sol @@ -0,0 +1,23 @@ +// SPDX-License-Identifier: MIT +pragma solidity ^0.8.0; + +import {LensColors} from './LensColors.sol'; +import {Face} from './Face.sol'; + +library Face2 { + function getFaceVariant(Face.FaceVariants faceVariant) external pure returns (string memory) { + if (faceVariant == Face.FaceVariants.BABY) { + return ''; + } else if (faceVariant == Face.FaceVariants.KAWAII) { + return ''; + } else if (faceVariant == Face.FaceVariants.PIXIE) { + return ''; + } else if (faceVariant == Face.FaceVariants.TODDLER) { + return ''; + } else if (faceVariant == Face.FaceVariants.VAMP) { + return ''; + } else { + revert(); // Avoid warnings. + } + } +}