🚧 days are counted, plants know which day it is, but harvestables are still broken
This commit is contained in:
@@ -45,8 +45,11 @@ public partial class FieldBehaviour2D : Sprite2D, ISaveable
|
||||
|
||||
private bool _canPlant;
|
||||
private bool _canWater;
|
||||
private int _currentDay;
|
||||
|
||||
private PlantBehaviour2D? _currentPlant;
|
||||
|
||||
private const string DAY_COUNTER_SAVE_ID = "12c6da2e-fc71-4281-a04a-dfd3c7943975";
|
||||
|
||||
[Signal] public delegate void PlantedEventHandler();
|
||||
|
||||
@@ -176,6 +179,7 @@ public partial class FieldBehaviour2D : Sprite2D, ISaveable
|
||||
if (_currentPlant != null)
|
||||
{
|
||||
_currentPlant.Field = this;
|
||||
_currentPlant.DayPlanted = _currentDay;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -194,7 +198,6 @@ public partial class FieldBehaviour2D : Sprite2D, ISaveable
|
||||
"plant_data", new Dictionary<string, Variant>()
|
||||
{
|
||||
{ "prefab_path", _currentPlant.PrefabPath },
|
||||
{ "plant_state", (int)_currentPlant.State },
|
||||
{ "plant_start_day", _currentPlant.DayPlanted }
|
||||
}
|
||||
);
|
||||
@@ -206,6 +209,7 @@ public partial class FieldBehaviour2D : Sprite2D, ISaveable
|
||||
|
||||
public void LoadFromSaveData()
|
||||
{
|
||||
// Get field and plant data
|
||||
string id = _saveIdHolder.GetMeta("SaveID").AsString();
|
||||
|
||||
Dictionary<string, Variant> save = SavegameService.GetSaveData(id);
|
||||
@@ -236,25 +240,23 @@ public partial class FieldBehaviour2D : Sprite2D, ISaveable
|
||||
{
|
||||
return;
|
||||
}
|
||||
|
||||
if (plantDataDict.TryGetValue("plant_state", out Variant plantStateVar) && _currentPlant != null)
|
||||
{
|
||||
_currentPlant.State = (PlantState) plantStateVar.AsInt32();
|
||||
_currentPlant.GrowPlant();
|
||||
}
|
||||
|
||||
if (plantDataDict.TryGetValue("plant_start_day", out Variant plantDaysGrowingVar) && _currentPlant != null)
|
||||
{
|
||||
_currentPlant.DayPlanted = plantDaysGrowingVar.AsInt32();
|
||||
}
|
||||
}
|
||||
|
||||
// Get current day count: Load only. Saving the day count is handled on the day and night prefab.
|
||||
Dictionary<string, Variant> dayCountSave = SavegameService.GetSaveData(DAY_COUNTER_SAVE_ID);
|
||||
|
||||
if (_currentPlant != null)
|
||||
if (dayCountSave.Count > 0)
|
||||
{
|
||||
if (dayCountSave.TryGetValue("payload", out Variant dayCountVar))
|
||||
{
|
||||
//todo: find out how to load the current day from save and provide it to the plant script
|
||||
_currentPlant.CurrentDayInCalendar = GD.RandRange(0, 12);
|
||||
GD.Print($"Set current Day in calendar for plant {_currentPlant.Name} to {_currentPlant.CurrentDayInCalendar}");
|
||||
_currentDay = dayCountVar.AsInt32();
|
||||
if(_currentPlant != null)
|
||||
_currentPlant.CurrentDayInCalendar = dayCountVar.AsInt32();
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -41,6 +41,9 @@ public partial class PlantBehaviour2D : Node2D
|
||||
set => _state = value;
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// The day count at the day this plant was planted.
|
||||
/// </summary>
|
||||
public int DayPlanted { get; set; }
|
||||
|
||||
public int CurrentDayInCalendar
|
||||
@@ -70,10 +73,10 @@ public partial class PlantBehaviour2D : Node2D
|
||||
|
||||
_state = growthFloor switch
|
||||
{
|
||||
0 => PlantState.Planted,
|
||||
1 => PlantState.SmallPlant,
|
||||
2 => PlantState.BigPlant,
|
||||
_ => PlantState.Ready
|
||||
0 => PlantState.None,
|
||||
1 => PlantState.Planted,
|
||||
2 => PlantState.SmallPlant,
|
||||
_ => PlantState.BigPlant
|
||||
};
|
||||
|
||||
_calledOnReady = true;
|
||||
|
||||
@@ -15,6 +15,7 @@ public partial class ItemOnGround2D : Node, ISaveable
|
||||
private int pickUpCounter = 0;
|
||||
|
||||
[Signal] public delegate void SuccessfulPickUpEventHandler();
|
||||
|
||||
|
||||
private Label _itemLabel => GetNode<Label>("ItemLabel");
|
||||
private Label _pickupErrorLabel => GetNode<Label>("PickupErrorLabel");
|
||||
@@ -92,6 +93,7 @@ public partial class ItemOnGround2D : Node, ISaveable
|
||||
}
|
||||
}
|
||||
|
||||
// todo: What do we do with instances that are created at runtime?
|
||||
public void UpdateSaveData()
|
||||
{
|
||||
var payloadData = new Dictionary<string, Variant>
|
||||
|
||||
Reference in New Issue
Block a user