using System.Collections.Generic; using EscapeRoomEngine.Engine.Runtime.Requirements; using NaughtyAttributes; using UnityEngine; namespace EscapeRoomEngine.Engine.Runtime.Modules { /// /// The description of a specific module variant. Includes any requirements, the types and the module state that should be initialised with the module. /// [CreateAssetMenu(menuName = "Modules/Generic Module")] public class ModuleDescription : ScriptableObject { [Tooltip("The module types decide how this module can be used.")] public List types = new(); public ModuleState modulePrefab; [BoxGroup("Requirements")] public List preconditionRequirements = new(); [BoxGroup("Requirements")] public List placementRequirements = new(); internal bool HasType(ModuleType type) { return types.Contains(type); } } }