Skip to content

Commit

Permalink
Merge branch '5.0_dev'
Browse files Browse the repository at this point in the history
  • Loading branch information
pavlicekdominik committed Oct 22, 2023
2 parents 43b21c6 + 6bc7c66 commit ebf128d
Show file tree
Hide file tree
Showing 91 changed files with 3,171 additions and 980 deletions.
8 changes: 8 additions & 0 deletions Config/DefaultMounteaInventoryEquipment.ini
Original file line number Diff line number Diff line change
@@ -0,0 +1,8 @@
[CoreRedirects]
+FunctionRedirects=(OldName="/Script/MounteaInventoryEquipment.IMounteaInventoryInterface.GetInventoryWBPClass",NewName="/Script/MounteaInventoryEquipment.IMounteaInventoryInterface.GetInventoryUIClass")
+FunctionRedirects=(OldName="/Script/MounteaInventoryEquipment.IMounteaInventoryInterface.SetInventoryWBPClass",NewName="/Script/MounteaInventoryEquipment.IMounteaInventoryInterface.SetInventoryUIClass")
+FunctionRedirects=(OldName="/Script/MounteaInventoryEquipment.IMounteaInventoryInterface.SetInventoryWBP",NewName="/Script/MounteaInventoryEquipment.IMounteaInventoryInterface.SetInventoryUI")
+FunctionRedirects=(OldName="/Script/MounteaInventoryEquipment.IMounteaInventoryInterface.GetInventoryWBP",NewName="/Script/MounteaInventoryEquipment.IMounteaInventoryInterface.GetInventoryUI")
+ClassRedirects=(OldName="/Script/MounteaInventoryEquipment.ContentThemeConfig",NewName="/Script/MounteaInventoryEquipment.ContentTheme")
+ClassRedirects=(OldName="/Script/MounteaInventoryEquipment.CategoryThemeConfig",NewName="/Script/MounteaInventoryEquipment.CategoryTheme")
+PropertyRedirects=(OldName="/Script/MounteaInventoryEquipment.CategoryThemeData.Category",NewName="/Script/MounteaInventoryEquipment.CategoryThemeData.CategoryTheme")
2 changes: 2 additions & 0 deletions Config/Tags/MounteaInventoryEquipmentTags.ini
Original file line number Diff line number Diff line change
Expand Up @@ -22,6 +22,8 @@ GameplayTagList=(Tag="Mountea_Inventory.Functions.Action.ActionSelected",DevComm
GameplayTagList=(Tag="Mountea_Inventory.Functions.Action.HideContainer",DevComment="")
GameplayTagList=(Tag="Mountea_Inventory.Functions.Action.ShowContainer",DevComment="")
GameplayTagList=(Tag="Mountea_Inventory.Functions.Category.OnSelected",DevComment="")
GameplayTagList=(Tag="Mountea_Inventory.Functions.Inventory",DevComment="")
GameplayTagList=(Tag="Mountea_Inventory.Functions.Inventory.GetEquipmentRef",DevComment="")
GameplayTagList=(Tag="Mountea_Inventory.Functions.Slot.OnDragEnter",DevComment="")
GameplayTagList=(Tag="Mountea_Inventory.Functions.Slot.OnDragFinished",DevComment="")
GameplayTagList=(Tag="Mountea_Inventory.Functions.Slot.OnDragLeave",DevComment="")
Expand Down
Binary file modified Content/Blueprints/Actions/BPA_Equip.uasset
Binary file not shown.
Binary file added Content/Blueprints/Categories/Weapon.uasset
Binary file not shown.
Binary file modified Content/Blueprints/Components/BPC_MounteaEquipment.uasset
Binary file not shown.
Binary file modified Content/Blueprints/Components/BPC_MounteaInventory.uasset
Binary file not shown.
Binary file added Content/Blueprints/Items/Books/HiddenBible.uasset
Binary file not shown.
Binary file added Content/Blueprints/Items/Weapon/Sword.uasset
Binary file not shown.
Binary file not shown.
Binary file added Content/Blueprints/Theme/Example01/Theme01.uasset
Binary file not shown.
Binary file modified Content/Blueprints/Theme/MounteaThemeConfig.uasset
Binary file not shown.
Binary file not shown.
Binary file added Content/Data/ItemData/DataAssets/SwordData.uasset
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file added Content/Materials/Functions/MF_BoxBlur.uasset
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file modified Content/WBP/Actions/WBP_ItemActionsContainer.uasset
Binary file not shown.
Binary file modified Content/WBP/Equipment/WBP_Equipment.uasset
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 modified Content/WBP/Inventory/WBP_Inventory.uasset
Binary file not shown.
Binary file modified Content/WBP/Item/WBP_InventoryItem.uasset
Binary file not shown.
Binary file modified Content/WBP/Slot/WBP_EquipmentSlot.uasset
Binary file not shown.
19 changes: 13 additions & 6 deletions MounteaInventoryEquipment.uplugin
Original file line number Diff line number Diff line change
Expand Up @@ -20,8 +20,7 @@
"Name": "MounteaInventoryEquipment",
"Type": "Runtime",
"LoadingPhase": "PreDefault",
"WhitelistPlatforms":
[
"WhitelistPlatforms": [
"Linux",
"Mac",
"Win64"
Expand All @@ -31,8 +30,7 @@
"Name": "MounteaInventoryEquipmentEditor",
"Type": "Editor",
"LoadingPhase": "PostEngineInit",
"WhitelistPlatforms":
[
"WhitelistPlatforms": [
"Linux",
"Mac",
"Win64"
Expand All @@ -42,8 +40,17 @@
"Name": "MounteaInventoryEquipmentNotifications",
"Type": "Editor",
"LoadingPhase": "PostEngineInit",
"WhitelistPlatforms":
[
"WhitelistPlatforms": [
"Linux",
"Mac",
"Win64"
]
},
{
"Name": "MounteaInventoryEquipmentDeveloper",
"Type": "DeveloperTool",
"LoadingPhase": "Default",
"WhitelistPlatforms": [
"Linux",
"Mac",
"Win64"
Expand Down
Binary file added Resources/K2NodeIcons/DistinctIcon.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Original file line number Diff line number Diff line change
Expand Up @@ -31,7 +31,8 @@ public MounteaInventoryEquipment(ReadOnlyTargetRules Target) : base(Target)
"UMG",
"Projects",

"GameplayTags"
"GameplayTags",
"CommonUI"
// ... add other public dependencies that you statically link with here ...
}
);
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,11 @@
#include "Components/MounteaEquipmentComponent.h"

#include "Engine/ActorChannel.h"
#include "Helpers/MounteaInventoryEquipmentBPF.h"
#include "Interfaces/MounteaEquipmentWBPInterface.h"
#include "Net/UnrealNetwork.h"
#include "Settings/MounteaInventoryEquipmentSettings.h"
#include "WBP/MounteaBaseUserWidget.h"

UMounteaEquipmentComponent::UMounteaEquipmentComponent()
{
Expand All @@ -19,6 +24,8 @@ void UMounteaEquipmentComponent::BeginPlay()
void UMounteaEquipmentComponent::GetLifetimeReplicatedProps(TArray<FLifetimeProperty>& OutLifetimeProps) const
{
Super::GetLifetimeReplicatedProps(OutLifetimeProps);

DOREPLIFETIME(UMounteaEquipmentComponent, EquipmentSlotData);
}

bool UMounteaEquipmentComponent::ReplicateSubobjects(UActorChannel* Channel, FOutBunch* Bunch, FReplicationFlags* RepFlags)
Expand All @@ -42,6 +49,11 @@ bool UMounteaEquipmentComponent::ReplicateSubobjects(UActorChannel* Channel, FOu
return bUpdated;
}

AActor* UMounteaEquipmentComponent::GetOwningActor_Implementation() const
{
return GetOwner();
}

FString UMounteaEquipmentComponent::FindSlotForItem_Implementation(const UMounteaInventoryItemBase* Item) const
{
FString SlotID;
Expand All @@ -61,14 +73,37 @@ FString UMounteaEquipmentComponent::FindSlotForItem_Implementation(const UMounte
return SlotID;
}

UMounteaEquipmentSlot* UMounteaEquipmentComponent::FindSlotByID_Implementation(const FString& SlotID) const
{
for (const FMounteaEquipmentSlotData& Itr : EquipmentSlotData)
{
if (Itr.Slot && Itr.Slot->GetSlotID().Equals(SlotID)) return Itr.Slot;
}

return nullptr;
}

#pragma region EQUIP

bool UMounteaEquipmentComponent::EquipItem_Implementation(const UMounteaInventoryItemBase* ItemToEquip, const FString& SlotID)
bool UMounteaEquipmentComponent::EquipItem_Implementation(UMounteaInventoryItemBase* ItemToEquip, const FString& SlotID)
{
if (!ItemToEquip) return false;

if (GetOwner() && GetOwner()->HasAuthority())
if (GetOwner() && !GetOwner()->HasAuthority())
{
// Cleanup Slot before populating new, so populated slot can return to Inventory
// Local stuff should be fine, as it will get updates once server response is received
if (const auto TempEquipmentUI = Execute_GetEquipmentUI(this))
{
if (UMounteaEquipmentSlot* const FoundSlot = UMounteaInventoryEquipmentBPF::FindEquipmentSlot(EquipmentSlotData, SlotID))
{
FoundSlot->UpdateItem(ItemToEquip);

TempEquipmentUI->ProcessMounteaWidgetCommand(MounteaInventoryEquipmentConsts::MounteaEquipmentWidgetCommands::EquipmentCommands::UnequipItemWidget, FoundSlot);
TempEquipmentUI->ProcessMounteaWidgetCommand(MounteaInventoryEquipmentConsts::MounteaEquipmentWidgetCommands::EquipmentCommands::EquipItemWidget, FoundSlot);
}
}

EquipItem_Server(ItemToEquip, SlotID);
}

Expand All @@ -82,19 +117,24 @@ bool UMounteaEquipmentComponent::EquipItem_Implementation(const UMounteaInventor
return false;
}

void UMounteaEquipmentComponent::EquipItem_Server_Implementation(const UMounteaInventoryItemBase* ItemToEquip, const FString& SlotID)
void UMounteaEquipmentComponent::EquipItem_Server_Implementation(UMounteaInventoryItemBase* ItemToEquip, const FString& SlotID)
{
if (Execute_CanEquipItem(this, ItemToEquip))
{
OnSlotEquipped.Broadcast(ItemToEquip, SlotID);
if (UMounteaEquipmentSlot* Slot = UMounteaInventoryEquipmentBPF::FindEquipmentSlot(EquipmentSlotData, SlotID))
{
Slot->UpdateItem(ItemToEquip);

OnSlotEquipped.Broadcast(ItemToEquip, SlotID);

OnRep_Equipment();
OnRep_Equipment();

EquipItem_Multicast(ItemToEquip, SlotID);
EquipItem_Multicast(ItemToEquip, SlotID);
}
}
}

bool UMounteaEquipmentComponent::EquipItem_Server_Validate(const UMounteaInventoryItemBase* ItemToEquip, const FString& SlotID)
bool UMounteaEquipmentComponent::EquipItem_Server_Validate(UMounteaInventoryItemBase* ItemToEquip, const FString& SlotID)
{
return true;
}
Expand All @@ -109,12 +149,18 @@ void UMounteaEquipmentComponent::EquipItem_Multicast_Implementation(const UMount

#pragma region UNEQUIP

bool UMounteaEquipmentComponent::UnEquipItem_Implementation(const UMounteaInventoryItemBase* ItemToEquip, const FString& SlotID)
bool UMounteaEquipmentComponent::UnEquipItem_Implementation(UMounteaInventoryItemBase* ItemToEquip, const FString& SlotID)
{
if (!ItemToEquip) return false;

if (GetOwner() && GetOwner()->HasAuthority())
if (GetOwner() && !GetOwner()->HasAuthority())
{
// Cleanup Slot and return possible slot back to Inventory
if (const auto TempEquipmentUI = Execute_GetEquipmentUI(this))
{
TempEquipmentUI->ProcessMounteaWidgetCommand(MounteaInventoryEquipmentConsts::MounteaEquipmentWidgetCommands::EquipmentCommands::UnequipItemWidget, UMounteaInventoryEquipmentBPF::FindEquipmentSlot(EquipmentSlotData, SlotID));
}

UnEquipItem_Server(ItemToEquip, SlotID);
}

Expand All @@ -128,19 +174,24 @@ bool UMounteaEquipmentComponent::UnEquipItem_Implementation(const UMounteaInvent
return false;
}

void UMounteaEquipmentComponent::UnEquipItem_Server_Implementation(const UMounteaInventoryItemBase* ItemToEquip, const FString& SlotID)
void UMounteaEquipmentComponent::UnEquipItem_Server_Implementation(UMounteaInventoryItemBase* ItemToEquip, const FString& SlotID)
{
if (Execute_IsItemEquipped(this, ItemToEquip, SlotID))
{
OnSlotUnequipped.Broadcast(ItemToEquip, SlotID);

OnRep_Equipment();
if (UMounteaEquipmentSlot* Slot = UMounteaInventoryEquipmentBPF::FindEquipmentSlot(EquipmentSlotData, SlotID))
{
Slot->UpdateItem(nullptr);

OnSlotUnequipped.Broadcast(ItemToEquip, SlotID);

OnRep_Equipment();

UnEquipItem_Multicast(ItemToEquip, SlotID);
UnEquipItem_Multicast(ItemToEquip, SlotID);
}
}
}

bool UMounteaEquipmentComponent::UnEquipItem_Server_Validate(const UMounteaInventoryItemBase* ItemToEquip, const FString& SlotID)
bool UMounteaEquipmentComponent::UnEquipItem_Server_Validate(UMounteaInventoryItemBase* ItemToEquip, const FString& SlotID)
{
return true;
}
Expand All @@ -154,11 +205,9 @@ void UMounteaEquipmentComponent::UnEquipItem_Multicast_Implementation(const UMou
#pragma endregion


bool UMounteaEquipmentComponent::IsItemEquipped_Implementation(const UMounteaInventoryItemBase* ItemToEquip, const FString& SlotID)
bool UMounteaEquipmentComponent::IsItemEquipped_Implementation(const UMounteaInventoryItemBase* ItemToEquip, const FString& SlotID) const
{
return EquipmentSlotData.Contains(FMounteaEquipmentSlotDataCompare(ItemToEquip, SlotID));

return true;
}

TArray<FMounteaEquipmentSlotData> UMounteaEquipmentComponent::GetAllSlots_Implementation() const
Expand All @@ -172,7 +221,25 @@ bool UMounteaEquipmentComponent::CanEquipItem_Implementation(const UMounteaInven

const FString SlotID = Execute_FindSlotForItem(this, ItemToEquip);

return !SlotID.IsEmpty();
if (SlotID.IsEmpty()) return false;

return !Execute_IsItemEquipped(this, ItemToEquip, SlotID);
}

UMounteaBaseUserWidget* UMounteaEquipmentComponent::GetEquipmentUI_Implementation() const
{
return EquipmentUI;
}

bool UMounteaEquipmentComponent::SetEquipmentUI_Implementation(UMounteaBaseUserWidget* NewUI)
{
if(NewUI != EquipmentUI)
{
EquipmentUI = NewUI;
return true;
}

return false;
}

void UMounteaEquipmentComponent::OnRep_Equipment()
Expand Down
Loading

0 comments on commit ebf128d

Please sign in to comment.