✨ Make SaveableVariableNodes and a simple cheat to count up days
This commit is contained in:
@@ -0,0 +1,19 @@
|
||||
using Babushka.scripts.CSharp.Low_Code.Variables;
|
||||
using Godot;
|
||||
|
||||
namespace Babushka.scripts.CSharp.Common.DayAndNight;
|
||||
|
||||
public partial class CalendarController : Node
|
||||
{
|
||||
[Export] private SaveableVariableNode _dayCounter;
|
||||
|
||||
public override void _Input(InputEvent @event)
|
||||
{
|
||||
if (@event.IsActionPressed("NextDayCheat"))
|
||||
{
|
||||
int days = _dayCounter.Payload.AsInt32();
|
||||
days++;
|
||||
_dayCounter.Payload = days;
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1 @@
|
||||
uid://du5facslfvg77
|
||||
@@ -0,0 +1,48 @@
|
||||
using Babushka.scripts.CSharp.Common.Savegame;
|
||||
using Godot;
|
||||
using Godot.Collections;
|
||||
|
||||
namespace Babushka.scripts.CSharp.Low_Code.Variables;
|
||||
|
||||
public partial class SaveableVariableNode : VariableNode, ISaveable
|
||||
{
|
||||
public override void _Ready()
|
||||
{
|
||||
LoadFromSaveData();
|
||||
ValueChanged += UpdateSaveData;
|
||||
}
|
||||
|
||||
public override void _ExitTree()
|
||||
{
|
||||
ValueChanged -= UpdateSaveData;
|
||||
}
|
||||
|
||||
public void UpdateSaveData()
|
||||
{
|
||||
var payloadData = new Dictionary<string, Variant>
|
||||
{
|
||||
{ "payload", Payload },
|
||||
};
|
||||
|
||||
string id = GetMeta("SaveID").AsString();
|
||||
SavegameService.AppendDataToSave( id, payloadData);
|
||||
}
|
||||
|
||||
public void LoadFromSaveData()
|
||||
{
|
||||
string id = GetMeta("SaveID").AsString();
|
||||
Dictionary<string, Variant> save = SavegameService.GetSaveData(id);
|
||||
if (save.Count > 0)
|
||||
{
|
||||
if (Payload.VariantType == Variant.Type.Int)
|
||||
{
|
||||
Payload = save["payload"].AsInt32();
|
||||
|
||||
}
|
||||
else
|
||||
{
|
||||
Payload = save["payload"];
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1 @@
|
||||
uid://d27xoo1reo5gu
|
||||
@@ -7,5 +7,23 @@ namespace Babushka.scripts.CSharp.Low_Code.Variables;
|
||||
/// </summary>
|
||||
public partial class VariableNode : Node
|
||||
{
|
||||
[Export] public Variant Payload { get; set; }
|
||||
[Export] public Variant Payload
|
||||
{
|
||||
get
|
||||
{
|
||||
return _payload;
|
||||
}
|
||||
set
|
||||
{
|
||||
if (_payload.Equals(value))
|
||||
return;
|
||||
|
||||
_payload = value;
|
||||
EmitSignal(SignalName.ValueChanged);
|
||||
}
|
||||
}
|
||||
|
||||
private Variant _payload;
|
||||
|
||||
[Signal] public delegate void ValueChangedEventHandler();
|
||||
}
|
||||
Reference in New Issue
Block a user