public virtual void Build() { List <FieldInfo> fields = GetType().GetFields().ToList().FindAll(t => t.FieldType.InheritsFrom(typeof(TileComponent_))); foreach (FieldInfo field in fields) { TileComponent_ tileComponent = (TileComponent_)CreateInstance(field.FieldType.Name); tileComponent.Build(this); field.SetValue(this, tileComponent); } }
public virtual void Build(TileOwner_ tileOwner) { this.tileOwner = tileOwner; List <FieldInfo> fields = GetType().GetFields().ToList().FindAll(t => t.FieldType.InheritsFrom(typeof(TileComponent_))); foreach (FieldInfo field in fields) { TileComponent_ tileComponent_ = (TileComponent_)CreateInstance(field.FieldType); tileComponent_.Build(tileOwner); field.SetValue(this, tileComponent_); } }
public override void Build(TileOwner_ tileOwner) { base.Build(tileOwner); List <FieldInfo> fields = GetType().GetFields().ToList().FindAll(t => t.FieldType.InheritsFrom(typeof(TileComponent_))); foreach (FieldInfo field in fields) { string fieldName = "TreeTile" + char.ToUpper(field.FieldType.Name.Substring("Tile".Length)[0]) + field.FieldType.Name.Substring(1 + "Tile".Length); TileComponent_ tileComponent = (TileComponent_)CreateInstance(fieldName); field.SetValue(this, tileComponent); } }