public static LabEquipment getLabEquipmentFromNode(ConfigNode node, Lab lab)
        {
            if (node.name != CONFIG_NODE_NAME)
            {
                NE_Helper.logError("getLabEquipmentFromNode: invalid Node: " + node.name);
                return(getNullObject());
            }

            string abb  = node.GetValue(ABB_VALUE);
            string name = node.GetValue(NAME_VALUE);
            float  mass = NE_Helper.GetValueAsFloat(node, MASS_VALUE);
            float  cost = NE_Helper.GetValueAsFloat(node, COST_VALUE);

            string product        = node.GetValue(PRODUCT_VALUE);
            float  productPerHour = NE_Helper.GetValueAsFloat(node, PRODUCT_PER_HOUR_VALUE);

            string reactant           = node.GetValue(REACTANT_VALUE);
            float  reactantPerProduct = NE_Helper.GetValueAsFloat(node, REACTANT_PER_PRODUCT_VALUE);

            EquipmentRacks type = EquipmentRacksFactory.getType(node.GetValue(TYPE_VALUE));

            LabEquipment eq = new LabEquipment(abb, name, type, mass, cost, productPerHour, product, reactantPerProduct, reactant);

            eq.lab = lab;
            ConfigNode expNode = node.GetNode(ExperimentData.CONFIG_NODE_NAME);

            if (expNode != null)
            {
                eq.loadExperiment(ExperimentData.getExperimentDataFromNode(expNode));
            }

            return(eq);
        }
Exemple #2
0
        /// <summary>
        /// Gets all lab crew members.
        /// </summary>
        /// <returns>A (possibly empty) list of lab crew members.</returns>
        internal List <string> getAllLabCrewMembers()
        {
            List <string> members = new List <string>();

            if (state == ExperimentState.INSTALLED || state == ExperimentState.RUNNING)
            {
                try {
                    if (store == null)
                    {
                        NE_Helper.logError("getAllLabCrewMembers: store is null!");
                    }
                    Lab lab = ((LabEquipment)store).getLab();
                    if (lab == null)
                    {
                        NE_Helper.logError("getAllLabCrewMembers: lab is null!");
                    }
                    if (lab.part == null)
                    {
                        NE_Helper.logError("getAllLabCrewMembers: lab.part is null!");
                    }
                    if (lab.part.protoModuleCrew == null)
                    {
                        NE_Helper.logError("getAllLabCrewMembers: lab.part.protoModuleCrew is null!");
                    }
                    for (int idx = 0, count = lab.part.protoModuleCrew.Count; idx < count; idx++)
                    {
                        var crewMember = lab.part.protoModuleCrew[idx];
                        members.Add(crewMember.name.Trim());
                    }
                } catch (NullReferenceException nre) {
                    NE_Helper.logError("getAllLabCrewMembers: nullref!\n" + nre.StackTrace);
                }
            }
            return(members);
        }
Exemple #3
0
 internal void onStart(Lab lab)
 {
     if (equ != null)
     {
         equ.install(lab);
     }
 }
 public void install(Lab lab)
 {
     NE_Helper.log("Lab equipment install in " + lab.abbreviation);
     gen = createGenerator(product, productPerHour, reactant, reactantPerProduct, lab);
     lab.addGenerator(gen);
     this.lab = lab;
 }
Exemple #5
0
 public void install(LabEquipment eq, Lab lab)
 {
     if (eq != null && type == eq.getType())
     {
         equ = eq;
         eq.install(lab);
     }
     else
     {
         NE_Helper.logError("LabEquipmentSlot.install: Type doesn't macht");
     }
 }
        internal List <string> getAllLabCrewMembers()
        {
            List <string> members = new List <string>();

            if (state == ExperimentState.INSTALLED || state == ExperimentState.RUNNING)
            {
                try {
                    Lab lab = ((LabEquipment)store).getLab();
                    foreach (ProtoCrewMember crewMember in lab.part.protoModuleCrew)
                    {
                        members.Add(crewMember.name.Trim());
                    }
                } catch (NullReferenceException nre) {
                    NE_Helper.logError("getAllLabCrewMembers: nullref!\n" + nre.StackTrace);
                }
            }
            return(members);
        }
Exemple #7
0
 public override void start(startCallback cbMethod)
 {
     NE_Helper.log("ResExppStep.start()");
     if (canStart())
     {
         Lab lab = ((LabEquipment)exp.store).getLab();
         if (lab != null && !OMSExperiment.checkBoring(lab.vessel, true))
         {
             NE_Helper.log("ResExppStep.start(): create Resource");
             ((LabEquipment)exp.store).createResourceInLab(res, amount);
             cbMethod(true);
             return;
         }
         else
         {
             NE_Helper.logError("ResExppStep.start(): Lab null or boring. Boring: " + OMSExperiment.checkBoring(lab.vessel, true));
         }
     }
     NE_Helper.log("ResExppStep.start(): can NOT start");
     cbMethod(false);
 }
 private void installExperimentInLab(Lab lab)
 {
     lab.installExperiment(expData);
     removeExperimentData();
 }
Exemple #9
0
        public static LabEquipmentSlot getLabEquipmentSlotFromConfigNode(ConfigNode node, Lab lab)
        {
            if (node == null || node.name != CONFIG_NODE_NAME)
            {
                NE_Helper.logError("getLabEquipmentFromNode: invalid Node: " + node == null? "NULL" : node.name);
                return(new LabEquipmentSlot(EquipmentRacks.NONE));
            }
            EquipmentRacks type   = EquipmentRacksFactory.getType(node.GetValue(TYPE_VALUE));
            LabEquipment   le     = null;
            ConfigNode     leNode = node.GetNode(LabEquipment.CONFIG_NODE_NAME);

            if (leNode != null)
            {
                le = LabEquipment.getLabEquipmentFromNode(leNode, lab);
            }
            return(new LabEquipmentSlot(type, le));
        }
        private Generator createGenerator(string resToCreate, float creationRate, string useRes, float usePerUnit, Lab lab)
        {
            Generator gen = new Generator(lab.part);

            gen.addRate(resToCreate, -creationRate);
            if (usePerUnit > 0)
            {
                gen.addRate(useRes, usePerUnit);
            }
            return(gen);
        }