Exemple #1
0
        //called when data for any output pin is requested
        public void Evaluate(int SpreadMax)
        {
            FNameOutput.SliceCount  = SpreadMax;
            FEntryOutput.SliceCount = SpreadMax;

            if (FInput.IsChanged)
            {
                for (int i = 0; i < SpreadMax; i++)
                {
                    var enumname = FInput[i].Name;
                    FNameOutput[i] = enumname;

                    var entries = new List <string>();

                    int enumcount = EnumManager.GetEnumEntryCount(enumname);

                    for (int j = 0; j < enumcount; j++)
                    {
                        entries.Add(EnumManager.GetEnumEntry(enumname, j));
                    }

                    FEntryOutput[i].AssignFrom(entries);
                }
            }
        }
Exemple #2
0
        public TodoHdeEnumVariable(INode2 node, TodoEngine engine, string varname)
        {
            this.node = node;
            //this.var = var;

            this.valuepin = this.node.FindPin("Input Enum");

            enumname = this.valuepin.SubType.Split(",".ToCharArray())[1].Trim();

            int ecnt = EnumManager.GetEnumEntryCount(enumname);

            for (int i = 0; i < ecnt; i++)
            {
                string eval = EnumManager.GetEnumEntryString(enumname, i);
                string vn   = varname + "-" + eval;

                TodoVariable var = engine.GetVariableByName(vn);
                if (var == null)
                {
                    var          = new TodoVariable(vn);
                    var.Category = "Global";
                    engine.RegisterVariable(var, false);
                }

                var.ValueChanged += var_ValueChanged;
                vars.Add(var);
            }
            //this.valuepin.
            //this.valuepin.Type

            //var.ValueChanged += var_ValueChanged;
            //var.VariableUpdated += var_VariableUpdated;
        }
Exemple #3
0
        InterimTextureInfo()
        {
            var count = EnumManager.GetEnumEntryCount("TextureFormat");

            for (int i = 0; i < count; i++)
            {
                var entry = EnumManager.GetEnumEntry("TextureFormat", i);
                if (entry.Name == "A8R8G8B8")
                {
                    FEnumEntry = entry;
                    break;
                }
            }
        }
Exemple #4
0
        //called when data for any output pin is requested
        public void Evaluate(int SpreadMax)
        {
            FNameOutput.SliceCount  = SpreadMax;
            FEntryOutput.SliceCount = SpreadMax;

            var anyEnumChanged = false;
            var inputEnums     = FInput.ToSpread().ToList();

            foreach (var changedEnum in FChangedEnums)
            {
                if (inputEnums.Any(e => e.Name == changedEnum))
                {
                    anyEnumChanged = true;
                    break;
                }
            }

            if (FInput.IsChanged || anyEnumChanged)
            {
                FChangedEnums.Clear();

                for (int i = 0; i < SpreadMax; i++)
                {
                    var enumname = FInput[i].Name;
                    FNameOutput[i] = enumname;

                    var entries = new List <string>();

                    int enumcount = EnumManager.GetEnumEntryCount(enumname);

                    for (int j = 0; j < enumcount; j++)
                    {
                        entries.Add(EnumManager.GetEnumEntry(enumname, j));
                    }

                    FEntryOutput[i].AssignFrom(entries);
                }
            }
        }