Compare commits

...

8 Commits

Author SHA1 Message Date
427bede723 添加仓库UI 2025-10-21 19:33:48 +08:00
905e881cab 添加鱼获ui背景颜色 2025-10-21 17:17:43 +08:00
86c87dbe64 Merge branch 'dev' 2025-10-21 10:04:25 +08:00
7aac1a1544 修复存档保存bug 2025-10-21 10:01:04 +08:00
08e4076f22 修改鱼获显示bug 2025-10-21 09:50:35 +08:00
d902bb9255 更新ignore文件 2025-10-14 15:41:17 +08:00
2cd0504023 Merge branch 'main' of http://www.ntopia-tech.com:30000/admin/Project02
# Conflicts:
#	ProjectFish/Release/Windows/Manifest_NonUFSFiles_Win64.txt
#	ProjectFish/Release/Windows/Manifest_UFSFiles_Win64.txt
#	ProjectFish/Release/Windows/ProjectFish/Content/Paks/ProjectFish-Windows.pak
#	ProjectFish/Release/Windows/ProjectFish/Content/Paks/ProjectFish-Windows.ucas
#	ProjectFish/Release/Windows/ProjectFish/Content/Paks/ProjectFish-Windows.utoc
2025-10-14 11:56:52 +08:00
248bffdc34 添加打包后的文件 2025-10-14 11:54:23 +08:00
19 changed files with 79 additions and 9 deletions

Binary file not shown.

View File

@ -140,20 +140,22 @@ TArray<FContainerItemSaveData> UContainerInfo::GetSaveData() const
return SaveDataArray; return SaveDataArray;
} }
void UContainerInfo::LoadFromSaveData(UPlayerInfoSaveGame* SaveGameData) bool UContainerInfo::LoadFromSaveData(FPrimaryAssetId ShapeID, const TArray<FContainerItemSaveData>& ContainerItems)
{ {
// 清空当前数据 // 清空当前数据
Items.Empty(); Items.Empty();
SlotInUsing.Empty(); SlotInUsing.Empty();
//从存档中加载仓库形状 //从存档中加载仓库形状
if (IsValid(SaveGameData)) FSoftObjectPath ShipShapePath = UAssetManager::Get().GetPrimaryAssetPath(ShapeID);
UShapeAsset* ShapeAsset = Cast<UShapeAsset>(ShipShapePath.TryLoad());
if (!IsValid(ShapeAsset))
{ {
FSoftObjectPath ShipShapePath = UAssetManager::Get().GetPrimaryAssetPath(SaveGameData->ShipContainerShapeID); return false;
InitContainerByShape(Cast<UShapeAsset>(ShipShapePath.TryLoad())); }
;} InitContainerByShape(ShapeAsset);
// 获得仓库中的物品信息 // 获得仓库中的物品信息
TArray<FPrimaryAssetId> AssetsToLoad; TArray<FPrimaryAssetId> AssetsToLoad;
for (const FContainerItemSaveData& ItemData : SaveGameData->ShipContainerItems) for (const FContainerItemSaveData& ItemData : ContainerItems)
{ {
FContainerItem NewItem; FContainerItem NewItem;
NewItem.DegreeType = ItemData.DegreeType; NewItem.DegreeType = ItemData.DegreeType;
@ -164,4 +166,43 @@ void UContainerInfo::LoadFromSaveData(UPlayerInfoSaveGame* SaveGameData)
FIntPoint Position(ItemData.PosX, ItemData.PosY); FIntPoint Position(ItemData.PosX, ItemData.PosY);
AddContainerItem(NewItem, Position); AddContainerItem(NewItem, Position);
} }
return true;
} }
// bool UContainerInfo::LoadFromSaveData(UPlayerInfoSaveGame* SaveGameData)
// {
// // 清空当前数据
// Items.Empty();
// SlotInUsing.Empty();
// //从存档中加载仓库形状
// if (IsValid(SaveGameData))
// {
// FSoftObjectPath ShipShapePath = UAssetManager::Get().GetPrimaryAssetPath(SaveGameData->ShipContainerShapeID);
// UShapeAsset* ShapeAsset = Cast<UShapeAsset>(ShipShapePath.TryLoad());
// if (!IsValid(ShapeAsset))
// {
// return false;
// }
// InitContainerByShape(ShapeAsset);
// // 获得仓库中的物品信息
// TArray<FPrimaryAssetId> AssetsToLoad;
// for (const FContainerItemSaveData& ItemData : SaveGameData->ShipContainerItems)
// {
// FContainerItem NewItem;
// NewItem.DegreeType = ItemData.DegreeType;
// //获得物品形状
// FSoftObjectPath RewardItemPath = UAssetManager::Get().GetPrimaryAssetPath(ItemData.RewardItemAssetId);
// NewItem.RewardItem = Cast<UFishingRewardDataAsset>(RewardItemPath.TryLoad());
// //添加物品到容器中
// FIntPoint Position(ItemData.PosX, ItemData.PosY);
// AddContainerItem(NewItem, Position);
// }
// }
// else
// {
// return false;
// }
//
// return true;
// }

View File

@ -117,8 +117,11 @@ public:
TArray<FContainerItemSaveData> GetSaveData() const; TArray<FContainerItemSaveData> GetSaveData() const;
// 从存档数据加载 // 从存档数据加载
// UFUNCTION(BlueprintCallable, Category = "ContainerInfo")
// bool LoadFromSaveData(UPlayerInfoSaveGame* SaveGameData);
UFUNCTION(BlueprintCallable, Category = "ContainerInfo") UFUNCTION(BlueprintCallable, Category = "ContainerInfo")
void LoadFromSaveData(UPlayerInfoSaveGame* SaveGameData); bool LoadFromSaveData(FPrimaryAssetId ShapeID, const TArray<FContainerItemSaveData>& ContainerItems);
private: private:
//要添加的物品是否会覆盖其他物品 //要添加的物品是否会覆盖其他物品

View File

@ -44,10 +44,33 @@ bool UGameInfoManager::LoadGameInfo()
return false; return false;
} }
void UGameInfoManager::CreateGameInfo(UContainerInfo* ShipContainer) void UGameInfoManager::CreateGameInfo(UContainerInfo* ShipContainer, UContainerInfo* PlayerContainer)
{ {
PlayerInfo = NewObject<UPlayerInfoSaveGame>(this); PlayerInfo = NewObject<UPlayerInfoSaveGame>(this);
PlayerInfo->ShipContainerItems = ShipContainer->GetSaveData(); PlayerInfo->ShipContainerItems = ShipContainer->GetSaveData();
PlayerInfo->ShipContainerShapeID = ShipContainer->ContainerShape->GetPrimaryAssetId(); PlayerInfo->ShipContainerShapeID = ShipContainer->ContainerShape->GetPrimaryAssetId();
PlayerInfo->PlayerContainerItems = PlayerContainer->GetSaveData();
PlayerInfo->PlayerContainerShapeID = PlayerContainer->ContainerShape->GetPrimaryAssetId();
SaveGameInfo();
}
void UGameInfoManager::CreateGameInfoAndSave(UShapeAsset* ShipContainerShape, UShapeAsset* PlayerContainerShape)
{
//创建仓库信息
UContainerInfo* ShipContainer = NewObject<UContainerInfo>();
ShipContainer->InitContainerByShape(ShipContainerShape);
UContainerInfo* PlayerContainer = NewObject<UContainerInfo>();
PlayerContainer->InitContainerByShape(PlayerContainerShape);
//创建要保存的额存档信息
PlayerInfo = NewObject<UPlayerInfoSaveGame>(this);
PlayerInfo->ShipContainerItems = ShipContainer->GetSaveData();
PlayerInfo->ShipContainerShapeID = ShipContainer->ContainerShape->GetPrimaryAssetId();
PlayerInfo->PlayerContainerItems = PlayerContainer->GetSaveData();
PlayerInfo->PlayerContainerShapeID = PlayerContainer->ContainerShape->GetPrimaryAssetId();
SaveGameInfo(); SaveGameInfo();
} }

View File

@ -23,7 +23,10 @@ protected:
UFUNCTION(BlueprintCallable) UFUNCTION(BlueprintCallable)
bool LoadGameInfo(); bool LoadGameInfo();
UFUNCTION(BlueprintCallable) UFUNCTION(BlueprintCallable)
void CreateGameInfo(UContainerInfo* ShipContainer); void CreateGameInfo(UContainerInfo* ShipContainer, UContainerInfo* PlayerContainer);
UFUNCTION(BlueprintCallable)
void CreateGameInfoAndSave(UShapeAsset* ShipContainerShape, UShapeAsset* PlayerContainerShape);
protected: protected:
UPROPERTY(BlueprintReadOnly) UPROPERTY(BlueprintReadOnly)
TObjectPtr<class UPlayerInfoSaveGame> PlayerInfo; TObjectPtr<class UPlayerInfoSaveGame> PlayerInfo;