-
Notifications
You must be signed in to change notification settings - Fork 294
/
VariableReference.cs
40 lines (33 loc) · 1.31 KB
/
VariableReference.cs
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
// This code is part of the Fungus library (https://github.com/snozbot/fungus)
// It is released for free under the MIT open source license (https://github.com/snozbot/fungus/blob/master/LICENSE)
namespace Fungus
{
/// <summary>
/// A simple struct wrapping a reference to a Fungus Variable. Allows for VariableReferenceDrawer.
/// This is the a way to directly reference a fungus variable in external c# scripts, it will
/// give you an inspector field that gives a drop down of all the variables on the targeted
/// flowchart, in a similar way to what you would expect from selecting a variable on a command.
///
/// Also recommend implementing IVariableReference on any custom classes that use this so your
/// references can show up in searches for usage.
/// </summary>
[System.Serializable]
public struct VariableReference
{
public Variable variable;
public T Get<T>()
{
T retval = default(T);
var asType = variable as VariableBase<T>;
if (asType != null)
return asType.Value;
return retval;
}
public void Set<T>(T val)
{
var asType = variable as VariableBase<T>;
if (asType != null)
asType.Value = val;
}
}
}