第一次提交

This commit is contained in:
不明不惑
2026-03-03 01:23:02 +08:00
commit 3e434877e8
1053 changed files with 102411 additions and 0 deletions

View File

@@ -0,0 +1,119 @@
// Copyright 2025 https://yuewu.dev/en All Rights Reserved.
#pragma once
#include "CoreMinimal.h"
#include "UObject/Interface.h"
#include "GIS_EquipmentInterface.generated.h"
class UGIS_ItemInstance;
class Apawn;
/**
* Interface class for objects that can act as equipment instances (no modifications needed).
* 可作为装备实例的对象的接口类(无需修改)。
*/
UINTERFACE()
class UGIS_EquipmentInterface : public UInterface
{
GENERATED_BODY()
};
/**
* Interface for objects that wish to function as equipment instances.
* 希望用作装备实例的对象应实现的接口。
* @details Any object implementing this interface can be used as an equipment instance in the equipment system.
* @细节 实现此接口的任何对象都可在装备系统中用作装备实例。
*/
class GENERICINVENTORYSYSTEM_API IGIS_EquipmentInterface
{
GENERATED_BODY()
public:
/**
* Receives the pawn owning this equipment.
* 接收拥有此装备的Pawn。
* @param NewPawn The pawn with the equipment system component attached. 挂载了装备系统组件的Pawn。
*/
UFUNCTION(BlueprintCallable, BlueprintNativeEvent, Category="GIS|Equipment")
void ReceiveOwningPawn(APawn* NewPawn);
virtual void ReceiveOwningPawn_Implementation(APawn* NewPawn);
/**
* Gets the pawn owning this equipment.
* 获取拥有此装备的Pawn。
* @return The owning pawn, or nullptr if none. 所属Pawn如果没有则返回nullptr。
*/
UFUNCTION(BlueprintCallable, BlueprintNativeEvent, Category="GIS|Equipment")
APawn* GetOwningPawn() const;
virtual APawn* GetOwningPawn_Implementation() const;
/**
* Receives the source item from which the equipment was created.
* 接收创建此装备的源道具。
* @param NewItem The source item instance. 源道具实例。
*/
UFUNCTION(BlueprintCallable, BlueprintNativeEvent, Category="GIS|Equipment")
void ReceiveSourceItem(UGIS_ItemInstance* NewItem);
virtual void ReceiveSourceItem_Implementation(UGIS_ItemInstance* NewItem);
/**
* Gets the source item from which the equipment was created.
* 获取创建此装备的源道具。
* @return The source item instance, or nullptr if none. 源道具实例如果没有则返回nullptr。
*/
UFUNCTION(BlueprintCallable, BlueprintNativeEvent, Category="GIS|Equipment")
UGIS_ItemInstance* GetSourceItem() const;
virtual UGIS_ItemInstance* GetSourceItem_Implementation() const;
/**
* Called after the equipment is added to the equipment system's equipment list.
* 在装备被添加到装备系统的装备列表后调用。
*/
UFUNCTION(BlueprintCallable, BlueprintNativeEvent, Category="GIS|Equipment")
void OnEquipmentBeginPlay();
virtual void OnEquipmentBeginPlay_Implementation();
UFUNCTION(BlueprintCallable, BlueprintNativeEvent, Category="GIS|Equipment")
void OnEquipmentTick(float DeltaSeconds);
virtual void OnOnEquipmentTick_Implementation(float DeltaSeconds);
/**
* Called before the equipment is removed from the equipment system's equipment list.
* 在从装备系统的装备列表移除装备之前调用。
*/
UFUNCTION(BlueprintCallable, BlueprintNativeEvent, Category="GIS|Equipment")
void OnEquipmentEndPlay();
virtual void OnEquipmentEndPlay_Implementation();
/**
* Responds to changes in the equipment's active state.
* 响应装备激活状态的变化。
* @param bNewActiveState The new active state of the equipment. 装备的新激活状态。
*/
UFUNCTION(BlueprintCallable, BlueprintNativeEvent, Category="GIS|Equipment")
void OnActiveStateChanged(bool bNewActiveState);
virtual void OnActiveStateChanged_Implementation(bool bNewActiveState);
/**
* Checks if the equipment is active.
* 检查装备是否处于激活状态。
* @return True if the equipment is active, false otherwise. 如果装备处于激活状态则返回true否则返回false。
*/
UFUNCTION(BlueprintCallable, BlueprintNativeEvent, Category="GIS|Equipment")
bool IsEquipmentActive() const;
virtual bool IsEquipmentActive_Implementation() const;
/**
* Checks if the equipment instance's replication is managed by the equipment system.
* 检查装备实例的复制是否由装备系统管理。
* @details By default, the equipment system manages only GIS_EquipmentInstance and its subclasses.
* @细节 默认情况下装备系统仅管理GIS_EquipmentInstance及其子类。
* @attention Do not override this method unless you fully understand its implications.
* @注意 除非完全了解其影响,否则不要覆写此方法。
* @return True if replication is managed by the equipment system, false otherwise. 如果复制由装备系统管理则返回true否则返回false。
*/
UFUNCTION(BlueprintCallable, BlueprintNativeEvent, Category="GIS|Equipment")
bool IsReplicationManaged();
virtual bool IsReplicationManaged_Implementation();
};