(Feat) Add Craft Systeme
This commit is contained in:
@@ -0,0 +1,66 @@
|
||||
// Fill out your copyright notice in the Description page of Project Settings.
|
||||
|
||||
|
||||
#include "CraftingRecipeSlotWidget.h"
|
||||
|
||||
#include "Components/Image.h"
|
||||
#include "Components/TextBlock.h"
|
||||
#include "CraftingRecipeDataAsset.h"
|
||||
#include "CraftingWidget.h"
|
||||
|
||||
void UCraftingRecipeSlotWidget::InitSlot(UCraftingRecipeDataAsset* InRecipe, UCraftingWidget* InOwningGrid)
|
||||
{
|
||||
Recipe = InRecipe;
|
||||
OwningGrid = InOwningGrid;
|
||||
|
||||
if (RecipeIcon)
|
||||
{
|
||||
UTexture2D* Icon = Recipe ? Recipe->GetIcon() : nullptr;
|
||||
if (Icon)
|
||||
{
|
||||
RecipeIcon->SetBrushFromTexture(Icon);
|
||||
RecipeIcon->SetVisibility(ESlateVisibility::HitTestInvisible);
|
||||
}
|
||||
else
|
||||
{
|
||||
// Pas d'icone : on masque plutot que de laisser le brush par defaut,
|
||||
// qui afficherait un carre blanc franchement laid dans la grille.
|
||||
RecipeIcon->SetVisibility(ESlateVisibility::Hidden);
|
||||
}
|
||||
}
|
||||
|
||||
if (RecipeNameText)
|
||||
{
|
||||
RecipeNameText->SetText(Recipe ? Recipe->GetDisplayName() : FText::GetEmpty());
|
||||
}
|
||||
|
||||
SetSelected(false);
|
||||
SetCraftable(true);
|
||||
}
|
||||
|
||||
void UCraftingRecipeSlotWidget::SetSelected(bool bSelected)
|
||||
{
|
||||
if (SelectionBorder)
|
||||
{
|
||||
SelectionBorder->SetVisibility(bSelected ? ESlateVisibility::HitTestInvisible : ESlateVisibility::Hidden);
|
||||
}
|
||||
}
|
||||
|
||||
void UCraftingRecipeSlotWidget::SetCraftable(bool bCraftable)
|
||||
{
|
||||
if (RecipeIcon)
|
||||
{
|
||||
RecipeIcon->SetColorAndOpacity(bCraftable ? CraftableTint : UncraftableTint);
|
||||
}
|
||||
}
|
||||
|
||||
FReply UCraftingRecipeSlotWidget::NativeOnMouseButtonDown(const FGeometry& InGeometry, const FPointerEvent& InMouseEvent)
|
||||
{
|
||||
if (InMouseEvent.GetEffectingButton() == EKeys::LeftMouseButton && OwningGrid.IsValid())
|
||||
{
|
||||
OwningGrid->NotifyRecipeClicked(Recipe);
|
||||
return FReply::Handled();
|
||||
}
|
||||
|
||||
return Super::NativeOnMouseButtonDown(InGeometry, InMouseEvent);
|
||||
}
|
||||
Reference in New Issue
Block a user