Пример #1
0
 // Process a GameObject variable action
 bool DoGameObjectAction(VariableAction variableAction, FsmGameObject fsmGameObject, string key, bool isGlobal, int index = 0)
 {
     // Check for empty GameObject
     if (fsmGameObject.Value == null)
     {
         Debug.Log("Cannot save or load null GameObject reference: " + fsmGameObject.Name, Owner);
         return(false);
     }
     if (variableAction == VariableAction.CopyVariableToPool)
     {
         return(GameObjectToPool(fsmGameObject, key, isGlobal, index));
     }
     else if (variableAction == VariableAction.CopyPoolToVariable)
     {
         var success = PoolToGameObject(fsmGameObject, key, isGlobal, index);
         if (success)
         {
             return(true);
         }
         else
         {
             Debug.Log("Variable data not found in pool: " + fsmGameObject.Name, Owner);
             return(false);
         }
     }
     else
     {
         throw new ArgumentException("variableAction", "Invalid variable action: " + variableAction);
     }
 }
 public CalcAffordanceVariableOp([NotNull] string name, double value, [NotNull] CalcLocation location, VariableAction variableAction,
                                 VariableExecutionTime executionTime, StrGuid variableGuid)
 {
     Name           = name;
     Value          = value;
     CalcLocation   = location;
     VariableAction = variableAction;
     ExecutionTime  = executionTime;
     VariableGuid   = variableGuid;
 }
Пример #3
0
 public ExecutionEntry([NotNull] string name, double value, [NotNull] CalcLocation location, VariableAction variableAction,
                       [NotNull] TimeStep timeStep, StrGuid variableGuid)
 {
     _variableGuid  = variableGuid;
     Name           = name;
     Value          = value;
     CalcLocation   = location;
     VariableAction = variableAction;
     TimeStep       = timeStep;
 }
Пример #4
0
 public SubAffordanceVariableOp(double value, [CanBeNull] int?id, int affordanceID, [NotNull] string connectionString,
                                VariableLocationMode variableLocationMode, [CanBeNull] Location location, VariableAction variableAction,
                                [CanBeNull] Variable variable, VariableExecutionTime executionTime, [NotNull] string name, StrGuid guid) : base(name, TableName,
                                                                                                                                                connectionString, guid)
 {
     _value                = value;
     ID                    = id;
     _affordanceID         = affordanceID;
     TypeDescription       = "SubAffordance Variable Operation";
     _variableLocationMode = variableLocationMode;
     _location             = location;
     _variableAction       = variableAction;
     _variable             = variable;
     _executionTime        = executionTime;
 }
Пример #5
0
        public VariablesUI(VariableAction action)
        {
            InitializeComponent();
            this.action = action;

            #region initialize resources
            button1.Content = Properties.Resources.Strings["ui_3:btn_1"][0];
            button2.Content = Properties.Resources.Strings["ui_3:btn_2"][0];
            column1.Header  = Properties.Resources.Strings["ui_3:col_1"][0];
            column2.Header  = Properties.Resources.Strings["ui_3:col_2"][0];
            column3.Header  = Properties.Resources.Strings["ui_3:col_3"][0];
            column4.Header  = Properties.Resources.Strings["ui_3:col_4"][0];

            column1.HeaderStyle = GetHeaderStyle(Properties.Resources.Strings["ui_3:col_1"][1]);
            column2.HeaderStyle = GetHeaderStyle(Properties.Resources.Strings["ui_3:col_2"][1]);
            column3.HeaderStyle = GetHeaderStyle(Properties.Resources.Strings["ui_3:col_3"][1]);
            column4.HeaderStyle = GetHeaderStyle(Properties.Resources.Strings["ui_3:col_4"][1]);
            column5.HeaderStyle = GetHeaderStyle(Properties.Resources.Strings["ui_3:col_5"][1]);
            #endregion

            switch (action)
            {
            case VariableAction.Add:
                column2.Visibility = Visibility.Collapsed;
                break;

            case VariableAction.Edit:
                column2.Visibility = Visibility.Collapsed;
                break;

            case VariableAction.Rename:
                column3.Visibility = Visibility.Collapsed;
                column4.Visibility = Visibility.Collapsed;
                column5.Visibility = Visibility.Collapsed;
                Width = 500;
                break;

            case VariableAction.Remove:
                column2.Visibility = Visibility.Collapsed;
                column3.Visibility = Visibility.Collapsed;
                column4.Visibility = Visibility.Collapsed;
                column5.Visibility = Visibility.Collapsed;
                Width = 300;
                break;
            }
        }
Пример #6
0
        private void Button1_Click(object sender, RoutedEventArgs e)
        {
            PropertyItem   pi     = DataContext as PropertyItem;
            VariableAction action = VariableAction.Add;

            switch (pi.PropertyName)
            {
            case "EditVariables":
                action = VariableAction.Edit;
                break;

            case "RenameVariables":
                action = VariableAction.Rename;
                break;

            case "RemoveVariables":
                action = VariableAction.Remove;
                break;
            }

            VariablesUI vui = new VariablesUI(action)
            {
                Title = pi.DisplayName,
                Owner = Window.GetWindow(Parent),
                WindowStartupLocation = WindowStartupLocation.CenterOwner,
                DataSource            = Value
            };

            if (vui.ShowDialog() == true)
            {
                textbox.Text = string.Format("[{0}]", Value.Count());

                using (UndoRedoManager.Start(pi.PropertyName))
                {
                    variables.Value = Value.Clone() as VariableCollection;
                    UndoRedoManager.Commit();
                }

                //Debug.WriteLine(string.Format("Commit: [name: {0}, value: {1}]",
                //    pi.PropertyName, Value.Data));
            }
        }
        public static string ConvertToVariableDescription(VariableAction tc)
        {
            var entries = MakeAllEntries();

            return(entries.First(x => x.Action == tc).Description);
        }
 public VariableActionHelperEntry(VariableAction action, [NotNull] string description)
 {
     Action      = action;
     Description = description;
 }
Пример #9
0
        // Perform an action with an FSM variable
        protected bool DoVariableAction(VariableAction variableAction, NamedVariable fsmVariable, string key, bool?isGlobal = null)
        {
            // Check data
            if (fsmVariable == null)
            {
                throw new ArgumentNullException("fsmVariable", "Cannot do action with null variable: " + variableAction);
            }

            // If no current pool, get one
            if (_dataPool == null)
            {
                DefaultDataPool();
            }

            // Get global state
            if (isGlobal == null)
            {
                isGlobal = FsmVariables.GlobalVariables.Contains(fsmVariable);
            }

            // If GameObject, do action and exit
            if (fsmVariable.VariableType == VariableType.GameObject)
            {
                return(DoGameObjectAction(variableAction, (FsmGameObject)fsmVariable, key, (bool)isGlobal));
            }
            // If array of GameObjects, do actions and exit
            if (fsmVariable.VariableType == VariableType.Array)
            {
                if (((FsmArray)fsmVariable).ElementType == VariableType.GameObject)
                {
                    var allSuccess = true;
                    for (int index = 0; index < ((FsmArray)fsmVariable).Values.Length; index++)
                    {
                        if (!DoGameObjectAction(variableAction, new FsmGameObject(fsmVariable.Name)
                        {
                            Value = (GameObject)((FsmArray)fsmVariable).Values[index]
                        }, key, (bool)isGlobal, index))
                        {
                            allSuccess = false;
                        }
                    }
                    return(allSuccess);
                }
            }

            // Search data pool for new data source
            var newDataSource = new SmoothSaveDataSource(fsmVariable, key, (bool)isGlobal, Fsm);
            var oldDataSource = FindDataSource(newDataSource);

            // Copy variable to pool
            if (variableAction == VariableAction.CopyVariableToPool)
            {
                // If found, remove old copy
                if (oldDataSource != null)
                {
                    _dataPool.DataSources.Remove(oldDataSource);
                }
                _dataPool.DataSources.Add(newDataSource);
                return(true);
            }
            // Copy pool to variable
            else if (variableAction == VariableAction.CopyPoolToVariable)
            {
                if (oldDataSource != null)
                {
                    // If no FSM variable, set it
                    if (oldDataSource.GetFsmVariable() == null)
                    {
                        oldDataSource.SetFsmVariable(newDataSource);
                    }
                    oldDataSource.Deserialize();
                    return(true);
                }
                else
                {
                    Debug.Log("Variable data not found in pool: " + fsmVariable.Name, Owner);
                    return(false);
                }
            }
            else
            {
                throw new ArgumentException("Invalid variable action: " + variableAction);
            }
        }
Пример #10
0
        // Perform an action with a batch of FSM variables
        protected bool DoBatchVariableAction(FsmVariables fsmVariables, VariableAction variableAction, string filter, FsmVariableType fsmVariableType)
        {
            // Check data
            if (fsmVariables == null)
            {
                throw new ArgumentNullException("fsmVariables", "Cannot do action with null FSM variable batch: " + variableAction);
            }

            NamedVariable[] fsmVariableSubset;
            switch (fsmVariableType)
            {
            case FsmVariableType.All:
                fsmVariableSubset = fsmVariables.GetAllNamedVariables();
                break;

            case FsmVariableType.Bool:
                fsmVariableSubset = fsmVariables.BoolVariables;
                break;

            case FsmVariableType.Color:
                fsmVariableSubset = fsmVariables.ColorVariables;
                break;

            case FsmVariableType.Float:
                fsmVariableSubset = fsmVariables.FloatVariables;
                break;

            case FsmVariableType.GameObject:
                fsmVariableSubset = fsmVariables.GameObjectVariables;
                break;

            case FsmVariableType.Int:
                fsmVariableSubset = fsmVariables.IntVariables;
                break;

            case FsmVariableType.Quaternion:
                fsmVariableSubset = fsmVariables.QuaternionVariables;
                break;

            case FsmVariableType.Rect:
                fsmVariableSubset = fsmVariables.RectVariables;
                break;

            case FsmVariableType.String:
                fsmVariableSubset = fsmVariables.StringVariables;
                break;

            case FsmVariableType.Vector2:
                fsmVariableSubset = fsmVariables.Vector2Variables;
                break;

            case FsmVariableType.Vector3:
                fsmVariableSubset = fsmVariables.Vector3Variables;
                break;

            case FsmVariableType.Array:
                fsmVariableSubset = fsmVariables.ArrayVariables;
                break;

            case FsmVariableType.Enum:
                fsmVariableSubset = fsmVariables.EnumVariables;
                break;

            default:
                throw new NotSupportedException("Invalid FSM variable type: " + fsmVariableType);
            }

            // Process each FSM variable
            var allComplete = true;

            foreach (var currentVariable in fsmVariableSubset)
            {
                if (MatchFilter(currentVariable.Name, filter) && IsValidFsmVariableType(currentVariable))
                {
                    if (!DoVariableAction(variableAction, currentVariable, null))
                    {
                        allComplete = false;
                    }
                }
            }
            return(allComplete);
        }
 public void AddExecutionEntry([NotNull] string name, double value, [NotNull] CalcLocation location, VariableAction variableAction,
                               [NotNull] TimeStep timeStep, StrGuid variableGuid)
 {
     _variableOperator.AddEntry(name, value, location, variableAction,
                                timeStep, variableGuid);
 }
Пример #12
0
        static void Main(string[] args)
        {
            var app = new CommandLineApplication();

            app.Name        = "taide";
            app.Description = ".NET Core console app with argument parsing.";
            app.HelpOption(helpValues);

            var basicOption = app.Option("-o|--option<optionvalue>",
                                         "Some option value",
                                         CommandOptionType.SingleValue);

            app.OnExecute(() => {
                if (basicOption.HasValue())
                {
                    Console.WriteLine("Option was selected, value: {0}", basicOption.Value());
                }
                else
                {
                    app.ShowHint();
                }

                return(0);
            });

            app.Command("setup", (command) => {
                command.Description = "Creates commonly used variables and modules in Terraform project.";
                command.HelpOption(helpValues);
                command.OnExecute(() => {
                    var action = new SetupAction();
                    action.Execute();
                    return(0);
                });
            });

            app.Command("create", (command) => {
                command.Description = "Creates a new Terraform project folder in the current directory.";
                command.HelpOption(helpValues);
                command.OnExecute(() => {
                    var action = new CreateAction();
                    action.Execute();
                    return(0);
                });
            });

            app.Command("module", (command) => {
                command.Description = "";
                command.HelpOption(helpValues);
                command.OnExecute(() => {
                    var action = new ModuleAction();
                    action.Execute();
                    return(0);
                });
            });

            app.Command("variable", (command) => {
                command.Description = "";
                command.HelpOption(helpValues);
                command.OnExecute(() => {
                    var action = new VariableAction();
                    action.Execute();
                    return(0);
                });
            });

            app.Command("test", (command) => {
                command.Description = "";
                command.HelpOption(helpValues);
                command.OnExecute(() => {
                    var action = new TestAction();
                    action.Execute();
                    return(0);
                });
            });

            app.Execute(args);
            #if DEBUG
            Console.WriteLine("Press any key to close...");
            Console.ReadKey();
            #endif
        }
Пример #13
0
        public void AddEntry([NotNull] string name, double value, [NotNull] CalcLocation location, VariableAction variableAction,
                             [NotNull] TimeStep timeStep, StrGuid variableGuid)
        {
            var ee = new ExecutionEntry(name, value, location, variableAction,
                                        timeStep, variableGuid);

            _entries.Add(ee);
        }