FlatRedBall.Glue.ElementRuntime.SetVariablesOnElementRuntime C# (CSharp) Method

SetVariablesOnElementRuntime() private method

private SetVariablesOnElementRuntime ( ElementRuntime elementRuntime ) : void
elementRuntime ElementRuntime
return void
        private void SetVariablesOnElementRuntime(ElementRuntime elementRuntime)
        {
            object objectToSet = elementRuntime.mDirectObjectReference;

            if (objectToSet == null)
            {
                objectToSet = elementRuntime;
            }

            // If the IElement
            // that contains the
            // elementRuntime has
            // a base IElement, then
            // the elementRuntime's NamedObjectSave
            // may be defined in a base object, and the
            // derived classes may provide a chain of overriden
            // variables.
            string name = elementRuntime.mAssociatedNamedObjectSave.InstanceName;

            IElement element = this.AssociatedIElement;
            List<NamedObjectSave> nosList = new List<NamedObjectSave>();
            do
            {
                NamedObjectSave nos = element.GetNamedObject(name);

                if (nos != null && (nos.DefinedByBase || nos == elementRuntime.mAssociatedNamedObjectSave))
                {
                    nosList.Add(nos);
                }

                element = ObjectFinder.Self.GetIElement(element.BaseElement);

            } while (element != null);


            // Start with the most derived, so do a reverse for loop
            for (int i = nosList.Count - 1; i > -1; i--)
            {
                SetVariablesForNamedObject(objectToSet, nosList[i]);
            }
        }