- IInteractable
public interface IInteractable { public void Interact(); }
- BaseItem.cs
public abstract class BaseItem : Prop, IInteractable { public ItemData ItemData; public enum ItemCarryType { Uncarryable, OneHanded, TwoHanded } public abstract void Interact(); }
- HandheldItem.cs
public class HandheldItem : BaseItem { public override void Interact() { } }
- ItemData.cs
public class ItemData { public int Id { get; private set; } public string Name { get; private set; } public string Description { get; private set; } public ItemCarryType type { get; private set; } public ItemData(int id, string name, string description, ItemCarryType type) { Id = id; Name = name; Description = description; this.type = type; } }
- TabletItem 등 HandheldItem의 아이템
public class TabletItem : HandheldItem { public string TabletType { get; private set; } public override void Interact() { } }