Пример #1
0
 // Fetch input/output resources list from reactor ConfigNode
 protected void ParseResourcesList(Part part)
 {
     if (!resourcesListParsed)
     {
         ConfigNode node = ModuleUtils.GetModuleConfigNode(part, engineModuleName);
         if (node != null)
         {
             // Load resource nodes
             ConfigNode[] inNodes = node.GetNodes("INPUT_RESOURCE");
             inputs = new List <ResourceRatio>();
             for (int i = 0; i < inNodes.Length; i++)
             {
                 ResourceRatio p = new ResourceRatio();
                 p.Load(inNodes[i]);
                 inputs.Add(p);
             }
             ConfigNode[] outNodes = node.GetNodes("OUTPUT_RESOURCE");
             outputs = new List <ResourceRatio>();
             for (int i = 0; i < outNodes.Length; i++)
             {
                 ResourceRatio p = new ResourceRatio();
                 p.Load(outNodes[i]);
                 outputs.Add(p);
             }
         }
         resourcesListParsed = true;
     }
 }
        public override void OnLoad(ConfigNode node)
        {
            base.OnLoad(node);


            /// Load resource nodes
            ConfigNode[] inNodes = node.GetNodes("INPUT_RESOURCE");

            inputs = new List <ResourceRatio>();
            for (int i = 0; i < inNodes.Length; i++)
            {
                ResourceRatio p = new ResourceRatio();
                p.Load(inNodes[i]);
                inputs.Add(p);
            }
            ConfigNode[] outNodes = node.GetNodes("OUTPUT_RESOURCE");

            outputs = new List <ResourceRatio>();
            for (int i = 0; i < outNodes.Length; i++)
            {
                ResourceRatio p = new ResourceRatio();
                p.Load(outNodes[i]);
                outputs.Add(p);
            }
        }
Пример #3
0
        public override void OnLoad(ConfigNode node)
        {
            base.OnLoad(node);
            if (PowerGeneratedOffline)
            {
                // Process nodes
                ConfigNode[] inNodes  = node.GetNodes("INPUT_RESOURCE");
                ConfigNode[] outNodes = node.GetNodes("OUTPUT_RESOURCE");

                powerInputs  = new List <ResourceRatio>();
                powerOutputs = new List <ResourceRatio>();
                for (int i = 0; i < inNodes.Length; i++)
                {
                    ResourceRatio p = new ResourceRatio();
                    p.Load(inNodes[i]);
                    powerInputs.Add(p);
                }
                for (int i = 0; i < outNodes.Length; i++)
                {
                    ResourceRatio p = new ResourceRatio();
                    p.Load(outNodes[i]);
                    powerOutputs.Add(p);
                }
            }
        }
Пример #4
0
        public void OnLoad(ConfigNode node)
        {
            // Process nodes
            node.TryGetValue("DisplayName", ref modeName);
            node.TryGetValue("ModeID", ref modeID);
            node.TryGetValue("ModeColor", ref modeColor);
            node.TryGetValue("PowerGeneration", ref powerGeneration);

            ConfigNode[] inNodes  = node.GetNodes("INPUT_RESOURCE");
            ConfigNode[] outNodes = node.GetNodes("OUTPUT_RESOURCE");

            inputs = new List <ResourceRatio>();
            for (int i = 0; i < inNodes.Length; i++)
            {
                ResourceRatio p = new ResourceRatio();
                p.Load(inNodes[i]);
                inputs.Add(p);
            }
            outputs = new List <ResourceRatio>();
            for (int i = 0; i < outNodes.Length; i++)
            {
                ResourceRatio p = new ResourceRatio();
                p.Load(outNodes[i]);
                outputs.Add(p);
            }
        }
Пример #5
0
        public override void OnLoad(ConfigNode node)
        {
            if (inputList == null)
            {
                inputList = new List <ResourceRatio>();
            }
            if (outputList == null)
            {
                outputList = new List <ResourceRatio>();
            }
            if (reqList == null)
            {
                reqList = new List <ResourceRatio>();
            }

            if (node.HasNode("INPUT_RESOURCE"))
            {
                inputList.Clear();
            }
            if (node.HasNode("OUTPUT_RESOURCE"))
            {
                outputList.Clear();
            }
            if (node.HasNode("REQUIRED_RESOURCE"))
            {
                reqList.Clear();
            }

            var count = node.CountNodes;

            for (int i = 0; i < count; ++i)
            {
                var subNode     = node.nodes[i];
                var newResource = new ResourceRatio()
                {
                    FlowMode = ResourceFlowMode.NULL
                };
                if (!subNode.HasValue("ResourceName") && subNode.name.EndsWith("_RESOURCE"))
                {
                    Debug.Log("Resource must have value 'ResourceName'");
                    continue;
                }
                newResource.Load(subNode);
                switch (subNode.name)
                {
                case "INPUT_RESOURCE":
                    inputList.Add(newResource);
                    break;

                case "OUTPUT_RESOURCE":
                    outputList.Add(newResource);
                    break;

                case "REQUIRED_RESOURCE":
                    reqList.Add(newResource);
                    break;
                }
            }
        }
Пример #6
0
            public BoiloffFuel(ConfigNode node, Part p)
            {
                part = p;
                node.TryGetValue("FuelName", ref fuelName);
                node.TryGetValue("BoiloffRate", ref boiloffRate);

                outputs = new List <ResourceRatio>();
                ConfigNode[] outNodes = node.GetNodes("OUTPUT_RESOURCE");
                for (int i = 0; i < outNodes.Length; i++)
                {
                    ResourceRatio r = new ResourceRatio();
                    r.Load(outNodes[i]);
                    outputs.Add(r);
                }
            }
        protected void loadResourceNodes(ConfigNode node, string nodeName, List <ResourceRatio> resources)
        {
            ConfigNode[]  resourceNodes;
            ConfigNode    resourceNode;
            ResourceRatio resourceRatio;

            if (node.HasNode(nodeName))
            {
                resourceNodes = node.GetNodes(nodeName);

                for (int index = 0; index < resourceNodes.Length; index++)
                {
                    resourceNode = resourceNodes[index];

                    resourceRatio = new ResourceRatio();
                    resourceRatio.Load(resourceNode);

                    resources.Add(resourceRatio);
                }
            }
        }