comment pass

This commit is contained in:
2022-12-29 16:16:49 +01:00
parent 643e03192a
commit ff01a700bd
75 changed files with 634 additions and 65 deletions

View File

@@ -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
{

View File

@@ -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
{

View File

@@ -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
{

View File

@@ -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
{

View File

@@ -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
{

View File

@@ -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
{

View File

@@ -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);

View File

@@ -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 });

View File

@@ -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
{

View File

@@ -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);