view LazyBear/Views/Onboarding/Helpers/Avatar.swift @ 318:e7c3d68d8e22

Implementing AvatarCreator
author Dennis Concepción Martín <66180929+denniscm190@users.noreply.github.com>
date Sat, 27 Mar 2021 00:46:17 +0100
parents 81962e90d05f
children 62d278295bb7
line wrap: on
line source

//
//  Avatar.swift
//  LazyBear
//
//  Created by Dennis Concepción Martín on 26/3/21.
//

import SwiftUI

struct Avatar: View {
    var scaleMultipler: CGFloat
    var backgroundHeight: CGFloat
    @EnvironmentObject var environmentSignUp: EnvironmentSignUp
    
    var body: some View {
        environmentSignUp.background
            .clipShape(Circle())
            .frame(maxWidth: backgroundHeight + 50, maxHeight: backgroundHeight)
            .overlay(
                Image("Head")
                    .scaleEffect(scaleMultipler)
                    .colorMultiply(environmentSignUp.skinTone)
            )
            .overlay(
                ZStack {
                    Image(environmentSignUp.hair)
                        .scaleEffect(scaleMultipler)
                        .offset(y: -5*scaleMultipler)
                        .colorMultiply(environmentSignUp.hairColor)
                    
                    Image(environmentSignUp.nose)
                        .scaleEffect(scaleMultipler)
                    
                    Image(environmentSignUp.eyes)
                        .scaleEffect(scaleMultipler)
                        .offset(y: -5*scaleMultipler)
                    
                    Image(environmentSignUp.mouth)
                        .scaleEffect(scaleMultipler)
                        .offset(y: 5*scaleMultipler)
                    
                    Image(environmentSignUp.body)
                        .scaleEffect(scaleMultipler)
                        .offset(y: 19*scaleMultipler)
                        .colorMultiply(environmentSignUp.bodyColor)
                }
            )
    }
}

struct Avatar_Previews: PreviewProvider {
    static var previews: some View {
        Avatar(scaleMultipler: 2, backgroundHeight: 100)
    }
}