public override void removeAttributeDefObjectFromChildren(ITezAttributeDefObject def_object) { for (int i = 0; i < m_Objects.Count; i++) { m_Objects[i].removeAttributeDefObject(def_object); } }
public override void addAttributeDefObjectToChildren(ITezAttributeDefObject def_object) { for (int i = 0; i < m_Objects.Count; i++) { m_Objects[i].addAttributeDefObject(def_object); } }
/// <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); } } }
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!!"); } }
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); } } }
/// <summary> /// 被动接收调用 /// </summary> /// <param name="def_object"></param> public void removeAttributeDefObject(ITezAttributeDefObject def_object) { m_OnRemoveDefinitionObject(def_object); }
/// <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);