Files

56 lines
1.2 KiB
C#
Raw Permalink Normal View History

2025-04-14 18:00:10 +02:00
using System.Diagnostics;
using Godot;
using Godot.Collections;
namespace Babushka.scripts.CSharp.Common.Farming;
[GlobalClass]
public partial class FieldService : Node3D
{
2025-04-14 18:00:10 +02:00
[Export] private Dictionary<Vector2I, FieldBehaviour> fields = new Dictionary<Vector2I, FieldBehaviour>();
//Create
2025-04-14 18:00:10 +02:00
public bool TryAddEntry(Vector2I key, FieldBehaviour field)
{
2025-04-14 18:00:10 +02:00
if (!fields.ContainsKey(key))
{
fields.Add(key, field);
return true;
}
return false;
}
// Read
2025-04-14 18:00:10 +02:00
public FieldBehaviour Get(Vector2I key)
{
2025-04-24 23:36:23 +02:00
if (fields.TryGetValue(key, out FieldBehaviour field))
2025-04-14 18:00:10 +02:00
return field;
return field;
2025-04-24 23:36:23 +02:00
2025-04-14 18:00:10 +02:00
return null;
}
//Update
2025-04-14 18:00:10 +02:00
public void UpdateEntry(Vector2I fieldPosition, FieldBehaviour state)
{
2025-04-14 18:00:10 +02:00
if (fields.ContainsKey(fieldPosition))
{
fields[fieldPosition] = state;
}
else
{
2025-04-14 18:00:10 +02:00
TryAddEntry(fieldPosition, state);
}
}
//Delete
public void RemoveEntry(Vector2I fieldPosition)
{
if (fields.ContainsKey(fieldPosition))
{
fields.Remove(fieldPosition);
}
}
}