CapersProject/Assets/02.Scripts/Character/Player/Tycoon/TycoonCarryHandler.cs
Nam Tae Gun 1458693a1b 타이쿤 업데이트 정리
+ 상호작용 오브젝트 외곽선 기능 추가
+ 손님 계산 기능 추가
+ 손님 계산 시 Ui 출력 및 파티클, 효과 추가
+ 대화 시스템 로직 수정
+ 테이블 수정
+ 캐릭터 스파인 교체
2024-07-20 20:32:54 +09:00

94 lines
2.7 KiB
C#

using BlueWater.Items;
using Sirenix.OdinInspector;
using UnityEngine;
namespace BlueWater.Players.Tycoons
{
public class TycoonCarryHandler : MonoBehaviour
{
[SerializeField]
private SpriteRenderer _itemRenderer;
[SerializeField]
private bool _isCarriedItem;
private ItemData _currentItemData;
private ItemManager _itemManager;
private void Awake()
{
InitializeComponents();
}
private void Start()
{
_itemManager = ItemManager.Instance;
}
[Button("컴포넌트 초기화")]
private void InitializeComponents()
{
_itemRenderer = transform.Find("VisualLook/Item").GetComponent<SpriteRenderer>();
}
public void CarryItem(int itemIdx, bool isUsingSprite = true, ItemQuality itemQuality = ItemQuality.Normal)
{
if (_isCarriedItem)
{
Debug.Log("이미 아이템을 들고 있습니다.");
return;
}
_currentItemData = new ItemData(_itemManager.GetItemDataByIdx(itemIdx))
{
Quality = itemQuality
};
if (_currentItemData == null)
{
Debug.LogError($"{itemIdx} 해당 아이템을 등록할 수 없습니다.");
return;
}
if (isUsingSprite)
{
var itemSprite = _currentItemData.Sprite;
if (!itemSprite)
{
Debug.LogWarning($"{itemSprite} 해당 아이템의 이미지가 없습니다.");
}
_itemRenderer.sprite = itemSprite;
}
_isCarriedItem = true;
}
public void GiveItem()
{
if (!_isCarriedItem || _currentItemData == null)
{
Debug.Log("들고있는 아이템이 없거나, 현재 아이템 데이터가 비어있습니다.");
return;
}
_currentItemData = null;
_itemRenderer.sprite = null;
_isCarriedItem = false;
}
public void DiscardItem()
{
if (!_isCarriedItem || _currentItemData == null)
{
Debug.Log("들고있는 아이템이 없거나, 현재 아이템 데이터가 비어있습니다.");
return;
}
_currentItemData = null;
_itemRenderer.sprite = null;
_isCarriedItem = false;
}
public ItemData GetCurrentItemData() => _currentItemData;
public bool IsCarriedItem() => _isCarriedItem;
}
}