Browse Source

Added constructors and implicit operators for all variable types

Assign default values to public variable properties and access variable
values directly without using .Value accessor.
master
chrisgregan 10 years ago
parent
commit
36cfc04dab
  1. 8
      Assets/Fungus/Flowchart/Scripts/Variable.cs
  2. 12
      Assets/Fungus/Flowchart/Scripts/VariableTypes/BooleanVariable.cs
  3. 12
      Assets/Fungus/Flowchart/Scripts/VariableTypes/ColorVariable.cs
  4. 12
      Assets/Fungus/Flowchart/Scripts/VariableTypes/FloatVariable.cs
  5. 12
      Assets/Fungus/Flowchart/Scripts/VariableTypes/GameObjectVariable.cs
  6. 12
      Assets/Fungus/Flowchart/Scripts/VariableTypes/IntegerVariable.cs
  7. 12
      Assets/Fungus/Flowchart/Scripts/VariableTypes/MaterialVariable.cs
  8. 12
      Assets/Fungus/Flowchart/Scripts/VariableTypes/ObjectVariable.cs
  9. 12
      Assets/Fungus/Flowchart/Scripts/VariableTypes/SpriteVariable.cs
  10. 13
      Assets/Fungus/Flowchart/Scripts/VariableTypes/StringVariable.cs
  11. 12
      Assets/Fungus/Flowchart/Scripts/VariableTypes/TextureVariable.cs
  12. 12
      Assets/Fungus/Flowchart/Scripts/VariableTypes/Vector2Variable.cs
  13. 12
      Assets/Fungus/Flowchart/Scripts/VariableTypes/Vector3Variable.cs

8
Assets/Fungus/Flowchart/Scripts/Variable.cs

@ -32,6 +32,14 @@ namespace Fungus
this.VariableTypes = variableTypes;
}
public VariablePropertyAttribute (string defaultText, params System.Type[] variableTypes)
{
this.defaultText = defaultText;
this.VariableTypes = variableTypes;
}
public String defaultText = "<None>";
public System.Type[] VariableTypes { get; set; }
}

12
Assets/Fungus/Flowchart/Scripts/VariableTypes/BooleanVariable.cs

@ -36,11 +36,23 @@ namespace Fungus
public struct BooleanData
{
[SerializeField]
[VariableProperty("<Value>", typeof(BooleanVariable))]
public BooleanVariable booleanRef;
[SerializeField]
public bool booleanVal;
public BooleanData(bool v)
{
booleanVal = v;
booleanRef = null;
}
public static implicit operator bool(BooleanData booleanData)
{
return booleanData.Value;
}
public bool Value
{
get { return (booleanRef == null) ? booleanVal : booleanRef.value; }

12
Assets/Fungus/Flowchart/Scripts/VariableTypes/ColorVariable.cs

@ -12,11 +12,23 @@ namespace Fungus
public struct ColorData
{
[SerializeField]
[VariableProperty("<Value>", typeof(ColorVariable))]
public ColorVariable colorRef;
[SerializeField]
public Color colorVal;
public ColorData(Color v)
{
colorVal = v;
colorRef = null;
}
public static implicit operator Color(ColorData colorData)
{
return colorData.Value;
}
public Color Value
{
get { return (colorRef == null) ? colorVal : colorRef.value; }

12
Assets/Fungus/Flowchart/Scripts/VariableTypes/FloatVariable.cs

@ -44,11 +44,23 @@ namespace Fungus
public struct FloatData
{
[SerializeField]
[VariableProperty("<Value>", typeof(FloatVariable))]
public FloatVariable floatRef;
[SerializeField]
public float floatVal;
public FloatData(float v)
{
floatVal = v;
floatRef = null;
}
public static implicit operator float(FloatData floatData)
{
return floatData.Value;
}
public float Value
{
get { return (floatRef == null) ? floatVal : floatRef.value; }

12
Assets/Fungus/Flowchart/Scripts/VariableTypes/GameObjectVariable.cs

@ -12,11 +12,23 @@ namespace Fungus
public struct GameObjectData
{
[SerializeField]
[VariableProperty("<Value>", typeof(GameObjectVariable))]
public GameObjectVariable gameObjectRef;
[SerializeField]
public GameObject gameObjectVal;
public GameObjectData(GameObject v)
{
gameObjectVal = v;
gameObjectRef = null;
}
public static implicit operator GameObject(GameObjectData gameObjectData)
{
return gameObjectData.Value;
}
public GameObject Value
{
get { return (gameObjectRef == null) ? gameObjectVal : gameObjectRef.value; }

12
Assets/Fungus/Flowchart/Scripts/VariableTypes/IntegerVariable.cs

@ -44,11 +44,23 @@ namespace Fungus
public struct IntegerData
{
[SerializeField]
[VariableProperty("<Value>", typeof(IntegerVariable))]
public IntegerVariable integerRef;
[SerializeField]
public int integerVal;
public IntegerData(int v)
{
integerVal = v;
integerRef = null;
}
public static implicit operator int(IntegerData integerData)
{
return integerData.Value;
}
public int Value
{
get { return (integerRef == null) ? integerVal : integerRef.value; }

12
Assets/Fungus/Flowchart/Scripts/VariableTypes/MaterialVariable.cs

@ -12,11 +12,23 @@ namespace Fungus
public struct MaterialData
{
[SerializeField]
[VariableProperty("<Value>", typeof(MaterialVariable))]
public MaterialVariable materialRef;
[SerializeField]
public Material materialVal;
public MaterialData(Material v)
{
materialVal = v;
materialRef = null;
}
public static implicit operator Material(MaterialData materialData)
{
return materialData.Value;
}
public Material Value
{
get { return (materialRef == null) ? materialVal : materialRef.value; }

12
Assets/Fungus/Flowchart/Scripts/VariableTypes/ObjectVariable.cs

@ -12,11 +12,23 @@ namespace Fungus
public struct ObjectData
{
[SerializeField]
[VariableProperty("<Value>", typeof(ObjectVariable))]
public ObjectVariable objectRef;
[SerializeField]
public Object objectVal;
public ObjectData(Object v)
{
objectVal = v;
objectRef = null;
}
public static implicit operator Object(ObjectData objectData)
{
return objectData.Value;
}
public Object Value
{
get { return (objectRef == null) ? objectVal : objectRef.value; }

12
Assets/Fungus/Flowchart/Scripts/VariableTypes/SpriteVariable.cs

@ -12,11 +12,23 @@ namespace Fungus
public struct SpriteData
{
[SerializeField]
[VariableProperty("<Value>", typeof(SpriteVariable))]
public SpriteVariable spriteRef;
[SerializeField]
public Sprite spriteVal;
public SpriteData(Sprite v)
{
spriteVal = v;
spriteRef = null;
}
public static implicit operator Sprite(SpriteData spriteData)
{
return spriteData.Value;
}
public Sprite Value
{
get { return (spriteRef == null) ? spriteVal : spriteRef.value; }

13
Assets/Fungus/Flowchart/Scripts/VariableTypes/StringVariable.cs

@ -34,11 +34,24 @@ namespace Fungus
public struct StringData
{
[SerializeField]
[VariableProperty("<Value>", typeof(StringVariable))]
public StringVariable stringRef;
[TextArea(1,10)]
[SerializeField]
public string stringVal;
public StringData(string v)
{
stringVal = v;
stringRef = null;
}
public static implicit operator string(StringData spriteData)
{
return spriteData.Value;
}
public string Value
{
get { return (stringRef == null) ? stringVal : stringRef.value; }

12
Assets/Fungus/Flowchart/Scripts/VariableTypes/TextureVariable.cs

@ -12,11 +12,23 @@ namespace Fungus
public struct TextureData
{
[SerializeField]
[VariableProperty("<Value>", typeof(TextureVariable))]
public TextureVariable textureRef;
[SerializeField]
public Texture textureVal;
public TextureData(Texture v)
{
textureVal = v;
textureRef = null;
}
public static implicit operator Texture(TextureData textureData)
{
return textureData.Value;
}
public Texture Value
{
get { return (textureRef == null) ? textureVal : textureRef.value; }

12
Assets/Fungus/Flowchart/Scripts/VariableTypes/Vector2Variable.cs

@ -12,11 +12,23 @@ namespace Fungus
public struct Vector2Data
{
[SerializeField]
[VariableProperty("<Value>", typeof(Vector2Variable))]
public Vector2Variable vector2Ref;
[SerializeField]
public Vector2 vector2Val;
public Vector2Data(Vector2 v)
{
vector2Val = v;
vector2Ref = null;
}
public static implicit operator Vector2(Vector2Data vector2Data)
{
return vector2Data.Value;
}
public Vector2 Value
{
get { return (vector2Ref == null) ? vector2Val : vector2Ref.value; }

12
Assets/Fungus/Flowchart/Scripts/VariableTypes/Vector3Variable.cs

@ -12,11 +12,23 @@ namespace Fungus
public struct Vector3Data
{
[SerializeField]
[VariableProperty("<Value>", typeof(Vector3Variable))]
public Vector3Variable vector3Ref;
[SerializeField]
public Vector3 vector3Val;
public Vector3Data(Vector3 v)
{
vector3Val = v;
vector3Ref = null;
}
public static implicit operator Vector3(Vector3Data vector3Data)
{
return vector3Data.Value;
}
public Vector3 Value
{
get { return (vector3Ref == null) ? vector3Val : vector3Ref.value; }

Loading…
Cancel
Save