Beispiel #1
0
 public override void removeAttributeDefObjectFromChildren(ITezAttributeDefObject def_object)
 {
     for (int i = 0; i < m_Objects.Count; i++)
     {
         m_Objects[i].removeAttributeDefObject(def_object);
     }
 }
Beispiel #2
0
 public override void addAttributeDefObjectToChildren(ITezAttributeDefObject def_object)
 {
     for (int i = 0; i < m_Objects.Count; i++)
     {
         m_Objects[i].addAttributeDefObject(def_object);
     }
 }
Beispiel #3
0
        /// <summary>
        /// 添加一个带定义的对象
        /// 一般为各种Modifier
        /// 用于属性加成等系统
        /// </summary>
        public void addAttributeDefObject(ITezAttributeDefObject def_object)
        {
            ///如果没有Object被注册到路径上
            ///那么就算此Modifier加入了也不会造成任何影响
            ///
            ///如果路径已经建立好了
            ///Modifier加入时只需要直接加入他定义路径的最后的位置上即可
            var definition = def_object.definition;
            int length     = definition.primaryLength;

            if (length > 0)
            {
                var node = this.getOrCreatePrimaryNode(definition.getPrimaryPathToken(length - 1));
                node.addAttributeDefObject(def_object);
            }
            else
            {
                length = definition.secondaryLength;
                for (int i = 0; i < length; i++)
                {
                    var node = this.getOrCreateSecondaryNode(definition.getSecondaryPathToken(i));
                    node.addAttributeDefObject(def_object);
                }
            }
        }
Beispiel #4
0
 public override void removeAttributeDefObjectFromChildren(ITezAttributeDefObject def_object)
 {
     for (int i = 0; i < this.childCount; i++)
     {
         var handler = this.getPrimaryNode(m_Children[i]);
         handler.removeAttributeDefObjectFromChildren(def_object);
     }
 }
 /// <summary>
 /// 添加一个AttributeObject
 /// </summary>
 public void addAttributeDefObject(ITezAttributeDefObject def_object)
 {
     if (m_AttributeObjects == null)
     {
         m_AttributeObjects = create();
     }
     m_AttributeObjects.Add(def_object);
     this.addAttributeDefObjectToChildren(def_object);
 }
 public void removeAttributeDefObject(ITezAttributeDefObject def_object)
 {
     if (m_AttributeObjects.Remove(def_object))
     {
         this.removeAttributeDefObjectFromChildren(def_object);
     }
     else
     {
         throw new Exception("removeDefinitionObject!!");
     }
 }
Beispiel #7
0
        public void removeAttributeDefObject(ITezAttributeDefObject def_object)
        {
            var defition = def_object.definition;
            int length   = defition.primaryLength;

            if (length > 0)
            {
                var node = this.getPrimaryNode(defition.getPrimaryPathToken(length - 1));
                node.removeAttributeDefObject(def_object);
            }
            else
            {
                length = defition.secondaryLength;
                for (int i = 0; i < length; i++)
                {
                    var node = this.getSecondaryNode(defition.getSecondaryPathToken(i));
                    node.removeAttributeDefObject(def_object);
                }
            }
        }
Beispiel #8
0
 /// <summary>
 /// 被动接收调用
 /// </summary>
 /// <param name="def_object"></param>
 public void removeAttributeDefObject(ITezAttributeDefObject def_object)
 {
     m_OnRemoveDefinitionObject(def_object);
 }
Beispiel #9
0
 /// <summary>
 /// 被动接收调用
 /// </summary>
 /// <param name="def_object"></param>
 public void addAttributeDefObject(ITezAttributeDefObject def_object)
 {
     m_OnAddDefinitionObject(def_object);
 }
 /// <summary>
 /// 向子节点添加
 /// </summary>
 public abstract void addAttributeDefObjectToChildren(ITezAttributeDefObject def_object);
 /// <summary>
 /// 从子节点移除
 /// </summary>
 public abstract void removeAttributeDefObjectFromChildren(ITezAttributeDefObject def_object);