예제 #1
0
        static public AnimatingObject InterpretScope(string scope, out string errorReport)
        {
            var words   = new List <string>(scope.Split(Utils.WordSeperators, StringSplitOptions.RemoveEmptyEntries));
            var tempObj = AnimatingObject.InterpretScope(words, out errorReport);

            return(tempObj);
        }
예제 #2
0
        /*
         *  GetContext
         *  GetSnippet
         *  ParseData
         *  AddToLib
         *  GetPreviewBitmap
         */

        /// <summary>
        /// [ Factory method ]
        /// </summary>
        /// <returns></returns>
        static public AnimatingObject InterpretScope(List <string> codeWords, out string errorReport)
        {
            AnimatingObject result = null;

            errorReport = "";

            // there should be at least a TAG and an ID
            if (codeWords.Count <= 1)
            {
                return(null);
            }

            result = CreateTypeFromTag(codeWords[0]);
            if (result == null)
            {
                return(null);
            }

            errorReport = (result as IScriptable)?.ParseData(codeWords);

            if (errorReport != "" && errorReport != null)
            {
                return(null);
            }

            return(result);
        }
예제 #3
0
        /// <summary>
        /// WARNING: Should call Object.SaveToLib() instead...
        /// </summary>
        /// <param name="obj"></param>
        public void Add(AnimatingObject obj)
        {
            if (obj == null)
            {
                return;
            }

            if (animatingObjects.ContainsKey(obj.StringId))
            {
                animatingObjects[obj.StringId] = obj;
            }
            else
            {
                animatingObjects.Add(obj.StringId, obj);
            }
        }