using ColdMint.scripts.inventory;
using ColdMint.scripts.pickable;
using ColdMint.scripts.utils;
using Godot;
using PacksackUi = ColdMint.scripts.loader.uiLoader.PacksackUi;
namespace ColdMint.scripts.item;
///
/// packsack
/// 背包
///
public partial class Packsack : PickAbleTemplate
{
private PackedScene? _packedScene;
private PacksackUi? _packsackUi;
public override bool CanPutInPack => false;
public override void Destroy()
{
if (ItemContainer == null) return;
foreach (var itemSlot in ItemContainer)
{
itemSlot.ClearSlot();
}
QueueFree();
}
public override void Use(Node2D? owner, Vector2 targetGlobalPosition)
{
if (_packedScene == null)
{
return;
}
if (_packsackUi == null)
{
_packsackUi = NodeUtils.InstantiatePackedScene(_packedScene,this);
if (_packsackUi != null)
{
_packsackUi.Title = Name;
_packsackUi.ItemContainer = ItemContainer;
}
}
_packsackUi?.Show();
}
public IItemContainer? ItemContainer { get; private set; }
public override void _Ready()
{
base._Ready();
ItemContainer = new UniversalItemContainer();
_packedScene = GD.Load("res://prefab/ui/packsackUI.tscn");
}
}