#pragma once #include "CoreMinimal.h" #include "GameFramework/Actor.h" #include "NakedDesire/Clothing/ClothingSlotType.h" #include "PlayerImpostor.generated.h" class UClothingItemInstance; 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(); virtual void BeginPlay() override; private: UFUNCTION() void OnClothingEquip(UClothingItemInstance* ClothingItemInstance); UFUNCTION() void OnClothingUnequip(UClothingItemInstance* ClothingItemInstance); USkeletalMeshComponent* GetMesh() const { return Mesh; }; USkeletalMeshComponent* GetMeshByType(const EClothingSlotType SlotType) const; void EquipClothing(const UClothingItemInstance* ClothingItemInstance); void UnequipClothing(const UClothingItemInstance* ClothingItemInstance); };