You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
107 lines
2.1 KiB
107 lines
2.1 KiB
using UnityEngine; |
|
using System; |
|
using System.Collections; |
|
|
|
namespace Fungus.Script |
|
{ |
|
|
|
public enum VariableType |
|
{ |
|
Boolean, |
|
Integer, |
|
Float, |
|
String |
|
}; |
|
|
|
public enum VariableScope |
|
{ |
|
Local, |
|
Global |
|
}; |
|
|
|
[Serializable] |
|
public class Variable |
|
{ |
|
public string key; |
|
public VariableType type; |
|
public VariableScope scope; |
|
|
|
bool booleanValue; |
|
int integerValue; |
|
float floatValue; |
|
string stringValue; |
|
|
|
public bool BooleanValue |
|
{ |
|
get { return (scope == VariableScope.Local) ? booleanValue : Variables.GetBoolean(key); } |
|
set { if (scope == VariableScope.Local) { booleanValue = value; } else { Variables.SetBoolean(key, value); } } |
|
} |
|
|
|
public int IntegerValue |
|
{ |
|
get { return (scope == VariableScope.Local) ? integerValue : Variables.GetInteger(key); } |
|
set { if (scope == VariableScope.Local) { integerValue = value; } else { Variables.SetInteger(key, value); } } |
|
} |
|
|
|
public float FloatValue |
|
{ |
|
get { return (scope == VariableScope.Local) ? floatValue : Variables.GetFloat(key); } |
|
set { if (scope == VariableScope.Local) { floatValue = value; } else { Variables.SetFloat(key, value); } } |
|
} |
|
|
|
public string StringValue |
|
{ |
|
get { return (scope == VariableScope.Local) ? stringValue : Variables.GetString(key); } |
|
set { if (scope == VariableScope.Local) { stringValue = value; } else { Variables.SetString(key, value); } } |
|
} |
|
|
|
public bool IsSameType(Variable other) |
|
{ |
|
return (this.type == other.type); |
|
} |
|
|
|
public bool Assign(Variable other) |
|
{ |
|
if (!IsSameType(other)) |
|
{ |
|
return false; |
|
} |
|
|
|
booleanValue = other.booleanValue; |
|
integerValue = other.integerValue; |
|
floatValue = other.floatValue; |
|
stringValue = other.stringValue; |
|
|
|
return true; |
|
} |
|
} |
|
|
|
[Serializable] |
|
public class VariableData |
|
{ |
|
} |
|
|
|
[Serializable] |
|
public class BooleanData : VariableData |
|
{ |
|
public bool value; |
|
} |
|
|
|
[Serializable] |
|
public class IntegerData : VariableData |
|
{ |
|
public int value; |
|
} |
|
|
|
[Serializable] |
|
public class FloatData : VariableData |
|
{ |
|
public float value; |
|
} |
|
|
|
[Serializable] |
|
public class StringData : VariableData |
|
{ |
|
public string value; |
|
} |
|
} |