public static SlimeGenome GetBaseGenome() { var genome = new SlimeGenome(); foreach (var p in SlimeTraitRegistry.Processors) { genome.AddTrait(p.CreateDefaultTrait()); } return(genome); }
public static SlimeGenome CombineGenomes(SlimeGenome original, SlimeGenome other) { var spliceSettings = new SpliceSettings(); var newGenome = GetBaseGenome(); foreach (var trait in original.AllTraits) { trait.Processor.AssembleSpliceSettings(trait, spliceSettings); } foreach (var trait in original.AllTraits) { newGenome[trait.FullID] = trait.Processor.CombineTraits(trait, other[trait.FullID], spliceSettings); } return(newGenome); }