diff --git a/contracts/libraries/svgs/Profile/Face.sol b/contracts/libraries/svgs/Profile/Face.sol index 36eb379..6a298da 100644 --- a/contracts/libraries/svgs/Profile/Face.sol +++ b/contracts/libraries/svgs/Profile/Face.sol @@ -179,23 +179,23 @@ library Face2 { } else if (faceVariant == Face.FaceVariants.BABY) { // baby return - ''; + ''; } else if (faceVariant == Face.FaceVariants.KAWAII) { // kawaii return - ''; + ''; } else if (faceVariant == Face.FaceVariants.PIXIE) { // pixie return - ''; + ''; } else if (faceVariant == Face.FaceVariants.TODDLER) { // toddler return - ''; + ''; } else if (faceVariant == Face.FaceVariants.VAMP) { // vamp return - ''; + ''; } else { revert(); // Avoid warnings. } diff --git a/contracts/libraries/svgs/Profile/Headwear.sol b/contracts/libraries/svgs/Profile/Headwear.sol index c8a6745..0ec54e0 100644 --- a/contracts/libraries/svgs/Profile/Headwear.sol +++ b/contracts/libraries/svgs/Profile/Headwear.sol @@ -13,6 +13,16 @@ import {HeadwearGlasses} from './Headwear/HeadwearGlasses.sol'; import {HeadwearMushroom} from './Headwear/HeadwearMushroom.sol'; import {HeadwearNightcap} from './Headwear/HeadwearNightcap.sol'; import {HeadwearPartyhat} from './Headwear/HeadwearPartyhat.sol'; +import {HeadwearBear} from './Headwear/HeadwearBear.sol'; +import {HeadwearBee} from './Headwear/HeadwearBee.sol'; +import {HeadwearBirdie} from './Headwear/HeadwearBirdie.sol'; +import {HeadwearBrains} from './Headwear/HeadwearBrains.sol'; +import {HeadwearBull} from './Headwear/HeadwearBull.sol'; +import {HeadwearEarrings} from './Headwear/HeadwearEarrings.sol'; +import {HeadwearLotus} from './Headwear/HeadwearLotus.sol'; +import {HeadwearMajor} from './Headwear/HeadwearMajor.sol'; +import {HeadwearScout} from './Headwear/HeadwearScout.sol'; +import {HeadwearShaman} from './Headwear/HeadwearShaman.sol'; library Headwear { enum HeadwearVariants { @@ -27,14 +37,22 @@ library Headwear { MUSHROOM, NIGHTCAP, PARTYHAT, - ICECREAM + ICECREAM, + BEAR, + BEE, + BIRDIE, + BRAINS, + BULL, + EARRINGS, + LOTUS, + MAJOR, + SCOUT, + SHAMAN } enum HeadwearColors { NONE, GREEN, - LIGHT, - DARK, PURPLE, BLUE, PINK, @@ -91,7 +109,7 @@ library Headwear { } else if (variant == HeadwearVariants.SPARKLES) { return HeadwearSparkles.getSparkles( - isGold ? HeadwearSparkles.SparklesColors.GOLD : HeadwearSparkles.SparklesColors.LIGHT + isGold ? HeadwearSparkles.SparklesColors.GOLD : HeadwearSparkles.SparklesColors.NONE ); } else if (variant == HeadwearVariants.CROWN) { HeadwearCrown.CrownColors crownColor = isGold @@ -140,6 +158,80 @@ library Headwear { uint8(type(HeadwearPartyhat.PartyhatColors).max) ); return HeadwearPartyhat.getPartyhat(partyhatColor); + } else if (variant == HeadwearVariants.BEAR) { + HeadwearBear.BearColors bearColor = isGold + ? HeadwearBear.BearColors.GOLD + : HeadwearBear.BearColors( + Helpers.getColor(seed, Helpers.ComponentBytes.HEADWEAR) % uint8(type(HeadwearBear.BearColors).max) + ); + return HeadwearBear.getBear(bearColor); + } else if (variant == HeadwearVariants.BEE) { + HeadwearBee.BeeColors beeColor = isGold + ? HeadwearBee.BeeColors.GOLD + : HeadwearBee.BeeColors( + Helpers.getColor(seed, Helpers.ComponentBytes.HEADWEAR) % uint8(type(HeadwearBee.BeeColors).max) + ); + return HeadwearBee.getBee(beeColor); + } else if (variant == HeadwearVariants.BIRDIE) { + HeadwearBirdie.BirdieColors birdieColor = isGold + ? HeadwearBirdie.BirdieColors.GOLD + : HeadwearBirdie.BirdieColors( + Helpers.getColor(seed, Helpers.ComponentBytes.HEADWEAR) % + uint8(type(HeadwearBirdie.BirdieColors).max) + ); + return HeadwearBirdie.getBirdie(birdieColor); + } else if (variant == HeadwearVariants.BRAINS) { + HeadwearBrains.BrainsColors brainsColor = isGold + ? HeadwearBrains.BrainsColors.GOLD + : HeadwearBrains.BrainsColors( + Helpers.getColor(seed, Helpers.ComponentBytes.HEADWEAR) % + uint8(type(HeadwearBrains.BrainsColors).max) + ); + return HeadwearBrains.getBrains(brainsColor); + } else if (variant == HeadwearVariants.BULL) { + HeadwearBull.BullColors bullColor = isGold + ? HeadwearBull.BullColors.GOLD + : HeadwearBull.BullColors( + Helpers.getColor(seed, Helpers.ComponentBytes.HEADWEAR) % uint8(type(HeadwearBull.BullColors).max) + ); + return HeadwearBull.getBull(bullColor); + } else if (variant == HeadwearVariants.EARRINGS) { + HeadwearEarrings.EarringsColors earringsColor = isGold + ? HeadwearEarrings.EarringsColors.GOLD + : HeadwearEarrings.EarringsColors( + Helpers.getColor(seed, Helpers.ComponentBytes.HEADWEAR) % + uint8(type(HeadwearEarrings.EarringsColors).max) + ); + return HeadwearEarrings.getEarrings(earringsColor); + } else if (variant == HeadwearVariants.LOTUS) { + HeadwearLotus.LotusColors lotusColor = isGold + ? HeadwearLotus.LotusColors.GOLD + : HeadwearLotus.LotusColors( + Helpers.getColor(seed, Helpers.ComponentBytes.HEADWEAR) % uint8(type(HeadwearLotus.LotusColors).max) + ); + return HeadwearLotus.getLotus(lotusColor); + } else if (variant == HeadwearVariants.MAJOR) { + HeadwearMajor.MajorColors majorColor = isGold + ? HeadwearMajor.MajorColors.GOLD + : HeadwearMajor.MajorColors( + Helpers.getColor(seed, Helpers.ComponentBytes.HEADWEAR) % uint8(type(HeadwearMajor.MajorColors).max) + ); + return HeadwearMajor.getMajor(majorColor); + } else if (variant == HeadwearVariants.SCOUT) { + HeadwearScout.ScoutColors scoutColor = isGold + ? HeadwearScout.ScoutColors.GOLD + : HeadwearScout.ScoutColors( + Helpers.getColor(seed, Helpers.ComponentBytes.HEADWEAR) % uint8(type(HeadwearScout.ScoutColors).max) + ); + return HeadwearScout.getScout(scoutColor); + } else if (variant == HeadwearVariants.SHAMAN) { + HeadwearShaman.ShamanColors shamanColor = isGold + ? HeadwearShaman.ShamanColors.GOLD + : HeadwearShaman.ShamanColors( + Helpers.getColor(seed, Helpers.ComponentBytes.HEADWEAR) % + uint8(type(HeadwearShaman.ShamanColors).max) + ); + return HeadwearShaman.getShaman(shamanColor); } else { revert(); // Avoid warnings. } diff --git a/contracts/libraries/svgs/Profile/Headwear/HeadwearBeanie.sol b/contracts/libraries/svgs/Profile/Headwear/HeadwearBeanie.sol index a830233..eabb12d 100644 --- a/contracts/libraries/svgs/Profile/Headwear/HeadwearBeanie.sol +++ b/contracts/libraries/svgs/Profile/Headwear/HeadwearBeanie.sol @@ -10,8 +10,6 @@ library HeadwearBeanie { PINK, PURPLE, BLUE, - LIGHT, - DARK, GOLD } @@ -49,10 +47,6 @@ library HeadwearBeanie { return LensColors.lightBlue; } else if (beanieColor == BeanieColors.PURPLE) { return LensColors.lightPurple; - } else if (beanieColor == BeanieColors.LIGHT) { - return LensColors.white; - } else if (beanieColor == BeanieColors.DARK) { - return LensColors.dark; } else if (beanieColor == BeanieColors.GOLD) { return LensColors.lightGold; } else { @@ -67,10 +61,6 @@ library HeadwearBeanie { return Headwear.HeadwearColors.PINK; } else if (beanieColor == BeanieColors.BLUE) { return Headwear.HeadwearColors.BLUE; - } else if (beanieColor == BeanieColors.LIGHT) { - return Headwear.HeadwearColors.LIGHT; - } else if (beanieColor == BeanieColors.DARK) { - return Headwear.HeadwearColors.DARK; } else if (beanieColor == BeanieColors.PURPLE) { return Headwear.HeadwearColors.PURPLE; } else if (beanieColor == BeanieColors.GOLD) { diff --git a/contracts/libraries/svgs/Profile/Headwear/HeadwearBear.sol b/contracts/libraries/svgs/Profile/Headwear/HeadwearBear.sol new file mode 100644 index 0000000..92ad512 --- /dev/null +++ b/contracts/libraries/svgs/Profile/Headwear/HeadwearBear.sol @@ -0,0 +1,73 @@ +// SPDX-License-Identifier: MIT +pragma solidity ^0.8.0; + +import {Headwear} from 'contracts/libraries/svgs/Profile/Headwear.sol'; +import {LensColors} from 'contracts/libraries/svgs/Profile/LensColors.sol'; + +library HeadwearBear { + enum BearColors { + GREEN, + PINK, + PURPLE, + BLUE, + GOLD + } + + function getBear( + BearColors bearColor + ) external pure returns (string memory, Headwear.HeadwearVariants, Headwear.HeadwearColors) { + return ( + string.concat( + '', + _getBearStyle(bearColor), + '' + ), + Headwear.HeadwearVariants.BEAR, + _getHeadwearColor(bearColor) + ); + } + + function _getBearStyle(BearColors bearColor) internal pure returns (string memory) { + (string memory lightColor, string memory baseColor) = _getBearColor(bearColor); + return + string.concat( + '' + ); + } + + function _getBearColor(BearColors bearColor) internal pure returns (string memory, string memory) { + if (bearColor == BearColors.GREEN) { + return (LensColors.lightGreen, LensColors.baseGreen); + } else if (bearColor == BearColors.PURPLE) { + return (LensColors.lightPurple, LensColors.basePurple); + } else if (bearColor == BearColors.BLUE) { + return (LensColors.lightBlue, LensColors.baseBlue); + } else if (bearColor == BearColors.PINK) { + return (LensColors.lightPink, LensColors.basePink); + } else if (bearColor == BearColors.GOLD) { + return (LensColors.lightGold, LensColors.baseGold); + } else { + revert(); // Avoid warnings. + } + } + + function _getHeadwearColor(BearColors bearColor) internal pure returns (Headwear.HeadwearColors) { + if (bearColor == BearColors.GREEN) { + return Headwear.HeadwearColors.GREEN; + } else if (bearColor == BearColors.PURPLE) { + return Headwear.HeadwearColors.PURPLE; + } else if (bearColor == BearColors.BLUE) { + return Headwear.HeadwearColors.BLUE; + } else if (bearColor == BearColors.PINK) { + return Headwear.HeadwearColors.PINK; + } else if (bearColor == BearColors.GOLD) { + return Headwear.HeadwearColors.GOLD; + } else { + revert(); // Avoid warnings. + } + } +} diff --git a/contracts/libraries/svgs/Profile/Headwear/HeadwearBee.sol b/contracts/libraries/svgs/Profile/Headwear/HeadwearBee.sol new file mode 100644 index 0000000..c7edd2b --- /dev/null +++ b/contracts/libraries/svgs/Profile/Headwear/HeadwearBee.sol @@ -0,0 +1,73 @@ +// SPDX-License-Identifier: MIT +pragma solidity ^0.8.0; + +import {Headwear} from 'contracts/libraries/svgs/Profile/Headwear.sol'; +import {LensColors} from 'contracts/libraries/svgs/Profile/LensColors.sol'; + +library HeadwearBee { + enum BeeColors { + GREEN, + PINK, + PURPLE, + BLUE, + GOLD + } + + function getBee( + BeeColors beeColor + ) external pure returns (string memory, Headwear.HeadwearVariants, Headwear.HeadwearColors) { + return ( + string.concat( + '', + _getBeeStyle(beeColor), + '' + ), + Headwear.HeadwearVariants.BEE, + _getHeadwearColor(beeColor) + ); + } + + function _getBeeStyle(BeeColors beeColor) internal pure returns (string memory) { + (string memory lightColor, string memory baseColor) = _getBeeColor(beeColor); + return + string.concat( + '' + ); + } + + function _getBeeColor(BeeColors beeColor) internal pure returns (string memory, string memory) { + if (beeColor == BeeColors.GREEN) { + return (LensColors.lightGreen, LensColors.baseGreen); + } else if (beeColor == BeeColors.PURPLE) { + return (LensColors.lightPurple, LensColors.basePurple); + } else if (beeColor == BeeColors.BLUE) { + return (LensColors.lightBlue, LensColors.baseBlue); + } else if (beeColor == BeeColors.PINK) { + return (LensColors.lightPink, LensColors.basePink); + } else if (beeColor == BeeColors.GOLD) { + return (LensColors.lightGold, LensColors.baseGold); + } else { + revert(); // Avoid warnings. + } + } + + function _getHeadwearColor(BeeColors beeColor) internal pure returns (Headwear.HeadwearColors) { + if (beeColor == BeeColors.GREEN) { + return Headwear.HeadwearColors.GREEN; + } else if (beeColor == BeeColors.PURPLE) { + return Headwear.HeadwearColors.PURPLE; + } else if (beeColor == BeeColors.BLUE) { + return Headwear.HeadwearColors.BLUE; + } else if (beeColor == BeeColors.PINK) { + return Headwear.HeadwearColors.PINK; + } else if (beeColor == BeeColors.GOLD) { + return Headwear.HeadwearColors.GOLD; + } else { + revert(); // Avoid warnings. + } + } +} diff --git a/contracts/libraries/svgs/Profile/Headwear/HeadwearBirdie.sol b/contracts/libraries/svgs/Profile/Headwear/HeadwearBirdie.sol new file mode 100644 index 0000000..e96dfeb --- /dev/null +++ b/contracts/libraries/svgs/Profile/Headwear/HeadwearBirdie.sol @@ -0,0 +1,73 @@ +// SPDX-License-Identifier: MIT +pragma solidity ^0.8.0; + +import {Headwear} from 'contracts/libraries/svgs/Profile/Headwear.sol'; +import {LensColors} from 'contracts/libraries/svgs/Profile/LensColors.sol'; + +library HeadwearBirdie { + enum BirdieColors { + GREEN, + PINK, + PURPLE, + BLUE, + GOLD + } + + function getBirdie( + BirdieColors birdieColor + ) external pure returns (string memory, Headwear.HeadwearVariants, Headwear.HeadwearColors) { + return ( + string.concat( + '', + _getBirdieStyle(birdieColor), + '' + ), + Headwear.HeadwearVariants.BIRDIE, + _getHeadwearColor(birdieColor) + ); + } + + function _getBirdieStyle(BirdieColors birdieColor) internal pure returns (string memory) { + (string memory lightColor, string memory baseColor) = _getBirdieColor(birdieColor); + return + string.concat( + '' + ); + } + + function _getBirdieColor(BirdieColors birdieColor) internal pure returns (string memory, string memory) { + if (birdieColor == BirdieColors.GREEN) { + return (LensColors.lightGreen, LensColors.baseGreen); + } else if (birdieColor == BirdieColors.PURPLE) { + return (LensColors.lightPurple, LensColors.basePurple); + } else if (birdieColor == BirdieColors.BLUE) { + return (LensColors.lightBlue, LensColors.baseBlue); + } else if (birdieColor == BirdieColors.PINK) { + return (LensColors.lightPink, LensColors.basePink); + } else if (birdieColor == BirdieColors.GOLD) { + return (LensColors.lightGold, LensColors.baseGold); + } else { + revert(); // Avoid warnings. + } + } + + function _getHeadwearColor(BirdieColors birdieColor) internal pure returns (Headwear.HeadwearColors) { + if (birdieColor == BirdieColors.GREEN) { + return Headwear.HeadwearColors.GREEN; + } else if (birdieColor == BirdieColors.PURPLE) { + return Headwear.HeadwearColors.PURPLE; + } else if (birdieColor == BirdieColors.BLUE) { + return Headwear.HeadwearColors.BLUE; + } else if (birdieColor == BirdieColors.PINK) { + return Headwear.HeadwearColors.PINK; + } else if (birdieColor == BirdieColors.GOLD) { + return Headwear.HeadwearColors.GOLD; + } else { + revert(); // Avoid warnings. + } + } +} diff --git a/contracts/libraries/svgs/Profile/Headwear/HeadwearBrains.sol b/contracts/libraries/svgs/Profile/Headwear/HeadwearBrains.sol new file mode 100644 index 0000000..a00312d --- /dev/null +++ b/contracts/libraries/svgs/Profile/Headwear/HeadwearBrains.sol @@ -0,0 +1,70 @@ +// SPDX-License-Identifier: MIT +pragma solidity ^0.8.0; + +import {Headwear} from 'contracts/libraries/svgs/Profile/Headwear.sol'; +import {LensColors} from 'contracts/libraries/svgs/Profile/LensColors.sol'; + +library HeadwearBrains { + enum BrainsColors { + GREEN, + PINK, + PURPLE, + BLUE, + GOLD + } + + function getBrains( + BrainsColors brainsColor + ) external pure returns (string memory, Headwear.HeadwearVariants, Headwear.HeadwearColors) { + return ( + string.concat( + '', + _getBrainsStyle(brainsColor), + '' + ), + Headwear.HeadwearVariants.BRAINS, + _getHeadwearColor(brainsColor) + ); + } + + function _getBrainsStyle(BrainsColors brainsColor) internal pure returns (string memory) { + return + string.concat( + '' + ); + } + + function _getBrainsColor(BrainsColors brainsColor) internal pure returns (string memory) { + if (brainsColor == BrainsColors.GREEN) { + return LensColors.lightGreen; + } else if (brainsColor == BrainsColors.PURPLE) { + return LensColors.lightPurple; + } else if (brainsColor == BrainsColors.BLUE) { + return LensColors.lightBlue; + } else if (brainsColor == BrainsColors.PINK) { + return LensColors.lightPink; + } else if (brainsColor == BrainsColors.GOLD) { + return LensColors.lightGold; + } else { + revert(); // Avoid warnings. + } + } + + function _getHeadwearColor(BrainsColors brainsColor) internal pure returns (Headwear.HeadwearColors) { + if (brainsColor == BrainsColors.GREEN) { + return Headwear.HeadwearColors.GREEN; + } else if (brainsColor == BrainsColors.PURPLE) { + return Headwear.HeadwearColors.PURPLE; + } else if (brainsColor == BrainsColors.BLUE) { + return Headwear.HeadwearColors.BLUE; + } else if (brainsColor == BrainsColors.PINK) { + return Headwear.HeadwearColors.PINK; + } else if (brainsColor == BrainsColors.GOLD) { + return Headwear.HeadwearColors.GOLD; + } else { + revert(); // Avoid warnings. + } + } +} diff --git a/contracts/libraries/svgs/Profile/Headwear/HeadwearBull.sol b/contracts/libraries/svgs/Profile/Headwear/HeadwearBull.sol new file mode 100644 index 0000000..7fa7099 --- /dev/null +++ b/contracts/libraries/svgs/Profile/Headwear/HeadwearBull.sol @@ -0,0 +1,73 @@ +// SPDX-License-Identifier: MIT +pragma solidity ^0.8.0; + +import {Headwear} from 'contracts/libraries/svgs/Profile/Headwear.sol'; +import {LensColors} from 'contracts/libraries/svgs/Profile/LensColors.sol'; + +library HeadwearBull { + enum BullColors { + GREEN, + PINK, + PURPLE, + BLUE, + GOLD + } + + function getBull( + BullColors bullColor + ) external pure returns (string memory, Headwear.HeadwearVariants, Headwear.HeadwearColors) { + return ( + string.concat( + '', + _getBullStyle(bullColor), + '' + ), + Headwear.HeadwearVariants.BULL, + _getHeadwearColor(bullColor) + ); + } + + function _getBullStyle(BullColors bullColor) internal pure returns (string memory) { + (string memory lightColor, string memory baseColor) = _getBullColor(bullColor); + return + string.concat( + '' + ); + } + + function _getBullColor(BullColors bullColor) internal pure returns (string memory, string memory) { + if (bullColor == BullColors.GREEN) { + return (LensColors.lightGreen, LensColors.baseGreen); + } else if (bullColor == BullColors.PURPLE) { + return (LensColors.lightPurple, LensColors.basePurple); + } else if (bullColor == BullColors.BLUE) { + return (LensColors.lightBlue, LensColors.baseBlue); + } else if (bullColor == BullColors.PINK) { + return (LensColors.lightPink, LensColors.basePink); + } else if (bullColor == BullColors.GOLD) { + return (LensColors.lightGold, LensColors.baseGold); + } else { + revert(); // Avoid warnings. + } + } + + function _getHeadwearColor(BullColors bullColor) internal pure returns (Headwear.HeadwearColors) { + if (bullColor == BullColors.GREEN) { + return Headwear.HeadwearColors.GREEN; + } else if (bullColor == BullColors.PURPLE) { + return Headwear.HeadwearColors.PURPLE; + } else if (bullColor == BullColors.BLUE) { + return Headwear.HeadwearColors.BLUE; + } else if (bullColor == BullColors.PINK) { + return Headwear.HeadwearColors.PINK; + } else if (bullColor == BullColors.GOLD) { + return Headwear.HeadwearColors.GOLD; + } else { + revert(); // Avoid warnings. + } + } +} diff --git a/contracts/libraries/svgs/Profile/Headwear/HeadwearCrown.sol b/contracts/libraries/svgs/Profile/Headwear/HeadwearCrown.sol index 4636b9a..c4e508d 100644 --- a/contracts/libraries/svgs/Profile/Headwear/HeadwearCrown.sol +++ b/contracts/libraries/svgs/Profile/Headwear/HeadwearCrown.sol @@ -10,8 +10,6 @@ library HeadwearCrown { PURPLE, BLUE, PINK, - LIGHT, - DARK, GOLD } @@ -50,10 +48,6 @@ library HeadwearCrown { return (LensColors.lightBlue, LensColors.baseBlue); } else if (crownColor == CrownColors.PINK) { return (LensColors.lightPink, LensColors.basePink); - } else if (crownColor == CrownColors.LIGHT) { - return (LensColors.white, LensColors.lightGray); - } else if (crownColor == CrownColors.DARK) { - return (LensColors.gray, LensColors.gray); } else if (crownColor == CrownColors.GOLD) { return (LensColors.lightGold, LensColors.baseGold); } else { @@ -70,10 +64,6 @@ library HeadwearCrown { return Headwear.HeadwearColors.BLUE; } else if (crownColor == CrownColors.PINK) { return Headwear.HeadwearColors.PINK; - } else if (crownColor == CrownColors.LIGHT) { - return Headwear.HeadwearColors.LIGHT; - } else if (crownColor == CrownColors.DARK) { - return Headwear.HeadwearColors.DARK; } else if (crownColor == CrownColors.GOLD) { return Headwear.HeadwearColors.GOLD; } else { diff --git a/contracts/libraries/svgs/Profile/Headwear/HeadwearEarrings.sol b/contracts/libraries/svgs/Profile/Headwear/HeadwearEarrings.sol new file mode 100644 index 0000000..83719f9 --- /dev/null +++ b/contracts/libraries/svgs/Profile/Headwear/HeadwearEarrings.sol @@ -0,0 +1,70 @@ +// SPDX-License-Identifier: MIT +pragma solidity ^0.8.0; + +import {Headwear} from 'contracts/libraries/svgs/Profile/Headwear.sol'; +import {LensColors} from 'contracts/libraries/svgs/Profile/LensColors.sol'; + +library HeadwearEarrings { + enum EarringsColors { + GREEN, + PINK, + PURPLE, + BLUE, + GOLD + } + + function getEarrings( + EarringsColors earringsColor + ) external pure returns (string memory, Headwear.HeadwearVariants, Headwear.HeadwearColors) { + return ( + string.concat( + '', + _getEarringsStyle(earringsColor), + '' + ), + Headwear.HeadwearVariants.EARRINGS, + _getHeadwearColor(earringsColor) + ); + } + + function _getEarringsStyle(EarringsColors earringsColor) internal pure returns (string memory) { + return + string.concat( + '' + ); + } + + function _getEarringsColor(EarringsColors earringsColor) internal pure returns (string memory) { + if (earringsColor == EarringsColors.GREEN) { + return LensColors.lightGreen; + } else if (earringsColor == EarringsColors.PURPLE) { + return LensColors.lightPurple; + } else if (earringsColor == EarringsColors.BLUE) { + return LensColors.lightBlue; + } else if (earringsColor == EarringsColors.PINK) { + return LensColors.lightPink; + } else if (earringsColor == EarringsColors.GOLD) { + return LensColors.lightGold; + } else { + revert(); // Avoid warnings. + } + } + + function _getHeadwearColor(EarringsColors earringsColor) internal pure returns (Headwear.HeadwearColors) { + if (earringsColor == EarringsColors.GREEN) { + return Headwear.HeadwearColors.GREEN; + } else if (earringsColor == EarringsColors.PURPLE) { + return Headwear.HeadwearColors.PURPLE; + } else if (earringsColor == EarringsColors.BLUE) { + return Headwear.HeadwearColors.BLUE; + } else if (earringsColor == EarringsColors.PINK) { + return Headwear.HeadwearColors.PINK; + } else if (earringsColor == EarringsColors.GOLD) { + return Headwear.HeadwearColors.GOLD; + } else { + revert(); // Avoid warnings. + } + } +} diff --git a/contracts/libraries/svgs/Profile/Headwear/HeadwearFloral.sol b/contracts/libraries/svgs/Profile/Headwear/HeadwearFloral.sol index 66a30cd..fe800a0 100644 --- a/contracts/libraries/svgs/Profile/Headwear/HeadwearFloral.sol +++ b/contracts/libraries/svgs/Profile/Headwear/HeadwearFloral.sol @@ -10,14 +10,12 @@ library HeadwearFloral { PINK, PURPLE, BLUE, - LIGHT, - DARK, GOLD } function getFloral( FloralColors floralColor - ) internal pure returns (string memory, Headwear.HeadwearVariants, Headwear.HeadwearColors) { + ) external pure returns (string memory, Headwear.HeadwearVariants, Headwear.HeadwearColors) { return ( string.concat( '', @@ -50,10 +48,6 @@ library HeadwearFloral { return (LensColors.lightBlue, LensColors.baseBlue); } else if (floralColor == FloralColors.PINK) { return (LensColors.lightPink, LensColors.basePink); - } else if (floralColor == FloralColors.LIGHT) { - return (LensColors.white, LensColors.lightGray); - } else if (floralColor == FloralColors.DARK) { - return (LensColors.gray, LensColors.gray); } else if (floralColor == FloralColors.GOLD) { return (LensColors.lightGold, LensColors.baseGold); } else { @@ -70,10 +64,6 @@ library HeadwearFloral { return Headwear.HeadwearColors.BLUE; } else if (floralColor == FloralColors.PINK) { return Headwear.HeadwearColors.PINK; - } else if (floralColor == FloralColors.LIGHT) { - return Headwear.HeadwearColors.LIGHT; - } else if (floralColor == FloralColors.DARK) { - return Headwear.HeadwearColors.DARK; } else if (floralColor == FloralColors.GOLD) { return Headwear.HeadwearColors.GOLD; } else { diff --git a/contracts/libraries/svgs/Profile/Headwear/HeadwearGlasses.sol b/contracts/libraries/svgs/Profile/Headwear/HeadwearGlasses.sol index 4331b6e..20576ea 100644 --- a/contracts/libraries/svgs/Profile/Headwear/HeadwearGlasses.sol +++ b/contracts/libraries/svgs/Profile/Headwear/HeadwearGlasses.sol @@ -10,14 +10,12 @@ library HeadwearGlasses { PINK, PURPLE, BLUE, - LIGHT, - DARK, GOLD } function getGlasses( GlassesColors glassesColor - ) internal pure returns (string memory, Headwear.HeadwearVariants, Headwear.HeadwearColors) { + ) external pure returns (string memory, Headwear.HeadwearVariants, Headwear.HeadwearColors) { return ( string.concat( '', @@ -42,10 +40,6 @@ library HeadwearGlasses { return LensColors.lightBlue; } else if (glassesColor == GlassesColors.PINK) { return LensColors.lightPink; - } else if (glassesColor == GlassesColors.LIGHT) { - return LensColors.white; - } else if (glassesColor == GlassesColors.DARK) { - return LensColors.dark; } else if (glassesColor == GlassesColors.GOLD) { return LensColors.lightGold; } else { @@ -62,10 +56,6 @@ library HeadwearGlasses { return Headwear.HeadwearColors.BLUE; } else if (glassesColor == GlassesColors.PINK) { return Headwear.HeadwearColors.PINK; - } else if (glassesColor == GlassesColors.LIGHT) { - return Headwear.HeadwearColors.LIGHT; - } else if (glassesColor == GlassesColors.DARK) { - return Headwear.HeadwearColors.DARK; } else if (glassesColor == GlassesColors.GOLD) { return Headwear.HeadwearColors.GOLD; } else { diff --git a/contracts/libraries/svgs/Profile/Headwear/HeadwearHat.sol b/contracts/libraries/svgs/Profile/Headwear/HeadwearHat.sol index 86a555e..2a668d7 100644 --- a/contracts/libraries/svgs/Profile/Headwear/HeadwearHat.sol +++ b/contracts/libraries/svgs/Profile/Headwear/HeadwearHat.sol @@ -8,8 +8,6 @@ library HeadwearHat { enum HatColors { GREEN, PINK, - LIGHT, - DARK, BLUE, PURPLE, GOLD @@ -19,7 +17,7 @@ library HeadwearHat { // uint8 color = uint8((seed >> 152) & 0xFF) % 5; function getHat( HatColors hatColor - ) internal pure returns (string memory, Headwear.HeadwearVariants, Headwear.HeadwearColors) { + ) external pure returns (string memory, Headwear.HeadwearVariants, Headwear.HeadwearColors) { return ( string.concat( '', @@ -48,10 +46,6 @@ library HeadwearHat { return (LensColors.darkGreen, LensColors.lightGreen); } else if (hatColor == HatColors.PINK) { return (LensColors.darkPink, LensColors.lightPink); - } else if (hatColor == HatColors.LIGHT) { - return (LensColors.lightGray, LensColors.white); - } else if (hatColor == HatColors.DARK) { - return (LensColors.gray, LensColors.dark); } else if (hatColor == HatColors.BLUE) { return (LensColors.darkBlue, LensColors.lightBlue); } else if (hatColor == HatColors.PURPLE) { @@ -68,10 +62,6 @@ library HeadwearHat { return Headwear.HeadwearColors.GREEN; } else if (hatColor == HatColors.PINK) { return Headwear.HeadwearColors.PINK; - } else if (hatColor == HatColors.LIGHT) { - return Headwear.HeadwearColors.LIGHT; - } else if (hatColor == HatColors.DARK) { - return Headwear.HeadwearColors.DARK; } else if (hatColor == HatColors.BLUE) { return Headwear.HeadwearColors.BLUE; } else if (hatColor == HatColors.PURPLE) { diff --git a/contracts/libraries/svgs/Profile/Headwear/HeadwearIcecream.sol b/contracts/libraries/svgs/Profile/Headwear/HeadwearIcecream.sol index 11d1823..6941104 100644 --- a/contracts/libraries/svgs/Profile/Headwear/HeadwearIcecream.sol +++ b/contracts/libraries/svgs/Profile/Headwear/HeadwearIcecream.sol @@ -10,8 +10,6 @@ library HeadwearIcecream { PINK, BLUE, PURPLE, - LIGHT, - DARK, GOLD } @@ -38,10 +36,6 @@ library HeadwearIcecream { return LensColors.basePurple; } else if (icecreamColor == IcecreamColors.BLUE) { return LensColors.baseBlue; - } else if (icecreamColor == IcecreamColors.LIGHT) { - return LensColors.lightGray; - } else if (icecreamColor == IcecreamColors.DARK) { - return LensColors.gray; } else if (icecreamColor == IcecreamColors.GOLD) { return LensColors.baseGold; } else { @@ -58,10 +52,6 @@ library HeadwearIcecream { return Headwear.HeadwearColors.PURPLE; } else if (icecreamColor == IcecreamColors.BLUE) { return Headwear.HeadwearColors.BLUE; - } else if (icecreamColor == IcecreamColors.LIGHT) { - return Headwear.HeadwearColors.LIGHT; - } else if (icecreamColor == IcecreamColors.DARK) { - return Headwear.HeadwearColors.DARK; } else if (icecreamColor == IcecreamColors.GOLD) { return Headwear.HeadwearColors.GOLD; } else { diff --git a/contracts/libraries/svgs/Profile/Headwear/HeadwearLotus.sol b/contracts/libraries/svgs/Profile/Headwear/HeadwearLotus.sol new file mode 100644 index 0000000..ddada3e --- /dev/null +++ b/contracts/libraries/svgs/Profile/Headwear/HeadwearLotus.sol @@ -0,0 +1,73 @@ +// SPDX-License-Identifier: MIT +pragma solidity ^0.8.0; + +import {Headwear} from 'contracts/libraries/svgs/Profile/Headwear.sol'; +import {LensColors} from 'contracts/libraries/svgs/Profile/LensColors.sol'; + +library HeadwearLotus { + enum LotusColors { + GREEN, + PINK, + PURPLE, + BLUE, + GOLD + } + + function getLotus( + LotusColors lotusColor + ) external pure returns (string memory, Headwear.HeadwearVariants, Headwear.HeadwearColors) { + return ( + string.concat( + '', + _getLotusStyle(lotusColor), + '' + ), + Headwear.HeadwearVariants.LOTUS, + _getHeadwearColor(lotusColor) + ); + } + + function _getLotusStyle(LotusColors lotusColor) internal pure returns (string memory) { + (string memory lightColor, string memory baseColor) = _getLotusColor(lotusColor); + return + string.concat( + '' + ); + } + + function _getLotusColor(LotusColors lotusColor) internal pure returns (string memory, string memory) { + if (lotusColor == LotusColors.GREEN) { + return (LensColors.lightGreen, LensColors.baseGreen); + } else if (lotusColor == LotusColors.PURPLE) { + return (LensColors.lightPurple, LensColors.basePurple); + } else if (lotusColor == LotusColors.BLUE) { + return (LensColors.lightBlue, LensColors.baseBlue); + } else if (lotusColor == LotusColors.PINK) { + return (LensColors.lightPink, LensColors.basePink); + } else if (lotusColor == LotusColors.GOLD) { + return (LensColors.lightGold, LensColors.baseGold); + } else { + revert(); // Avoid warnings. + } + } + + function _getHeadwearColor(LotusColors lotusColor) internal pure returns (Headwear.HeadwearColors) { + if (lotusColor == LotusColors.GREEN) { + return Headwear.HeadwearColors.GREEN; + } else if (lotusColor == LotusColors.PURPLE) { + return Headwear.HeadwearColors.PURPLE; + } else if (lotusColor == LotusColors.BLUE) { + return Headwear.HeadwearColors.BLUE; + } else if (lotusColor == LotusColors.PINK) { + return Headwear.HeadwearColors.PINK; + } else if (lotusColor == LotusColors.GOLD) { + return Headwear.HeadwearColors.GOLD; + } else { + revert(); // Avoid warnings. + } + } +} diff --git a/contracts/libraries/svgs/Profile/Headwear/HeadwearMajor.sol b/contracts/libraries/svgs/Profile/Headwear/HeadwearMajor.sol new file mode 100644 index 0000000..9eb18b6 --- /dev/null +++ b/contracts/libraries/svgs/Profile/Headwear/HeadwearMajor.sol @@ -0,0 +1,70 @@ +// SPDX-License-Identifier: MIT +pragma solidity ^0.8.0; + +import {Headwear} from 'contracts/libraries/svgs/Profile/Headwear.sol'; +import {LensColors} from 'contracts/libraries/svgs/Profile/LensColors.sol'; + +library HeadwearMajor { + enum MajorColors { + GREEN, + PINK, + PURPLE, + BLUE, + GOLD + } + + function getMajor( + MajorColors majorColor + ) external pure returns (string memory, Headwear.HeadwearVariants, Headwear.HeadwearColors) { + return ( + string.concat( + '', + _getMajorStyle(majorColor), + '' + ), + Headwear.HeadwearVariants.MAJOR, + _getHeadwearColor(majorColor) + ); + } + + function _getMajorStyle(MajorColors majorColor) internal pure returns (string memory) { + return + string.concat( + '' + ); + } + + function _getMajorColor(MajorColors majorColor) internal pure returns (string memory) { + if (majorColor == MajorColors.GREEN) { + return LensColors.baseGreen; + } else if (majorColor == MajorColors.PURPLE) { + return LensColors.basePurple; + } else if (majorColor == MajorColors.BLUE) { + return LensColors.baseBlue; + } else if (majorColor == MajorColors.PINK) { + return LensColors.basePink; + } else if (majorColor == MajorColors.GOLD) { + return LensColors.baseGold; + } else { + revert(); // Avoid warnings. + } + } + + function _getHeadwearColor(MajorColors majorColor) internal pure returns (Headwear.HeadwearColors) { + if (majorColor == MajorColors.GREEN) { + return Headwear.HeadwearColors.GREEN; + } else if (majorColor == MajorColors.PURPLE) { + return Headwear.HeadwearColors.PURPLE; + } else if (majorColor == MajorColors.BLUE) { + return Headwear.HeadwearColors.BLUE; + } else if (majorColor == MajorColors.PINK) { + return Headwear.HeadwearColors.PINK; + } else if (majorColor == MajorColors.GOLD) { + return Headwear.HeadwearColors.GOLD; + } else { + revert(); // Avoid warnings. + } + } +} diff --git a/contracts/libraries/svgs/Profile/Headwear/HeadwearMushroom.sol b/contracts/libraries/svgs/Profile/Headwear/HeadwearMushroom.sol index 5fcabcb..ad9f1f4 100644 --- a/contracts/libraries/svgs/Profile/Headwear/HeadwearMushroom.sol +++ b/contracts/libraries/svgs/Profile/Headwear/HeadwearMushroom.sol @@ -10,8 +10,6 @@ library HeadwearMushroom { PURPLE, BLUE, PINK, - LIGHT, - DARK, GOLD } @@ -65,10 +63,6 @@ library HeadwearMushroom { return (LensColors.lightBlue, LensColors.baseBlue); } else if (mushroomColor == MushroomColors.PINK) { return (LensColors.lightPink, LensColors.basePink); - } else if (mushroomColor == MushroomColors.LIGHT) { - return (LensColors.white, LensColors.white); - } else if (mushroomColor == MushroomColors.DARK) { - return (LensColors.gray, LensColors.white); } else if (mushroomColor == MushroomColors.GOLD) { return (LensColors.lightGold, LensColors.baseGold); } else { @@ -85,10 +79,6 @@ library HeadwearMushroom { return Headwear.HeadwearColors.BLUE; } else if (mushroomColor == MushroomColors.PINK) { return Headwear.HeadwearColors.PINK; - } else if (mushroomColor == MushroomColors.LIGHT) { - return Headwear.HeadwearColors.LIGHT; - } else if (mushroomColor == MushroomColors.DARK) { - return Headwear.HeadwearColors.DARK; } else if (mushroomColor == MushroomColors.GOLD) { return Headwear.HeadwearColors.GOLD; } else { diff --git a/contracts/libraries/svgs/Profile/Headwear/HeadwearNightcap.sol b/contracts/libraries/svgs/Profile/Headwear/HeadwearNightcap.sol index 3cf6c01..25b6a0b 100644 --- a/contracts/libraries/svgs/Profile/Headwear/HeadwearNightcap.sol +++ b/contracts/libraries/svgs/Profile/Headwear/HeadwearNightcap.sol @@ -10,14 +10,12 @@ library HeadwearNightcap { PINK, PURPLE, BLUE, - LIGHT, - DARK, GOLD } function getNightcap( NightcapColors nightcapColor - ) internal pure returns (string memory, Headwear.HeadwearVariants, Headwear.HeadwearColors) { + ) external pure returns (string memory, Headwear.HeadwearVariants, Headwear.HeadwearColors) { return ( string.concat( '', @@ -42,10 +40,6 @@ library HeadwearNightcap { return LensColors.lightPurple; } else if (nightcapColor == NightcapColors.BLUE) { return LensColors.lightBlue; - } else if (nightcapColor == NightcapColors.LIGHT) { - return LensColors.white; - } else if (nightcapColor == NightcapColors.DARK) { - return LensColors.gray; } else if (nightcapColor == NightcapColors.GOLD) { return LensColors.lightGold; } else { @@ -62,10 +56,6 @@ library HeadwearNightcap { return Headwear.HeadwearColors.PURPLE; } else if (nightcapColor == NightcapColors.BLUE) { return Headwear.HeadwearColors.BLUE; - } else if (nightcapColor == NightcapColors.LIGHT) { - return Headwear.HeadwearColors.LIGHT; - } else if (nightcapColor == NightcapColors.DARK) { - return Headwear.HeadwearColors.DARK; } else if (nightcapColor == NightcapColors.GOLD) { return Headwear.HeadwearColors.GOLD; } else { diff --git a/contracts/libraries/svgs/Profile/Headwear/HeadwearPartyhat.sol b/contracts/libraries/svgs/Profile/Headwear/HeadwearPartyhat.sol index 9950587..5270003 100644 --- a/contracts/libraries/svgs/Profile/Headwear/HeadwearPartyhat.sol +++ b/contracts/libraries/svgs/Profile/Headwear/HeadwearPartyhat.sol @@ -10,14 +10,12 @@ library HeadwearPartyhat { PURPLE, BLUE, PINK, - LIGHT, - DARK, GOLD } function getPartyhat( PartyhatColors partyhatColor - ) internal pure returns (string memory, Headwear.HeadwearVariants, Headwear.HeadwearColors) { + ) external pure returns (string memory, Headwear.HeadwearVariants, Headwear.HeadwearColors) { return ( string.concat( '', @@ -52,10 +50,6 @@ library HeadwearPartyhat { return (LensColors.lightBlue, LensColors.baseBlue); } else if (partyhatColor == PartyhatColors.PINK) { return (LensColors.lightPink, LensColors.basePink); - } else if (partyhatColor == PartyhatColors.LIGHT) { - return (LensColors.gray, LensColors.white); - } else if (partyhatColor == PartyhatColors.DARK) { - return (LensColors.gray, LensColors.dark); } else if (partyhatColor == PartyhatColors.GOLD) { return (LensColors.lightGold, LensColors.baseGold); } else { @@ -72,10 +66,6 @@ library HeadwearPartyhat { return Headwear.HeadwearColors.BLUE; } else if (partyhatColor == PartyhatColors.PINK) { return Headwear.HeadwearColors.PINK; - } else if (partyhatColor == PartyhatColors.LIGHT) { - return Headwear.HeadwearColors.LIGHT; - } else if (partyhatColor == PartyhatColors.DARK) { - return Headwear.HeadwearColors.DARK; } else if (partyhatColor == PartyhatColors.GOLD) { return Headwear.HeadwearColors.GOLD; } else { diff --git a/contracts/libraries/svgs/Profile/Headwear/HeadwearPlants.sol b/contracts/libraries/svgs/Profile/Headwear/HeadwearPlants.sol index e259a03..54562f8 100644 --- a/contracts/libraries/svgs/Profile/Headwear/HeadwearPlants.sol +++ b/contracts/libraries/svgs/Profile/Headwear/HeadwearPlants.sol @@ -10,8 +10,6 @@ library HeadwearPlants { PINK, BLUE, PURPLE, - LIGHT, - DARK, GOLD } @@ -50,10 +48,6 @@ library HeadwearPlants { return LensColors.basePurple; } else if (plantsColor == PlantsColors.BLUE) { return LensColors.baseBlue; - } else if (plantsColor == PlantsColors.LIGHT) { - return LensColors.lightGray; - } else if (plantsColor == PlantsColors.DARK) { - return LensColors.gray; } else if (plantsColor == PlantsColors.GOLD) { return LensColors.baseGold; } else { @@ -70,10 +64,6 @@ library HeadwearPlants { return Headwear.HeadwearColors.PURPLE; } else if (plantsColor == PlantsColors.BLUE) { return Headwear.HeadwearColors.BLUE; - } else if (plantsColor == PlantsColors.LIGHT) { - return Headwear.HeadwearColors.LIGHT; - } else if (plantsColor == PlantsColors.DARK) { - return Headwear.HeadwearColors.DARK; } else if (plantsColor == PlantsColors.GOLD) { return Headwear.HeadwearColors.GOLD; } else { diff --git a/contracts/libraries/svgs/Profile/Headwear/HeadwearScout.sol b/contracts/libraries/svgs/Profile/Headwear/HeadwearScout.sol new file mode 100644 index 0000000..ea8c09f --- /dev/null +++ b/contracts/libraries/svgs/Profile/Headwear/HeadwearScout.sol @@ -0,0 +1,73 @@ +// SPDX-License-Identifier: MIT +pragma solidity ^0.8.0; + +import {Headwear} from 'contracts/libraries/svgs/Profile/Headwear.sol'; +import {LensColors} from 'contracts/libraries/svgs/Profile/LensColors.sol'; + +library HeadwearScout { + enum ScoutColors { + GREEN, + PINK, + PURPLE, + BLUE, + GOLD + } + + function getScout( + ScoutColors scoutColor + ) external pure returns (string memory, Headwear.HeadwearVariants, Headwear.HeadwearColors) { + return ( + string.concat( + '', + _getScoutStyle(scoutColor), + '' + ), + Headwear.HeadwearVariants.SCOUT, + _getHeadwearColor(scoutColor) + ); + } + + function _getScoutStyle(ScoutColors scoutColor) internal pure returns (string memory) { + (string memory lightColor, string memory baseColor) = _getScoutColor(scoutColor); + return + string.concat( + '' + ); + } + + function _getScoutColor(ScoutColors scoutColor) internal pure returns (string memory, string memory) { + if (scoutColor == ScoutColors.GREEN) { + return (LensColors.lightGreen, LensColors.baseGreen); + } else if (scoutColor == ScoutColors.PURPLE) { + return (LensColors.lightPurple, LensColors.basePurple); + } else if (scoutColor == ScoutColors.BLUE) { + return (LensColors.lightBlue, LensColors.baseBlue); + } else if (scoutColor == ScoutColors.PINK) { + return (LensColors.lightPink, LensColors.basePink); + } else if (scoutColor == ScoutColors.GOLD) { + return (LensColors.lightGold, LensColors.baseGold); + } else { + revert(); // Avoid warnings. + } + } + + function _getHeadwearColor(ScoutColors scoutColor) internal pure returns (Headwear.HeadwearColors) { + if (scoutColor == ScoutColors.GREEN) { + return Headwear.HeadwearColors.GREEN; + } else if (scoutColor == ScoutColors.PURPLE) { + return Headwear.HeadwearColors.PURPLE; + } else if (scoutColor == ScoutColors.BLUE) { + return Headwear.HeadwearColors.BLUE; + } else if (scoutColor == ScoutColors.PINK) { + return Headwear.HeadwearColors.PINK; + } else if (scoutColor == ScoutColors.GOLD) { + return Headwear.HeadwearColors.GOLD; + } else { + revert(); // Avoid warnings. + } + } +} diff --git a/contracts/libraries/svgs/Profile/Headwear/HeadwearShaman.sol b/contracts/libraries/svgs/Profile/Headwear/HeadwearShaman.sol new file mode 100644 index 0000000..1ec0bcd --- /dev/null +++ b/contracts/libraries/svgs/Profile/Headwear/HeadwearShaman.sol @@ -0,0 +1,73 @@ +// SPDX-License-Identifier: MIT +pragma solidity ^0.8.0; + +import {Headwear} from 'contracts/libraries/svgs/Profile/Headwear.sol'; +import {LensColors} from 'contracts/libraries/svgs/Profile/LensColors.sol'; + +library HeadwearShaman { + enum ShamanColors { + GREEN, + PINK, + PURPLE, + BLUE, + GOLD + } + + function getShaman( + ShamanColors shamanColor + ) external pure returns (string memory, Headwear.HeadwearVariants, Headwear.HeadwearColors) { + return ( + string.concat( + '', + _getShamanStyle(shamanColor), + '' + ), + Headwear.HeadwearVariants.SHAMAN, + _getHeadwearColor(shamanColor) + ); + } + + function _getShamanStyle(ShamanColors shamanColor) internal pure returns (string memory) { + (string memory primaryColor, string memory secondaryColor) = _getShamanColor(shamanColor); + return + string.concat( + '' + ); + } + + function _getShamanColor(ShamanColors shamanColor) internal pure returns (string memory, string memory) { + if (shamanColor == ShamanColors.GREEN) { + return (LensColors.lightGreen, LensColors.baseGreen); + } else if (shamanColor == ShamanColors.PURPLE) { + return (LensColors.lightPurple, LensColors.basePurple); + } else if (shamanColor == ShamanColors.BLUE) { + return (LensColors.lightBlue, LensColors.baseBlue); + } else if (shamanColor == ShamanColors.PINK) { + return (LensColors.lightPink, LensColors.basePink); + } else if (shamanColor == ShamanColors.GOLD) { + return (LensColors.lightGold, LensColors.baseGold); + } else { + revert(); // Avoid warnings. + } + } + + function _getHeadwearColor(ShamanColors shamanColor) internal pure returns (Headwear.HeadwearColors) { + if (shamanColor == ShamanColors.GREEN) { + return Headwear.HeadwearColors.GREEN; + } else if (shamanColor == ShamanColors.PURPLE) { + return Headwear.HeadwearColors.PURPLE; + } else if (shamanColor == ShamanColors.BLUE) { + return Headwear.HeadwearColors.BLUE; + } else if (shamanColor == ShamanColors.PINK) { + return Headwear.HeadwearColors.PINK; + } else if (shamanColor == ShamanColors.GOLD) { + return Headwear.HeadwearColors.GOLD; + } else { + revert(); // Avoid warnings. + } + } +} diff --git a/contracts/libraries/svgs/Profile/Headwear/HeadwearSparkles.sol b/contracts/libraries/svgs/Profile/Headwear/HeadwearSparkles.sol index 1183868..5cb99fe 100644 --- a/contracts/libraries/svgs/Profile/Headwear/HeadwearSparkles.sol +++ b/contracts/libraries/svgs/Profile/Headwear/HeadwearSparkles.sol @@ -6,7 +6,7 @@ import {LensColors} from 'contracts/libraries/svgs/Profile/LensColors.sol'; library HeadwearSparkles { enum SparklesColors { - LIGHT, + NONE, GOLD } @@ -35,7 +35,7 @@ library HeadwearSparkles { } function _getSparklesColor(SparklesColors sparklesColor) internal pure returns (string memory) { - if (sparklesColor == SparklesColors.LIGHT) { + if (sparklesColor == SparklesColors.NONE) { return LensColors.black; } else if (sparklesColor == SparklesColors.GOLD) { return LensColors.darkGold; @@ -45,8 +45,8 @@ library HeadwearSparkles { } function _getHeadwearColor(SparklesColors sparklesColor) internal pure returns (Headwear.HeadwearColors) { - if (sparklesColor == SparklesColors.LIGHT) { - return Headwear.HeadwearColors.LIGHT; + if (sparklesColor == SparklesColors.NONE) { + return Headwear.HeadwearColors.NONE; } else if (sparklesColor == SparklesColors.GOLD) { return Headwear.HeadwearColors.GOLD; } else { diff --git a/contracts/libraries/svgs/Profile/ProfileSVG.sol b/contracts/libraries/svgs/Profile/ProfileSVG.sol index a9e1ae5..b91bfb2 100644 --- a/contracts/libraries/svgs/Profile/ProfileSVG.sol +++ b/contracts/libraries/svgs/Profile/ProfileSVG.sol @@ -271,6 +271,16 @@ library ProfileSVG { stringFaceVariant = 'Wow Tongue'; } else if (faceVariant == Face.FaceVariants.WOW) { stringFaceVariant = 'Wow'; + } else if (faceVariant == Face.FaceVariants.BABY) { + stringFaceVariant = 'Baby'; + } else if (faceVariant == Face.FaceVariants.KAWAII) { + stringFaceVariant = 'Kawaii'; + } else if (faceVariant == Face.FaceVariants.PIXIE) { + stringFaceVariant = 'Pixie'; + } else if (faceVariant == Face.FaceVariants.TODDLER) { + stringFaceVariant = 'Toddler'; + } else if (faceVariant == Face.FaceVariants.VAMP) { + stringFaceVariant = 'Vamp'; } else { revert(); } @@ -303,6 +313,26 @@ library ProfileSVG { stringHeadwearVariant = 'Partyhat'; } else if (headwearVariant == Headwear.HeadwearVariants.ICECREAM) { stringHeadwearVariant = 'Icecream'; + } else if (headwearVariant == Headwear.HeadwearVariants.BEAR) { + stringHeadwearVariant = 'Bear'; + } else if (headwearVariant == Headwear.HeadwearVariants.BEE) { + stringHeadwearVariant = 'Bee'; + } else if (headwearVariant == Headwear.HeadwearVariants.BIRDIE) { + stringHeadwearVariant = 'Birdie'; + } else if (headwearVariant == Headwear.HeadwearVariants.BRAINS) { + stringHeadwearVariant = 'Brains'; + } else if (headwearVariant == Headwear.HeadwearVariants.BULL) { + stringHeadwearVariant = 'Bull'; + } else if (headwearVariant == Headwear.HeadwearVariants.EARRINGS) { + stringHeadwearVariant = 'Earrings'; + } else if (headwearVariant == Headwear.HeadwearVariants.LOTUS) { + stringHeadwearVariant = 'Lotus'; + } else if (headwearVariant == Headwear.HeadwearVariants.MAJOR) { + stringHeadwearVariant = 'Major'; + } else if (headwearVariant == Headwear.HeadwearVariants.SCOUT) { + stringHeadwearVariant = 'Scout'; + } else if (headwearVariant == Headwear.HeadwearVariants.SHAMAN) { + stringHeadwearVariant = 'Shaman'; } else { revert(); } @@ -315,10 +345,6 @@ library ProfileSVG { return ''; } else if (headwearColor == Headwear.HeadwearColors.GREEN) { stringHeadwearColor = 'Green'; - } else if (headwearColor == Headwear.HeadwearColors.LIGHT) { - stringHeadwearColor = 'Light'; - } else if (headwearColor == Headwear.HeadwearColors.DARK) { - stringHeadwearColor = 'Dark'; } else if (headwearColor == Headwear.HeadwearColors.PURPLE) { stringHeadwearColor = 'Purple'; } else if (headwearColor == Headwear.HeadwearColors.BLUE) { diff --git a/script/svg/ProfileSVGGen.t.sol b/script/svg/ProfileSVGGen.t.sol index 989fabf..06971d9 100644 --- a/script/svg/ProfileSVGGen.t.sol +++ b/script/svg/ProfileSVGGen.t.sol @@ -94,6 +94,20 @@ contract ProfileSVGGen is Test { ); } } + + for (uint8 c = 0; c <= uint8(type(Skin.SkinColors).max) + 1; c++) { + uint256 seed = setVariant(uint8(Face.FaceVariants.BABY), Helpers.ComponentBytes.FACE) + + setColor(c, Helpers.ComponentBytes.SKIN); + string memory result = profileNFT.tryWithSeed(seed, c == uint8(Skin.SkinColors.GOLD)); + vm.writeFile(string.concat(dir, 'faces/face_baby_', vm.toString(c), '.svg'), result); + } + + for (uint8 c = 0; c <= uint8(type(Skin.SkinColors).max) + 1; c++) { + uint256 seed = setVariant(uint8(Face.FaceVariants.VAMP), Helpers.ComponentBytes.FACE) + + setColor(c, Helpers.ComponentBytes.SKIN); + string memory result = profileNFT.tryWithSeed(seed, c == uint8(Skin.SkinColors.GOLD)); + vm.writeFile(string.concat(dir, 'faces/face_vamp_', vm.toString(c), '.svg'), result); + } } function testHandsAndBody() public {