Exemplo n.º 1
0
        void BuildStorageItems(Storage storage)
        {
            Vessel vessel = FlightGlobals.ActiveVessel;

            resourceSet.Clear();
            resourceList.Clear();

            Part rootPart = vessel.parts[0].localRoot;
            var  manager  = new RMResourceManager(vessel.parts, rootPart);

            GetVesselResources(manager);
            GetStoredResources(storage);

            storageItems.Clear();
            storageItems.Storage = storage;
            storageItems.Vessel  = vessel;

            for (int i = 0; i < resourceList.Count; i++)
            {
                var            resDef         = resourceList[i];
                var            storedResource = storage.GetResource(resDef);
                RMResourceInfo vesselResource;
                manager.masterSet.resources.TryGetValue(resDef.name, out vesselResource);
                storageItems.Add(new StorageItem(storage, storedResource, vesselResource));
            }
            UIKit.UpdateListContent(storageItems);
        }
Exemplo n.º 2
0
        internal void GetVesselResources(RMResourceManager manager)
        {
            var definitions = PartResourceLibrary.Instance.resourceDefinitions;

            foreach (string r in manager.masterSet.resources.Keys)
            {
                if (blackListedResources.Contains(r))
                {
                    continue;
                }
                var resDef = definitions[r];
                if (resDef != null)                     // null shouldn't happen, but...
                {
                    resourceSet.Add(resDef.id);
                    resourceList.Add(resDef);
                }
            }
        }
Exemplo n.º 3
0
        void BuildMerchantItems()
        {
            merchantItems.Clear();

            var merchant = merchantItems.Merchant;

            Part rootPart        = merchantItems.Vessel.parts[0].localRoot;
            var  manager         = new RMResourceManager(merchantItems.Vessel.parts, rootPart);
            var  vesselResources = manager.masterSet.resources;

            var tradedResources = merchant.Resources;

            for (int i = tradedResources.Count; i-- > 0;)
            {
                var            resource = tradedResources[i];
                RMResourceInfo vesselResource;
                vesselResources.TryGetValue(resource.resource.name, out vesselResource);
                merchantItems.Add(new MerchantItem(merchant, resource, vesselResource));
            }
            UIKit.UpdateListContent(merchantItems);
        }