public void OnDependentHasBeenBuilt(BlueprintController bpc)
 {
     if (blueprint.mutex)
     {
         var children = (from i in controller.model.GetDependentBlueprints(blueprint) where i.ID != bpc.blueprint.ID select i);
         foreach (var c in children)
         {
             controller.blueprints[c.ID].Excluded = true;
         }
     }
 }
        BlueprintController GetValidBPC(string ID)
        {
            if (!blueprint.isFactory)
            {
                throw new Exception("This is not a Factory: " + this.blueprint.ID);
            }
            BlueprintController bpc = null;

            foreach (var b in blueprint.factory.blueprints)
            {
                if (b.ID == ID)
                {
                    bpc = controller.blueprints [ID];
                }
            }
            if (bpc == null)
            {
                throw new Exception("Blueprint not available in this Factory: " + ID);
            }
            return(bpc);
        }