Restore Pause functionality
This commit is contained in:
@@ -17,13 +17,9 @@ public interface IInventory : INode
|
||||
public void Remove(InventoryItem inventoryItem);
|
||||
|
||||
public void Sort();
|
||||
|
||||
event Inventory.InventoryAtCapacityEventHandler InventoryAtCapacity;
|
||||
|
||||
event Inventory.PickedUpItemEventHandler PickedUpItem;
|
||||
}
|
||||
|
||||
[Meta, Id("inventory")]
|
||||
[Meta(typeof(IAutoNode)), Id("inventory")]
|
||||
public partial class Inventory : Node, IInventory
|
||||
{
|
||||
public override void _Notification(int what) => this.Notify(what);
|
||||
@@ -31,11 +27,6 @@ public partial class Inventory : Node, IInventory
|
||||
// TODO: Constants class with export
|
||||
private const int _maxInventorySize = 20;
|
||||
|
||||
[Signal]
|
||||
public delegate void InventoryAtCapacityEventHandler(string rejectedItemName);
|
||||
[Signal]
|
||||
public delegate void PickedUpItemEventHandler(string pickedUpItemName);
|
||||
|
||||
public Inventory()
|
||||
{
|
||||
Items = [];
|
||||
@@ -47,13 +38,9 @@ public partial class Inventory : Node, IInventory
|
||||
public bool TryAdd(InventoryItem inventoryItem)
|
||||
{
|
||||
if (Items.Count >= _maxInventorySize)
|
||||
{
|
||||
EmitSignal(SignalName.InventoryAtCapacity, inventoryItem.ItemName);
|
||||
return false;
|
||||
}
|
||||
|
||||
Items.Add(inventoryItem);
|
||||
EmitSignal(SignalName.PickedUpItem, inventoryItem.ItemName);
|
||||
return true;
|
||||
}
|
||||
|
||||
|
||||
@@ -6,23 +6,8 @@ using System;
|
||||
|
||||
namespace GameJamDungeon;
|
||||
|
||||
public interface IInventoryItem : INode3D
|
||||
{
|
||||
public Guid ID { get; }
|
||||
|
||||
string ItemName { get; }
|
||||
|
||||
string Description { get; }
|
||||
|
||||
float SpawnRate { get; }
|
||||
|
||||
double ThrowDamage { get; }
|
||||
|
||||
float ThrowSpeed { get; }
|
||||
}
|
||||
|
||||
[Meta]
|
||||
public abstract partial class InventoryItem : Node3D, IInventoryItem
|
||||
public abstract partial class InventoryItem : Node3D
|
||||
{
|
||||
[Save("inventory_item_id")]
|
||||
public Guid ID => Guid.NewGuid();
|
||||
|
||||
@@ -20,9 +20,9 @@ public partial class ItemDatabase : Node
|
||||
[Export]
|
||||
public PackedScene ConsumableItemScene { get; set; }
|
||||
|
||||
public IInventoryItem[] Initialize()
|
||||
public InventoryItem[] Initialize()
|
||||
{
|
||||
var database = new List<IInventoryItem>();
|
||||
var database = new List<InventoryItem>();
|
||||
var armorResources = DirAccess.GetFilesAt("res://src/items/armor/resources/");
|
||||
var weaponResources = DirAccess.GetFilesAt("res://src/items/weapons/resources/");
|
||||
var accessoryResources = DirAccess.GetFilesAt("res://src/items/accessory/resources/");
|
||||
|
||||
@@ -6,8 +6,7 @@ namespace GameJamDungeon;
|
||||
[Meta, Id("armor")]
|
||||
public partial class Armor : EquipableItem
|
||||
{
|
||||
public override InventoryItemStats ItemStats { get => _armorStats; set => _armorStats = (ArmorStats)value; }
|
||||
|
||||
[Export]
|
||||
private ArmorStats _armorStats { get; set; } = new ArmorStats();
|
||||
|
||||
public override string ItemName => _armorStats.Name;
|
||||
@@ -25,4 +24,6 @@ public partial class Armor : EquipableItem
|
||||
public void IncreaseArmorDefense(int bonus) => _armorStats.Defense += bonus;
|
||||
|
||||
public override ItemTag ItemTag => _armorStats.ItemTag;
|
||||
|
||||
public override InventoryItemStats ItemStats { get => _armorStats; set => _armorStats = (ArmorStats)value; }
|
||||
}
|
||||
|
||||
@@ -35,7 +35,7 @@ public partial class DroppedItem : RigidBody3D, IDroppedItem
|
||||
AddCollisionExceptionWith((Node)Player);
|
||||
GlobalPosition = Player.CurrentPosition + Vector3.Up;
|
||||
ApplyCentralImpulse(-Player.CurrentBasis.Z.Normalized() * 5.0f);
|
||||
await ToSignal(GetTree().CreateTimer(1.5), "timeout");
|
||||
await ToSignal(GetTree().CreateTimer(1), "timeout");
|
||||
RemoveCollisionExceptionWith((Node)Player);
|
||||
}
|
||||
|
||||
@@ -79,7 +79,7 @@ public partial class DroppedItem : RigidBody3D, IDroppedItem
|
||||
{
|
||||
if (body is IPlayer player)
|
||||
{
|
||||
var isAdded = Player.Inventory.TryAdd(Item);
|
||||
var isAdded = player.Inventory.TryAdd(Item);
|
||||
if (isAdded)
|
||||
QueueFree();
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user