using UnityEngine; using System; using System.Collections.Generic; using Unheimlich.Features.DetectiveBoard.UI; namespace Unheimlich.Features.DetectiveBoard.Data { [Serializable] public class PostItNodeData { public string NodeID; public Vector2 Position; public float Rotation; public bool IsEliminated; public List Connections = new List(); public PostItNodeData(string id, Vector2 position) { NodeID = id; Position = position; Rotation = 0f; IsEliminated = false; } public List ConnectedNodeIDs { get { List ids = new List(); foreach (var conn in Connections) { ids.Add(conn.TargetNodeID); } return ids; } } } [Serializable] public class ConnectionData { public string TargetNodeID; public LineColorState ColorState; public ConnectionData(string targetId, LineColorState colorState = LineColorState.Green) { TargetNodeID = targetId; ColorState = colorState; } } [Serializable] public class DetectiveBoardSaveData { public List Nodes = new List(); public PostItNodeData GetNodeData(string nodeID) { return Nodes.Find(n => n.NodeID == nodeID); } public void AddOrUpdateNode(PostItNodeData nodeData) { int index = Nodes.FindIndex(n => n.NodeID == nodeData.NodeID); if (index >= 0) { Nodes[index] = nodeData; } else { Nodes.Add(nodeData); } } } }