public override void PostMake()
 {
     base.PostMake();
     m_CustomPlantDef = def as ThingDef_PlantWithSeeds;
     if (genome == null)
         genome = m_CustomPlantDef.genome.RandomGenome();
 }
 public override void ExposeData()
 {
     base.ExposeData();
     m_CustomPlantDef = def as ThingDef_PlantWithSeeds;
     Scribe_Deep.LookDeep<PlantGenome>(ref genome, "genome");
     if (genome == null)
         genome = m_CustomPlantDef.genome.RandomGenome();
 }
        public PlantGenome RandomGenome()
        {
            PlantGenome genome = new PlantGenome();
            genome.growSpeedMult = growSpeedMult.RandomInRange;
            genome.harvestAmountMult = harvestAmountMult.RandomInRange;
            genome.baseSeedChance = baseSeedChance.RandomInRange;
            if (genome.baseSeedChance >= 1f)
                genome.baseSeedChance = 1f;

            genome.addSeedChance = addSeedChance.RandomInRange;
            if (genome.addSeedChance >= 1f)
                genome.addSeedChance = 1f;

            if (Rand.Value < terminatorChance)
            {
                genome.baseSeedChance = 0f;
                genome.addSeedChance = 0f;
            }
            genome.canGrowAtNight = Rand.Value < canGrowAtNight;

            return genome;
        }