CapersProject/Assets/02.Scripts/Item/ItemData.cs

85 lines
2.4 KiB
C#

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