comment pass
This commit is contained in:
@@ -4,6 +4,9 @@ using UnityEngine;
|
||||
|
||||
namespace EscapeRoomEngine.Engine.Runtime.Requirements
|
||||
{
|
||||
/// <summary>
|
||||
/// This requirement guarantees that the module faces the center of the space.
|
||||
/// </summary>
|
||||
[CreateAssetMenu(menuName = "Requirements/Face Space Center")]
|
||||
public class FaceSpaceCenter : PlacementRequirement
|
||||
{
|
||||
|
||||
@@ -4,6 +4,9 @@ using UnityEngine;
|
||||
|
||||
namespace EscapeRoomEngine.Engine.Runtime.Requirements
|
||||
{
|
||||
/// <summary>
|
||||
/// This requirement forces a specific orientation.
|
||||
/// </summary>
|
||||
[CreateAssetMenu(menuName = "Requirements/Lock Orientation")]
|
||||
public class LockOrientation : PlacementRequirement
|
||||
{
|
||||
|
||||
@@ -4,6 +4,9 @@ using UnityEngine;
|
||||
|
||||
namespace EscapeRoomEngine.Engine.Runtime.Requirements
|
||||
{
|
||||
/// <summary>
|
||||
/// This requirement prevents modules from overlapping. For two models not to overlap, both of them need this requirement.
|
||||
/// </summary>
|
||||
[CreateAssetMenu(menuName = "Requirements/No Overlap")]
|
||||
public class NoOverlap : PlacementRequirement
|
||||
{
|
||||
|
||||
@@ -4,6 +4,9 @@ using UnityEngine;
|
||||
|
||||
namespace EscapeRoomEngine.Engine.Runtime.Requirements
|
||||
{
|
||||
/// <summary>
|
||||
/// This requirement guarantees that the back side of the module is placed at the edge of the space.
|
||||
/// </summary>
|
||||
[CreateAssetMenu(menuName = "Requirements/Place Along Space Edges")]
|
||||
public class PlaceAlongSpaceEdges : PlacementRequirement
|
||||
{
|
||||
|
||||
@@ -4,6 +4,9 @@ using UnityEngine;
|
||||
|
||||
namespace EscapeRoomEngine.Engine.Runtime.Requirements
|
||||
{
|
||||
/// <summary>
|
||||
/// This requirement allows any placement. Used for testing purposes.
|
||||
/// </summary>
|
||||
[CreateAssetMenu(menuName = "Requirements/Place Anywhere")]
|
||||
public class PlaceAnywhere : PlacementRequirement
|
||||
{
|
||||
|
||||
@@ -4,6 +4,9 @@ using UnityEngine;
|
||||
|
||||
namespace EscapeRoomEngine.Engine.Runtime.Requirements
|
||||
{
|
||||
/// <summary>
|
||||
/// This requirement places a module exactly in the same position as its first related module.
|
||||
/// </summary>
|
||||
[CreateAssetMenu(menuName = "Requirements/Place With Related Module")]
|
||||
public class PlaceWithRelatedModule : PlacementRequirement
|
||||
{
|
||||
|
||||
@@ -5,6 +5,9 @@ using EscapeRoomEngine.Engine.Runtime.Utilities;
|
||||
|
||||
namespace EscapeRoomEngine.Engine.Runtime.Requirements
|
||||
{
|
||||
/// <summary>
|
||||
/// The main class any placement requirement inherits from. To place a module, every possible placement inside the space is put into a list of candidates that is then filtered by all placement requirements.
|
||||
/// </summary>
|
||||
public abstract class PlacementRequirement : Requirement<Placement>
|
||||
{
|
||||
protected abstract override List<Placement> FilterCandidates(List<Placement> candidates, Module module, Space space);
|
||||
|
||||
@@ -5,6 +5,9 @@ using LogType = EscapeRoomEngine.Engine.Runtime.Utilities.LogType;
|
||||
|
||||
namespace EscapeRoomEngine.Engine.Runtime.Requirements
|
||||
{
|
||||
/// <summary>
|
||||
/// The main class any precondition requirement inherits from. To place a module, each precondition requirement must return the true-set.
|
||||
/// </summary>
|
||||
public abstract class PreconditionRequirement : Requirement<bool>
|
||||
{
|
||||
private static readonly List<bool> TrueSet = new(new[] { true });
|
||||
|
||||
@@ -5,6 +5,9 @@ using UnityEngine;
|
||||
|
||||
namespace EscapeRoomEngine.Engine.Runtime.Requirements
|
||||
{
|
||||
/// <summary>
|
||||
/// This requirement guarantees that a module is placed in the same space as its related module.
|
||||
/// </summary>
|
||||
[CreateAssetMenu(menuName = "Requirements/Related Module")]
|
||||
class RelatedModule : PreconditionRequirement
|
||||
{
|
||||
|
||||
@@ -5,6 +5,9 @@ using UnityEngine;
|
||||
|
||||
namespace EscapeRoomEngine.Engine.Runtime.Requirements
|
||||
{
|
||||
/// <summary>
|
||||
/// A generic requirement class that defines how requirements filter candidates.
|
||||
/// </summary>
|
||||
public abstract class Requirement<T> : ScriptableObject
|
||||
{
|
||||
protected abstract List<T> FilterCandidates(List<T> candidates, Module module, Space space);
|
||||
|
||||
Reference in New Issue
Block a user