コード例 #1
0
        void FindVesselResources()
        {
            var craft_parts = CraftParts();
            var pad_parts   = new HashSet <Part> (builder.vessel.parts);

            pad_parts.ExceptWith(craft_parts);
            //Debug.Log ($"[ELBuildControl] FindVesselResources pad {pad_parts.Count} craft {craft_parts.Count}");

            string vesselName = builder.vessel.vesselName;
            Part   root       = builder.part.localRoot;

            //Debug.Log ($"[ELBuildControl] FindVesselResources pad");
            padResourceManager = new RMResourceManager(vesselName,
                                                       pad_parts, root,
                                                       craft_parts,
                                                       false, true);

            if (craft_parts.Count > 0)
            {
                //Debug.Log ($"[ELBuildControl] FindVesselResources craft");
                craftResourceManager = new RMResourceManager(craftName,
                                                             craft_parts,
                                                             craftRoot,
                                                             null,
                                                             false, true);
            }
        }
コード例 #2
0
        void RebuildSets(Vessel v)
        {
            Part rootPart = v.parts[0].localRoot;

            //Debug.Log ($"[ELResourceWindow] RebuildSets");
            resourceManager = new RMResourceManager(v.parts, rootPart,
                                                    true, true);
            resscroll.Reset();
            var set = new HashSet <string> ();

            setSelected = null;
            xferState   = null;
            dstSets.Clear();
            srcSets.Clear();
            foreach (var s in resourceManager.resourceSets)
            {
                foreach (string r in s.resources.Keys)
                {
                    set.Add(r);
                }
            }
            resources      = set.ToList();
            resourceStates = new bool [resources.Count];

            UpdateGUIState();
        }
コード例 #3
0
        internal void SetupCraftResources(Vessel vsl)
        {
            Part rootPart = vsl.parts[0].localRoot;

            craftResourceManager = new RMResourceManager(vsl.parts, rootPart,
                                                         false, true);
            foreach (var br in buildCost.optional)
            {
                var amount = craftResources.ResourceAmount(br.name);
                craftResources.TransferResource(br.name, -amount);
            }
        }
コード例 #4
0
        void onVesselChange(Vessel v)
        {
            resourceManager = new RMResourceManager(v.parts, true);
            resscroll.Reset();
            var set = new HashSet <string> ();

            setSelected = null;
            xferState   = null;
            dstSets.Clear();
            srcSets.Clear();
            foreach (var s in resourceManager.resourceSets)
            {
                foreach (string r in s.resources.Keys)
                {
                    set.Add(r);
                }
            }
            resources      = set.ToList();
            resourceStates = new bool [resources.Count];

            UpdateGUIState();
        }
コード例 #5
0
            public string Name(Part part)
            {
                uint id = RMResourceManager.GetID(part);

                return(parts[id]);
            }
コード例 #6
0
            public bool Has(Part part)
            {
                uint id = RMResourceManager.GetID(part);

                return(parts.ContainsKey(id));
            }
コード例 #7
0
            public void Add(Part part, string name)
            {
                uint id = RMResourceManager.GetID(part);

                parts[id] = name;
            }