Skip to content

Commit f7fe75f

Browse files
committed
refactor(conditions): definition data is now exposed to implement custom runtime choice displays
1 parent fb18251 commit f7fe75f

File tree

5 files changed

+7
-0
lines changed

5 files changed

+7
-0
lines changed

Assets/com.fluid.dialogue/Runtime/Conditions/ConditionRuntime.cs

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -13,6 +13,7 @@ public class ConditionRuntime : ICondition {
1313
private bool _initTriggered;
1414

1515
public string UniqueId { get; }
16+
public IConditionData Data => _data;
1617

1718
public ConditionRuntime (IDialogueController dialogueController, string uniqueId, IConditionData data) {
1819
_data = data;

Assets/com.fluid.dialogue/Runtime/Conditions/ICondition.cs

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,8 @@
22

33
namespace CleverCrow.Fluid.Dialogues.Conditions {
44
public interface ICondition : IUniqueId {
5+
IConditionData Data { get; }
6+
57
bool GetIsValid (INode parent);
68
}
79
}

Assets/com.fluid.dialogue/Runtime/Nodes/ChoiceHub/NodeChoiceHub.cs

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -12,6 +12,7 @@ public class NodeChoiceHub : INode {
1212
public string UniqueId { get; }
1313
public List<IAction> EnterActions { get; }
1414
public List<IAction> ExitActions { get; }
15+
public IReadOnlyList<ICondition> Conditions => _conditions;
1516

1617
public virtual bool IsValid =>
1718
_conditions.Find(c => !c.GetIsValid(this)) == null;

Assets/com.fluid.dialogue/Runtime/Nodes/INode.cs

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,13 +1,15 @@
11
using System.Collections.Generic;
22
using CleverCrow.Fluid.Dialogues.Actions;
33
using CleverCrow.Fluid.Dialogues.Choices;
4+
using CleverCrow.Fluid.Dialogues.Conditions;
45

56
namespace CleverCrow.Fluid.Dialogues.Nodes {
67
public interface INode : IUniqueId {
78
List<IAction> EnterActions { get; }
89
List<IAction> ExitActions { get; }
910
bool IsValid { get; }
1011
List<IChoice> HubChoices { get; }
12+
IReadOnlyList<ICondition> Conditions { get; }
1113

1214
/// <summary>
1315
/// Returns the first valid child node

Assets/com.fluid.dialogue/Runtime/Nodes/NodeBase.cs

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -18,6 +18,7 @@ public abstract class NodeBase : INode {
1818
_conditions.Find(c => !c.GetIsValid(this)) == null;
1919
public List<IChoice> HubChoices { get; }
2020
public string UniqueId { get; }
21+
public IReadOnlyList<ICondition> Conditions => _conditions;
2122

2223
protected List<INode> Children =>
2324
_childrenRuntimeCache ??

0 commit comments

Comments
 (0)