Compare commits
No commits in common. "427bede723df0e89b6d5f42eaefa9b30ae219893" and "3a6b9042f1cda271dec53946808e14f66b956c07" have entirely different histories.
427bede723
...
3a6b9042f1
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
@ -140,22 +140,20 @@ TArray<FContainerItemSaveData> UContainerInfo::GetSaveData() const
|
|||||||
return SaveDataArray;
|
return SaveDataArray;
|
||||||
}
|
}
|
||||||
|
|
||||||
bool UContainerInfo::LoadFromSaveData(FPrimaryAssetId ShapeID, const TArray<FContainerItemSaveData>& ContainerItems)
|
void UContainerInfo::LoadFromSaveData(UPlayerInfoSaveGame* SaveGameData)
|
||||||
{
|
{
|
||||||
// 清空当前数据
|
// 清空当前数据
|
||||||
Items.Empty();
|
Items.Empty();
|
||||||
SlotInUsing.Empty();
|
SlotInUsing.Empty();
|
||||||
//从存档中加载仓库形状
|
//从存档中加载仓库形状
|
||||||
FSoftObjectPath ShipShapePath = UAssetManager::Get().GetPrimaryAssetPath(ShapeID);
|
if (IsValid(SaveGameData))
|
||||||
UShapeAsset* ShapeAsset = Cast<UShapeAsset>(ShipShapePath.TryLoad());
|
|
||||||
if (!IsValid(ShapeAsset))
|
|
||||||
{
|
{
|
||||||
return false;
|
FSoftObjectPath ShipShapePath = UAssetManager::Get().GetPrimaryAssetPath(SaveGameData->ShipContainerShapeID);
|
||||||
}
|
InitContainerByShape(Cast<UShapeAsset>(ShipShapePath.TryLoad()));
|
||||||
InitContainerByShape(ShapeAsset);
|
;}
|
||||||
// 获得仓库中的物品信息
|
// 获得仓库中的物品信息
|
||||||
TArray<FPrimaryAssetId> AssetsToLoad;
|
TArray<FPrimaryAssetId> AssetsToLoad;
|
||||||
for (const FContainerItemSaveData& ItemData : ContainerItems)
|
for (const FContainerItemSaveData& ItemData : SaveGameData->ShipContainerItems)
|
||||||
{
|
{
|
||||||
FContainerItem NewItem;
|
FContainerItem NewItem;
|
||||||
NewItem.DegreeType = ItemData.DegreeType;
|
NewItem.DegreeType = ItemData.DegreeType;
|
||||||
@ -166,43 +164,4 @@ bool UContainerInfo::LoadFromSaveData(FPrimaryAssetId ShapeID, const TArray<FCon
|
|||||||
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;
|
|
||||||
// }
|
|
||||||
|
|||||||
@ -117,11 +117,8 @@ 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")
|
||||||
bool LoadFromSaveData(FPrimaryAssetId ShapeID, const TArray<FContainerItemSaveData>& ContainerItems);
|
void LoadFromSaveData(UPlayerInfoSaveGame* SaveGameData);
|
||||||
|
|
||||||
private:
|
private:
|
||||||
//要添加的物品是否会覆盖其他物品
|
//要添加的物品是否会覆盖其他物品
|
||||||
|
|||||||
@ -44,33 +44,10 @@ bool UGameInfoManager::LoadGameInfo()
|
|||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
void UGameInfoManager::CreateGameInfo(UContainerInfo* ShipContainer, UContainerInfo* PlayerContainer)
|
void UGameInfoManager::CreateGameInfo(UContainerInfo* ShipContainer)
|
||||||
{
|
{
|
||||||
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();
|
||||||
}
|
}
|
||||||
|
|||||||
@ -23,10 +23,7 @@ protected:
|
|||||||
UFUNCTION(BlueprintCallable)
|
UFUNCTION(BlueprintCallable)
|
||||||
bool LoadGameInfo();
|
bool LoadGameInfo();
|
||||||
UFUNCTION(BlueprintCallable)
|
UFUNCTION(BlueprintCallable)
|
||||||
void CreateGameInfo(UContainerInfo* ShipContainer, UContainerInfo* PlayerContainer);
|
void CreateGameInfo(UContainerInfo* ShipContainer);
|
||||||
|
|
||||||
UFUNCTION(BlueprintCallable)
|
|
||||||
void CreateGameInfoAndSave(UShapeAsset* ShipContainerShape, UShapeAsset* PlayerContainerShape);
|
|
||||||
protected:
|
protected:
|
||||||
UPROPERTY(BlueprintReadOnly)
|
UPROPERTY(BlueprintReadOnly)
|
||||||
TObjectPtr<class UPlayerInfoSaveGame> PlayerInfo;
|
TObjectPtr<class UPlayerInfoSaveGame> PlayerInfo;
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user