|
|
@ -0,0 +1,62 @@ |
|
|
|
using System.Collections; |
|
|
|
using System.Collections.Generic; |
|
|
|
using UnityEngine; |
|
|
|
|
|
|
|
/// <summary>
|
|
|
|
/// Base class all logic blocks are derived from
|
|
|
|
/// </summary>
|
|
|
|
[System.Serializable] |
|
|
|
public abstract class LogicBlock : ScriptableObject |
|
|
|
{ |
|
|
|
|
|
|
|
#region Inspector Fields
|
|
|
|
[SerializeField] |
|
|
|
[Header("Base Settings")] |
|
|
|
[Tooltip("Wait until this block is resolved before moving to next")] |
|
|
|
protected bool WaitUntilFinished = false; |
|
|
|
|
|
|
|
[SerializeField] |
|
|
|
[Tooltip("Amount of times to run this Block before moving to next")] |
|
|
|
protected int RepeatAmount = 1; |
|
|
|
#endregion Inspector Fields
|
|
|
|
|
|
|
|
#region private variables
|
|
|
|
|
|
|
|
/// <summary>
|
|
|
|
/// Amount of times this block has run
|
|
|
|
/// </summary>
|
|
|
|
protected int RepeatCount = 0; |
|
|
|
|
|
|
|
#endregion private variables
|
|
|
|
|
|
|
|
|
|
|
|
#region Class Functions
|
|
|
|
/// <summary>
|
|
|
|
/// Runs the block
|
|
|
|
/// </summary>
|
|
|
|
/// <returns>returns true if block is finished</returns>
|
|
|
|
public virtual bool Run() |
|
|
|
{ |
|
|
|
RepeatCount++; |
|
|
|
BlockLogic(); |
|
|
|
|
|
|
|
return (RepeatCount == RepeatAmount); |
|
|
|
} |
|
|
|
|
|
|
|
/// <summary>
|
|
|
|
/// Returns the amount of space this logic block takes up
|
|
|
|
/// </summary>
|
|
|
|
/// <returns>Int which controlls how much space this takes up</returns>
|
|
|
|
public virtual int Size() |
|
|
|
{ |
|
|
|
return 1; |
|
|
|
} |
|
|
|
|
|
|
|
/// <summary>
|
|
|
|
/// Where derived callses should implement the logic for their classes
|
|
|
|
/// </summary>
|
|
|
|
/// <returns>returns true if block is finished</returns>
|
|
|
|
protected abstract void BlockLogic(); |
|
|
|
|
|
|
|
#endregion Class Functions
|
|
|
|
} |