chore: Project Restructuring & Theatre

This commit is contained in:
Alexandre Coirier
2026-05-13 12:24:48 +02:00
parent 4070916c1f
commit e96d0bf6e6
2145 changed files with 20957 additions and 44792 deletions
@@ -0,0 +1,30 @@
using UnityEngine;
namespace Unheimlich.Features.DetectiveBoard.Data
{
[CreateAssetMenu(fileName = "ClueData", menuName = "Unheimlich/Detective Board/Clue Data")]
public class ClueData : ScriptableObject
{
[Header("Clue Identity")]
[Tooltip("Unique identifier for this clue")]
public string ClueID;
[Tooltip("Display title on the board")]
public string Title;
[Tooltip("Detailed description of the clue")]
[TextArea(3, 6)]
public string Description;
[Header("Visual Representation")]
[Tooltip("Icon or image for the node (post-it/card visual)")]
public Sprite Icon;
[Tooltip("Color tint for the node")]
public Color NodeColor = Color.white;
[Header("Meta")]
[Tooltip("Category for organization (e.g., 'Evidence', 'Witness', 'Location')")]
public string Category;
}
}
@@ -0,0 +1,2 @@
fileFormatVersion: 2
guid: 166ae120db91b064c9b98086267b9783
@@ -0,0 +1,75 @@
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<ConnectionData> Connections = new List<ConnectionData>();
public PostItNodeData(string id, Vector2 position)
{
NodeID = id;
Position = position;
Rotation = 0f;
IsEliminated = false;
}
public List<string> ConnectedNodeIDs
{
get
{
List<string> ids = new List<string>();
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<PostItNodeData> Nodes = new List<PostItNodeData>();
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);
}
}
}
}
@@ -0,0 +1,2 @@
fileFormatVersion: 2
guid: f2344709e137fdf46aaa5445a330db2f