public override MyObjectBuilder_DefinitionBase GetObjectBuilder() { MyObjectBuilder_BarbarianWaveEventDefinition objectBuilder = base.GetObjectBuilder() as MyObjectBuilder_BarbarianWaveEventDefinition; objectBuilder.Waves = new MyObjectBuilder_BarbarianWaveEventDefinition.WaveDef[this.m_waves.Count]; int index = 0; foreach (KeyValuePair <int, Wave> pair in this.m_waves) { MyObjectBuilder_BarbarianWaveEventDefinition.WaveDef def = new MyObjectBuilder_BarbarianWaveEventDefinition.WaveDef { Day = pair.Key, Bots = new MyObjectBuilder_BarbarianWaveEventDefinition.BotDef[pair.Value.Bots.Count] }; int num2 = 0; foreach (MyDefinitionId id in pair.Value.Bots) { def.Bots[num2] = new MyObjectBuilder_BarbarianWaveEventDefinition.BotDef { SubtypeName = id.SubtypeName }; num2++; } objectBuilder.Waves[index] = def; index++; } return(objectBuilder); }
public Wave(MyObjectBuilder_BarbarianWaveEventDefinition.WaveDef waveOb) { foreach (var botDef in waveOb.Bots) { MyObjectBuilderType botType; if (!MyObjectBuilderType.TryParse(botDef.TypeName, out botType)) botType = typeof(MyObjectBuilder_HumanoidBot); Bots.Add(new MyDefinitionId(botType, botDef.SubtypeName)); } }