public override void LoadFromNode(ConfigNode node) { base.LoadFromNode(node); var newNode = node.GetNode(ConfigName); if (newNode.IsNull()) { return; } var value = (IConfigNode)Value; CFGUtil.AssignConfigObject(this, newNode, ref value); Value = value; }
public override void LoadFromNode(ConfigNode node) { base.LoadFromNode(node); var values = node.GetValues(ConfigName); if (values.Length == 0) { return; } CreateListIfNecessary(); bool createNewItems = false; if (Count != values.Length) { ClearList(); createNewItems = true; } for (int i = 0; i < values.Length; i++) { object obj = null; if (!createNewItems) { obj = List[i]; } CFGUtil.AssignConfigObject(this, values[i], ref obj); if (createNewItems) { List.Add(obj); } else { List[i] = obj; // This may be self-assignment under certain circumstances } } }