split into multiple assemblies

This commit is contained in:
2022-11-20 12:52:22 +01:00
parent def03954a0
commit 9fdfafc3eb
373 changed files with 380 additions and 119 deletions

View File

@@ -0,0 +1,27 @@
using System.Collections.Generic;
using EscapeRoomEngine.Engine.Runtime.Modules;
using UnityEngine;
namespace EscapeRoomEngine.Engine.Runtime.Requirements
{
public abstract class Requirement<T> : ScriptableObject
{
protected abstract IEnumerable<T> GenerateCandidates(Module module, Space space);
public void Restrict(HashSet<T> candidates, Module module, Space space) =>
candidates.IntersectWith(GenerateCandidates(module, space));
public static HashSet<T> Candidates(
HashSet<T> initialCandidates,
IEnumerable<Requirement<T>> requirements,
Module module, Space space)
{
foreach (var requirement in requirements)
{
requirement.Restrict(initialCandidates, module, space);
}
return initialCandidates;
}
}
}