コード例 #1
0
ファイル: TranspilerContext.cs プロジェクト: lewisc64/aoe2ai
 public IScriptItem ApplyStacks(IScriptItem item)
 {
     if (item is Defrule defrule)
     {
         defrule.Conditions.AddRange(ConditionStack.Select(x => x.Copy()));
         defrule.Actions.AddRange(ActionStack.Select(x => x.Copy()));
     }
     return(item);
 }
コード例 #2
0
ファイル: TranspilerContext.cs プロジェクト: lewisc64/aoe2ai
 public void AddToScript(IScriptItem item)
 {
     if (item.GetType().IsGenericType&& item.GetType().GetGenericTypeDefinition() == typeof(Defconst <>))
     {
         Script.Items.Insert(0, item);
     }
     else
     {
         Script.Items.Add(item);
     }
 }
コード例 #3
0
ファイル: Script.cs プロジェクト: kythyria/payday2-model-tool
        public static IEnumerable <IScriptItem> ParseXml(XElement root)
        {
            if (root.Name != "modelscript")
            {
                throw new Exception("Script root node is not named \"modelscript\"");
            }

            var script = new List <IScriptItem>();

            foreach (var element in root.Elements())
            {
                if (element.Name.ToString() == "object3d")
                {
                    script.Add(ParseXmlObject3d(element));
                    continue;
                }

                IScriptItem si = (element.Name.ToString()) switch
                {
                    "createnew" => new CreateNewObjects(),
                    "rootpoint" => new SetRootPoint(),
                    "new" => new NewModel(),
                    "load" => new LoadModel(),
                    "save" => new SaveModel(),
                    "patternuv" => new PatternUV(),
                    "export" => new Export(),
                    "exporttype" => new SetDefaultExportType(),
                    "batchexport" => new BatchExport(),
                    "dumpanims" => new DumpAnims(),
                    "dumpskins" => new DumpSkins(),
                    "import" => new Import(),
                    "animate" => new Animate(),
                    "skin" => new Skin(),
                    "removeskin" => new RemoveSkin(),
                    "runscript" => new RunScript(),
                    "duplicate" => new Duplicate(),
                    _ => throw new Exception($"Unknown command {element.Name}"),
                };
                si.ParseXml(element);
                script.Add(si);
            }

            return(script);
        }
コード例 #4
0
		/// <summary>
		/// An item that lets you wrap objects before and/or after another item
		/// Useful to create effects like surrounding brackets
		/// </summary>
		/// <param name="before">object to render before the item</param>
		/// <param name="item">the item to render</param>
		/// <param name="after">object to render after the item</param>
		/// <returns></returns>
		public static ScriptWrapper Wrapper(object before, IScriptItem item, object after)
		{
			return new ScriptWrapper(before, item, after);
		}
コード例 #5
0
		/// <summary>
		/// An item that lets you wrap objects before and/or after another item
		/// Useful to create effects like surrounding brackets
		/// </summary>
		/// <param name="layout">override the default layout</param>
		/// <param name="before">object to render before the item</param>
		/// <param name="item">the item to render</param>
		/// <param name="after">object to render after the item</param>
		/// <returns></returns>
		public static ScriptWrapper Wrapper(ScriptLayout layout, object before, IScriptItem item, object after)
		{
			return new ScriptWrapper(layout, before, item, after);
		}
コード例 #6
0
ファイル: DefconstFormat.cs プロジェクト: lewisc64/aoe2ai
 public bool CanBeAppliedTo(IScriptItem scriptItem)
 {
     return(scriptItem.GetType().Name == "Defconst`1");
 }
コード例 #7
0
ファイル: DefruleFormats.cs プロジェクト: lewisc64/aoe2ai
 public bool CanBeAppliedTo(IScriptItem scriptItem)
 {
     return(scriptItem is Defrule);
 }
コード例 #8
0
 public Item(Model.IScriptModel scriptModel, IScriptItem scriptObject) : base(scriptModel, scriptObject)
 {
 }
コード例 #9
0
 public bool CanBeAppliedTo(IScriptItem scriptItem)
 {
     return(scriptItem is Condition || scriptItem is CombinatoryCondition);
 }