// Fill out your copyright notice in the Description page of Project Settings. #pragma once #include "CoreMinimal.h" #include "GameFramework/Actor.h" #include "NakedDesire/Clothing/ClothingItemData.h" #include "NakedDesire/Clothing/ClothingSlotType.h" #include "PlayerImpostor.generated.h" class ANakedDesireCharacter; UCLASS() class NAKEDDESIRE_API APlayerImpostor : public APawn { GENERATED_BODY() UPROPERTY(EditDefaultsOnly, BlueprintReadOnly, meta = (AllowPrivateAccess = true)) USceneComponent* RootSceneComponent; UPROPERTY(EditDefaultsOnly, BlueprintReadOnly, meta = (AllowPrivateAccess = true)) USkeletalMeshComponent* Mesh; UPROPERTY(EditDefaultsOnly, BlueprintReadOnly, meta = (AllowPrivateAccess = true), Category = "Clothing") USkeletalMeshComponent* NipplesMeshComponent; UPROPERTY(EditDefaultsOnly, BlueprintReadOnly, meta = (AllowPrivateAccess = true), Category = "Clothing") USkeletalMeshComponent* AnalMeshComponent; UPROPERTY(EditDefaultsOnly, BlueprintReadOnly, meta = (AllowPrivateAccess = true), Category = "Clothing") USkeletalMeshComponent* VaginaMeshComponent; UPROPERTY(EditDefaultsOnly, BlueprintReadOnly, meta = (AllowPrivateAccess = true), Category = "Clothing") USkeletalMeshComponent* HeadMeshComponent; UPROPERTY(EditDefaultsOnly, BlueprintReadOnly, meta = (AllowPrivateAccess = true), Category = "Clothing") USkeletalMeshComponent* NeckMeshComponent; UPROPERTY(EditDefaultsOnly, BlueprintReadOnly, meta = (AllowPrivateAccess = true), Category = "Clothing") USkeletalMeshComponent* FaceMeshComponent; UPROPERTY(EditDefaultsOnly, BlueprintReadOnly, meta = (AllowPrivateAccess = true), Category = "Clothing") USkeletalMeshComponent* EyesMeshComponent; UPROPERTY(EditDefaultsOnly, BlueprintReadOnly, meta = (AllowPrivateAccess = true), Category = "Clothing") USkeletalMeshComponent* BodyMeshComponent; UPROPERTY(EditDefaultsOnly, BlueprintReadOnly, meta = (AllowPrivateAccess = true), Category = "Clothing") USkeletalMeshComponent* TopMeshComponent; UPROPERTY(EditDefaultsOnly, BlueprintReadOnly, meta = (AllowPrivateAccess = true), Category = "Clothing") USkeletalMeshComponent* BottomMeshComponent; UPROPERTY(EditDefaultsOnly, BlueprintReadOnly, meta = (AllowPrivateAccess = true), Category = "Clothing") USkeletalMeshComponent* BraMeshComponent; UPROPERTY(EditDefaultsOnly, BlueprintReadOnly, meta = (AllowPrivateAccess = true), Category = "Clothing") USkeletalMeshComponent* PantiesMeshComponent; UPROPERTY(EditDefaultsOnly, BlueprintReadOnly, meta = (AllowPrivateAccess = true), Category = "Clothing") USkeletalMeshComponent* SocksMeshComponent; UPROPERTY(EditDefaultsOnly, BlueprintReadOnly, meta = (AllowPrivateAccess = true), Category = "Clothing") USkeletalMeshComponent* ShoesMeshComponent; UPROPERTY() ANakedDesireCharacter* Player; public: APlayerImpostor(); protected: virtual void BeginPlay() override; private: UFUNCTION() void OnClothingEquip(const UClothingItemData* ClothingData); UFUNCTION() void OnClothingUnequip(const UClothingItemData* ClothingData); USkeletalMeshComponent* GetMesh() const { return Mesh; }; USkeletalMeshComponent* GetMeshByType(const EClothingSlotType SlotType) const; void EquipClothing(const UClothingItemData* ClothingData); void UnequipClothing(const UClothingItemData* ClothingData); };