2024-06-03 18:26:03 +00:00
|
|
|
using System;
|
|
|
|
using BlueWater.Interfaces;
|
2024-06-21 22:11:53 +00:00
|
|
|
using Sirenix.OdinInspector;
|
2024-06-03 18:26:03 +00:00
|
|
|
using UnityEngine;
|
|
|
|
|
|
|
|
namespace BlueWater.Items
|
|
|
|
{
|
|
|
|
public enum ItemCategory
|
|
|
|
{
|
|
|
|
None = 0,
|
|
|
|
FoodIngredient,
|
|
|
|
Currency,
|
2024-06-18 18:16:19 +00:00
|
|
|
Dish,
|
|
|
|
Drink,
|
2024-06-03 18:26:03 +00:00
|
|
|
Quest = 9
|
|
|
|
}
|
|
|
|
|
|
|
|
public enum ItemType
|
|
|
|
{
|
|
|
|
None = 0,
|
|
|
|
Meat,
|
|
|
|
Fish,
|
|
|
|
Egg,
|
|
|
|
Fruit,
|
|
|
|
Shellfish,
|
|
|
|
Seasoning
|
|
|
|
}
|
|
|
|
|
2024-07-06 12:13:58 +00:00
|
|
|
public enum ItemQuality
|
|
|
|
{
|
|
|
|
None = 0,
|
|
|
|
Normal,
|
|
|
|
High
|
|
|
|
}
|
|
|
|
|
2024-06-03 18:26:03 +00:00
|
|
|
[Serializable]
|
|
|
|
public class ItemData : IIdx
|
|
|
|
{
|
2024-06-21 22:11:53 +00:00
|
|
|
[BoxGroup("Json 데이터 영역")]
|
|
|
|
[field: SerializeField, Tooltip("고유 식별 ID"), BoxGroup("Json 데이터 영역")]
|
2024-06-03 18:26:03 +00:00
|
|
|
public int Idx { get; set; }
|
|
|
|
|
2024-06-21 22:11:53 +00:00
|
|
|
[field: SerializeField, Tooltip("이름"), BoxGroup("Json 데이터 영역")]
|
2024-06-03 18:26:03 +00:00
|
|
|
public string Name { get; set; }
|
|
|
|
|
2024-06-21 22:11:53 +00:00
|
|
|
[field: SerializeField, Tooltip("아이템 종류"), BoxGroup("Json 데이터 영역")]
|
2024-06-03 18:26:03 +00:00
|
|
|
public ItemCategory Category { get; set; }
|
|
|
|
|
2024-06-21 22:11:53 +00:00
|
|
|
[field: SerializeField, Tooltip("재료 종류"), BoxGroup("Json 데이터 영역")]
|
2024-06-03 18:26:03 +00:00
|
|
|
public ItemType Type { get; set; }
|
2024-07-06 12:13:58 +00:00
|
|
|
|
|
|
|
[field: SerializeField, Tooltip("아이템 품질"), BoxGroup("Json 데이터 영역")]
|
|
|
|
public ItemQuality Quality { get; set; }
|
2024-06-03 18:26:03 +00:00
|
|
|
|
2024-06-21 22:11:53 +00:00
|
|
|
[field: SerializeField, Tooltip("가격"), BoxGroup("Json 데이터 영역")]
|
2024-06-03 18:26:03 +00:00
|
|
|
public int Price { get; set; }
|
|
|
|
|
2024-06-21 22:11:53 +00:00
|
|
|
[field: SerializeField, Tooltip("무게"), BoxGroup("Json 데이터 영역")]
|
2024-06-03 18:26:03 +00:00
|
|
|
public int Weight { get; set; }
|
2024-06-21 22:11:53 +00:00
|
|
|
|
|
|
|
[field: SerializeField, Tooltip("설명"), TextArea(3, 10), BoxGroup("Json 데이터 영역")]
|
|
|
|
public string Description { get; set; }
|
|
|
|
|
|
|
|
[BoxGroup("직접 추가하는 영역")]
|
|
|
|
[field: SerializeField, BoxGroup("직접 추가하는 영역")]
|
2024-06-03 18:26:03 +00:00
|
|
|
public Sprite Sprite { get; set; }
|
|
|
|
|
2024-06-21 22:11:53 +00:00
|
|
|
[field: SerializeField, BoxGroup("직접 추가하는 영역")]
|
|
|
|
public Item ItemPrefab { get; set; }
|
2024-07-06 12:13:58 +00:00
|
|
|
|
|
|
|
public ItemData(ItemData itemData)
|
|
|
|
{
|
|
|
|
Idx = itemData.Idx;
|
|
|
|
Name = itemData.Name;
|
|
|
|
Category = itemData.Category;
|
|
|
|
Type = itemData.Type;
|
|
|
|
Quality = itemData.Quality;
|
|
|
|
Price = itemData.Price;
|
|
|
|
Weight = itemData.Weight;
|
|
|
|
Description = itemData.Description;
|
|
|
|
Sprite = itemData.Sprite;
|
|
|
|
ItemPrefab = itemData.ItemPrefab;
|
|
|
|
}
|
2024-06-03 18:26:03 +00:00
|
|
|
}
|
|
|
|
}
|