Files
2026-03-03 01:23:02 +08:00

95 lines
3.2 KiB
C++
Raw Permalink Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
// Copyright 2025 https://yuewu.dev/en All Rights Reserved.
#pragma once
#include "CoreMinimal.h"
#include "Net/Serialization/FastArraySerializer.h"
#include "UObject/Object.h"
#include "GIS_CurrencyEntry.generated.h"
class UGIS_CurrencyDefinition;
/**
* Represents a currency and its associated amount.
* 表示一种货币及其数量。
*/
USTRUCT(BlueprintType)
struct GENERICINVENTORYSYSTEM_API FGIS_CurrencyEntry : public FFastArraySerializerItem
{
GENERATED_BODY()
/**
* Default constructor for the currency entry.
* 货币条目的默认构造函数。
*/
FGIS_CurrencyEntry();
/**
* Constructor for the currency entry with specified definition and amount.
* 使用指定货币定义和数量构造货币条目。
* @param InDefinition The currency definition. 货币定义。
* @param InAmount The amount of the currency. 货币数量。
*/
FGIS_CurrencyEntry(const TObjectPtr<const UGIS_CurrencyDefinition>& InDefinition, float InAmount);
/**
* Constructor for the currency entry with specified amount and definition (alternative order).
* 使用指定数量和货币定义构造货币条目(参数顺序相反)。
* @param InAmount The amount of the currency. 货币数量。
* @param InDefinition The currency definition. 货币定义。
*/
FGIS_CurrencyEntry(float InAmount, const TObjectPtr<const UGIS_CurrencyDefinition>& InDefinition);
/**
* Referenced currency definition.
* 引用的货币定义。
*/
UPROPERTY(EditAnywhere, BlueprintReadWrite, Category="GIS")
TObjectPtr<const UGIS_CurrencyDefinition> Definition;
/**
* The amount of the currency.
* 货币的数量。
*/
UPROPERTY(EditAnywhere, BlueprintReadWrite, Category="GIS")
float Amount;
/**
* The previous amount of the currency (not replicated).
* 货币的前一数量(不复制)。
*/
UPROPERTY(NotReplicated)
float PrevAmount = 0;
/**
* Checks if this currency entry is equal to another.
* 检查此货币条目是否与另一个相等。
* @param Other The other currency entry to compare with. 要比较的另一个货币条目。
* @return True if the entries are equal, false otherwise. 如果条目相等则返回true否则返回false。
*/
bool Equals(const FGIS_CurrencyEntry& Other) const;
/**
* Converts the currency entry to a string representation.
* 将货币条目转换为字符串表示。
* @return The string representation of the currency entry. 货币条目的字符串表示。
*/
FString ToString() const;
/**
* Equality operator to compare two currency entries.
* 比较两个货币条目的相等性运算符。
* @param Rhs The right-hand side currency entry to compare with. 要比较的右侧货币条目。
* @return True if the entries are equal, false otherwise. 如果条目相等则返回true否则返回false。
*/
bool operator==(const FGIS_CurrencyEntry& Rhs) const;
/**
* Inequality operator to compare two currency entries.
* 比较两个货币条目的不等性运算符。
* @param Rhs The right-hand side currency entry to compare with. 要比较的右侧货币条目。
* @return True if the entries are not equal, false otherwise. 如果条目不相等则返回true否则返回false。
*/
bool operator!=(const FGIS_CurrencyEntry& Rhs) const;
};