Fix final remaining issues with inventory
This commit is contained in:
@@ -3,7 +3,6 @@ using Chickensoft.GodotNodeInterfaces;
|
||||
using Godot;
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using static GameJamDungeon.Inventory;
|
||||
|
||||
namespace GameJamDungeon;
|
||||
|
||||
@@ -27,6 +26,8 @@ public interface IInventory : INode
|
||||
public bool IsEquipped(IEquipable equipable);
|
||||
|
||||
event Inventory.InventoryAtCapacityEventHandler InventoryAtCapacity;
|
||||
|
||||
event Inventory.AccessoryUnequippedEventHandler AccessoryUnequipped;
|
||||
}
|
||||
|
||||
public partial class Inventory : Node, IInventory
|
||||
@@ -36,6 +37,8 @@ public partial class Inventory : Node, IInventory
|
||||
|
||||
[Signal]
|
||||
public delegate void InventoryAtCapacityEventHandler(string rejectedItemName);
|
||||
[Signal]
|
||||
public delegate void AccessoryUnequippedEventHandler(AccessoryStats unequippedAccessory);
|
||||
|
||||
public Inventory()
|
||||
{
|
||||
@@ -86,7 +89,10 @@ public partial class Inventory : Node, IInventory
|
||||
else if (equipable is Armor armor)
|
||||
_equippedArmor.OnNext(new Armor());
|
||||
else if (equipable is Accessory accessory)
|
||||
{
|
||||
EmitSignal(SignalName.AccessoryUnequipped, _equippedAccessory.Value.AccessoryStats);
|
||||
_equippedAccessory.OnNext(new Accessory());
|
||||
}
|
||||
else
|
||||
throw new NotImplementedException("Item type is not supported.");
|
||||
}
|
||||
|
||||
@@ -49,7 +49,7 @@ namespace GameJamDungeon
|
||||
{
|
||||
var accessoryInfo = GD.Load<AccessoryStats>($"res://src/items/accessory/resources/{accessory}");
|
||||
var accessoryScene = AccessoryScene.Instantiate<Accessory>();
|
||||
accessoryScene.AccessoryInfo = accessoryInfo;
|
||||
accessoryScene.AccessoryStats = accessoryInfo;
|
||||
database.Add(accessoryScene);
|
||||
}
|
||||
|
||||
|
||||
@@ -13,10 +13,10 @@ public partial class Accessory : Node3D, IInventoryItem, IEquipable
|
||||
|
||||
[Dependency] public IGameRepo GameRepo => this.DependOn<IGameRepo>();
|
||||
|
||||
public InventoryItemStats Info => AccessoryInfo;
|
||||
public InventoryItemStats Info => AccessoryStats;
|
||||
|
||||
[Export]
|
||||
public AccessoryStats AccessoryInfo { get; set; } = new AccessoryStats();
|
||||
public AccessoryStats AccessoryStats { get; set; } = new AccessoryStats();
|
||||
|
||||
[Node] public Sprite3D Sprite { get; set; } = default!;
|
||||
|
||||
@@ -26,7 +26,7 @@ public partial class Accessory : Node3D, IInventoryItem, IEquipable
|
||||
|
||||
public void OnReady()
|
||||
{
|
||||
Sprite.Texture = AccessoryInfo.Texture;
|
||||
Sprite.Texture = AccessoryStats.Texture;
|
||||
Pickup.BodyEntered += OnEntered;
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user