using System.Collections.Generic;
using UnityEngine;
namespace Ashwild.Harvesting
{
///
/// Zone de dispersion posée dans la scène (boîte rectangulaire alignée sur les axes).
/// Porte une liste de "layers" (chacun = un ScatterProfile + son pinceau). Les zones
/// no-go sont définies par des ScatterExclusionVolume enfants. Aucune logique runtime :
/// conteneur de données + gizmos, piloté par ScatterZoneEditor.
///
[DisallowMultipleComponent]
public class ScatterZone : MonoBehaviour
{
[System.Serializable]
public class Layer
{
public ScatterProfile profile;
public bool enabled = true;
public float brushRadius = 5f;
[Range(0f, 1f)] public float brushStrength = 0.5f;
}
[Tooltip("Dimensions de la boîte (centrée sur le transform). X/Z = emprise au sol, Y = hauteur du gizmo.")]
public Vector3 size = new Vector3(50f, 10f, 50f);
public List layers = new List();
/// Coin (min X, min Z) de l'emprise au sol, à la hauteur du transform.
public Vector3 MinCorner => new Vector3(
transform.position.x - size.x * 0.5f,
transform.position.y,
transform.position.z - size.z * 0.5f);
private void OnDrawGizmos()
{
Gizmos.color = new Color(0.3f, 0.8f, 1f, 0.25f);
Gizmos.DrawWireCube(transform.position, size);
}
}
}