martin #30
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
@ -2,4 +2,66 @@
|
|||||||
|
|
||||||
|
|
||||||
#include "UI/Settings/ObjectsListUserWidget.h"
|
#include "UI/Settings/ObjectsListUserWidget.h"
|
||||||
|
#include "Engine/StreamableManager.h"
|
||||||
|
#include "Engine/AssetManager.h"
|
||||||
|
#include "Engine/Texture2D.h"
|
||||||
|
#include "Core/LuckyRobotsGameInstance.h"
|
||||||
|
|
||||||
|
void UObjectsListUserWidget::NativeConstruct()
|
||||||
|
{
|
||||||
|
Super::NativeConstruct();
|
||||||
|
|
||||||
|
SelectableItemData.Icon;
|
||||||
|
|
||||||
|
SetVisibility(ESlateVisibility::Collapsed);
|
||||||
|
|
||||||
|
if (!SelectableItemData.Icon.IsNull())
|
||||||
|
{
|
||||||
|
FStreamableManager& Streamable = UAssetManager::GetStreamableManager();
|
||||||
|
Streamable.RequestAsyncLoad(SelectableItemData.Icon.ToSoftObjectPath(),
|
||||||
|
FStreamableDelegate::CreateUObject(this, &UObjectsListUserWidget::OnIconLoaded));
|
||||||
|
}
|
||||||
|
|
||||||
|
DoUpdateChecked();
|
||||||
|
}
|
||||||
|
|
||||||
|
void UObjectsListUserWidget::OnIconLoaded()
|
||||||
|
{
|
||||||
|
UTexture2D* LoadedTexture = Cast<UTexture2D>(SelectableItemData.Icon.Get());
|
||||||
|
if (LoadedTexture)
|
||||||
|
{
|
||||||
|
UpdateIcon(LoadedTexture);
|
||||||
|
SetVisibility(ESlateVisibility::Visible);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
void UObjectsListUserWidget::DoUpdateChecked()
|
||||||
|
{
|
||||||
|
ULuckyRobotsGameInstance* GameInstance = Cast<ULuckyRobotsGameInstance>(GetGameInstance());
|
||||||
|
if (GameInstance)
|
||||||
|
{
|
||||||
|
bIsChecked = GameInstance->GetCurrentRandomMeshes().Find(SelectableItemData.Mesh) >= 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
DoDisplayChecked();
|
||||||
|
}
|
||||||
|
|
||||||
|
void UObjectsListUserWidget::ToggleChecked()
|
||||||
|
{
|
||||||
|
ULuckyRobotsGameInstance* GameInstance = Cast<ULuckyRobotsGameInstance>(GetGameInstance());
|
||||||
|
if (GameInstance)
|
||||||
|
{
|
||||||
|
if (GameInstance->GetCurrentRandomMeshes().Find(SelectableItemData.Mesh) >= 0)
|
||||||
|
{
|
||||||
|
GameInstance->CurrentCaptureSettingsData.RandomMeshes.Remove(SelectableItemData.Mesh);
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
GameInstance->CurrentCaptureSettingsData.RandomMeshes.Add(SelectableItemData.Mesh);
|
||||||
|
}
|
||||||
|
|
||||||
|
GameInstance->OnRandomMeshesUpdated.Broadcast();
|
||||||
|
}
|
||||||
|
|
||||||
|
DoUpdateChecked();
|
||||||
|
}
|
@ -14,8 +14,29 @@ UCLASS()
|
|||||||
class LUCKYWORLDV2_API UObjectsListUserWidget : public UUserWidget
|
class LUCKYWORLDV2_API UObjectsListUserWidget : public UUserWidget
|
||||||
{
|
{
|
||||||
GENERATED_BODY()
|
GENERATED_BODY()
|
||||||
|
|
||||||
|
protected:
|
||||||
|
virtual void NativeConstruct() override;
|
||||||
|
void OnIconLoaded();
|
||||||
|
|
||||||
|
public:
|
||||||
|
UPROPERTY(EditAnywhere, BlueprintReadWrite)
|
||||||
|
bool bIsChecked;
|
||||||
|
|
||||||
public:
|
public:
|
||||||
UPROPERTY(EditAnywhere, BlueprintReadWrite)
|
UPROPERTY(EditAnywhere, BlueprintReadWrite)
|
||||||
FSelectableItemData SelectableItemData;
|
FSelectableItemData SelectableItemData;
|
||||||
|
|
||||||
|
public:
|
||||||
|
UFUNCTION(BlueprintCallable)
|
||||||
|
void DoUpdateChecked();
|
||||||
|
|
||||||
|
UFUNCTION(BlueprintCallable)
|
||||||
|
void ToggleChecked();
|
||||||
|
public:
|
||||||
|
UFUNCTION(BlueprintCallable, BlueprintImplementableEvent)
|
||||||
|
void UpdateIcon(UTexture2D* Image);
|
||||||
|
|
||||||
|
UFUNCTION(BlueprintCallable, BlueprintImplementableEvent)
|
||||||
|
void DoDisplayChecked();
|
||||||
};
|
};
|
||||||
|
Loading…
x
Reference in New Issue
Block a user