Reverted ItemOnGround to make everything compile again
This commit is contained in:
@@ -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
|
||||
}
|
||||
}
|
||||
}
|
||||
}*/
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user