First commit for private source control. Older commits available on Github.

This commit is contained in:
2026-03-26 12:52:52 +00:00
parent a04c602626
commit 2d449c4a17
2176 changed files with 408185 additions and 0 deletions

View File

@@ -0,0 +1,82 @@
using BriarQueen.Data.Identifiers;
using BriarQueen.Framework.Managers.Interaction.Data;
using NaughtyAttributes;
using UnityEngine;
namespace BriarQueen.Framework.Managers.Player.Data
{
[CreateAssetMenu(menuName = "Briar Queen/Items/New Item Data", fileName = "New Item Data")]
public class ItemDataSo : ScriptableObject
{
public enum ItemIdType
{
None = 0,
Pickup = 1,
Environment = 2,
PuzzleSlot = 3
}
[Header("Item Type")]
[SerializeField]
private ItemIdType _idType;
[Header("Item Details")]
[Tooltip("Pickup key used for inventory items.")]
[SerializeField]
[ShowIf(nameof(IsPickup))]
private ItemKey _itemKey;
[Tooltip("Environment key used for world interactables.")]
[SerializeField]
[ShowIf(nameof(IsEnvironment))]
private EnvironmentKey _environmentKey;
[Tooltip("Puzzle slot key used for puzzle slot interactables.")]
[SerializeField]
[ShowIf(nameof(IsPuzzleSlot))]
private PuzzleSlotKey _puzzleSlotKey;
[SerializeField]
private Sprite _icon;
[SerializeField]
private string _itemName;
[Header("Inventory Interaction (serialized inline, no extra SO assets)")]
[SerializeReference]
private BaseInteraction _interaction = new NoOpItemInteraction();
public Sprite Icon => _icon;
public string ItemName => _itemName;
public BaseInteraction Interaction => _interaction;
public bool IsPickup => _idType == ItemIdType.Pickup;
public bool IsEnvironment => _idType == ItemIdType.Environment;
public bool IsPuzzleSlot => _idType == ItemIdType.PuzzleSlot;
public ItemIdType IdType => _idType;
public ItemKey ItemKey => _itemKey;
public EnvironmentKey EnvironmentKey => _environmentKey;
public PuzzleSlotKey PuzzleSlotKey => _puzzleSlotKey;
public string UniqueID
{
get
{
return _idType switch
{
ItemIdType.Pickup when _itemKey != ItemKey.None =>
ItemIDs.Get(_itemKey),
ItemIdType.Environment when _environmentKey != EnvironmentKey.None =>
ItemIDs.Get(_environmentKey),
ItemIdType.PuzzleSlot when _puzzleSlotKey != PuzzleSlotKey.None =>
ItemIDs.Get(_puzzleSlotKey),
_ => string.Empty
};
}
}
}
}