Fixed robot save mechanic to include nodes and their states.
This commit is contained in:
@@ -55,4 +55,32 @@ public class CraftNode : ProgramNode
|
||||
{
|
||||
return $"Name: {DisplayText}, Item: {(selectedItem == null ? "Empty" : selectedItem.data.Id)}, Amount: {amount}";
|
||||
}
|
||||
|
||||
public override NodeSaveData CreateSaveData()
|
||||
{
|
||||
NodeSaveData saveData = base.CreateSaveData();
|
||||
saveData.ItemId = selectedItem?.data.Id;
|
||||
saveData.Amount = amount;
|
||||
if (selectedItem != null)
|
||||
{
|
||||
saveData.ElapsedCraftTime = selectedItem.elapsedCraftTime;
|
||||
saveData.AmountCrafted = selectedItem.amountCrafted;
|
||||
}
|
||||
return saveData;
|
||||
}
|
||||
|
||||
public override void Load(NodeSaveData saveData)
|
||||
{
|
||||
base.Load(saveData);
|
||||
amount = saveData.Amount;
|
||||
if (string.IsNullOrEmpty(saveData.ItemId)) return;
|
||||
if (!GameData.availableItems.ContainsKey(saveData.ItemId)) return;
|
||||
|
||||
selectedItem = new Item
|
||||
{
|
||||
data = GameData.availableItems[saveData.ItemId],
|
||||
elapsedCraftTime = saveData.ElapsedCraftTime,
|
||||
amountCrafted = saveData.AmountCrafted
|
||||
};
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user