40 lines
1.5 KiB
C#
40 lines
1.5 KiB
C#
using System;
|
|
using System.Collections.Generic;
|
|
using System.Linq;
|
|
using System.Text;
|
|
using UniversalEditor.ObjectModels.Icarus.Expressions;
|
|
using UniversalEditor.ObjectModels.Icarus.Parameters;
|
|
|
|
namespace UniversalEditor.ObjectModels.Icarus.Commands
|
|
{
|
|
public class IcarusCommandAffect : IcarusPredefinedContainerCommand
|
|
{
|
|
public override string Name { get { return "affect"; } }
|
|
|
|
public IcarusCommandAffect()
|
|
{
|
|
Parameters.Add(new IcarusGenericParameter("Target"));
|
|
Parameters.Add(new IcarusChoiceParameter("AffectType", new IcarusConstantExpression(IcarusAffectType.Flush), new IcarusChoiceParameterValue[]
|
|
{
|
|
new IcarusChoiceParameterValue("Flush", new IcarusConstantExpression(IcarusAffectType.Flush)),
|
|
new IcarusChoiceParameterValue("Insert", new IcarusConstantExpression(IcarusAffectType.Insert))
|
|
}));
|
|
}
|
|
|
|
public IcarusExpression Target { get { return Parameters["Target"].Value; } set { Parameters["Target"].Value = value; } }
|
|
public IcarusExpression AffectType { get { return Parameters["AffectType"].Value; } set { Parameters["AffectType"].Value = value; } }
|
|
|
|
public override object Clone()
|
|
{
|
|
IcarusCommandAffect clone = new IcarusCommandAffect();
|
|
clone.Target = (Target.Clone() as IcarusExpression);
|
|
clone.AffectType = (AffectType.Clone() as IcarusExpression);
|
|
foreach (IcarusCommand command in Commands)
|
|
{
|
|
clone.Commands.Add(command.Clone() as IcarusCommand);
|
|
}
|
|
return clone;
|
|
}
|
|
}
|
|
}
|