From 50791b67c3f38b708b4c70ed74d3856f0a45430f Mon Sep 17 00:00:00 2001 From: PHILIP WHITE Date: Thu, 26 Oct 2023 10:52:42 +0100 Subject: [PATCH] Bugfix Able to Place Items Outside of Grid --- EndlessVendetta/Content/Inventory/M_Base_Rev.uasset | 3 +++ EndlessVendetta/Content/Inventory/MyBaseItem.uasset | 4 ++-- .../Source/EndlessVendetta/Inventory/BaseItem.cpp | 7 +++++++ .../Source/EndlessVendetta/Inventory/BaseItem.h | 6 +++++- .../EndlessVendetta/Inventory/InventoryComponent.cpp | 4 ++-- 5 files changed, 19 insertions(+), 5 deletions(-) create mode 100644 EndlessVendetta/Content/Inventory/M_Base_Rev.uasset diff --git a/EndlessVendetta/Content/Inventory/M_Base_Rev.uasset b/EndlessVendetta/Content/Inventory/M_Base_Rev.uasset new file mode 100644 index 00000000..01f423f1 --- /dev/null +++ b/EndlessVendetta/Content/Inventory/M_Base_Rev.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:ddc0bd83ded6fbd643a6e2f17d8733c45f6c257ab625118ba77d639104f004b9 +size 18207 diff --git a/EndlessVendetta/Content/Inventory/MyBaseItem.uasset b/EndlessVendetta/Content/Inventory/MyBaseItem.uasset index 758ae3c4..f708989d 100644 --- a/EndlessVendetta/Content/Inventory/MyBaseItem.uasset +++ b/EndlessVendetta/Content/Inventory/MyBaseItem.uasset @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:fdeecfb1776cd87e96cf07286cefb2c0d19ab38bcdb878672972e227e8c50024 -size 6303 +oid sha256:d2c73a557df51957bac0873e8c8144c354801a6f68e7882c23e403940ac9d7e1 +size 6587 diff --git a/EndlessVendetta/Source/EndlessVendetta/Inventory/BaseItem.cpp b/EndlessVendetta/Source/EndlessVendetta/Inventory/BaseItem.cpp index b79e1425..d2987dcf 100644 --- a/EndlessVendetta/Source/EndlessVendetta/Inventory/BaseItem.cpp +++ b/EndlessVendetta/Source/EndlessVendetta/Inventory/BaseItem.cpp @@ -3,6 +3,13 @@ #include "BaseItem.h" + +void UBaseItem::PostInitProperties() +{ + Super::PostInitProperties(); + ItemSize = FItemSize(DefaultItemSize.X, DefaultItemSize.Y); +} + void UBaseItem::RotateItem() { if (CurrentItemRotation == Horizontal) diff --git a/EndlessVendetta/Source/EndlessVendetta/Inventory/BaseItem.h b/EndlessVendetta/Source/EndlessVendetta/Inventory/BaseItem.h index 14645877..39d040bf 100644 --- a/EndlessVendetta/Source/EndlessVendetta/Inventory/BaseItem.h +++ b/EndlessVendetta/Source/EndlessVendetta/Inventory/BaseItem.h @@ -51,7 +51,9 @@ public: UPROPERTY(EditDefaultsOnly, BlueprintReadWrite, Category = "Item") FText Description; UPROPERTY(EditDefaultsOnly, BlueprintReadWrite, Category = "Item") - FItemSize ItemSize = FItemSize(); + FVector2D DefaultItemSize = FVector2D(1); + UPROPERTY(EditDefaultsOnly, BlueprintReadWrite, Category = "Item") + FItemSize ItemSize; UPROPERTY(EditDefaultsOnly, BlueprintReadWrite, Category = "Item") UMaterialInterface* ItemTexture; UPROPERTY(EditDefaultsOnly, BlueprintReadWrite, Category = "Item") @@ -63,6 +65,8 @@ public: UPROPERTY(EditDefaultsOnly, BlueprintReadWrite, Category = "Item") bool bIsRotated = false; + virtual void PostInitProperties() override; + UFUNCTION(BlueprintCallable, Category = "Item") void RotateItem(); UFUNCTION(BlueprintCallable, Category = "Item") diff --git a/EndlessVendetta/Source/EndlessVendetta/Inventory/InventoryComponent.cpp b/EndlessVendetta/Source/EndlessVendetta/Inventory/InventoryComponent.cpp index 001e46f3..b086643f 100644 --- a/EndlessVendetta/Source/EndlessVendetta/Inventory/InventoryComponent.cpp +++ b/EndlessVendetta/Source/EndlessVendetta/Inventory/InventoryComponent.cpp @@ -109,7 +109,7 @@ bool UInventoryComponent::IsRoomAvailable(UBaseItem* Item, const int TopLeftInde if (!IsTileValid(TileToCheck)) return false; TTuple ItemAtIndex = GetItemAtIndex(TileToIndex(TileToCheck)); if (ItemAtIndex.Get<1>()) return false; - if (IsValid(ItemAtIndex.Get<0>())) return true; + if (IsValid(ItemAtIndex.Get<0>())) return false; } } return true; @@ -183,7 +183,7 @@ void UInventoryComponent::SpawnItem(UBaseItem* Item, FVector Location, FRotator bool UInventoryComponent::IsTileValid(const FInventoryTile InventoryTile) const { - if (InventoryTile.X >= 0 && InventoryTile.Y >= 0 && InventoryTile.Y < Columns && InventoryTile.Y <= Rows) + if (InventoryTile.X >= 0 && InventoryTile.Y >= 0 && InventoryTile.X < Columns && InventoryTile.Y < Columns && InventoryTile.Y <= Rows) { return true; }