Ptr<SomeNonNoesisClass>
Posted: 20 Apr 2018, 15:50
This doesn't work:
Apparently FItemInstance doesn't have AddReference. I tried unboxing to a regular pointer but that doesn't work either.
Code: Select all
#include "StackSizeVisibilityConverter.h"
#include <NsCore/ReflectionImplement.h>
#include <NsCore/Boxing.h>
#include "ItemInstance.h"
#include "Item.h"
#include "NsGui/Enums.h"
using namespace Frontier::UI::Converters;
using namespace Noesis;
bool StackSizeVisibilityConverter::TryConvert(Noesis::BaseComponent* value, const Type* type, BaseComponent* parameter, Noesis::Ptr<BaseComponent>& result)
{
NS_UNUSED(type, parameter);
if (!Boxing::CanUnbox<Ptr<FItemInstance>>(value))
result = Boxing::Box<Visibility>(Visibility::Visibility_Visible);
auto itemInstance = Boxing::Unbox<Ptr<FItemInstance>>(value);
result = Boxing::Box<Visibility>(itemInstance->GetItem()->bIsStackable && itemInstance->StackSize > 1
? Visibility::Visibility_Visible
: Visibility::Visibility_Collapsed);
return true;
}
NS_IMPLEMENT_REFLECTION(StackSizeVisibilityConverter)
{
NsMeta<TypeId>("Frontier.UI.Converters.StackSizeVisibilityConverter");
}