Ejemplo n.º 1
0
        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);
        }
Ejemplo n.º 4
0
        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;
                }
            }
        }
Ejemplo n.º 5
0
        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);
        }
Ejemplo n.º 6
0
 /// <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;
            }
        }