public override void Deserialize(MyObjectBuilder_ComponentBase builder) { base.Deserialize(builder); MyObjectBuilder_TriggerAggregate aggregate = builder as MyObjectBuilder_TriggerAggregate; if ((aggregate != null) && (aggregate.AreaTriggers != null)) { foreach (MyObjectBuilder_TriggerBase base2 in aggregate.AreaTriggers) { MyComponentBase component = MyComponentFactory.CreateInstanceByTypeId(base2.TypeId); component.Deserialize(base2); this.AddComponent(component); } } }
public override MyObjectBuilder_ComponentBase Serialize(bool copy = false) { MyObjectBuilder_TriggerAggregate aggregate = base.Serialize(false) as MyObjectBuilder_TriggerAggregate; ListReader <MyComponentBase> reader = this.m_children.Reader; if (reader.Count > 0) { aggregate.AreaTriggers = new List <MyObjectBuilder_TriggerBase>(reader.Count); using (List <MyComponentBase> .Enumerator enumerator = reader.GetEnumerator()) { while (enumerator.MoveNext()) { MyObjectBuilder_TriggerBase item = enumerator.Current.Serialize(false) as MyObjectBuilder_TriggerBase; if (item != null) { aggregate.AreaTriggers.Add(item); } } } } return(aggregate); }