using System.Collections.Generic; using Godot; namespace Particles.ParticleSimulation { public struct ParticleRelationshipProps { public ParticleRelationshipProps(float minRadius, float maxRadius, float force) { MinRadius = minRadius; MaxRadius = maxRadius; Force = force; } public float MinRadius { get; } public float MaxRadius { get; } public float Force { get; } } public class ParticleType { private readonly Dictionary _particleRelationships = new Dictionary(); private float _hue; public float Hue { get => _hue; set => _hue = Mathf.Clamp(value, 0, 1); } public void AddRelationship(ParticleType type, ParticleRelationshipProps props) { if (_particleRelationships.ContainsKey(type)) return; _particleRelationships[type] = props; } public void RemoveRelationship(ParticleType type) { if (_particleRelationships.ContainsKey(type)) _particleRelationships.Remove(type); } public ParticleRelationshipProps GetRelationship(ParticleType type) { return _particleRelationships[type]; } } }