public PssgAttribute AddAttribute(PssgNode parentNode, int attributeID, object data) { if (parentNode == null) { return null; } if (parentNode.attributes == null) { parentNode.attributes = new Dictionary<string, PssgAttribute>(); } else if (parentNode.HasAttribute(attributeID)) { parentNode[attributeID].data = data; return parentNode[attributeID]; } else if (parentNode.attributes.ContainsKey(attributeInfo[attributeID - 1].name)) { return null; } PssgAttribute newAttr = new PssgAttribute(attributeID, data, this, parentNode); parentNode.attributes.Add(newAttr.Name, newAttr); return newAttr; }