public VariableType GetCastType(string castType) { Variable.VariableType variableType = Variable.VariableType.Null; switch (castType.ToUpper()) { case "LONG": variableType = Variable.VariableType.Long; break; case "FLOAT": variableType = Variable.VariableType.Float; break; case "BYTE": variableType = Variable.VariableType.Byte; break; case "INT": variableType = Variable.VariableType.Int; break; case "DOUBLE": variableType = Variable.VariableType.Double; break; case "STRING": variableType = Variable.VariableType.String; break; case "BOOL": variableType = Variable.VariableType.Boolean; break; case "VAR": variableType = Variable.VariableType.Object; break; case "Array": variableType = Variable.VariableType.Array; break; case "Null": default: variableType = Variable.VariableType.Null; break; } return(variableType); }
public static VariableValue DrawSerializedVariable(Rect rect, Variable.VariableType type, VariableValue gamevar) { switch (type) { case Variable.VariableType.String: gamevar.Value = EditorGUI.DelayedTextField(rect, gamevar.Value); break; case Variable.VariableType.Int: gamevar.ValueInt = EditorGUI.IntField(rect, gamevar.ValueInt); break; case Variable.VariableType.Float: gamevar.ValueFloat = EditorGUI.FloatField(rect, gamevar.ValueFloat); break; case Variable.VariableType.Bool: gamevar.ValueBool = EditorGUI.Toggle(rect, gamevar.ValueBool); break; } return(gamevar); }
VariableValue DrawSerializedVariable(string label, Variable.VariableType type, VariableValue gamevar) { switch (type) { case Variable.VariableType.String: gamevar.Value = EditorGUILayout.DelayedTextField(label, gamevar.Value); break; case Variable.VariableType.Int: gamevar.ValueInt = EditorGUILayout.DelayedIntField(label, gamevar.ValueInt); break; case Variable.VariableType.Float: gamevar.ValueFloat = EditorGUILayout.DelayedFloatField(label, gamevar.ValueFloat); break; case Variable.VariableType.Bool: gamevar.ValueBool = EditorGUILayout.Toggle(label, gamevar.ValueBool); break; } return(gamevar); }
public void Declare(string name, object value, string variableType, string parseFormat, string displayFormat) { if (this.ContainsKey(name)) { //Used if a variable is re-declared to change the parse or display formats. //Changing the variable type is not allowed. //The original value in the pre-declared variable is used //in preference to the newly declared value. Variable variable = (Variable)this[name]; variable.ParseFormat = parseFormat; variable.DisplayFormat = displayFormat; this[name].Value = variable; } if (!this.ContainsKey(name)) { Variable.VariableType valueType = Variable.VariableType.Text; switch (variableType) { case "DateStamp": case "Text": valueType = GetEnumValue <Variable.VariableType>(variableType); break; } switch (variableType) { case "Text": this.Add(name, new Text(name, string.Empty, valueType, parseFormat, displayFormat)); this[name].Parse(value); break; case "DateStamp": this.Add(name, new DateStamp(name, DateTime.Now, valueType, parseFormat, displayFormat)); this[name].Parse(value); break; } } }
public IVariable CreateNewWithGUID(Variable.VariableType type) { Guid id = Guid.NewGuid(); string striped = id.ToString().Replace("-", ""); int index = 0; foreach (char c in striped) { if (Char.IsLetter(c)) { index = striped.IndexOf(c); break; } } string variablename = striped.Substring(index); string typename = Enum.GetName(typeof(Variable.VariableType), type); this.wrapper.RunCommand("Dim {0} as {1}".FormatWith(variablename, typename)); Variable variable = new Variable(variablename, type, false); return(variable); }
/// <summary> /// Initalize "variableType" variable "name" by "value /// </summary> /// <param name="name"></param> /// <param name="value"></param> /// <param name="variableType"></param> public void InitalizeVariable(string name, object value = null, Variable.VariableType variableType = Variable.VariableType.Null) { variableHandler.AddVariable(name, variableType, value); }
void CellGUI(Rect cellRect, TreeViewItem <VariablesElement> item, MyColumns column, ref RowGUIArgs args) { // Center cell rect vertically (makes it easier to place controls, icons etc in the cells) CenterRectUsingSingleLineHeight(ref cellRect); switch (column) { case MyColumns.Id: { if (editing) { EditorGUI.BeginChangeCheck(); _variableID = EditorGUI.DelayedTextField(cellRect, item.data.variable.name).Trim().Replace(" ", "").Replace("_", ""); if (EditorGUI.EndChangeCheck()) { AssetDatabase.RenameAsset(AssetDatabase.GetAssetPath(item.data.variable), _variableID); } } else { DefaultGUI.Label(cellRect, item.data.variable.name, args.selected, args.focused); } } break; case MyColumns.Group: { if (editing) { EditorGUI.BeginChangeCheck(); _variableGroup = EditorGUI.DelayedTextField(cellRect, item.data.variable.group).Trim().Replace(" ", "").Replace("_", ""); if (EditorGUI.EndChangeCheck()) { item.data.variable.group = _variableGroup; } } else { DefaultGUI.Label(cellRect, item.data.variable.group, args.selected, args.focused); } } break; case MyColumns.Type: if (editing) { EditorGUI.BeginChangeCheck(); _variableType = (Variable.VariableType)EditorGUI.EnumPopup(cellRect, item.data.variable.Type); if (EditorGUI.EndChangeCheck()) { item.data.variable.Type = _variableType; EditorUtility.SetDirty(item.data.variable); } } else { DefaultGUI.Label(cellRect, item.data.variable.Type.ToString(), args.selected, args.focused); } break; case MyColumns.Default: { if (editing) { EditorGUI.BeginChangeCheck(); _serializedVariable = VariableEditor.DrawSerializedVariable(cellRect, item.data.variable.Type, item.data.variable.DefaultValue); if (EditorGUI.EndChangeCheck()) { EditorUtility.SetDirty(item.data.variable); } } else { DefaultGUI.Label(cellRect, item.data.variable.DefaultValue.ToString(), args.selected, args.focused); } } break; case MyColumns.InGame: { if (editing) { EditorGUI.BeginChangeCheck(); _serializedVariable = VariableEditor.DrawSerializedVariable(cellRect, item.data.variable.Type, item.data.variable.InGameValue); if (EditorGUI.EndChangeCheck()) { EditorUtility.SetDirty(item.data.variable); } } else { DefaultGUI.Label(cellRect, item.data.variable.InGameValue.ToString(), args.selected, args.focused); } } break; case MyColumns.Description: { if (editing) { EditorGUI.BeginChangeCheck(); _description = EditorGUI.DelayedTextField(cellRect, item.data.variable.description); if (EditorGUI.EndChangeCheck()) { item.data.variable.description = _description; } } else { DefaultGUI.Label(cellRect, item.data.variable.description, args.selected, args.focused); } } break; } }