using System.Collections.Generic; using EscapeRoomEngine.Engine.Runtime.Modules; using UnityEngine; namespace EscapeRoomEngine.Engine.Runtime.Requirements.Placement { /// /// This requirement places a module in the same position as its first related module. /// Accepts an optional offset to the module. /// [CreateAssetMenu(menuName = "Requirements/Place With First Related Module")] public class PlaceWithFirstRelatedModule : PlacementRequirement { public Vector3Int offset; protected override List FilterCandidates(List candidates, Module module, Space space) { var placement = module.relatedModules[0].srPlacement; placement.position += offset; return new List { placement }; } } }