예제 #1
0
        protected override void HandleMultiLineKeyword(Queue <string> lines)
        {
            base.HandleMultiLineKeyword(lines);
            string[] arguments = FirstLineArguments.Split(' ');
            if (arguments.Length != 2 && arguments.Length != 3)
            {
                return;
            }

            _propertyType = (PropertyType)Enum.Parse(typeof(PropertyType), arguments[0]);
            _propertyName = arguments[1];

            if (arguments.Length == 3)
            {
                _defaultValue = arguments[2];
            }
            else
            {
                switch (_propertyType)
                {
                case PropertyType.Texture:
                    _defaultValue = "";
                    break;

                case PropertyType.Float:
                    _defaultValue = "0";
                    break;

                case PropertyType.Float2:
                case PropertyType.Float3:
                case PropertyType.Float4:
                case PropertyType.Color:
                    _defaultValue = "(0,0,0,0)";
                    break;

                default:
                    throw new ArgumentOutOfRangeException();
                }

                if (_propertyType == PropertyType.Float)
                {
                    _defaultValue = "0";
                }
            }
        }
예제 #2
0
 public KeywordReceiveShadows(Queue <string> sourceCode) : base(sourceCode)
 {
     ReceiveShadows = bool.Parse(FirstLineArguments.ToLower());
 }