using System.Diagnostics; using Godot; using Godot.Collections; namespace Babushka.scripts.CSharp.Common.Farming; [GlobalClass] public partial class FieldService : Node3D { [Export] private Dictionary fields = new Dictionary(); //Create public bool TryAddEntry(Vector2I key, FieldBehaviour field) { if (!fields.ContainsKey(key)) { fields.Add(key, field); Debug.Print("Added entry: " + key); return true; } return false; } // Read public FieldBehaviour Get(Vector2I key) { Debug.Print($"Getting field at {key}. Found: {fields.ContainsKey(key)}."); if (fields.TryGetValue(key, out FieldBehaviour field)) { Debug.Print($"Getting field at {key}, field: {field.Name}."); return field; } return null; } //Update public void UpdateEntry(Vector2I fieldPosition, FieldBehaviour state) { Debug.Print("Updating entry: " + fieldPosition); if (fields.ContainsKey(fieldPosition)) { fields[fieldPosition] = state; } else { TryAddEntry(fieldPosition, state); } } //Delete public void RemoveEntry(Vector2I fieldPosition) { Debug.Print("Removing entry: " + fieldPosition); if (fields.ContainsKey(fieldPosition)) { fields.Remove(fieldPosition); } } }