Files
WhaleAdventure_VR_Diet/Assets/My project/Fishing Scripts/UI/FishingInventory.cs
2026-06-29 14:25:49 +09:00

107 lines
2.5 KiB
C#

using UnityEngine;
public class FishingInventory : MonoBehaviour
{
[Header("Item Counts")]
[SerializeField] private int fishCount;
[SerializeField] private int trashCount;
[SerializeField] private int memoryPieceCount;
public int FishCount => fishCount;
public int TrashCount => trashCount;
public int MemoryPieceCount => memoryPieceCount;
private void OnValidate()
{
ClampCounts();
}
private void ClampCounts()
{
fishCount = Mathf.Max(0, fishCount);
trashCount = Mathf.Max(0, trashCount);
memoryPieceCount = Mathf.Max(0, memoryPieceCount);
}
public void AddItem(FishingItemType itemType, int amount = 1)
{
if (itemType == FishingItemType.None || amount <= 0)
return;
switch (itemType)
{
case FishingItemType.Fish:
fishCount += amount;
break;
case FishingItemType.Trash:
trashCount += amount;
break;
case FishingItemType.MemoryPiece:
memoryPieceCount += amount;
break;
}
ClampCounts();
}
public bool HasItem(FishingItemType itemType, int amount = 1)
{
if (itemType == FishingItemType.None || amount <= 0)
return false;
return GetItemCount(itemType) >= amount;
}
public bool ConsumeItem(FishingItemType itemType, int amount = 1)
{
if (!HasItem(itemType, amount))
return false;
switch (itemType)
{
case FishingItemType.Fish:
fishCount -= amount;
break;
case FishingItemType.Trash:
trashCount -= amount;
break;
case FishingItemType.MemoryPiece:
memoryPieceCount -= amount;
break;
}
ClampCounts();
return true;
}
public int GetItemCount(FishingItemType itemType)
{
switch (itemType)
{
case FishingItemType.Fish:
return fishCount;
case FishingItemType.Trash:
return trashCount;
case FishingItemType.MemoryPiece:
return memoryPieceCount;
case FishingItemType.None:
default:
return 0;
}
}
public void ResetInventory()
{
fishCount = 0;
trashCount = 0;
memoryPieceCount = 0;
}
}