Пример #1
0
        public T GetField <T>(string name)
        {
            name = name.ToLowerInvariant();

            if (!_fieldNames.ContainsKey(name))
            {
                return((T)_privateFields[name]);
            }

            object returnValue = null;
            int    fieldID     = _fieldNames[name];

            GameInterface.Script_GetField(_entRef, fieldID);

            switch (GameInterface.Script_GetType(0))
            {
            case VariableType.Integer:
                returnValue = GameInterface.Script_GetInt(0);
                break;

            case VariableType.Float:
                returnValue = GameInterface.Script_GetFloat(0);
                break;

            case VariableType.String:
                returnValue = GameInterface.Script_GetString(0);
                break;

            case VariableType.Vector:
                Vector3 outValue;
                GameInterface.Script_GetVector(0, out outValue);
                returnValue = outValue;
                break;
            }

            GameInterface.Script_CleanReturnStack();

            return((T)Convert.ChangeType(returnValue, typeof(T)));
        }