diff --git a/ProjectFish/Binaries/Win64/UnrealEditor-ProjectFish.dll b/ProjectFish/Binaries/Win64/UnrealEditor-ProjectFish.dll index b7baad8..8822784 100644 Binary files a/ProjectFish/Binaries/Win64/UnrealEditor-ProjectFish.dll and b/ProjectFish/Binaries/Win64/UnrealEditor-ProjectFish.dll differ diff --git a/ProjectFish/Source/ProjectFish/Components/FishingRodComponent.cpp b/ProjectFish/Source/ProjectFish/Components/FishingRodComponent.cpp index 319a637..2e729a3 100644 --- a/ProjectFish/Source/ProjectFish/Components/FishingRodComponent.cpp +++ b/ProjectFish/Source/ProjectFish/Components/FishingRodComponent.cpp @@ -6,6 +6,7 @@ #include "EngineUtils.h" #include "ProjectFish/Definations.h" #include "ProjectFish/PawnWithSkill.h" +#include "ProjectFish/Subsystem/FishingRodConfigSubsystem.h" // Sets default values for this component's properties @@ -71,8 +72,13 @@ void UFishingRodComponent::BeginPlay() }); } + //更新鱼竿槽位配置 + UWorld* World = GetWorld(); + UGameInstance* GameInstance = World->GetGameInstance(); + FishRodData.BagConfig = GameInstance->GetSubsystem()->GetFishingRodInventory(); // ... Super::BeginPlay(); + } diff --git a/ProjectFish/Source/ProjectFish/Skill/SkillManager.cpp b/ProjectFish/Source/ProjectFish/Skill/SkillManager.cpp index 8e6b72c..a8219e1 100644 --- a/ProjectFish/Source/ProjectFish/Skill/SkillManager.cpp +++ b/ProjectFish/Source/ProjectFish/Skill/SkillManager.cpp @@ -53,26 +53,27 @@ void USkillManager::AddPawn(class APawnWithSkill* Pawn, FIntPoint BagSize) void USkillManager::AddBagWithSkills(UBagConfigAsset* Bag, APawnWithSkill* Pawn, TArray& SkillObjects, TArray& BagPositions) { - FIntPoint BagSize = *PawnInfo.Find(Pawn); - TMap* states = PawnBagState.Find(Pawn); - for (auto PlacedSkill: Bag->PlacedSkills) + if (IsValid(Bag)) { - USkill* skill = NewObject(this); - skill->InitSkill(Pawn, this, PlacedSkill); - SkillObjects.Add(skill); - BagPositions.Add(FIntPoint(PlacedSkill.PositionX, PlacedSkill.PositionY)); - Skills.Add(skill); - //设置占用状态 - for (int x = PlacedSkill.PositionX; x < PlacedSkill.PositionX + PlacedSkill.GetSkillSize().X; x++) + FIntPoint BagSize = *PawnInfo.Find(Pawn); + TMap* states = PawnBagState.Find(Pawn); + for (auto PlacedSkill: Bag->PlacedSkills) { - for (int y = PlacedSkill.PositionY; y < PlacedSkill.PositionY + PlacedSkill.GetSkillSize().Y; y++) + USkill* skill = NewObject(this); + skill->InitSkill(Pawn, this, PlacedSkill); + SkillObjects.Add(skill); + BagPositions.Add(FIntPoint(PlacedSkill.PositionX, PlacedSkill.PositionY)); + Skills.Add(skill); + //设置占用状态 + for (int x = PlacedSkill.PositionX; x < PlacedSkill.PositionX + PlacedSkill.GetSkillSize().X; x++) { - states->Add(FIntPoint(x, y) , GetSkillIndex(skill)); + for (int y = PlacedSkill.PositionY; y < PlacedSkill.PositionY + PlacedSkill.GetSkillSize().Y; y++) + { + states->Add(FIntPoint(x, y) , GetSkillIndex(skill)); + } } } } - - } void USkillManager::OnAllSkillAdded()