예제 #1
0
        public static AbstractTag CreateEmptyParamsTag(string className, int lineNo)
        {
            string      cn   = "Sov.AVGPart" + "." + className.ToString();
            Type        type = Type.GetType(cn);
            AbstractTag tag  = null;

            try
            {
                tag = (AbstractTag)Activator.CreateInstance(type);
            }
            catch (Exception e)
            {
                //Debug.Log(e.ToString());
            }


            if (tag != null)
            {
                TagInfo i = new TagInfo("");
                tag.Init(i, lineNo);

                tag.CheckVital();
            }
            return(tag);
        }
예제 #2
0
        public static AbstractTag Create(TagInfo info, int lineNo)
        {
            /*
             * tagName: 全小写  e.g. settext
             * ClassName 首字母大写 e.g. SettextTag
             */
            StringBuilder className = new StringBuilder(info.TagName);

            className[0] = Char.ToUpper(className[0]);
            className.Append("Tag");
            //className.Append("Sov.AVGPart" + ".", 0);
            string cn   = "Sov.AVGPart" + "." + className.ToString();
            Type   type = Type.GetType(cn);

            AbstractTag tag = null;

            try
            {
                tag = (AbstractTag)Activator.CreateInstance(type);
            }
            catch (Exception e)
            {
                //Debug.Log(e.ToString());
            }

            if (tag != null)
            {
                tag.Init(info, lineNo);

                tag.CheckVital();
            }
            return(tag);
        }
예제 #3
0
파일: Scene.cs 프로젝트: hemingfei/Green
 public void AddCommand(AbstractTag tag)
 {
     //tag.LineNo = _opTags.Count;
     tag.Engine = _engine;
     if (tag.Name == "scenario")
     {
         AddScenario(tag);
     }
     else
     {
         Tags.Add(tag);
     }
 }
예제 #4
0
        void CreateAndSendTagToEngine(TagInfo tagInfo)
        {
            AbstractTag tag = TagFactory.Create(tagInfo, _currentPhraseLineNo);

            if (tag != null)
            {
                // ScriptEngine.Instance.AddCommand(tag);
                //_uploadTags.Add(tag);
                _scenario.AddCommand(tag);
            }
            else
            {
                Debug.LogFormat("Tag:{0} is not implemented!", tagInfo.TagName);
            }
        }
예제 #5
0
파일: Scene.cs 프로젝트: hemingfei/Green
        private void AddScenario(AbstractTag tag)
        {
            string scenarioName = tag.Params["scenario"];

            if (ScenarioDict.ContainsKey(scenarioName))
            {
                Debug.LogFormat("Scenario: {0}Is Already Exist", scenarioName);
                return;
            }
            else
            {
                ScenarioDict.Add(scenarioName, GetLastedTagLineNo());
                Debug.LogFormat("[Add Scenario]{0}:{1}", GetLastedTagLineNo(), scenarioName);
                CurrentScenario = scenarioName;
            }
        }
예제 #6
0
파일: Scene.cs 프로젝트: funcodes/AirGame
        private void AddScenario(AbstractTag tag)
        {
            string scenarioName = tag.Params["scenario"];

            if (ScenarioDict.ContainsKey(scenarioName))
            {
                Debug.LogFormat("Scenario: {0}Is Already Exist", scenarioName);
                return;
            }
            else
            {
                ScenarioDict.Add(scenarioName, GetLastedTagLineNo());
                Debug.LogFormat("[Add Scenario]{0}:{1}", GetLastedTagLineNo(), scenarioName);
                CurrentScenario = scenarioName;
            }
        }
예제 #7
0
파일: Scene.cs 프로젝트: funcodes/AirGame
 public void AddCommand(AbstractTag tag)
 {
     //tag.LineNo = _opTags.Count;
     tag.Engine = _engine;
     if (tag.Name == "scenario")
     {
         AddScenario(tag);
     }
     else
         Tags.Add(tag);
 }
예제 #8
0
 public void InsertCommandBefore(AbstractTag tag)
 {
     _opTags.Insert(_currentLine, tag);
 }
예제 #9
0
 public void InsertCommandBefore(AbstractTag tag)
 {
     _opTags.Insert(_currentLine, tag);
 }