private void GizmoListOptions()
        {
            List <Building_MutagenChamber> chambers     = Chambers;
            Building_MutagenChamber        firstChamber = chambers.First();
            Building_MutagenChamber        lastChamber  = chambers.Last();

            if (firstChamber.daysIn > 0f || lastChamber.daysIn > 0f)
            {
                if (firstChamber != lastChamber)
                {
                    if (chambers.All(x => x.ContainedThing != null) && chambers.Count > 1 && ModulatorOptions.merges.Count > 0)
                    {
                        Find.WindowStack.Add(new FloatMenu(GenMenuOptions(true)));
                    }
                    else
                    {
                        Messages.Message("Can't change a morph while there is one in progress.", MessageTypeDefOf.CautionInput);
                    }
                }
                else
                {
                    Messages.Message("Can't change a morph while there is one in progress.", MessageTypeDefOf.CautionInput);
                }
            }
            else
            {
                if (LinkedFacilities.OfType <Building_MutagenChamber>().Any())
                {
                    Find.WindowStack.Add(new FloatMenu(GenMenuOptions()));
                }
            }
        }
 internal void SetAnimalAction(PawnKindDef def)
 {
     foreach (Building_MutagenChamber chamber in LinkedFacilities.OfType <Building_MutagenChamber>())
     {
         chamber.pawnTFKind = def;
         chamber.linkTo     = null;
         merging            = false;
         random             = false;
     }
 }
        public void NotifyChamberFinished(Building_MutagenChamber chamber)
        {
            if (!LinkedFacilities.Contains(chamber))
            {
                Log.Error($"mutagen modulator received message from chamber that it was not linked to!");
                return;
            }


            chamber.EjectContents();
            var linkedTo = chamber.linkTo;

            linkedTo?.ClearContents();

            if (random)
            {
                chamber.PickRandom();
                linkedTo?.PickRandom();
            }
        }