예제 #1
0
        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);
                }
            }
        }
예제 #2
0
        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);
        }