Reverted ItemOnGround to make everything compile again

This commit is contained in:
Katharina Ziolkowski
2026-02-03 17:59:38 +01:00
parent 8a93b00e72
commit 0dfbd73978
2 changed files with 43 additions and 24 deletions
@@ -1,19 +1,23 @@
using Babushka.scripts.CSharp.Common.Savegame;
using Babushka.scripts.CSharp.GameEntity.Entities;
using Babushka.scripts.CSharp.GameEntity.LoadSave;
using Godot;
using Godot.Collections;
using Newtonsoft.Json.Linq;
namespace Babushka.scripts.CSharp.Common.Inventory;
public partial class ItemOnGround2D : Node2D
public partial class ItemOnGround2D : Node, ISaveable
{
private ItemInstance _itemInstance;
[Export] public bool IsActive = true;
[Export] private bool _infiniteSupply = false;
[Export] private int _finiteSupply = 1;
[Export] private bool _saveToDisk = true;
private int pickUpCounter = 0;
[Signal] public delegate void SuccessfulPickUpEventHandler();
private Label _itemLabel => GetNode<Label>("ItemLabel");
private Label _pickupErrorLabel => GetNode<Label>("PickupErrorLabel");
private Sprite2D _iconSprite => GetNode<Sprite2D>("Icon");
@@ -30,12 +34,16 @@ public partial class ItemOnGround2D : Node2D
public override void _Ready()
{
LoadFromSaveData();
UpdateVisuals();
_pickupErrorLabel.Text = "";
}
public void TryPickUp()
{
if (!IsActive)
return;
var result = InventoryManager.Instance.CollectItem(itemInstance.Clone());
EmitSignal(SignalName.SuccessfulPickUp);
if (result == InventoryActionResult.Success)
@@ -50,7 +58,16 @@ public partial class ItemOnGround2D : Node2D
private void Pickup()
{
// remove from entity manager
if (!_infiniteSupply)
{
pickUpCounter++;
if (pickUpCounter >= _finiteSupply)
{
QueueFree();
}
UpdateSaveData();
}
}
private void FailToPickup()
@@ -63,6 +80,9 @@ public partial class ItemOnGround2D : Node2D
public void UpdateVisuals()
{
if (!IsActive)
return;
_iconSprite.Texture = itemInstance?.blueprint?.icon;
if (_iconSprite.Texture == null)
{
@@ -74,22 +94,7 @@ public partial class ItemOnGround2D : Node2D
}
}
/*
protected override void LoadEntity(JObject json)
{
base.LoadEntity(json);
_itemInstance.LoadFromJson(json.GetObject("item"));
}
protected override void SaveEntity(JObject json)
{
base.SaveEntity(json);
json["item"] = _itemInstance.SaveToJson();
}
*/
// old save
/*
// todo: What do we do with instances that are created at runtime?
public void UpdateSaveData()
{
if (!_saveToDisk)
@@ -152,5 +157,5 @@ public partial class ItemOnGround2D : Node2D
}
}
}
}*/
}
}